> ## Documentation Index
> Fetch the complete documentation index at: https://seenpaid.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP server

> Connect Claude, ChatGPT, Hermes, Cursor or any MCP client to seenpaid in one step.

seenpaid exposes a **streamable-HTTP [MCP](https://modelcontextprotocol.io) server**. Point any MCP client at the endpoint, authenticate with your API key as a Bearer token, and your agent can schedule posts, check your channels and read results directly — the same 50 tools the dashboard is built on.

## Endpoint

```
POST https://api.seenpaid.com/mcp
Authorization: Bearer <YOUR_API_KEY>
```

<Info>
  The endpoint is **stateless**. Each request authenticates on its own, spins up a server scoped to the organization behind your key, handles the JSON-RPC call, and tears everything down when the response closes. There is no session to keep alive and no server-side state between calls. The exact endpoint URL is also shown in your dashboard under **Settings → AI agents & API** when you create a key.
</Info>

<Warning>
  You need a seenpaid **API key** first. Create one in [API keys](/agents/api-keys). Requests without a valid key return `401 Unauthorized`.
</Warning>

## Add it to your client

<Tabs>
  <Tab title="Claude Code">
    ```bash theme={null}
    claude mcp add --transport http seenpaid https://api.seenpaid.com/mcp \
      --header "Authorization: Bearer YOUR_API_KEY"
    ```
  </Tab>

  <Tab title="Claude Desktop / Cursor (JSON)">
    Add seenpaid to your MCP config (`claude_desktop_config.json`, or `~/.cursor/mcp.json` for Cursor):

    ```json theme={null}
    {
      "mcpServers": {
        "seenpaid": {
          "type": "http",
          "url": "https://api.seenpaid.com/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_API_KEY"
          }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Hermes (YAML)">
    [Hermes](https://github.com/NousResearch/hermes) speaks MCP natively. Add seenpaid to `~/.hermes/config.yaml` and it can post and read results from any chat (Telegram, Discord, Slack…):

    ```yaml theme={null}
    mcp_servers:
      seenpaid:
        url: "https://api.seenpaid.com/mcp"
        headers:
          Authorization: "Bearer YOUR_API_KEY"
    ```

    Restart Hermes, then message it — *"post my launch thread everywhere at 9am."* Prefer a browser consent flow? Use `auth: oauth` instead of the `headers` block.
  </Tab>

  <Tab title="Raw JSON-RPC (curl)">
    List every available tool:

    ```bash theme={null}
    curl -X POST https://api.seenpaid.com/mcp \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
    ```

    Call a tool:

    ```bash theme={null}
    curl -X POST https://api.seenpaid.com/mcp \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
           "params":{"name":"summarize_performance","arguments":{"days":7}}}'
    ```
  </Tab>
</Tabs>

<Note>
  Because the server is stateless streamable-HTTP, only `POST` is meaningful. `GET` (SSE) and `DELETE` (session teardown) return `405 Method not allowed` — clients that expect a stateful session simply don't open one.
</Note>

## Try it

Once connected, ask your agent something like:

> "Post 'Launch is live — 20% off today: mystore.com' to X and LinkedIn, then tell me if anything is scheduled for this week."

The agent calls `schedule_post` to publish, then `list_posts` — no dashboard required. With [revenue attribution](/guides/turn-on-revenue-attribution) on it can also answer *"which of my posts made the most money this month?"* through `get_top_posts`; with it off, the money tools reply that attribution is off. See the [prompt library](/agents/prompts) for more, grouped by what they do.

## Errors

<AccordionGroup>
  <Accordion title="401 Unauthorized">
    The Bearer token is missing, malformed, or revoked. Confirm the header is `Authorization: Bearer sp_...` and that the key hasn't been revoked in the dashboard.
  </Accordion>

  <Accordion title="A tool returns 'No active accounts' or 'No accounts connected'">
    The org has no connected, active social account to publish to. Call `list_accounts` / `get_account_health`, then use `get_connect_url` to hand the user a link. OAuth needs a human — the agent can't complete it.
  </Accordion>

  <Accordion title="A money tool says 'Revenue attribution is off for this workspace'">
    Expected with attribution off (the default). Turn it on under **Settings → Attribution**; scheduling tools are unaffected either way. See [Turn on revenue attribution](/guides/turn-on-revenue-attribution).
  </Accordion>

  <Accordion title="A publishing tool says it has 'no user to attribute the post to'">
    The user who created the key was removed and the org has no owner. Create a fresh key from **Settings → AI agents & API** and use that.
  </Accordion>
</AccordionGroup>

<CardGroup cols={2}>
  <Card title="Tools reference" icon="wrench" href="/agents/tools-reference">
    All 50 tools, grouped, with inputs and outputs.
  </Card>

  <Card title="Prompt library" icon="message-lines" href="/agents/prompts">
    Copy-paste prompts for publishing, results, automation and money.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.