@fopost/mcp
OfficialManages FoPost social media posts, accounts, workspaces, and AI content generation via MCP.
List posts in a workspace with status filters and pagination, or fetch a post by ID.
Create and schedule posts to account IDs, save drafts, or publish immediately.
Edit existing posts, cancel scheduled posts, or permanently delete posts.
View per-account delivery status for a post.
List connected social accounts and accessible workspaces; check an account’s token and rate-limit health.
Generate or improve captions, rewrite content for target platforms, repurpose a URL into platform-optimized posts, and check AI credit balance.
Can generate dev.to-optimized posts and summaries from a URL or rewrite content for dev.to as a target platform via FoPost.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@fopost/mcp Schedule a LinkedIn post for Monday morning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@fopost/mcp
MCP server for FoPost: manage social media posts, accounts, AI usage, the inbox, contacts, broadcasts, and ads from any MCP-aware client (Claude Desktop, Cursor, ChatGPT desktop, Continue, etc.).
Runs via npx -y @fopost/mcp, no install step. Requires Node 18 or newer.
0.x release. Tool names and arguments may still change between minor versions. Pin an exact version if that matters to you.
Tools
Tool | What it does |
| List posts in a workspace, filter by status |
| Fetch a post by id |
| Create a post for accounts or an account group |
| Update an existing post |
| Cancel a scheduled post |
| Permanently delete a post |
| Per-account delivery status for a post |
| List connected social accounts, optionally by group |
| Check token freshness and rate-limit headroom |
| List workspaces the user can access |
| Set or clear an account's display name |
| List account groups and their members |
| Fetch an account group |
| Create an account group |
| Rename an account group |
| Replace the accounts in a group |
| Delete a group (its accounts stay connected) |
| Mint a one-time code to connect a Telegram chat |
| Check whether a Telegram connect code was used |
| List the bot command menu in a Telegram chat |
| Replace the bot command menu in a Telegram chat |
| Clear the bot command menu in a Telegram chat |
| List the channels a Slack account can post to |
| List members of a Slack workspace, for DMs |
| Show the name and icon a Slack account posts under |
| Set the name and icon a Slack account posts under |
| List the subreddits a Reddit account is in |
| List a subreddit's rules, to read before publishing |
| List a subreddit's post flairs |
| Check a subreddit exists and takes a post |
| Set where posts go when a post names no subreddit |
| AI-generate or improve a caption (1 credit) |
| Rewrite content per target platform (1 credit each) |
| Turn a blog URL into N platform-optimized posts (6 credits) |
| Show current AI credit balance |
| List comments, mentions and DMs with filters |
| List comment threads under your posts, or mentions |
| List DM conversations |
| Count unread inbox items |
| Mark a comment thread or DM conversation read |
| Resolve every unanswered item of one type |
| Reply on the platform, with media or quick replies on a DM |
| Edit your own comment on the platform |
| Set an item to unread, read, resolved or snoozed |
| Hide a comment on the platform |
| Unhide a comment on the platform |
| Delete a comment, or your own reply, on the platform |
| Like a comment or message on the platform |
| Remove your like |
| Repost a post on X, where can_repost is true |
| Undo your repost on X |
| Bookmark a post on X, where can_bookmark is true |
| Remove your bookmark on X |
| Vote up or down, or take the vote back |
| Pin your own comment |
| Unpin your own comment |
| React to a DM, or remove your reaction |
| Send a new DM, or answer a comment privately |
| Show or clear the typing indicator in a DM |
| List drafted replies waiting for approval |
| Approve and send a drafted reply |
| Reject a drafted reply |
| Poll every inbox-capable account now |
| List boosts and ads created through FoPost |
| List ads on connected ad accounts made elsewhere |
| List published posts that can be boosted |
| List ad connections, ad accounts and pages |
| Boost a published post (starts paused, needs |
| Create an ad (starts paused, needs |
| Pause or resume an ad (needs |
| Re-read delivery status and insights |
| End delivery and delete an ad (needs |
| List saved audiences and pixels on an ad account |
| Search locations, interests, behaviors and income brackets |
| List lead forms on connected pages |
| List one page of leads from a lead form |
| Read campaigns, ad sets and ads on an ad account |
| Create a campaign (starts paused, needs |
| Read one campaign |
| Rename, pause or resume a campaign (needs |
| Delete a campaign and its contents (needs |
| Copy a campaign (starts paused, needs |
| Create an ad set (starts paused, needs |
| Read one ad set |
| Change an ad set's status, budget or targeting (needs |
| Delete an ad set and its ads (needs |
| Copy an ad set (starts paused, needs |
| Create an ad inside an ad set (starts paused, needs |
| Read one ad inside an ad set |
| Rename, pause, resume or swap an ad's creative (needs |
| Delete an ad inside an ad set (needs |
| Copy an ad (starts paused, needs |
| Pause or resume up to 50 objects (needs |
| List creatives on an ad account |
| Create an image, video or carousel creative |
| Read one creative |
| Delete a creative |
| Read one saved audience |
| Rename or redescribe a saved audience |
| Delete a saved audience |
| Add customer emails to a custom audience |
| Estimate the reach of a targeting |
| Insights for a campaign, ad set or ad |
| Insights for an ad created through FoPost |
| Read one lead form |
| Archive a lead form |
| List stored leads from subscribed pages |
| List pages subscribed to new leads |
| Subscribe a page to new leads and backfill |
| Unsubscribe a page from new leads |
| The profile on a WhatsApp number and how the platform rates it |
| Update the profile fields the platform allows |
| Message templates with the review status the platform assigned |
| The platform's pre-written templates, for adapting |
| File a template for review, from scratch or a library entry |
| In-chat forms, with their status and validation errors |
| What people submitted through this account's flows |
| Groups this WhatsApp number created, with their invite links |
| WhatsApp account review state and the number's standing |
Tool | What it does |
--------------------------------------- | ---------------------------------------------------------------- |
| List posts in a workspace, filter by status |
| Fetch a post by id |
| Create a post for accounts or an account group, with local files |
| Update an existing post, optionally attaching local files |
| Largest file the account may upload, and the allowed types |
| Cancel a scheduled post |
| Permanently delete a post |
| Per-account delivery status for a post |
| List connected social accounts, optionally by group |
| Check token freshness and rate-limit headroom |
| The numbers only an account's own network reports |
| List workspaces the user can access |
| Set or clear an account's display name |
| List account groups and their members |
| Fetch an account group |
| Create an account group |
| Rename an account group |
| Replace the accounts in a group |
| Delete a group (its accounts stay connected) |
| Mint a one-time code to connect a Telegram chat |
| Check whether a Telegram connect code was used |
| List the bot command menu in a Telegram chat |
| Replace the bot command menu in a Telegram chat |
| Clear the bot command menu in a Telegram chat |
| List the channels a Slack account can post to |
| List members of a Slack workspace, for DMs |
| Show the name and icon a Slack account posts under |
| Set the name and icon a Slack account posts under |
| Read a Meta ice breakers, persistent menu or greeting setting |
| Replace the prompts shown before the first message |
| Replace the always-visible Messenger menu |
| Replace the Messenger greeting |
| Clear one Meta messaging-profile setting |
| Check what the network delivers to the FoPost webhook |
| Re-subscribe an account whose webhook lapsed |
| List the channels a Discord bot account can post to |
| Move a Discord account to another channel in the same server |
| Show the nickname and avatar the bot wears in the server |
| Set the nickname and avatar the bot wears in the server |
| List the pinned messages in the account's channel |
| Delete, pin, unpin, crosspost a message or start a thread on it |
| Send one direct message to a member of the server |
| List the server's scheduled events |
| Add a scheduled event to the server |
| Change a scheduled event |
| Remove a scheduled event |
| List or search the server's members |
| List the server's roles |
| Add a role to the server |
| Give a member a role, or take one away |
| AI-generate or improve a caption (1 credit) |
| Rewrite content per target platform (1 credit each) |
| Turn a blog URL into N platform-optimized posts (6 credits) |
| Show current AI credit balance |
| List comments, mentions and DMs with filters |
| List comment threads under your posts, or mentions |
| List DM conversations |
| Count unread inbox items |
| Mark a comment thread or DM conversation read |
| Resolve every unanswered item of one type |
| Reply on the platform, with media or quick replies on a DM |
| Edit your own comment on the platform |
| Set an item to unread, read, resolved or snoozed |
| Hide a comment on the platform |
| Unhide a comment on the platform |
| Delete a comment, or your own reply, on the platform |
| Like a comment or message on the platform |
| Remove your like |
| Repost a post on X, where can_repost is true |
| Undo your repost on X |
| Bookmark a post on X, where can_bookmark is true |
| Remove your bookmark on X |
| Pin your own comment |
| Unpin your own comment |
| React to a DM, or remove your reaction |
| Send a new DM, or answer a comment privately |
| Show or clear the typing indicator in a DM |
| Pass a Messenger thread to another Meta app, or take it back |
| List drafted replies waiting for approval |
| Approve and send a drafted reply |
| Reject a drafted reply |
| Poll every inbox-capable account now |
| List the people behind the inbox, most recently active first |
| Read one contact |
| File a person by hand; folds into whoever holds the handle |
| Change a name, note, channels or custom fields |
| Remove a contact; the messages stay in the inbox |
| The inbox threads one contact appears in |
| Import from CSV text |
| The columns this workspace keeps about a contact |
| Add a column |
| Rename a field, change its options, or move it |
| Remove a field and every answer to it |
| Inbox volume and reply time per thread (needs |
| List broadcasts, newest first |
| Read one broadcast |
| Write one without sending it |
| Edit a draft or scheduled broadcast |
| Send it; closed windows are skipped (needs |
| Stop it where it stands (needs |
| Who it reached, who it skipped, and why |
| Remove it; sent messages stay in their conversations |
| List drip sequences |
| Read one sequence and its steps |
| Write one; creating it enrolls nobody |
| Edit the steps, or pause and resume it |
| Put contacts on it, by id or audience (needs |
| Take contacts off it (needs |
| Who is on it and what step they are at |
| Remove it and every enrollment on it |
| List boosts and ads created through FoPost |
| List ads on connected ad accounts made elsewhere |
| List published posts that can be boosted |
| List ad connections, ad accounts and pages |
| List the goals this connection can run right now |
| List product catalogs the connection reaches |
| Create a product catalog (needs |
| List one page of a catalog's products |
| Upsert or delete up to 500 products (needs |
| List the product sets a catalog ad can run from |
| Create a product set (needs |
| List reach-and-frequency predictions on an ad account |
| Search the public ad archive, read live and never stored |
| Read an ad account's change log |
| Boost a published post (starts paused, needs |
| Create an ad (starts paused, needs |
| Pause or resume an ad (needs |
| Re-read delivery status and insights |
| End delivery and delete an ad (needs |
| List saved audiences and pixels on an ad account |
| Search locations, interests, behaviors and income brackets |
| List lead forms on connected pages |
| List one page of leads from a lead form |
| Read campaigns, ad sets and ads on an ad account |
| Create a campaign (starts paused, needs |
| Read one campaign |
| Rename, pause or resume a campaign (needs |
| Delete a campaign and its contents (needs |
| Copy a campaign (starts paused, needs |
| Create an ad set (starts paused, needs |
| Read one ad set |
| Change an ad set's status, budget or targeting (needs |
| Delete an ad set and its ads (needs |
| Copy an ad set (starts paused, needs |
| Create an ad inside an ad set (starts paused, needs |
| Read one ad inside an ad set |
| Rename, pause, resume or swap an ad's creative (needs |
| Delete an ad inside an ad set (needs |
| Copy an ad (starts paused, needs |
| Pause or resume up to 50 objects (needs |
| List creatives on an ad account |
| Create an image, video or carousel creative |
| Read one creative |
| Delete a creative |
| Read one saved audience |
| Rename or redescribe a saved audience |
| Delete a saved audience |
| Add customer emails to a custom audience |
| Estimate the reach of a targeting |
| Insights for a campaign, ad set or ad |
| Insights for an ad created through FoPost |
| Read one lead form |
| Archive a lead form |
| List stored leads from subscribed pages |
| List pages subscribed to new leads |
| Subscribe a page to new leads and backfill |
| Unsubscribe a page from new leads |
| Find the saved passages that answer a question about the brand |
| List knowledge sources and their sync status |
| Save an FAQ, a note, one of your pages, or a text file |
| Edit a source; changing its text re-indexes it |
| Read a source again — a URL source is re-fetched |
| Delete a source and its indexed passages |
| What happened in a workspace, newest first |
| The security audit log: who changed access, and when |
Tool | What it does |
--------------------------------------- | ---------------------------------------------------------------- |
| List posts in a workspace, filter by status |
| Fetch a post by id |
| Create a post for accounts or an account group, with local files |
| Update an existing post, optionally attaching local files |
| Largest file the account may upload, and the allowed types |
| Cancel a scheduled post |
| Permanently delete a post |
| Per-account delivery status for a post |
| List connected social accounts, optionally by group |
| Check token freshness and rate-limit headroom |
| List workspaces the user can access |
| Set or clear an account's display name |
| List account groups and their members |
| Fetch an account group |
| Create an account group |
| Rename an account group |
| Replace the accounts in a group |
| Delete a group (its accounts stay connected) |
| Mint a one-time code to connect a Telegram chat |
| Check whether a Telegram connect code was used |
| List the bot command menu in a Telegram chat |
| Replace the bot command menu in a Telegram chat |
| Clear the bot command menu in a Telegram chat |
| List the channels a Slack account can post to |
| List members of a Slack workspace, for DMs |
| Show the name and icon a Slack account posts under |
| Set the name and icon a Slack account posts under |
| AI-generate or improve a caption (1 credit) |
| Rewrite content per target platform (1 credit each) |
| Turn a blog URL into N platform-optimized posts (6 credits) |
| Show current AI credit balance |
| List comments, mentions and DMs with filters |
| List comment threads under your posts, or mentions |
| List DM conversations |
| Count unread inbox items |
| Mark a comment thread or DM conversation read |
| Resolve every unanswered item of one type |
| Reply on the platform, with media or quick replies on a DM |
| Edit your own comment on the platform |
| Set an item to unread, read, resolved or snoozed |
| Hide a comment on the platform |
| Unhide a comment on the platform |
| Delete a comment, or your own reply, on the platform |
| Like a comment or message on the platform |
| Remove your like |
| Repost a post on X, where can_repost is true |
| Undo your repost on X |
| Bookmark a post on X, where can_bookmark is true |
| Remove your bookmark on X |
| Pin your own comment |
| Unpin your own comment |
| React to a DM, or remove your reaction |
| Send a new DM, or answer a comment privately |
| Show or clear the typing indicator in a DM |
| List drafted replies waiting for approval |
| Approve and send a drafted reply |
| Reject a drafted reply |
| Poll every inbox-capable account now |
| List boosts and ads created through FoPost |
| List ads on connected ad accounts made elsewhere |
| List published posts that can be boosted |
| List ad connections, ad accounts and pages |
| Boost a published post (starts paused, needs |
| Create an ad (starts paused, needs |
| Pause or resume an ad (needs |
| Re-read delivery status and insights |
| End delivery and delete an ad (needs |
| List saved audiences and pixels on an ad account |
| Search locations, interests, behaviors and income brackets |
| List lead forms on connected pages |
| List one page of leads from a lead form |
| Read campaigns, ad sets and ads on an ad account |
| Create a campaign (starts paused, needs |
| Read one campaign |
| Rename, pause or resume a campaign (needs |
| Delete a campaign and its contents (needs |
| Copy a campaign (starts paused, needs |
| Create an ad set (starts paused, needs |
| Read one ad set |
| Change an ad set's status, budget or targeting (needs |
| Delete an ad set and its ads (needs |
| Copy an ad set (starts paused, needs |
| Create an ad inside an ad set (starts paused, needs |
| Read one ad inside an ad set |
| Rename, pause, resume or swap an ad's creative (needs |
| Delete an ad inside an ad set (needs |
| Copy an ad (starts paused, needs |
| Pause or resume up to 50 objects (needs |
| List creatives on an ad account |
| Create an image, video or carousel creative |
| Read one creative |
| Delete a creative |
| Read one saved audience |
| Rename or redescribe a saved audience |
| Delete a saved audience |
| Add customer emails to a custom audience |
| Estimate the reach of a targeting |
| Insights for a campaign, ad set or ad |
| Insights for an ad created through FoPost |
| Read one lead form |
| Archive a lead form |
| List stored leads from subscribed pages |
| List pages subscribed to new leads |
| Subscribe a page to new leads and backfill |
| Unsubscribe a page from new leads |
| Read a Business Profile location |
| Change its name, description, website or phone |
| Read its attributes, or what Google offers |
| Set attributes on the location |
| Read its food menus |
| Replace the whole menu set |
| Read its service list |
| Replace the whole service list |
| List the location's photos |
| Add a photo from the media library |
| Remove a photo |
| List the Book, Order and Reserve buttons |
| Add an action link to the listing |
| Change an action link |
| Remove an action link |
| List the ways it can be verified |
| Start verifying the location |
| Finish it with the PIN Google sent |
| Daily impressions, calls, clicks and search terms |
| List the blogs on a connected WordPress site or Shopify store |
| List the articles already on a blog, drafts included |
| Read one article on a connected site in full |
| Write a new article to a blog on a connected site |
| Change a live article in place, never as a duplicate |
| Remove an article from a connected site |
| List a connected store's products |
| Change a product on a connected store |
| Take a published post down on every network (needs |
| Mint a hosted connect link for one of your end users |
| Poll a hosted connect link for the connected account |
| List webhooks with their events, state and failure count |
| Register an endpoint for workspace events (secret returned once) |
| Change a webhook, rotate its secret, or re-enable it |
| Delete a webhook |
| Send a test |
| Every delivery attempt to a webhook, newest first |
| One delivery attempt, with the payload that was sent |
| Send a delivery again with the identical body |
| List the weekly posting slots of a workspace |
| Add a weekly posting slot |
| Change a posting slot; moved posts come back in |
| Remove a posting slot; moved posts come back in |
| The time a post added to the queue now would get |
| The next free slot occurrences, in order |
| List automations with trigger type, state and run count |
| Read one automation with its graph and steps |
| Every saved version of an automation graph, newest first |
| The graph as it was saved at one version |
| Save an old version's graph as a new version on top |
Related MCP server: social0-mcp
Claude Code plugin
This repo is also a Claude Code plugin. Installing it wires up FoPost's hosted MCP server at https://api.fopost.com/mcp: no API key to copy, no local process. It also adds three skills for the flows people run every week.
claude plugin marketplace add fopost/fopost-mcp
claude plugin install fopost@fopostClaude Code opens your browser to sign in the first time a tool runs. Pick the workspace the assistant works in; the connection stays locked to it.
Skill | Fires when you ask to |
| Fill next week's calendar, draft a batch of posts, top up the queue |
| Triage or clear the inbox, draft replies, find what needs an answer |
| Summarise the week, recap performance, see what failed |
The hosted server serves the same tools as the FoPost Agent, and anything that publishes, schedules or sends waits for your approval.
Prefer to run the server yourself? The stdio package below is the same product, driven by an API key.
Tool | What it does |
| List posts in a workspace, filter by status |
| Fetch a post by id |
| Create a post for accounts or an account group |
| Update an existing post |
| Largest file the account may upload, and the allowed types |
| Cancel a scheduled post |
| Permanently delete a post |
| Per-account delivery status for a post |
| List connected social accounts, optionally by group |
| Check token freshness and rate-limit headroom |
| List workspaces the user can access |
| Set or clear an account's display name |
| List account groups and their members |
| Fetch an account group |
| Create an account group |
| Rename an account group |
| Replace the accounts in a group |
| Delete a group (its accounts stay connected) |
| Mint a one-time code to connect a Telegram chat |
| Check whether a Telegram connect code was used |
| List the bot command menu in a Telegram chat |
| Replace the bot command menu in a Telegram chat |
| Clear the bot command menu in a Telegram chat |
| List the channels a Slack account can post to |
| List members of a Slack workspace, for DMs |
| Show the name and icon a Slack account posts under |
| Set the name and icon a Slack account posts under |
| List the boards a Pinterest account can pin to |
| Create a board on a Pinterest account |
| List a channel's playlists, with its default marked |
| Create a playlist on a YouTube channel |
| Set the playlist new videos join by default |
| List the caption tracks on a published video |
| Upload an SRT or WebVTT track to a published video |
| Read one caption track back as text |
| Show a Bluesky connection's default post languages |
| Set a Bluesky connection's default post languages |
| Read the switches TikTok enforces at publish time |
| Search TikTok's Commercial Music Library |
| Search the places a TikTok post can be tagged with |
| Resolve a share link to one of the account's own videos |
| Search the tracks a Reel can carry |
| Posts left before Instagram refuses the next one |
| List the stories still inside their 24 hours |
| Read the insight set for one live story |
| Find the organizations a LinkedIn post can mention |
| Follow a user from a connected X account |
| Unfollow a user from a connected X account |
| Look up one X post by id |
| Search recent X posts, paged by next_token |
| AI-generate or improve a caption (1 credit) |
| Rewrite content per target platform (1 credit each) |
| Turn a blog URL into N platform-optimized posts (6 credits) |
| Show current AI credit balance |
| List comments, mentions and DMs with filters |
| List comment threads under your posts, or mentions |
| List DM conversations |
| Count unread inbox items |
| Mark a comment thread or DM conversation read |
| Resolve every unanswered item of one type |
| Reply on the platform, with media or quick replies on a DM |
| Edit your own comment on the platform |
| Set an item to unread, read, resolved or snoozed |
| Hide a comment on the platform |
| Unhide a comment on the platform |
| Delete a comment, or your own reply, on the platform |
| Like a comment or message on the platform |
| Remove your like |
| Repost a post on X, where can_repost is true |
| Undo your repost on X |
| Bookmark a post on X, where can_bookmark is true |
| Remove your bookmark on X |
| Pin your own comment |
| Unpin your own comment |
| React to a DM, or remove your reaction |
| Send a new DM, or answer a comment privately |
| Show or clear the typing indicator in a DM |
| List drafted replies waiting for approval |
| Approve and send a drafted reply |
| Reject a drafted reply |
| Poll every inbox-capable account now |
| List boosts and ads created through FoPost |
| List ads on connected ad accounts made elsewhere |
| List published posts that can be boosted |
| List ad connections, ad accounts and pages |
| Boost a published post (starts paused, needs |
| Create an ad (starts paused, needs |
| Pause or resume an ad (needs |
| Re-read delivery status and insights |
| End delivery and delete an ad (needs |
| List saved audiences and pixels on an ad account |
| Search locations, interests, behaviors and income brackets |
| List lead forms on connected pages |
| List one page of leads from a lead form |
| Read campaigns, ad sets and ads on an ad account |
| Create a campaign (starts paused, needs |
| Read one campaign |
| Rename, pause or resume a campaign (needs |
| Delete a campaign and its contents (needs |
| Copy a campaign (starts paused, needs |
| Create an ad set (starts paused, needs |
| Read one ad set |
| Change an ad set's status, budget or targeting (needs |
| Delete an ad set and its ads (needs |
| Copy an ad set (starts paused, needs |
| Create an ad inside an ad set (starts paused, needs |
| Read one ad inside an ad set |
| Rename, pause, resume or swap an ad's creative (needs |
| Delete an ad inside an ad set (needs |
| Copy an ad (starts paused, needs |
| Pause or resume up to 50 objects (needs |
| List creatives on an ad account |
| Create an image, video or carousel creative |
| Read one creative |
| Delete a creative |
| Read one saved audience |
| Rename or redescribe a saved audience |
| Delete a saved audience |
| Add customer emails to a custom audience |
| Estimate the reach of a targeting |
| Insights for a campaign, ad set or ad |
| Insights for an ad created through FoPost |
| Read one lead form |
| Archive a lead form |
| List stored leads from subscribed pages |
| List pages subscribed to new leads |
| Subscribe a page to new leads and backfill |
| Unsubscribe a page from new leads |
| List the ad networks and what each one supports |
| Add companies to a company-list audience |
| Quote what an audience costs at auction |
| Forecast what a budget would deliver |
| List the conversion rules on an ad account |
| Create a conversion rule |
| Read one conversion rule |
| Change a conversion rule |
| Turn a conversion rule off |
| Attach or detach a conversion rule and an ad set |
| Read what a conversion rule recorded |
| Send off-site conversions back to the network |
| Send offline conversions against a pixel |
| List the conversion batches sent to the network |
| List the pixels on an ad account |
| Create a pixel and get its install script |
| Read one pixel |
| Rename a pixel or change its data-use setting |
| What a pixel fired over the last 28 days |
| How well each pixel event matches people |
| List the custom conversions on an ad account |
| Create a custom conversion on a pixel |
| Delete a custom conversion |
| How long a post keeps earning, by age band |
| What each weekly posting cadence earned per post |
| Every metric reading held for one post, oldest first |
| Readings since a cursor, for mirroring metrics elsewhere |
| Refresh one post's metrics now |
| Posts on an account that never went out through FoPost |
Setup
1. Get an API key
Generate one at https://fopost.com/dashboard/api-keys with the scopes you need (posts, publish, accounts, workspaces are most common; publish is required to publish, retry or cancel a post). Inbox tools need inbox, and liking, pinning, reacting, editing, starting a conversation, the typing indicator, reply media and quick replies, and deleting your own reply also need publish; ads tools need ads, and boost_post, create_ad, set_ad_status, delete_ad, bulk_set_ad_status and every create, update, delete and duplicate tool for campaigns, ad sets and network ads also need publish. A boost, ad, campaign, ad set or copy starts paused unless paused is false. The analytics tools need analytics; collect_post_analytics needs posts too, and list_native_posts needs accounts. Blog tools read with posts, and create_article, update_article, delete_article and update_product also need publish, because a change there is visible to the site's own readers.
2. Add to your MCP client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"fopost": {
"command": "npx",
"args": ["-y", "@fopost/mcp"],
"env": {
"FOPOST_API_KEY": "your-api-key"
}
}
}
}Cursor / Continue / Other
Use the same npx -y @fopost/mcp command with FOPOST_API_KEY in the environment.
Configuration
Variable | Required | Default |
| yes | required |
| no |
|
Self-hosted? Point FOPOST_API_URL at your instance. It must be a bare https:// host;
plain http:// is accepted for localhost and 127.0.0.1 only, so the key never crosses a
network in clear text.
Security
Use the narrowest key you can. Create a key bound to one workspace with only the scopes your workflow needs; scopes are enforced by the API, and this server never widens them.
Destructive tools are annotated. Every tool carries MCP
readOnlyHint/destructiveHintannotations. Leave your client's confirmation prompt on for destructive tools (deletes, publishing, replies, ad spend, webhooks): content the server reads back, such as inbox messages, can contain instructions written by someone else.Bursts are capped. More than 30 destructive calls in a minute are refused until the window clears, so a looping agent stops and asks.
file_pathsreads local files with the permissions of the MCP process. Only image and video extensions are accepted, judged after following symlinks.
The threat model is in docs/security/threat-model.md.
Example prompts
"List my failed posts from this week and tell me which accounts are unhealthy."
"Take this URL and turn it into a Twitter thread, a LinkedIn post, and a dev.to summary: https://example.com/blog/post"
"How many AI credits do I have left this period?"
"How long do my posts keep earning, and what cadence gets the most per post?"
"Show me the metric readings for this post over time: https://x.com/acme/status/1"
Contributing
Issues and pull requests are welcome at fopost/fopost-mcp.
npm install
npm run lint # tsc --noEmit
npm run build # tsup -> dist/License
MIT
Google Ads
The shared ads tools work across networks. What only Google has is its own set:
list_google_recommendations, get_google_optimization_score,
apply_google_recommendations, dismiss_google_recommendations,
list_google_keywords, create_google_keyword, set_google_keyword_status,
delete_google_keyword, google_keyword_ideas, list_google_search_terms,
list_google_negative_keywords, list_google_assets, create_google_asset,
list_google_asset_groups, list_google_local_services_leads,
list_google_conversion_actions, and run_google_ads_query for a raw read-only GAQL
SELECT.
Each names connection_id and customer_id; the customer has to be an account the
connection's grant reaches. Changes need the publish scope as well as ads.
Applying a recommendation changes what the live account serves or bids straight
away; dismissing one only hides it.
Available Tools
14 toolscancel_postA
Cancel a scheduled post. The post stays in the system but will not be published.
Inputs: id (required).
delete_postA
Permanently delete a post. Cannot be undone.
Inputs: id (required).
edit_postA
Update an existing post. Only provided fields are changed.
Inputs: id (required), labels, content, schedule_at.
generate_captionA
Generate or improve a social media caption with AI. Optionally pass current draft text and target platforms for tone-aware output. Costs 1 AI credit.
Inputs: platforms, char_limit, workspace_id, current_caption.
get_account_healthA
Check token freshness and rate-limit headroom for a single account. Useful when posts are failing — tells you if the OAuth token has expired.
Inputs: account_id (required).
get_ai_creditsA
Show the current AI credit balance, usage this period, and reset date.
Inputs: no named parameters.
get_postA
Fetch a single post by id with full content, settings, and delivery records.
Inputs: id (required).
list_accountsA
List connected social accounts in a workspace. Returns platform, username, primary flag, and connection status.
Inputs: workspace_id (required).
list_post_deliveriesB
Show per-account delivery status (queued, publishing, published, failed) for a post.
Inputs: id (required).
list_postsA
List posts in a workspace. Filter by status (draft, scheduled, published, failed) and pagination. Returns content, scheduled time, target accounts, and delivery status.
Inputs: workspace_id (required), limit, offset, status.
list_workspacesA
List workspaces the authenticated user has access to.
Inputs: no named parameters.
repurpose_urlA
Fetch a blog/article URL and generate one optimized post per requested platform in a single call. The flagship "Developer Content Stack" feature — write once, get 16 versions. Costs 6 AI credits per call regardless of platform count.
Inputs: url (required), platforms (required), workspace_id.
rewrite_for_platformsB
Rewrite a piece of content for one or more target platforms, applying platform-specific tone and length constraints. Costs 1 AI credit per platform.
Inputs: content (required), platforms (required), tone, workspace_id.
schedule_postA
Create and schedule a post. Pass the body text, target account ids, and an ISO 8601 schedule_at. Omit schedule_at to save as draft. Use publish_now=true to publish immediately after creation.
Inputs: content (required), account_ids (required), workspace_id (required), labels, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Post lifecycle tools are clearly distinct: schedule_post creates, edit_post updates, cancel_post cancels, delete_post removes. The AI tools have some overlap, but generate_caption, rewrite_for_platforms, and repurpose_url are differentiated by input and output scope.
Tool names consistently follow a snake_case verb_noun pattern: list_posts, get_post, schedule_post, edit_post, delete_post, list_accounts. Minor multi-word names like list_post_deliveries and rewrite_for_platforms still fit the overall convention.
14 tools is well-scoped for a social media scheduling and AI content assistant. Each tool covers a distinct operation across posts, accounts, workspaces, and AI generation without feeling bloated.
Posts have full lifecycle coverage: create/schedule, read, update, cancel, delete, list, and delivery tracking. Minor gaps exist around account connection/disconnection and workspace management, but the core scheduling workflow is complete.
Maintenance
Related MCP Connectors
Schedule, publish, and analyze social media posts across 11 platforms from any MCP client.
Schedule, publish, and analyze social posts across 11 platforms from any MCP client.
Social media MCP: publish, schedule & analyze posts on TikTok, Instagram, YouTube, LinkedIn & X
Create, schedule, and publish social posts, manage accounts, and read analytics as MCP tools.
Related MCP Servers
- AlicenseAqualityBmaintenanceSchedule and manage social media posts across 10 platforms (Instagram, Facebook, TikTok, X, LinkedIn, YouTube, Threads, Pinterest, Bluesky, Telegram) from any MCP-compatible AI assistant. Supports batch posting, media uploads, analytics, and platform-specific features like Reels, Shorts, and carousels.11427 npm7MIT
- AlicenseAqualityCmaintenanceMCP server to manage social media accounts from AI assistants, enabling post creation, scheduling, publishing, and media uploads across multiple platforms.1311 npm1MIT

OwlStack MCPofficial
AlicenseAqualityCmaintenanceManages social media posts, accounts, and AI usage from MCP-aware clients. Supports scheduling, editing, canceling, AI caption generation, and repurposing URLs into platform-optimized content.14MIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to post, schedule, thread, delete, and analyze social media posts across platforms like X, Bluesky, LinkedIn, and Instagram through a single MCP interface.107 npmMIT