Tools Reference

Every tool the FoPost MCP server exposes, with parameters and caveats.

Forty-one tools, in five groups. Ids are UUIDs throughout, and every tool returns the API's JSON response as text. The server exposes tools only: no MCP resources or prompts.

Posts

Need the posts scope.

list_posts

List posts in a workspace, newest first.

ParameterRequiredNotes
workspace_idYes
statusNodraft, pending_approval, scheduled, published, failed, or cancelled
limitNo1–100, default 20
offsetNoDefault 0

get_post

Fetch one post by id, with content, settings, and delivery records.

schedule_post

Create a post as a draft, scheduled, or published immediately.

ParameterRequiredNotes
workspace_idYes
contentYesThe post body text
account_idsYesAt least one target account
schedule_atNoISO 8601. Omit to save a draft
publish_nowNoPublishes right after creating
media_urlsNoAlready-uploaded media URLs; attached as images
labelsNoLabel ids

With publish_now, the server creates the post and then calls the publish endpoint, returning the publish response. Media passed by URL is attached as image media. Video attachments need the API or the dashboard.

edit_post

Update a post's content, schedule_at, or labels; only the fields you pass change. One caveat: passing content replaces the post's content block, which drops any media the post carried. Accounts cannot be changed through this tool.

cancel_post / delete_post

cancel_post stops a scheduled post from publishing; the post stays. delete_post removes it permanently: it cannot be undone, so it is worth an approval step in your MCP client.

list_post_deliveries

Per-account delivery status for a post: queued, publishing, published, or failed, per account.

Accounts and workspaces

Need the accounts scope; list_workspaces needs workspaces.

list_accounts

Connected accounts in a workspace: platform, username, primary flag, connection status. Takes workspace_id.

get_account_health

Token freshness and rate-limit headroom for one account_id. The first tool to reach for when posts are failing: it tells you whether the connection has expired.

list_workspaces

Every workspace the key can reach. No parameters. Usually the first call an assistant makes.

AI

Need the ai scope, and spend AI credits.

generate_caption

Write or improve a caption. All parameters optional: current_caption to improve an existing draft, platforms for tone-aware output, char_limit, workspace_id.

get_ai_credits

The current credit balance, usage this period, and reset date. Free: reading the balance costs nothing.

rewrite_for_platforms and repurpose_url are also registered, but they reach endpoints that require a dashboard session, so they answer 401 with an API key. Everything else on this page works.

Inbox

Need the inbox scope. Item ids are UUIDs; approval ids are integers.

list_inbox

Inbox items (comments, mentions, DMs) newest first.

ParameterRequiredNotes
workspace_idNoRestrict to one workspace
typeNocomment, mention, or dm
platform, account_idNoNarrow to one network or one connected account
stateNounread, read, resolved, or snoozed
post_idNoComments under one FoPost post
post_external_idNoComments under one platform post, including posts not published through FoPost
conversation_idNoOne DM thread
directionNoinbound or outbound
qNoSearch text
sortNonewest, oldest, or unanswered
page, per_pageNoper_page is 1–100

list_inbox_threads

Comment threads under your posts (kind = comments, the default) or posts you were tagged in (kind = mentions). Takes the same workspace_id, platform, account_id, state, q, sort, page, and per_page filters as list_inbox.

list_inbox_conversations

DM conversations across connected accounts. Same filters as list_inbox_threads, without kind.

get_inbox_unread_count

Unread items, optionally for one workspace_id.

mark_inbox_thread_read

Mark every item in a comment thread or DM conversation as read.

ParameterRequiredNotes
workspace_idYes
account_idYes
post_external_idNoThe comment thread
conversation_idNoThe DM conversation

reply_to_inbox_item

Reply to a comment, mention, or DM on the platform as the connected account. Takes id and text. A DM reply can also take media_ids (files from the media library) and quick_replies (answer buttons), where the item allows them; text is then optional with media_ids. Either one needs the publish scope.

update_inbox_item

Set an item's state (unread, read, resolved, or snoozed). Snoozing also needs snoozed_until, an ISO 8601 time in the future.

hide_inbox_item / unhide_inbox_item / delete_inbox_item

