overads
Set up overads in Cursor

Cursor with overads tools.

A JSON entry in .cursor/mcp.json with an API key.

Server URLhttps://api.overads.io/public/v1/mcpStreamable HTTP. Setup as JSON

Cursor

Uses an API key

A JSON entry in .cursor/mcp.json with an API key.

  1. 01Add to .cursor/mcp.json

    Project-level in .cursor/mcp.json, or global in ~/.cursor/mcp.json.

    .cursor/mcp.json
    {
      "mcpServers": {
        "overads": {
          "url": "https://api.overads.io/public/v1/mcp",
          "headers": {
            "Authorization": "Bearer sk_live_YOUR_KEY"
          }
        }
      }
    }
What your assistant can do

27 tools, grouped by job.

  • Publish

    Draft on brand, add media, schedule.

  • Approve

    See what is waiting for a yes.

  • Read results

    Recaps, winners and post stats.

  • Ads

    Read-only totals by day and window.

  • Workflows and the assistant

    Run workflows, ask the assistant.

  • Pages you track

    Page history and detected changes.

Check it works

Ask it two things.

  • List my connected overads accounts.

    Your channels, and whether each one still works.

  • What is waiting for my approval?

    Everything waiting, each with a link to approve it.

For AI agents reading this page
The endpoint, sign-in, and how to verify, in plain prose.

overads exposes its publishing, approval, results and ads surface as an MCP server at https://api.overads.io/public/v1/mcp, transport Streamable HTTP: POST for JSON-RPC, GET for the standalone stream, DELETE to end the session. A session is minted on initialize and returned in the Mcp-Session-Id header; send it on every later request. The setup steps for each client are also served as JSON, no key needed, at https://api.overads.io/public/v1/mcp/setup.

Two ways to authenticate. ChatGPT, Claude and Claude Code connect with OAuth 2.1: add the server URL in the app and leave the OAuth client id and client secret empty. The person then signs in to overads in the window that opens, picks one workspace, chooses which permissions the app gets and approves. Every other client sends an API key as Authorization: Bearer sk_live_... on each request. The person creates the key in Settings > API (the API keys and MCP page), choosing its scopes; it is shown once. In both cases tools/list returns only the tools the connection or key is scoped for. A tool outside those scopes, gated off on the deployment, or that does not exist answers Unknown tool; a missing tool means a missing permission, not a missing feature.

The account, the plan and the approval need the person. Signing up happens at https://overads.io/signup and is the person's own action, and the workspace must be on Pro at $19 a month or Scale at $49 a month, paid from day one; a paused workspace cannot connect. The approval screen is answered by the person: overads never approves a connection on its own and never remembers an approval, so every new connection shows it. Do not create an account, choose a plan or approve a connection on the person's behalf. Ask, and wait for them to confirm.

To verify a connection with one call, call the list_connections tool with no arguments. It needs the connections:read scope and returns the workspace's connected social accounts, each with tokenStatus, lastError and lastSuccessfulPost; an empty list is a working connection in a workspace with nothing connected yet. From a key client without an MCP library, POST initialize to the endpoint with the Authorization header (the curl under Any MCP client above) and read the Mcp-Session-Id header from the response.

Three rules the server states in its initialize instructions. When the workspace requires approval for scheduled posts, create_post and update_post succeed, the post lands with approvalStatus pending and the result carries a warning with code APPROVAL_REQUIRED; it will not publish until a member approves it in the app, so say so, do not retry, and do not call publish now to get around it (it is refused with the same code). Every write tool accepts an optional idempotencyKey: a fresh one per intended write, reused on retry. A counter that is null was not measured, not zero; analytics results carry data and provenance, and provenance is read before a conclusion is drawn from data.

The full reference is at https://overads.io/docs/mcp and https://overads.io/docs/mcp/tools, and the full text of every docs page is at https://overads.io/llms-full.txt.

Other clients

Not the one you use?

  • ClaudeA connector on claude.ai, or one command in Claude Code. Sign in to overads and approve.
  • ChatGPTA custom MCP server in ChatGPT's settings. Sign in to overads and approve.
  • CodexA TOML entry in ~/.codex/config.toml with an API key.
  • All clientsWindsurf, VS Code and any other MCP client, on one page.

Every tool, parameter and error code is on the MCP server page and the tools reference. Something not covered? Email hello@overads.io.