# MCP server

> Fuxux's hosted MCP server: the endpoint, signing in or using an API key, client setup, the tools and the limits.
>
> For the complete documentation index, see [llms.txt](https://www.fuxux.com/docs/llms.txt). HTML version: https://www.fuxux.com/docs/mcp

Fuxux runs a hosted MCP server over Streamable HTTP. Connect any MCP client and your agent can list your accounts and posts, and draft, schedule and publish to 14 networks. Full client-by-client setup is on the [MCP setup guide](https://www.fuxux.com/mcp/docs).

> Using Cursor, Claude Code or another coding assistant with the Context7 MCP server? These docs are indexed there: add `use context7` to your prompt, or ask for the library `/llmstxt/fuxux_llms_txt` ([Fuxux on Context7](https://context7.com/llmstxt/fuxux_llms_txt)). The API reference is indexed too, as [Fuxux API](https://context7.com/openapi/fuxux_openapi_json).

## Endpoint

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

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

## Authentication

### Sign in (OAuth)

Add the endpoint with no header. The client opens Fuxux in the browser, you sign in and choose **Allow access**. Works on any plan, including Free. For client developers: OAuth 2.1 with PKCE, metadata at `/.well-known/oauth-authorization-server`, Client ID Metadata Documents and dynamic client registration supported, access tokens last an hour and are refreshed.

### API key

For clients without sign-in (scripts, some agents), send a key on every request. API keys need a paid plan with the API add-on ($5/month). Keys start with `fx_live_` and are created on the API keys page.

```
Authorization: Bearer fx_live_your_key_here
```

Clients that can't add the `Bearer` prefix can send `x-api-key: fx_live_…` instead.

## Quick setup

Claude Code, signing in:

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

Cursor (`~/.cursor/mcp.json`), with a key in the `FUXUX_API_KEY` environment variable:

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

## Tools

| Tool | What it does |
| --- | --- |
| `whoami` | Checks the connection and returns 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 that need attention. |
| `list_posts` | The queue, filtered by `month`, `status` (scheduled, published, draft, failed), with `limit` (1–50), `offset` and `order`. |
| `create_post` | Publish now, schedule with `scheduled_at`, or save a draft with `draft: true`. `targets` picks accounts; captions can differ per platform. |
| `get_post` | One post with its per-platform versions and results. |
| `update_post` | Reschedule, edit captions or replace media on a draft or scheduled post. |
| `delete_post` | Deletes a post from Fuxux (not from the network if already published). |

Platform ids: `twitter`, `instagram`, `linkedin`, `facebook`, `tiktok`, `youtube`, `bluesky`, `threads`, `pinterest`, `discord`, `kick`, `twitch`, `telegram`, `slack`.

## Limits

- 120 requests a minute per API key, and 300 a minute per account across all 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 with `get_post` at most once a minute.
- When a network rule blocks a post (for example, Instagram needs an image or video), the tool returns the reason as an error.
