posteora.com/mcp · Model Context Protocol

Post from the assistant you already use.

Add posteora.com/mcp as a connector in Claude or ChatGPT, or add it to Claude Code with one command. Sign in with Posteora, click Allow, and the tools appear. Your assistant then writes in your trained voice, shows the cost, and publishes or schedules to X, Bluesky, Mastodon, LinkedIn, Pinterest, TikTok and YouTube.

Connect your assistant, free

Free to start. Same credits and rules as the Studio. Revoke any assistant from your dashboard.

Your assistant
Posteora
Your networks

Set up

  1. Connect a network.

    One button per live network at Connections. Bluesky takes an app password; X and LinkedIn are one OAuth hop. Until step 2 completes, the Connected via MCP list on your AI Assistants page stays empty.

  2. Add Posteora to your assistant.

    Pick your client. Each one signs in on the Posteora consent screen; nothing else to paste unless the client only takes a static header.

    Claude Code

    One command, no API key

    fastest
    claude mcp add --transport http posteora https://posteora.com/mcp

    Then type /mcp inside Claude Code, pick posteora and choose Authenticate. Your browser opens the Posteora consent screen; sign in, click Allow, and the tools appear. The sign-in link expires after a few minutes; /mcp gives you a fresh one.

    claude.ai and Claude Desktop

    Custom connector

    https://posteora.com/mcp

    Add a custom connector with that URL, leave the credentials blank, and sign in with Posteora on the consent screen. Click Allow and the tools appear in the chat.

    ChatGPT

    Connector in developer mode

    https://posteora.com/mcp

    Add that URL as a connector in developer mode. Sign in with Posteora if it is offered; otherwise paste your API key from Account as the Authorization header.

    The moment consent completes, the connection appears under Connected via MCP on your AI Assistants page, with the name of the client that signed in.

    Clients that only take a static header (API key)

    Find your key under Account. Regenerating it signs every assistant out. The API key route is refused for admin accounts; signing in works for every account.

    {
      "mcpServers": {
        "posteora": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://posteora.com/mcp",
                   "--header", "Authorization: Bearer YOUR_API_KEY"]
        }
      }
    }
    Pictures and video (every assistant)

    Assistants fail image and video posts when they insist on a public link. Paste these rules once so yours uploads files straight to Posteora (POST /mcp/media) and passes the returned media_id as media_ids.

    Posteora media rules. When I attach an image or video that should go out with a post:
    - Upload the file yourself, straight to Posteora: HTTP POST https://posteora.com/mcp/media with the same Authorization header you use for the Posteora MCP server (API key or the sign-in token) and the file as multipart form field "file". It returns a media_id. For images you can call the media.upload tool instead.
    - Pass that media_id in media_ids when you call post.preview, then post.schedule or post.publish. It stays valid for as long as the post is queued.
    - Never ask me for a public link, and never put my files on a third-party host (filebin, imgur and the like). Use media_url only when I give you a link that is already public.
    - Limits: JPEG, PNG, WebP or GIF up to 5 MB; MP4 or MOV up to 100 MB (X takes video up to 140 seconds).
    Remember these rules for every future Posteora post.
  3. Say it in the chat.

    One copy-ready message. It skips your Persona on purpose, so it never gambles on an untrained voice.

    List my Posteora accounts, then preview and schedule this for tomorrow at 9am on X: Just connected Posteora to my assistant. First post straight from the chat.

    Your assistant lists your accounts, previews fit and cost, then queues it. You see the question and the answer; the calls in between look like this.

    Example run scripted, not live data
    You

    Write a post about the launch in my voice and schedule it for Friday 9am on X and Bluesky.

    accounts.listX, Bluesky connectedfree
    voice.writepersona: Builder1 AI credit
    post.preview212 chars, fits X and BlueskyX allowance after: 19 link or 259 plain posts
    post.scheduleFri 09:00 queued
    Assistant

    Queued for Friday 09:00 on X and Bluesky. X allowance with it queued: 19 posts with links or 259 plain posts left. It is in your Studio calendar.

    accounts.list → voice.write → post.preview → post.schedule · Example run

Tools

Twenty-one tools, the same code the Studio composer calls. Cost is shown beside each one, the way post.preview shows it in the chat.

accounts.listYour connected networks and their limitsfree
connection.labelName this connection after its project, so you can tell it apart under Connected via MCPfree
credits.getPlan, AI credits, free posts left this month and the X allowance meterfree
voice.writeWrite a post or a reply in your trained voice (Persona), with safety warnings1 AI credit
media.upload_linkA signed, single-use upload URL for a file on your disk, good for 15 minutes. The assistant curls the file to it, or hands you the link to drop the file on; either way the id comes back to attachfree
media.uploadUpload a picture or video you gave the assistant: a picture up to 5 MB in one call, an MP4 or MOV up to 100 MB in parts of 5 MB. Scripts can POST to /mcp/media instead; both return an id to attachfree
post.previewCharacter fit per network, the plan check and X allowance meter, link and bait warnings, TikTok readinessfree
post.scheduleQueue a post, or a thread of 2 to 25 tweets sent as one item, for a time you choose. reply_to puts it under one of your own X postsat send, 1 per network, 1 per tweet
post.publishPublish now to the chosen networks. Needs an idempotency key, so a retry never double-posts1 post credit per network 13 for an X post with a link
post.queueWhat is queued, and whenfree
post.statusOutcome of a post: queued, published or failed, per networkfree
post.cancelCancel a queued post before it sendsfree
post.updateChange the text, time or networks of a queued post, with the Studio's own checksfree
post.duplicateCopy any post into a new draft: same text, networks and mediafree
media.listYour stored pictures and videos, with the ids to attachfree
analytics.getPublished posts with stored impressions, views, likes, replies and reposts, read daily from every network that reports them, with totals per networkfree
queue.importBring a queue over from Postiz, Buffer, Metricool or a spreadsheet: a dry run with every row and its warnings, then confirmfree
radar.findTrend Radar: rising posts in your lane worth replying to right now3 AI credits, first 5 free, 15-min cache
feeds.listThe RSS, Atom, YouTube or podcast feeds you follow, what each last picked up and any errorfree
feeds.testFetch a feed now and show its last 3 items as they would post on each network, nothing savedfree
feeds.addFollow a feed: new items become drafts for your approval, checked every hour. Posting without approval is off unless you ask for itfree, Pro and Studio
feeds.removeStop following a feed; drafts it already made stay in the trayfree

Same rules as the web

Privacy

The server only acts on your own account, with your key. It never reads your assistant's conversation; it sees only the arguments of each tool call. Media passed by URL is fetched once, checked, and stored like an upload. Anything it schedules or publishes appears in your Studio Activity like any other post, and every call is kept in an audit log. Revoke any assistant from Dashboard, AI Assistants, Connected via MCP; regenerating your API key under Account signs every assistant out.

Connect a network

Claude, ChatGPT, Meta and the network logos are trademarks of their respective owners, shown only to indicate compatibility.