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)
- In Claude, open Settings, then Connectors, and add a custom connector.
- Name it Fuxux and paste the endpoint:
https://www.fuxux.com/api/mcp - Choose Connect, sign in to Fuxux if asked, and choose Allow access.
ChatGPT
Custom MCP servers need a paid ChatGPT plan, on the web.
- In ChatGPT, open Plugins, choose Add, then Create custom MCP server.
- Name it Fuxux, paste the server URL
https://www.fuxux.com/api/mcpand leave Authentication on OAuth. - Tick the acknowledgement, create it, choose Continue to Fuxux, sign in if asked, and choose Allow access.
- Open the Fuxux plugin and choose Try in chat, or mention
@Fuxuxin 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:
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 planlist_connected_accounts— your connected social accounts, with the idscreate_posttargets useget_dashboard— stats, upcoming posts and accounts needing attentionlist_posts— the queue: optionalmonth,status(scheduled, published, draft, failed),limit(1–50, default 20),offsetandorder(upcoming, newest, recently_published, recently_updated)create_post— publish now, schedule withscheduled_at, or save a draft withdraft: true. Passtargetsto pick accounts; otherwise each platform posts to its first connected account. Reddit isn't available here: Reddit posts are created in the Fuxux web appget_post— one post with its per-platform variants (including drafts)update_post— reschedule, edit captions or replace media on a draft or scheduled postdelete_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_postat 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
Bearerprefix 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.