Skip to content

MCP server for your marketing ops monitoring

The Marketing Ops Manager includes a Model Context Protocol (MCP) server. Claude, ChatGPT, Cursor or any other MCP client can read your campaigns and incidents, run audits and request approvals, using the same data as the web app.

How the connection works

The server speaks JSON-RPC over Streamable HTTP and supports initialize, tools/list and tools/call. It is stateless, so every request carries its own credentials. You get the endpoint URL in Settings under MCP & API after you sign up.

POST https://<project-ref>.supabase.co/functions/v1/mcp
Authorization: Bearer tmom_<your token>
Content-Type: application/json

Clients that cannot send a header can append the token to the URL instead: the endpoint followed by a slash and the token. Treat that URL like a password.

Access tokens

A workspace owner or admin creates a token in Settings, MCP & API. The token is bound to one workspace, shown once and stored only as a SHA-256 hash. Revoke it at any time to cut off that client. Tokens only work while the workspace has an active subscription.

Setup in your client

Claude Code

claude mcp add --transport http marketing-ops-manager <endpoint> --header "Authorization: Bearer <token>"

Claude Desktop and claude.ai

Open Settings, Connectors, Add custom connector and paste the endpoint URL followed by a slash and the token. Leave the OAuth fields empty.

ChatGPT

Turn on Developer mode in Settings, Apps & Connectors, Advanced settings, then create a connector with the same URL and choose no authentication. Availability depends on your ChatGPT plan.

Cursor

{
  "mcpServers": {
    "marketing-ops-manager": {
      "url": "<endpoint>",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

The setup wizard and the token dialog in the web app generate these snippets with your real endpoint and token filled in, and can test the connection.

The 11 tools

Read tools never change anything. Write tools only change data inside your workspace. Approval tools create a request that a person must approve in the web app before anything runs in a connected system.

list_campaigns
Read. Campaigns with health status, score, last audit and open incident count.
get_campaign
Read. One campaign with its journey steps, open incidents and the latest check run.
get_journey
Read. The ordered steps with system, configuration, status and last check summary.
audit_campaign
Read. Runs every check for a campaign now and returns the failing checks with evidence.
list_incidents
Read. Incidents filtered by status, severity or campaign.
get_incident
Read. An incident with its timeline, evidence and linked tasks.
list_approvals
Read. Approval requests with status, risk, proposed change and result.
list_available_actions
Read. Action types that can be requested, with their risk and parameters.
add_incident_note
Write. Adds a note to an incident timeline.
create_campaign_monitor
Write. Starts monitoring a new campaign inside this workspace.
request_approval
Needs approval. Proposes a change to a connected system. Nothing runs until a person approves it.

Example prompts

  • Audit my Q4 webinar campaign and list the failing checks with their evidence.
  • List open incidents sorted by severity with their owners.
  • Request approval to post a Slack alert about the open critical incident.

Questions about setup? Write to the address on the about page.