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 passing your brand guardrails 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: brand guardrails run on every one, 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.