Set up the MCP server
Connect Claude, ChatGPT, Cursor and other AI assistants to FeedHorizon and let them plan, write and schedule posts for you.
Overview
FeedHorizon runs a Model Context Protocol server. An AI assistant that supports MCP can use it to see your profiles and accounts, check posts against every platform's rules, schedule them, fill your queue and look up these docs.
- URL:
https://feedhorizon.com/mcp(streamable HTTP) - Sign-in: OAuth (the assistant opens a FeedHorizon sign-in page) or an API key in the
Authorizationheader - Same rules as the API: every check, limit and permission of the REST API applies, so the assistant cannot do anything your account could not do there
Connect Claude
- In Claude, open Settings → Connectors and click Add custom connector.
- Enter a name, for example
FeedHorizon, and the URLhttps://feedhorizon.com/mcp. - If Claude shows OAuth settings, keep Use Claude's published identity (the default). FeedHorizon also supports Register automatically.
- Click Connect. A FeedHorizon page opens: sign in if needed.
- Check the organization and the permissions on the consent page, then click Allow.
Claude Desktop, Claude Code and the Claude mobile apps use the same connector once you have added it on claude.ai. In Claude Code you can also add it from the terminal:
claude mcp add --transport http feedhorizon https://feedhorizon.com/mcpThen run /mcp in Claude Code and pick feedhorizon to sign in.
Connect ChatGPT
- In ChatGPT, open Settings → Apps & Connectors. Custom connectors need Developer mode, which you turn on under Advanced settings.
- Click Create, enter the URL
https://feedhorizon.com/mcpand choose OAuth as authentication. - Sign in to FeedHorizon and click Allow.
Connect with an API key
Clients that cannot do OAuth, and your own scripts, can send an API key instead. Create one under API & Apps in the dashboard. A read-only key only gets the reading tools to work; the writing ones answer with an error.
For clients configured with a JSON file (Cursor, Windsurf, VS Code and others):
{
"mcpServers": {
"feedhorizon": {
"url": "https://feedhorizon.com/mcp",
"headers": { "Authorization": "Bearer fh_your_api_key" }
}
}
}In Claude Code:
claude mcp add --transport http feedhorizon https://feedhorizon.com/mcp \
--header "Authorization: Bearer fh_your_api_key"Keep the key out of shared files and repositories. Anyone with the key has its access.
What the assistant can access
On the consent page you choose the organization the assistant works in. It sees the profiles you can see there: if your role limits you to some profiles, the assistant is limited the same way.
| Permission | What it allows |
|---|---|
Read (mcp:read) | See profiles, connected accounts, posts, queues and connect links |
Write (mcp:write) | Create, change, schedule, publish and delete posts; change queue slots; upload media; create connect links |
The assistant cannot connect social accounts on its own. It can create a connect link that you or your client open in a browser.
Disconnect an app
Open API & Apps in the dashboard. Under Connected apps you see every assistant connected to the organization, with its permissions and when it was last active. Click disconnect to remove its access: it stops working on its next request and has to be connected again. Owners and admins see and can disconnect the apps of all members.
To stop an API key, delete it on the same page.
Tools
The server has tools that read, such as get_context, list_posts and validate_post, and tools that change data, such as create_post, set_queue_slots and create_connect_link. Tool reference lists every tool with its parameters and the scope it needs.
publish_post_now, retry_post and delete_post act in public or for good. They are marked as destructive, so assistants like Claude ask you before running them. Posts that are already live stay on the platform when you delete them in FeedHorizon.
Times and time zones
Each profile has a time zone. The assistant gives times as a date and a time in that zone (for example 2026-11-12 at 09:00 for a profile in Europe/Berlin), and FeedHorizon converts them. get_context returns each profile's current local time, so "tomorrow at 9" means the profile's tomorrow, not the server's.
Errors and limits
Errors come back to the assistant as JSON with a code, a message and a hint on how to fix it, the same codes as the REST API. When an id is wrong, the error lists the valid ones, so the assistant can correct itself.
Every tool call counts toward your plan's rate limit, like an API request.
Example prompts
- "What's scheduled for next week on the Acme profile?"
- "Write three LinkedIn posts about our product launch and put them in the queue."
- "Schedule this text on Instagram and LinkedIn for Thursday at 10:00, with the image at https://example.com/launch.png."
- "Why did yesterday's post fail on Instagram? Retry it if the account is connected again."
- "Set the queue of my profile to weekdays at 9:00 and 15:00."