Postfast MCP
MCP server for the PostFast API — schedule and manage social media posts via AI tools
Connector by peturgeorgievv-factory · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Postfast MCP?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/peturgeorgievv-factory-postfast-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 16 read · 7 write · 9 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 32
Read from the source code; the running server may list different tools.
Read 16 · Look things up without changing anything.
get_calendar_postget_follower_historyget_inbox_conversationget_inbox_unread_countget_post_analyticslist_accountslist_gbp_locationslist_inbox_conversationslist_inbox_itemslist_pinterest_boardslist_postslist_tiktok_sounds
Show 4 more tools
list_workspaceslist_youtube_playlistsprepare_inbox_actionsearch_places
Write 7 · Create, change, send or run things.
assign_inbox_conversationget_upload_urlsmark_inbox_conversation_readrecord_app_actionset_inbox_conversation_statusupload_from_urlupload_media
Delete 9 · Delete, drop, revoke or wipe things.
approve_postsconfirm_inbox_actioncreate_postsdelete_postdelete_postsgenerate_connect_linkreply_to_inbox_itemsend_inbox_private_replyset_inbox_item_state
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
POSTFAST_API_KEY
Network hosts it talks to 8
api.postfa.st· found in codeapp.postfa.st· found in codegithub.com· found in codeglama.ai· found in codehelp.postfa.st· found in codemcp.postfa.st· found in codepostfa.st· found in codeunpkg.com· found in code
Files it touches
- Any path the agent passes to its tools
Tools (32)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
approve_postsApprove Postscan change or delete dataApprove posts so they publish at their scheduled time. This is the only way a post created with create_posts goes out, so show the user exactly what will be posted, where and when, and call this only after they say yes in the conversation, even if they asked you to post it. Can also set PENDING_APPROVAL, REJECTED or NEEDS_WORK. If its scheduled time passed more than 2 hours ago, don't approve it. Tell the user, and only if they agree, create it again with a new time and delete the old one.
assign_inbox_conversationAssign Inbox ConversationAssign a conversation to a workspace member for follow-up, or omit assigneeUserId to unassign. The assignee must be a member of the workspace (inbox.assigneeNotMember otherwise). Internal to PostFast — nothing changes on the platform.
confirm_inbox_actionConfirm Comment Reply or Deletioncan change or delete dataCarry out a reply or deletion prepared with prepare_inbox_action. Pass its confirmToken with the same itemId, action and text (and workspaceId, if you used one); anything different is rejected. Call it only after the user has seen the preview and said yes in the conversation. Replies on Threads cannot be removed through PostFast, private replies cannot be unsent, and deletions cannot be undone. A token expires 15 minutes after it was prepared and works once. Failures return the underlying inbox.* codes (for example replyTooLong, privateReplyAlreadySent, deleteNotSupported).
create_postsCreate Postscan change or delete dataDescription is built at runtime.
delete_postDelete Postcan change or delete dataDescription is built at runtime.
delete_postsDelete Postscan change or delete dataDescription is built at runtime.
generate_connect_linkGenerate Connect Linkcan change or delete dataDescription is built at runtime.
get_calendar_postCalendar Post Detailsread-onlyCalled by the PostFast calendar when a post is opened: its full text, first comment and every image or video. Read-only.
get_follower_historyGet Follower Historyread-onlyDaily follower-count snapshots for one connected account (pass its socialMediaId from list_accounts). Returns currentFollowerCount, delta (current − first snapshot in range), trackingStartedAt (when PostFast began recording this account), and a series of { capturedAt, followerCount } points. All counts are strings (bigint); currentFollowerCount, delta, and trackingStartedAt may be absent until the account has its first snapshot. Optional from/to bound the range (ISO 8601; default last 90 days, capped at 365). Snapshots are forward-only — no data before trackingStartedAt. Coverage: Facebook Pag…
get_inbox_conversationGet Inbox Conversationread-onlyFetch one inbox conversation by id, including its server-computed reply capability (canReply, maxReplyLength, windowState, disabledReason) — derive reply ability from these fields, never from hardcoded platform rules. postPreview carries the post's caption and, when available, its public permalink — use the permalink to link the user to the post on the platform (null on Instagram for now). Returns null when the conversation does not exist in the workspace.
get_inbox_unread_countGet Inbox Unread Countread-onlyTotal unread comment count across all inbox conversations in the workspace (the sum of per-conversation unreadCount). Use mark_inbox_conversation_read after presenting a conversation to the user.
get_post_analyticsGet Post Analyticsread-onlyFetch published posts with their latest performance metrics (impressions, reach, likes, comments, shares). Only returns published posts that have a platform post ID. LinkedIn personal accounts are excluded. Supported: Instagram, Facebook, TikTok, Threads, YouTube, LinkedIn (company pages), Pinterest (Business accounts). Metric counts are returned as strings. Pinterest extras include pin_clicks, outbound_clicks, saves_90d, save_rate_90d (saves are 90-day rolling because Pinterest API does not expose lifetime totals); video pins additionally surface mrc_views, views_10s, avg_watch_time, v50_watc…
get_upload_urlsGet Upload URLsGet signed upload URLs for media, caption files and LinkedIn documents. Upload your file to the returned URL via PUT, then use the key in create_posts mediaItems; the key of a caption file (.srt or .vtt) goes in controls.youtubeCaptionKey instead, never in mediaItems; the key of a document (.pdf, .doc, .docx, .ppt or .pptx) goes in controls.linkedinAttachmentKey instead, never in mediaItems.
list_accountsList Accountsread-onlyList all social media accounts connected to the workspace. Each account includes connectionStatus (CONNECTED or DISABLED) and disabledReason (null unless DISABLED), plus followerCount (latest stored snapshot, a string; absent for platforms without follower data), followerCountUpdatedAt, and inboxCapable (whether the account can appear in the social inbox, i.e. comment ingestion is supported). A DISABLED account will not publish until the user reconnects it — pre-check before scheduling. For a follower trend over time, use get_follower_history.
list_gbp_locationsList Google Business Profile Locationsread-onlyList Google Business Profile locations for a connected GBP account (pass its socialMediaId). Use a returned location’s locationId field as controls.gbpLocationId in create_posts.
Show 17 more tools
list_inbox_conversationsList Inbox Conversationsread-onlyList comment conversations from the social inbox — comments on your connected accounts' posts, grouped per post, newest activity first. Covers TikTok, Instagram, Facebook Pages, and Threads; an account's inboxCapable flag (from list_accounts) tells you whether comments can flow for it today. Comments arrive within seconds of being posted and only from connect/launch onward (no history backfill). Each conversation carries a server-computed reply capability — canReply, maxReplyLength, windowState, disabledReason — plus unreadCount, status (OPEN | SNOOZED | CLOSED), and assignedToUserId. ALWAYS d…
list_inbox_itemsList Inbox Itemsread-onlyDescription is built at runtime.
list_pinterest_boardsList Pinterest Boardsread-onlyList Pinterest boards for a connected Pinterest account (pass its socialMediaId). Use a returned board’s boardId field as controls.pinterestBoardId in create_posts.
list_postsList Postsread-onlyList social media posts with optional filters for specific IDs, accounts, platform, status, and date range. Failed or missed posts carry a lastError { message, code }; codes include MISSED_DISCONNECTED (the account was disconnected when the post was due — reconnect, then retry) and MISSED_NOT_PUBLISHED (passed its scheduled time plus a 2h grace window without publishing). Each post also carries controls { threadsTopicTag, instagramPublishType, facebookContentType, tiktokIsDraft, youtubePrivacy }, each null when unset. Only the field for the post's own platform (its account's platform in list_a…
list_tiktok_soundsList TikTok Soundsread-onlyList trending pre-cleared Commercial Music Library tracks for a connected TikTok account. Returns up to 100 trending sounds with musicSoundId, name, artist, duration, and preview/thumbnail URLs. Pass a musicSoundId to create_posts as tiktokMusicSoundId to attach that sound to a TikTok photo, carousel or video post. genre takes raw TikTok values like 'POP', 'HIP_HOP/RAP', 'R&B/SOUL', 'K-POP' (invalid values return the full valid list in the error). The list rotates daily — fetch fresh rather than reusing old ids for display. An unknown countryCode returns an empty list. If the API returns tikto…
list_workspacesList Workspacesread-onlyList the workspaces this connection can act in. Use a workspace id as the optional workspaceId argument on other tools to operate across multiple workspaces (the default workspace is used when omitted).
list_youtube_playlistsList YouTube Playlistsread-onlyList YouTube playlists for a connected YouTube account (pass its socialMediaId). Use a returned playlist’s playlistId field as controls.youtubePlaylistId in create_posts.
mark_inbox_conversation_readMark Inbox Conversation ReadMark one conversation read (zeroes its unreadCount). Do this after presenting a conversation's comments to the user. Internal to PostFast — nothing changes on the platform.
prepare_inbox_actionPrepare Comment Reply or Deletionread-onlyPrepare a reply to a comment, an Instagram private reply, or a comment deletion WITHOUT doing it. REPLY posts publicly under the comment; PRIVATE_REPLY sends an Instagram private reply that arrives as a direct message (one per comment, within 7 days; check the item's canPrivateReply); DELETE removes the comment on the platform permanently (not supported on Threads). Before a reply, check the conversation's canReply and maxReplyLength. Returns a preview and a confirmToken. Then show the user which comment it is (its author and text) and exactly what will happen, and wait for their yes in the co…
record_app_actionRecord Calendar ActionCalled by the PostFast calendar to record which of its buttons was used (open in PostFast, review in chat, reconnect, connect an account, new post), for product analytics. Changes no posts, accounts or settings.
reply_to_inbox_itemReply to Inbox Commentcan change or delete dataReply publicly UNDER a specific comment — pass the comment item's id (from list_inbox_items), not the conversation id. BEFORE replying, check the conversation's canReply and maxReplyLength and stay within them; the caps are per platform (TikTok 1,200, Instagram 2,200, Facebook 8,000, Threads 500 characters) but the server-computed fields are authoritative — never assume. Failures return inbox.* codes (e.g. replyTooLong, replyNotSupported, rateLimited).
search_placesSearch Placesread-onlySearch for a place to geotag a post. Pass free text (min 2 chars, e.g. a venue name or address); returns matching places, each with an id that works as BOTH controls.facebookPlaceId (Facebook feed posts) and controls.instagramLocationId (Instagram single-media posts). Only Facebook Pages that carry location data are returned.
send_inbox_private_replySend Instagram Private Replycan change or delete dataInstagram only: send ONE private reply to a comment — it arrives as a direct message to the commenter and may land in their Message Requests folder. Allowed once per comment, within 7 days of the comment, up to 1,000 bytes (emoji and non-Latin text count multi-byte — roughly 1,000 characters, less with emoji). Check the item's canPrivateReply first (from list_inbox_items). A second attempt on the same comment fails with inbox.privateReplyAlreadySent; other failures include privateReplyWindowExpired and privateReplyNotSupported.
set_inbox_conversation_statusSet Inbox Conversation StatusTriage a conversation: set its status to OPEN, SNOOZED, or CLOSED. Internal to PostFast — nothing changes on the platform.
set_inbox_item_stateModerate Inbox Commentcan change or delete dataDescription is built at runtime.
upload_from_urlUpload Media From URLDescription is built at runtime.
upload_mediaUpload MediaUpload a local file to PostFast and get back a media key for use in create_posts. Handles the full flow: detects content type, gets a signed URL, uploads the file, and returns the key and type. Images and videos come back as IMAGE or VIDEO, for mediaItems; an .srt or .vtt caption file comes back as CAPTION, and its key goes in controls.youtubeCaptionKey, never in mediaItems; a .pdf, .doc, .docx, .ppt or .pptx document comes back as DOCUMENT, and its key goes in controls.linkedinAttachmentKey, never in mediaItems.
Signals
- Stars
- 6
- Forks
- 1
- Open issues
- 1
- Last commit
- Oct 12, 2026 (18 days ago)
- Last release
- Oct 25, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.peturgeorgievv-factory/postfast-mcp- Version
- 0.14.0
- Auth
- API key
- Packages
- npm postfast-mcp
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 26, 2026
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Postfast MCP running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Postfast MCP. Agent Mart. https://agentmart.dev/connectors/peturgeorgievv-factory-postfast-mcp (last updated 2026-10-26)