docs

Connect xpost to Cursor

Cursor reads MCP servers out of a JSON file. Add three lines, sign in when it asks, and Cursor can draft and publish posts from inside the repo you're working in — with every post mailed to you and, in copilot mode, waiting for your approval.

Set it up

  1. 1

    Add it to mcp.json

    .cursor/mcp.json in the project, or ~/.cursor/mcp.json for every project. Merge it into mcpServers if you already have one.

    {
      "mcpServers": {
        "xpost": { "url": "https://xpost.to/api/mcp" }
      }
    }

    No key in that file — which matters, because this file gets committed. Cursor signs in through the browser instead.

    The dashboard's Set up Cursor dialog also carries a one-click install link that writes this for you.

  2. 2

    Sign in to xpost and allow it

    Cursor opens our own page by itself: pick which project it may post to, then press Allow. Nothing else to configure.

How to know it worked

Cursor lists xpost under its MCP settings with a green light and the tool count. On our side, look under Project → AI agent → Keys: a row saying “connected by signing in”.

Whatever the assistant drafts goes through the same path as a post you write yourself: it is mailed to you, and in copilot mode it lands in Approvals and waits for you. An assistant can never approve its own post. The connection shows up under Project → AI agent → Keys as “connected by signing in”, with a Disconnect button that ends it immediately.

What to ask it

  • “Using xpost, list the accounts I can post to.”
  • “Draft a post about what changed in this PR and schedule it for tomorrow at 9am.”
  • “Show me the delivery receipt for the last post.”

When nothing happens

Cursor shows xpost with no tools, or a red light

The JSON is the usual cause — a trailing comma, or mcpServers declared twice because it was pasted alongside an existing block. Fix the file and toggle the server off and on in Cursor's settings; it re-reads on the toggle, not on save.

The one-click install link does nothing

The browser has no handler for cursor:// — usually because Cursor is not installed on the machine you are reading this on. Paste the JSON by hand instead; it is the same result.

It posts to the wrong project

The project is chosen on our sign-in page in step 2, not in the JSON. Disconnect it under Project → AI agent → Keys and sign in again, picking the project you meant.

Also worth reading

Every tool the connector offers, and the REST API for anything that cannot open a browser to sign in.