Your AI assistant, now publishes.

Hand your CrossPoster workspace to Claude Desktop, Cursor, or ChatGPT. They get a toolbelt — drafts, publishing, audits, personas, autonomous scheduling. You get one OAuth consent screen and zero copy-paste between tabs.

CrossPoster speaks Model Context Protocol (MCP) — the open standard every modern AI assistant supports.

One-click install

Already have Claude Desktop or Cursor installed? Use the buttons below. Otherwise jump to the copy-paste configs further down.

What you can do

Three concrete examples. Same OAuth-scoped access for all three.

Schedule a LinkedIn post for tomorrow morning

Draft a LinkedIn post about our Q3 launch — focus on the new agent features — and schedule it for tomorrow at 9am London time.

Creates a draft, generates a caption tuned for LinkedIn voice, suggests publish time, schedules. Tools: create_draft → generate_caption → suggest_publish_time → schedule_post.

Generate a week of Instagram content from a single brief

Plan 5 Instagram posts for next week. Theme is 'behind the scenes at a startup'. Generate the images too. I'll review before anything ships.

Creates a calendar, generates captions + images per day, presents each draft for review. Nothing publishes until you explicitly approve. Tools: create_content_calendar → generate_image (×5).

Switch personas mid-conversation

Switch to my 'Founder thought leadership' persona, then audit my latest LinkedIn draft and tell me if it actually sounds like a founder, not like a marketer.

Switches active persona for the session, then runs a content audit scoring the draft across 7 dimensions. Tools: switch_persona → run_content_audit.

Install via CLI

The CLI detects Claude Desktop + Cursor on disk and writes the CrossPoster MCP entry — no manual JSON paste. Existing entries are preserved (merged, not clobbered).

npx -y @crossposter/mcp-server init

Restart your MCP client after install. The OAuth consent flow runs the first time the client connects — pick the scopes you want to grant.

Claude Desktop config

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows).

{
  "mcpServers": {
    "crossposter": {
      "url": "https://app.crossposter.tech/api/mcp",
      "auth": {
        "type": "oauth2",
        "authorization_endpoint": "https://app.crossposter.tech/api/auth/oauth2/authorize",
        "token_endpoint": "https://app.crossposter.tech/api/auth/oauth2/token",
        "scopes": [
          "tools.read",
          "tools.drafts.write",
          "tools.publish"
        ]
      }
    }
  }
}

Cursor config (manual)

{
  "mcp": {
    "servers": {
      "crossposter": {
        "url": "https://app.crossposter.tech/api/mcp",
        "oauth": {
          "authorize_url": "https://app.crossposter.tech/api/auth/oauth2/authorize",
          "token_url": "https://app.crossposter.tech/api/auth/oauth2/token",
          "scopes": "tools.read tools.drafts.write tools.publish"
        }
      }
    }
  }
}

Available scopes

Each scope grants a fixed capability cluster. You approve the bundle once on the consent screen; revoke individual tokens anytime in Integrations.

ScopeWhat it grants
tools.readRead drafts, posts, platforms; recall memory.
tools.drafts.writeCreate, edit, transform drafts.
tools.content.generateGenerate new content, improve captions.
tools.media.generateGenerate AI images, videos, edits.
tools.publishPublish or schedule posts.
tools.auditScore content; run compliance checks.
tools.memory.writeSave / delete / clear memories.
tools.workflowsCreate calendars, request team approval.
tools.personaSwitch + configure personas.
tools.autonomousConfigure autonomous publishing thresholds.

How OAuth works

  1. You configure CrossPoster in Claude Desktop / Cursor (button above, CLI, or paste-JSON).
  2. On first connect, the client opens a browser tab to app.crossposter.tech.
  3. You sign in (if you weren't already) and approve the scopes the client requested.
  4. The client receives an access token via PKCE + RFC 7591 dynamic registration. No keys to manage.
  5. You revoke or rotate any time at /settings/integrations.

Already using an API key?

Legacy cp_live_* keys keep working — no breaking changes. Add them to your MCP client as x-api-key headers. OAuth is the recommended new path; API keys remain available.