Skip to content

backhandvolley/crossposter

v1.0.0

Draft, preview, schedule and publish posts to X, LinkedIn, Bluesky and 5 more social networks.

CrossPoster MCP

Draft, preview, score, schedule and publish social posts from Claude, ChatGPT, Cursor, Gemini CLI, Perplexity, Mistral Le Chat, VS Code, Cline, Windsurf, Raycast or any other MCP client.

  • Server URL: https://mcp.crossposter.tech/mcp (Streamable HTTP)
  • Sign-in: OAuth 2.1 with dynamic client registration. Your client opens a browser window on first use, you approve the permissions, and nothing is pasted anywhere. Clients without OAuth can send a CrossPoster API key as Authorization: Bearer <key> instead (Settings → API keys in the app).
  • Account: a CrossPoster account is required: https://app.crossposter.tech. Social accounts are connected in CrossPoster, never from chat.

This repository holds what directories and clients read: the Claude plugin manifest, the Agent Plugins package that ChatGPT and Cursor use, the Gemini CLI extension, and the install steps below. The server itself is hosted by CrossPoster; nothing here runs on your machine.

CrossPoster MCP connector

Connect

Claude Code

claude mcp add --transport http crossposter https://mcp.crossposter.tech/mcp

Or install the plugin from Anthropic's directory with /plugin once it is listed.

Claude.ai and Claude Desktop

Settings → Connectors → Add custom connector, paste the server URL, then sign in when asked.

ChatGPT

Settings → Apps & Connectors → Create (developer mode), paste the server URL, then sign in. When the CrossPoster app is listed in the directory, add it from there instead.

Cursor

Add to Cursor, or put this in ~/.cursor/mcp.json:

{
  "mcpServers": {
    "crossposter": {
      "url": "https://mcp.crossposter.tech/mcp"
    }
  }
}

Cursor discovers the OAuth endpoints from the URL.

VS Code

code --add-mcp '{"name":"crossposter","type":"http","url":"https://mcp.crossposter.tech/mcp"}'

Gemini CLI

gemini extensions install https://github.com/backhandvolley/crossposter-mcp

Or add the server to ~/.gemini/settings.json under mcpServers as { "crossposter": { "httpUrl": "https://mcp.crossposter.tech/mcp" } }. Gemini CLI discovers OAuth and registers itself.

Perplexity

Plugins → Add custom → Add MCP connector → Remote. Name it CrossPoster, paste the server URL, confirm the acknowledgement and select Add, then select the connector card to sign in. In an organisation, the same steps live under Organization settings → Connectors.

Mistral Le Chat

Settings → Connectors → Add connector → custom MCP connector, paste the server URL, then sign in.

Cline

Settings → MCP Servers → Remote Servers: name crossposter, URL https://mcp.crossposter.tech/mcp.

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "crossposter": {
      "serverUrl": "https://mcp.crossposter.tech/mcp"
    }
  }
}

Any other client

Paste the server URL where the client takes a remote MCP server. A client that only speaks stdio can bridge with npx -y mcp-remote https://mcp.crossposter.tech/mcp.

Permissions

Each permission is a separate OAuth scope. You approve them on the consent screen, and a client gets only what it asked for.

ScopePermissionWhat it allows
tools.readRead your contentSee your drafts, connected platforms, their analytics and your past posts, and score or suggest rewrites of a post's wording. Nothing is changed.
tools.drafts.writeCreate draftsCreate new drafts, and start proposed caption edits that leave the draft itself unchanged.
tools.content.generateGenerate contentWrite new social-media copy from a prompt, or improve, shorten or rephrase text you supply.
tools.publishPublish postsPublish drafts to your connected platforms, or schedule them to publish later.

Tools (21)

ToolDoesAccess
allocate_draft_idAllocate draft IDread-only
check_draft_jobCheck draft jobread-only
connect_platformConnect platformread-only
create_draftCreate draftwrites a draft
create_empty_draftCreate empty draftwrites a draft
generate_contentGenerate contentread-only
get_platform_analyticsPlatform analyticsread-only
improve_contentImprove contentread-only
improve_wordingImprove a post's wordingread-only
list_draftsList draftsread-only
list_platformsList platformsread-only
list_workspacesList workspacesread-only
preview_draft_imagePreview draft imageread-only
preview_platformPreview platformread-only
preview_postPreview postread-only
publish_postPublish postpublishes, asks for confirmation first
read_draftRead draftread-only
schedule_postSchedule postwrites a draft
score_x_wordingScore an X post's wordingread-only
search_past_contentSearch past contentread-only
whoamiWho am Iread-only

publish_post returns a confirmation token first and publishes only on a second call that carries it, so nothing reaches a social network without an explicit confirmation step.

Example prompts

  • "List my recent CrossPoster drafts and show how the newest will look."
  • "Write a short LinkedIn post announcing our new feature and save it as a draft."
  • "Score the wording of this X post and suggest a better version."
  • "How did my LinkedIn posts do this month?"

Support

Published by Blinov Tech Ltd. The manifests in this repository are MIT-licensed; the CrossPoster service is governed by its own terms.