NEW: Insights are liveSee plans
Back to MCP overview
Model Context Protocol

MCP setup

Fuxux runs a hosted MCP server over Streamable HTTP. Connect Claude, Cursor, Manus or any MCP client, by signing in to Fuxux or with an API key, and your agent can list your accounts, draft, schedule and publish posts to 12 platforms, and check the queue.

Before you start

  • The social accounts you want the agent to use, connected in Fuxux. The agent can only post to accounts you've connected.
  • To sign in (clients that support MCP sign-in, such as Claude): a Fuxux account on any plan, including Free. Your plan's limits apply as they do in the web app.
  • To use an API key (Cursor, Manus, scripts): a paid plan with the API add-on ($5/month, from Billing), and a key from API keys. Keys start with fx_live_, are shown once, and last until you revoke them. Use a separate key per client: rotating a shared key disconnects every client using it.

Endpoint

https://www.fuxux.com/api/mcp

Stateless Streamable HTTP: send JSON-RPC with POST. There is no SSE stream, so GET returns 405.

Authentication

There are two ways to connect. Use whichever your client supports.

Sign in (no key)

Add the endpoint above with no header. The client opens Fuxux in your browser, you sign in and choose Allow access, and it connects. Nothing is pasted into the chat.

  • The app can use the tools on this page and nothing else. It never sees your password, and it can't change your plan, billing or connected accounts.
  • Remove an app at any time in Settings, under Connected apps. It stops working straight away.
  • For client developers: standard MCP authorization (OAuth 2.1 with PKCE). Server metadata is at /.well-known/oauth-authorization-server; Client ID Metadata Documents and dynamic client registration are both supported; access tokens last an hour and are refreshed.

API key

Send your key on every request:

Authorization: Bearer fx_live_your_key_here

Clients that can set a header but not add the Bearer prefix can send x-api-key: fx_live_… instead. Keep keys in environment variables or your client's secret store, never in shared config files.

Claude (web, desktop and mobile)

  1. In Claude, open Settings, then Connectors, and add a custom connector.
  2. Name it Fuxux and paste the endpoint: https://www.fuxux.com/api/mcp
  3. Choose Connect, sign in to Fuxux if asked, and choose Allow access.

ChatGPT

Custom MCP servers need a paid ChatGPT plan, on the web.

  1. In ChatGPT, open Plugins, choose Add, then Create custom MCP server.
  2. Name it Fuxux, paste the server URL https://www.fuxux.com/api/mcp and leave Authentication on OAuth.
  3. Tick the acknowledgement, create it, choose Continue to Fuxux, sign in if asked, and choose Allow access.
  4. Open the Fuxux plugin and choose Try in chat, or mention @Fuxux in a message.

Claude Code

To sign in, add the server without a header:

claude mcp add --transport http fuxux https://www.fuxux.com/api/mcp

Then run /mcp inside Claude Code, pick fuxux and authenticate in the browser.

Or, with an API key, add the server from your terminal:

claude mcp add --transport http fuxux https://www.fuxux.com/api/mcp --header "Authorization: Bearer $FUXUX_API_KEY"

Or share it with a project in .mcp.json at the repo root (Claude Code expands ${VAR} from your environment):

{
  "mcpServers": {
    "fuxux": {
      "type": "http",
      "url": "https://www.fuxux.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${FUXUX_API_KEY}"
      }
    }
  }
}

Cursor (one-click)

Set an environment variable to your Fuxux API key:

FUXUX_API_KEY=fx_live_your_key_here

Cursor expands ${env:NAME} in mcp.json (see Cursor MCP docs). Then add the server:

Add Fuxux to Cursor

Or add it by hand to ~/.cursor/mcp.json or a project's .cursor/mcp.json:

{
  "mcpServers": {
    "fuxux": {
      "url": "https://www.fuxux.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:FUXUX_API_KEY}"
      }
    }
  }
}

Claude Desktop and other stdio-only clients

Use the mcp-remote bridge (needs Node.js) in claude_desktop_config.json. Keeping the header in env avoids a known problem with spaces in arguments on Windows:

{
  "mcpServers": {
    "fuxux": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://www.fuxux.com/api/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer fx_live_your_key_here"
      }
    }
  }
}

Manus and Cue

Add Fuxux as a Custom MCP connector with the endpoint above and an Authorization header. Step-by-step values and a ready-made connector note are in the Cue & Manus guide.

Tools

  • whoami — check the connection works and read your email and plan
  • list_connected_accounts — your connected social accounts, with the ids create_post targets use
  • get_dashboard — stats, upcoming posts and accounts needing attention
  • list_posts — the queue: optional month, status (scheduled, published, draft, failed), limit (1–50, default 20), offset and order (upcoming, newest, recently_published, recently_updated)
  • create_post — publish now, schedule with scheduled_at, or save a draft with draft: true. Pass targets to pick accounts; otherwise each platform posts to its first connected account. Reddit isn't available here: Reddit posts are created in the Fuxux web app
  • get_post — one post with its per-platform variants (including drafts)
  • update_post — reschedule, edit captions or replace media on a draft or scheduled post
  • delete_post — delete a post from Fuxux (doesn't remove anything already published on the platform)

Platform ids for captions and targets:

twitterinstagramlinkedinfacebooktiktokyoutubeblueskythreadspinterestdiscordkicktwitch

Billing, API-key management, webhooks, teams and account settings aren't exposed as tools. The REST equivalents of the tools are in the API reference.

Limits and good agent behavior

  • 120 requests per minute per key and 300 per minute per account, across all your keys and signed-in apps. Over the limit, tools say how many seconds to wait.
  • Don't poll. Publishing settles within minutes, so check a post's status with get_post at most once a minute.
  • When a platform rule blocks a post (for example, Instagram needs an image or video), the tool returns the reason as an error the agent can act on.

Troubleshooting

  • "Missing or invalid Authorization" / 401: the key was revoked, rotated or mistyped. Create a new one and check the Bearer prefix and space.
  • 401 after signing in: the app's access expired or was removed in Settings. Connect it again.
  • 403, API access required: the API add-on isn't active on your account. This applies to API keys, not to signing in.
  • "Connect at least one account": no account is connected for a platform in captions.
  • Rate limited: wait the seconds the tool reports, and make sure the agent isn't checking status in a loop.