# MCP server

> The social media MCP server. 21 tools over one endpoint.

Canonical page: https://www.socialfaktory.com/agents/mcp-server

A Streamable HTTP MCP server that reads your brands and channels, prices and generates video and text, takes your own uploads, schedules and sends posts, and reads back how they did.

- **21** Tools
- **3** Scopes

## Point your client at the endpoint

Mint a personal access token first. The secret is shown once, and it works on this endpoint only.

Endpoint: `POST https://www.socialfaktory.com/mcp`

### Any Streamable HTTP client

```http
POST https://www.socialfaktory.com/mcp
Authorization: Bearer sfp_…
Content-Type: application/json
Accept: application/json, text/event-stream
MCP-Protocol-Version: 2025-06-18

{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }
```


### Claude Code

```bash
claude mcp add -s user --transport http socialfaktory https://www.socialfaktory.com/mcp \
  --header "Authorization: Bearer sfp_…"
```


### Codex CLI

```bash
export SOCIALFAKTORY_TOKEN=sfp_…
codex mcp add socialfaktory --url https://www.socialfaktory.com/mcp --bearer-token-env-var SOCIALFAKTORY_TOKEN
```


### OpenClaw CLI

```bash
openclaw mcp set socialfaktory '{"url":"https://www.socialfaktory.com/mcp","transport":"streamable-http","headers":{"Authorization":"Bearer sfp_…"}}'
```


## What the agent can do

- `list_brands` (Read)
- `list_channels` (Read)
- `get_channel_requirements` (Read)
- `list_formats` (Read)
- `get_generation` (Read)
- `list_generations` (Read)
- `get_text_generation` (Read)
- `quote_generation` (Read)
- `create_generation` (Generate)
- `generate_text` (Generate)
- `create_upload` (Generate)
- `complete_upload` (Generate)
- `get_upload` (Read)
- `list_media` (Read)
- `create_posts` (Publish)
- `send_post` (Publish)
- `list_posts` (Read)
- `delete_post` (Publish)
- `check_reference` (Read)
- `get_wallet` (Read)
- `list_actors` (Read)


## How permissions work

- Every token can read. Add generate for anything that spends credits, and publish for creating, scheduling, sending and deleting posts.
- Pin a token to one brand and it sees only that brand, with its channels, generations, posts and text. The credit wallet, uploads, actors and products stay shared across the account.
- Set a monthly credit cap and the token starts no paid call once the month's spend reaches it.
- Every call that spends or publishes carries an idempotency key. A replay inside 24 hours returns the first result instead of doing the work twice.
- 120 calls a minute per token, and 300 requests every 5 minutes per address.

## What it won't do

- Clone a video from a link. That one runs in the app only.
- Generate still images or carousels. Neither is available through an agent yet.
- Connect a social channel. Connecting one is a browser sign-in, so it stays in the app.
- Start a paid call that would pass the cap you set on the token, or change your plan.

## A typical run

1. **Mint the token**: Pick its scopes, pin it to a brand, set a monthly cap. The secret is shown once.
2. **Ask for a price**: quote_generation prices a video for free. It's an optional check, and a render runs without one.
3. **Generate**: create_generation makes the video and charges its price. generate_text reserves a few credits and settles what the write used. Both hand back an id you read the result from.
4. **Schedule it**: create_posts composes one post per channel, and send_post puts it on its channel now or at its time.

## Questions

### What transport does the server use?

Streamable HTTP on POST /mcp, protocol version 2025-06-18. A GET answers 405.

### Is there a session to keep alive?

No. The bearer token is the session, so every call carries the Authorization header and nothing else.

### Which tools does the server expose?

Five groups, reading what you have, making something new, reading results, bringing your own file, and publishing. Every tool names the scope it needs.

### Is it safe to retry a call?

Yes. Everything that spends or publishes takes an idempotency key, and a replay inside 24 hours returns the first result marked as a replay.

### What are the rate limits?

120 calls a minute per token, and 300 requests every 5 minutes per address.

### Does it support OAuth?

Yes. Claude Desktop, claude.ai, ChatGPT and Gemini add the endpoint as a custom connector and sign in through a consent screen, with no token to paste. Clients that take a bearer token still work with one you mint yourself.

## More for developers

- For AI agents: https://www.socialfaktory.com/agents.md
- Claude: https://www.socialfaktory.com/agents/claude.md
- Codex: https://www.socialfaktory.com/agents/codex.md
- OpenClaw: https://www.socialfaktory.com/agents/openclaw.md
- Meta Muse: https://www.socialfaktory.com/agents/muse.md
- Read the MCP reference: https://www.socialfaktory.com/docs/mcp.md
- AI assistant: https://www.socialfaktory.com/features/ai-assistant.md
