helbertparanhos/postforme-mcp-pro
π π βοΈ π πͺ π§ - Post for Me MCP server with 27 typed tools to publish, schedule, edit, delete and analyze social posts across 9 platforms (Instagram, Facebook, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky, Threads), plus a postformeraw escape hatch and a readonly safety mode.
Quick Install
{
"mcpServers": {
"helbertparanhos-postforme-mcp-pro": {
"command": "npx",
"args": [
"-y",
"helbertparanhos-postforme-mcp-pro"
]
}
}
}Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.
Documentation Overview
postforme-mcp-pro π±
The most complete Post for Me MCP server β publish, schedule, edit, delete and analyze social posts across 9 platforms from any MCP client.
postforme-mcp-pro wraps the Post for Me API in 27+ fully-typed MCP tools (one per operation) plus a postforme_raw escape hatch and a readonly safety mode. Unlike the official MCP β which exposes only a doc-search + sandboxed code-execution tool ("code mode") β every operation here is a first-class, directly-callable tool, so the model can post, schedule and pull analytics without writing SDK code.
Platforms: Instagram Β· Facebook Β· TikTok Β· YouTube Β· X Β· LinkedIn Β· Pinterest Β· Bluesky Β· Threads
Why this server
- 27+ typed tools β
create_post,schedule_post,publish_now,create_draft,upload_media,list_account_feeds,list_post_results, account & webhook management, and more. - High-level shortcuts β
publish_now/schedule_post/create_draft/reschedule_post/upload_mediacollapse common multi-step flows into one call. - One-step media upload β
upload_mediatakes a local file path or a public URL, gets a signed URL, uploads the bytes, and hands back amedia_urlready to attach. - Per-platform tuning β
platform_configurationsmodels Instagram Reels, X polls, TikTok privacy, YouTube visibility, etc., and stays permissive for new options. - Readonly safety mode β
POSTFORME_READONLY=trueblocks every write; great for analytics-only sessions. postforme_rawβ call any endpoint for 100% API coverage, even brand-new ones.- Resilient client β Bearer auth, retries on 429/5xx with backoff, actionable error messages.
Install
npm install
npm run build
Or run published (after release) without cloning:
npx -y postforme-mcp-pro
Configuration
Copy .env.example β .env and set your key:
| Variable | Required | Description |
|---|---|---|
POSTFORME_API_KEY | β | Your Post for Me API key (Dashboard β Settings β API Keys). |
POSTFORME_BASE_URL | β | Override the API base URL for self-hosted/open-source deployments. Default https://api.postforme.dev. |
POSTFORME_READONLY | β | true blocks all write tools (only reads + postforme_raw GET run). |
POSTFORME_DISABLE_RAW | β | true removes the postforme_raw tool. |
POSTFORME_TIMEOUT_MS | β | Per-request timeout (default 60000). |
POSTFORME_MAX_RETRIES | β | Max retries on 429/5xx/network (default 3). |
Test locally
npx @modelcontextprotocol/inspector node dist/index.js
Add to Claude Code
.claude/settings.json β mcpServers:
"postforme": {
"command": "node",
"args": ["projects/postforme-mcp-pro/dist/index.js"],
"env": { "POSTFORME_API_KEY": "pfm_xxx" }
}
Add to Claude Desktop
%APPDATA%\Claude\claude_desktop_config.json (Windows) / ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
"postforme": {
"command": "node",
"args": ["/abs/path/projects/postforme-mcp-pro/dist/index.js"],
"env": { "POSTFORME_API_KEY": "pfm_xxx" }
}
Cursor uses the same config shape in its MCP file.
Tools
Social accounts
| Tool | Description |
|---|---|
list_social_accounts | List connected accounts (filter by platform/username). |
get_social_account | Get one account by id. |
create_social_account | Connect an account by supplying credentials. |
update_social_account | Update stored credentials/metadata. |
create_auth_url | Start the OAuth connect flow (returns a URL). |
disconnect_social_account | Revoke access for an account. |
list_account_feeds | Analytics: recent feed + engagement metrics for an account. |
Posts
| Tool | Description |
|---|---|
create_post | Create a post (publish now, schedule, or draft) across accounts. |
publish_now | Shortcut: publish immediately. |
schedule_post | Shortcut: schedule for an ISO-8601 time. |
create_draft | Shortcut: save as draft. |
get_post | Get a post by id. |
list_posts | List posts (filter by status). |
update_post | Edit caption/media/accounts/schedule/config. |
reschedule_post | Shortcut: change a scheduled time. |
delete_post | Delete a post. |
Results & previews
| Tool | Description |
|---|---|
list_post_results | Analytics: per-platform publish outcomes. |
get_post_result | One post result by id. |
create_post_preview | Preview how a post renders per platform. |
Media
| Tool | Description |
|---|---|
create_media_upload_url | Get a signed upload URL (2-step flow). |
upload_media | One-step: upload a local file or remote URL β returns media_url. |
Webhooks
| Tool | Description |
|---|---|
list_webhooks Β· get_webhook Β· create_webhook Β· update_webhook Β· delete_webhook | Manage event subscriptions. |
Escape hatch
| Tool | Description |
|---|---|
postforme_raw | Call any /v1/... endpoint directly (method, path, params, body). |
Companion skill
/postforme (in skill/SKILL.md) orchestrates these tools into guided workflows: post, schedule, campaign, analytics, accounts, media. Copy it into .claude/skills/ to use it in Claude Code.
Example
You: post "LanΓ§amos a v2 π" no instagram e no x, com a imagem ./hero.png
β list_social_accounts (get the instagram + x account ids)
β upload_media { file_path: "./hero.png" } β media_url
β create_post_preview (optional, confirm look)
β publish_now { social_accounts: [...], caption: "...", media: [{ url: media_url }] }
β list_post_results (report success/links per platform)
Comparison with the official MCP
| postforme-mcp-pro | official post-for-me-mcp | |
|---|---|---|
| Tool model | 27 typed tools, one per operation | 2 tools (doc-search + code-execution sandbox) |
| Calls | Direct tool calls | Model must write SDK code in a sandbox |
| Shortcuts | publish_now / schedule_post / create_draft / upload_media | β |
| Safety | POSTFORME_READONLY mode + SSRF/file-read hardening | β |
| Escape hatch | postforme_raw (any /v1 endpoint) | code execution |
| Companion skill | /postforme guided workflows | β |
Security
upload_media hardens remote fetches against SSRF (DNS resolution + public-unicast IP
validation, no redirects, size cap) and restricts local file reads to recognized media
extensions (optionally to POSTFORME_MEDIA_DIR). postforme_raw paths are validated to stay
on the versioned API surface. See REVIEW.md for the full audit.
License
MIT Β© Helbert Paranhos / Strat Academy