Back to Browse

Postfast MCP Server

Developer ToolsLow Risk10.0Local
Free

MCP server for the PostFast API — schedule and manage social media posts via AI tools

About

MCP server for the PostFast API — schedule and manage social media posts via AI tools

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.

7 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

What You'll Need

Set these up before or after installing:

Your PostFast workspace API key. Get it from https://app.postfa.st/dashboard → API in the sidebar.Required

Environment variable: POSTFAST_API_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-peturgeorgievv-factory-postfast-mcp": {
      "env": {
        "POSTFAST_API_KEY": "your-postfast-api-key-here"
      },
      "args": [
        "-y",
        "postfast-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

PostFast MCP Server

MCP server for the PostFast API — schedule and manage social media posts via AI tools like Claude, Cursor, VS Code, and more.

Hosted connector (no install)

Prefer not to run anything locally? Connect to the hosted endpoint and authenticate with OAuth — no npx, no API key to manage:

https://mcp.postfa.st/mcp

Add it as a remote/streamable-HTTP MCP server in any client that supports OAuth (e.g. ChatGPT, Claude). You'll be prompted to sign in to PostFast and authorize access on first use.

Want to run the server yourself instead? Use the npx + API-key setup in Quick Start below.

Quick Start

1. Get your API key

Log in to PostFast, go to API in the sidebar, and generate a key.

2. Install

Choose your preferred method:

Claude Desktop (recommended)

Download the extension from the Claude Desktop extension directory or install manually:

  1. Add to claude_desktop_config.json:
{
  "mcpServers": {
    "postfast": {
      "command": "npx",
      "args": ["-y", "postfast-mcp"],
      "env": {
        "POSTFAST_API_KEY": "your-api-key-here"
      }
    }
  }
}
  1. Restart Claude Desktop.
Claude Code

Via plugin (pending marketplace approval):

/plugin install postfast@claude-plugins-official

After installing, set your API key — pick one of these:

# Option A: Add to your shell profile (~/.zshrc or ~/.bashrc)
export POSTFAST_API_KEY="your-api-key-here"

# Option B: Add to ~/.claude/settings.local.json
# { "env": { "POSTFAST_API_KEY": "your-api-key-here" } }

Then restart Claude Code.

Via manual config:

Add to your project's .mcp.json or ~/.claude/.mcp.json (global):

{
  "mcpServers": {
    "postfast": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "postfast-mcp"],
      "env": {
        "POSTFAST_API_KEY": "your-api-key-here"
      }
    }
  }
}
Cursor / VS Code / Windsurf / Other MCP clients

Add to your MCP config (.mcp.json, mcp.json, or the tool's settings UI):

{
  "mcpServers": {
    "postfast": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "postfast-mcp"],
      "env": {
        "POSTFAST_API_KEY": "your-api-key-here"
      }
    }
  }
}

3. Use it

Ask your AI assistant things like:

  • "List my connected social accounts"
  • "Schedule a post to Instagram for tomorrow at 9am"
  • "Show me all scheduled posts for this week"
  • "Upload this image and create a LinkedIn post with it"
  • "Create a Facebook reel with this video"
  • "Show me analytics for my Instagram posts this month"

Available Tools

ToolDescription
list_accountsList connected social media accounts (each with connectionStatusCONNECTED/DISABLEDdisabledReason, followerCount/followerCountUpdatedAt, and inboxCapable)
list_postsList posts with filters (specific IDs, platform, status, date range)
create_postsCreate and schedule posts (batch, up to 15)
delete_postDelete a post from PostFast by ID (does not remove an already-published post from the platform)
upload_mediaUpload a local file and get a media key (handles the full flow)
get_upload_urlsGet signed URLs to upload media files
list_pinterest_boardsGet Pinterest boards for an account
list_youtube_playlistsGet YouTube playlists for an account
list_gbp_locationsGet Google Business Profile locations for an account
search_placesFind a place to tag posts (the id works for both facebookPlaceId and instagramLocationId)
generate_connect_linkGenerate a link for clients to connect accounts — optionally scoped to specific platforms, with a redirectUrl the user returns to (carrying status, platform, accountId and your own externalId)
get_post_analyticsFetch published posts with performance metrics — Instagram, Facebook, TikTok, Threads, YouTube, LinkedIn (company pages), Pinterest (Business accounts)
get_follower_historyDaily follower-count history for an account (current count + delta over a date range) — Facebook Pages, Instagram, YouTube, Pinterest, Threads, Bluesky, Telegram, LinkedIn (company pages), TikTok
list_tiktok_soundsTrending pre-cleared Commercial Music Library tracks for a TikTok account (attach via controls.tiktokMusicSoundId)

Social Inbox (comments)

