Connect your agent
Add Sendoff's MCP server to Claude Code, Codex, claude.ai or Claude Desktop.
Sendoff’s MCP server is at /mcp on your hostname, like https://news.example.com/mcp. Claude Code and Codex send the MCP token from setup with every request. claude.ai and Claude Desktop sign in with OAuth instead, and you approve each connection with the same token.
Claude Code
claude mcp add --scope user --transport http sendoff https://news.example.com/mcp \
--header "Authorization: Bearer <your MCP token>"
--scope user makes Sendoff available wherever you start Claude Code. Without it, Claude Code only connects Sendoff in the folder you ran the command from. Restart Claude Code, then check /mcp lists sendoff as connected.
Codex
Add a custom MCP server:
- Type: Streamable HTTP
- URL:
https://news.example.com/mcp - Headers:
Authorizationwith the valueBearer <your MCP token>
Leave Bearer token env var empty: it takes the name of an environment variable, not the token itself.
claude.ai and Claude Desktop
- Open Settings › Connectors and choose Add custom connector.
- Enter
https://news.example.com/mcpas the URL. - When Claude sends you to Sendoff to sign in, paste your MCP token.
- Check the app’s name on the consent page and choose Allow.
Sendoff asks for consent on every new connection, so only you can connect an app. The sign-in lasts 15 minutes; the connection itself stays signed in and refreshes on its own.
Check it works
Ask your agent:
What’s the state of my Sendoff setup?
It should call get_settings and doctor and tell you what’s set up. The agent also gets Sendoff’s instructions when it connects: how drafting works, what Markdown is supported, and that it must never send without your explicit go-ahead.
Keep the token safe
The MCP token can do anything an agent can: edit drafts, change settings, manage subscribers and send to your list. Agents are told to send only when you say so, but the token itself doesn’t check. Treat it like a password.
To replace it, run bun run setup again and choose create a new one when it asks about the MCP token. The old token stops working as soon as the new one is deployed, so update Claude Code and Codex afterwards. Existing claude.ai and Claude Desktop connections keep working; the token is only used to sign in.