MCP server for your marketing ops monitoring
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/jsonClients 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.