Hide a comment on the platform, show it again, or delete it there. Each takes id. delete_inbox_item also deletes a reply your account wrote, which needs the publish scope. It cannot be undone, so it is worth an approval step in your MCP client.

edit_inbox_comment

Change the text of a comment your account wrote, on the platform. Takes id and text. Needs publish.

like_inbox_item / unlike_inbox_item / pin_inbox_item / unpin_inbox_item

Like a comment or mention as the connected account (an upvote on Reddit, a favourite on Mastodon), or pin a comment your account wrote. Each takes id and needs publish.

react_to_inbox_item

React to a DM with an emoji, or pass null as reaction to remove yours. Takes id and reaction. Needs publish.

start_inbox_conversation

Open a DM. Pass account_id and handle, or comment_id to answer an inbox comment privately (how Facebook and Instagram open a DM). Takes text and optional media_ids. Needs publish.

set_inbox_typing

Show or clear the typing indicator in a DM thread. Takes conversation_id, account_id, and optional on (default true). Needs publish.

list_inbox_approvals

Drafted replies waiting for a person to approve before they are sent, optionally for one workspace_id.

approve_inbox_reply / reject_inbox_reply

Approve a drafted reply and send it, or reject it so it is never sent. Both take the approval id; approve_inbox_reply also accepts text to replace the draft before sending.

refresh_inbox

Poll every inbox-capable account in a workspace_id now and report what is new.

Ads

Need the ads scope. boost_post, create_ad, set_ad_status, and delete_ad spend money, so they need publish as well.

list_ads

Boosts and ads created through FoPost, with insights from their last refresh. Optional workspace_id.

list_external_ads

Ads on the connected ad accounts that were created elsewhere, read live. Optional workspace_id.

list_boostable_posts

Published posts that can be boosted. Optional workspace_id.

list_ad_sources

Ad connections with their ad accounts and pages: the ids boost_post and create_ad need. Optional workspace_id.

boost_post

Boost a published post as an ad. It starts paused unless paused is false.

ParameterRequiredNotes
workspace_idYes
connection_idYesAn ads connection in the workspace
ad_account_idYesact_…
post_idYesA published FoPost post
account_idYesThe account the post was delivered to
nameYesUp to 255 characters
goalYesengagement, traffic, awareness, or video_views
budgetYesminor (ad account currency, minor units), type (daily or lifetime), optional end_at
targetingYescountries, age_min, age_max, gender; optional audience_ids, locations, interests, behaviors, income
pausedNoDefault true

create_ad

Create a standalone ad. Same workspace_id, connection_id, ad_account_id, name, goal, budget, targeting, and paused as boost_post, plus:

ParameterRequiredNotes
page_idYesThe page the ad is published from
textYesUp to 125 characters
headlineNoUp to 40 characters
destination_urlNo
media_urlNoA media library asset URL

set_ad_status

Pause or resume an ad: id, workspace_id, and status (active or paused).

refresh_ad

Re-read an ad's delivery status and lifetime insights from the ad platform. Takes id and workspace_id.

delete_ad

End delivery and delete the ad on the ad platform. Takes id and workspace_id. It cannot be undone.

list_audiences

Saved audiences and pixels on one ad account, for targeting. Takes connection_id and ad_account_id, optional workspace_id.

search_ad_targeting

Search targeting options by name for boost_post and create_ad.

ParameterRequiredNotes
connection_idYes
typeYescountry, region, city, zip, metro, interest, behavior, or income
qNoUp to 100 characters
workspace_idNo

list_lead_forms

Lead forms on the connected pages. Optional workspace_id.

list_leads

One page of leads from a form: form_id, connection_id, page_id, optional workspace_id and after. Pass the response's next_cursor back as after for the next page.

Errors

A failed call comes back as an error message, not an exception: a 403 names the missing scope, a 402 means the AI credit balance ran out, and a 429 means the key hit its rate limit. The server does not retry, so the assistant sees it immediately.

Next

Related documentation
  • MCP Server

    Connect Claude, Cursor, ChatGPT, or any MCP client to your FoPost workspace.

  • Claude Code Plugin

    Install FoPost in Claude Code in two commands, with skills for the flows you run every week.

  • Media

    Upload files, list the media library, and attach media to a post.

  • AI

    What an API key can do with AI, and where the rest of the AI features live.

Was this helpful?

On this page