Comments on your posts — TikTok, Instagram, Facebook Pages, and Threads — in one inbox (an account's inboxCapable flag says what is live today). Comments only (no direct messages), from connect onward (no history backfill). Reply capability is always server-computed per conversation (canReply, maxReplyLength, windowState, disabledReason) — render from those fields, never platform assumptions.

ToolDescription
list_inbox_conversationsList comment conversations (filters: platforms, accounts, statuses, unread-only, assignee)
get_inbox_conversationFetch one conversation with its reply-capability fields
list_inbox_itemsList a conversation's comments and replies (with state and, on Instagram, canPrivateReply)
get_inbox_unread_countTotal unread comment count across the workspace
reply_to_inbox_itemReply publicly under a specific comment
send_inbox_private_replyInstagram only: one private reply per comment, within 7 days
set_inbox_item_stateHIDE / UNHIDE / DELETE a comment on the platform (DELETE cannot be undone)
mark_inbox_conversation_readZero a conversation's unread count
set_inbox_conversation_statusTriage: OPEN / SNOOZED / CLOSED
assign_inbox_conversationAssign a conversation to a workspace member (or unassign)

Supported Platforms

Facebook, Instagram, X (Twitter), TikTok, LinkedIn, YouTube, BlueSky, Threads, Pinterest, Telegram, Google Business Profile

Platform-Specific Controls

When creating posts, you can pass platform-specific settings via the controls parameter:

PlatformControls
X (Twitter)xRetweetUrl
InstagraminstagramPublishType (TIMELINE/STORY/REEL), instagramTrialReelStrategy (MANUAL/SS_PERFORMANCE — trial reel shown to non-followers; Reels only, no collaborators), instagramPostToGrid, instagramCollaborators, instagramLocationId/instagramLocationName (geotag from search_places), instagramIsAiGenerated (adds the "AI info" label; set at creation only)
FacebookfacebookContentType (POST/REEL/STORY), facebookAllowComments, facebookPrivacy, facebookCarouselMainLink, facebookCarouselShowEndCard, facebookReelsCollaborators, facebookTargetCountries (ISO alpha-2, max 25), facebookPlaceId/facebookPlaceName (geotag from search_places)
TikToktiktokTitle (photo posts, max 90 chars), tiktokMusicSoundId/tiktokMusicSoundName (Commercial Music Library sound from list_tiktok_sounds; photo/carousel posts, exclusive with tiktokAutoAddMusic), tiktokIsDraft, tiktokAllowComments, tiktokAllowDuet, tiktokAllowStitch, tiktokBrandOrganic, tiktokBrandContent, tiktokAutoAddMusic, tiktokIsAigc, tiktokPrivacy (deprecated — account default applies)
YouTubeyoutubeTitle, youtubePrivacy (PUBLIC/PRIVATE/UNLISTED), youtubeTags, youtubeCategoryId, youtubeIsShort, youtubeMadeForKids, youtubeContainsSyntheticMedia (altered/synthetic content disclosure; set at creation only), youtubePlaylistId, youtubeThumbnailKey
PinterestpinterestBoardId (required), pinterestLink
LinkedInlinkedinAttachmentKey, linkedinAttachmentTitle
Google Business ProfilegbpLocationId (required), gbpTopicType (STANDARD/EVENT/OFFER), gbpCallToActionType, gbpCallToActionUrl, gbpEventTitle, gbpEventStartDate, gbpEventEndDate, gbpOfferCouponCode, gbpOfferRedeemUrl, gbpOfferTerms

Media Upload

The upload_media tool handles the full flow in a single call:

  1. Detects content type from file extension
  2. Gets a signed upload URL from PostFast
  3. Uploads the file
  4. Returns a key and type ready to use in create_posts

Supported formats: JPEG, PNG, GIF, WebP, MP4, WebM, MOV

You can also use get_upload_urls directly if you need more control over the upload process.

Environment Variables

VariableRequiredDescription
POSTFAST_API_KEYYesYour workspace API key
POSTFAST_API_URLNoAPI base URL (default: https://api.postfa.st)

Testing

Verify everything works with the MCP Inspector:

POSTFAST_API_KEY=your-key npx @modelcontextprotocol/inspector npx postfast-mcp

API Docs

Full REST API documentation: postfa.st/docs

Development

npm install
npm run build
node dist/stdio/index.js

Tools are authored once in src/core (the catalog — schemas, descriptions, annotations, per-binding availability) and exposed to consumers as postfast-mcp/core; src/stdio binds the catalog to the public REST API. Releases: PRs add a .changeset/*.md; npm run version folds them into the bump + changelog, and pushing the vX.Y.Z tag publishes npm + MCP Registry + the MCPB release from CI (OIDC — no tokens anywhere).

Badges

peturgeorgievv-factory/postfast-mcp MCP server

License

MIT

Reviews

No reviews yet

Be the first to review this server!