MCP Server

MCP Server

Manage your posts from Claude, Cursor and other AI assistants.

Connect an AI assistant such as Claude, Cursor or Codex to Onepostly and manage your posts from a chat. The assistant talks to Onepostly through the Model Context Protocol (MCP).

What You Can Do

  • See your connected accounts and which ones need reconnecting.
  • Publish now or schedule for later, to one or more accounts at once. Threads on X, Threads and Bluesky work too.
  • Check whether a post went live, and why it failed if it did.
  • Read a post's analytics.
  • Cancel a scheduled post, or delete a published one.
  • Look up what an account needs before you post, such as a Pinterest board or a TikTok privacy level.

Uploading media, connecting accounts, comments, likes, direct messages and webhooks are only in the REST API. To post media from a chat, upload it as described in Media first, then give the assistant the med_ id or a public URL.

See Tools for every tool and what it takes.

Server URL

https://mcp.onepostly.com

https://mcp.onepostly.com/mcp also works. The server uses Streamable HTTP and MCP protocol version 2025-11-25.

Sign-In

The first time you connect, a browser window opens. Sign in to Onepostly and approve access for your workspace. Your password is never shared, and API keys do not work on the MCP server.

You can see and revoke connected apps in Settings → MCP Connections. Every tool call counts toward your workspace's rate limit, and X posts, deletes and analytics reads are paid from your wallet as in the REST API. To get started, see Setup.

Example

You: Post "Spring collection is live. Free shipping through Sunday." to X and Bluesky.

The assistant calls accounts_list to find the account ids.

{
  "accounts": [
    {
      "id": "acc_3f6c2a915d4e4b7a9e1f8a2b6c0d4e57",
      "platform": "x",
      "displayName": "Acme",
      "handle": "acme",
      "avatarUrl": null,
      "status": "active"
    },
    {
      "id": "acc_8b1e7d3c2a9f4c65b0d85e4f1a7c9b23",
      "platform": "bluesky",
      "displayName": "Acme",
      "handle": "acme.bsky.social",
      "avatarUrl": null,
      "status": "active"
    }
  ]
}

Then it calls posts_create with both accounts.

{
  "text": "Spring collection is live. Free shipping through Sunday.",
  "accounts": [
    { "accountId": "acc_3f6c2a915d4e4b7a9e1f8a2b6c0d4e57" },
    { "accountId": "acc_8b1e7d3c2a9f4c65b0d85e4f1a7c9b23" }
  ]
}

The tool creates one post per account, both with the status publishing.

Assistant: Your post is on its way to X and Bluesky.

You: Is it live?

The assistant calls posts_get for each post. Both are now published and have a url.

Assistant: Yes, it is live on both accounts.