{
  "markdown": "# postforme-mcp-pro 📱\n\n> The most complete **Post for Me** MCP server — publish, schedule, edit, delete and analyze social posts across **9 platforms** from any MCP client.\n\n[![npm version](https://img.shields.io/npm/v/postforme-mcp-pro.svg?style=flat-square)](https://www.npmjs.com/package/postforme-mcp-pro)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE)\n[![GitHub Stars](https://img.shields.io/github/stars/helbertparanhos/postforme-mcp-pro?style=flat-square)](https://github.com/helbertparanhos/postforme-mcp-pro/stargazers)\n[![GitHub Forks](https://img.shields.io/github/forks/helbertparanhos/postforme-mcp-pro?style=flat-square)](https://github.com/helbertparanhos/postforme-mcp-pro/network/members)\n[![GitHub Issues](https://img.shields.io/github/issues/helbertparanhos/postforme-mcp-pro?style=flat-square)](https://github.com/helbertparanhos/postforme-mcp-pro/issues)\n[![Glama Quality](https://glama.ai/mcp/servers/helbertparanhos/postforme-mcp-pro/badges/score.svg)](https://glama.ai/mcp/servers/helbertparanhos/postforme-mcp-pro)\n\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Node.js](https://img.shields.io/badge/Node.js-339933?style=flat-square&logo=nodedotjs&logoColor=white)](https://nodejs.org/)\n[![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-000000?style=flat-square)](https://modelcontextprotocol.io/)\n[![Claude Code](https://img.shields.io/badge/Claude%20Code-D97706?style=flat-square)](https://claude.ai/code)\n[![Cursor](https://img.shields.io/badge/Cursor-Compatible-4F46E5?style=flat-square)](https://cursor.sh)\n[![Claude Desktop](https://img.shields.io/badge/Claude%20Desktop-Compatible-D97706?style=flat-square)](https://claude.ai/download)\n\n[![Instagram](https://img.shields.io/badge/@helbertparanhos-E4405F?style=flat-square&logo=instagram&logoColor=white)](https://www.instagram.com/helbertparanhos)\n[![YouTube](https://img.shields.io/badge/stratacademy-FF0000?style=flat-square&logo=youtube&logoColor=white)](https://www.youtube.com/@stratacademy)\n[![LinkedIn](https://img.shields.io/badge/helbert--paranhos-0077B5?style=flat-square&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/helbert-paranhos/)\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=flat-square&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/helbertparanhos)\n[![Strat Academy](https://img.shields.io/badge/Strat%20Academy-8B5CF6?style=flat-square)](https://stratacademy.com.br)\n\n`postforme-mcp-pro` wraps the [Post for Me](https://www.postforme.dev/) 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.\n\n**Platforms:** Instagram · Facebook · TikTok · YouTube · X · LinkedIn · Pinterest · Bluesky · Threads\n\n## Why this server\n\n- **27+ typed tools** — `create_post`, `schedule_post`, `publish_now`, `create_draft`, `upload_media`, `list_account_feeds`, `list_post_results`, account & webhook management, and more.\n- **High-level shortcuts** — `publish_now` / `schedule_post` / `create_draft` / `reschedule_post` / `upload_media` collapse common multi-step flows into one call.\n- **One-step media upload** — `upload_media` takes a local file path or a public URL, gets a signed URL, uploads the bytes, and hands back a `media_url` ready to attach.\n- **Per-platform tuning** — `platform_configurations` models Instagram Reels, X polls, TikTok privacy, YouTube visibility, etc., and stays permissive for new options.\n- **Readonly safety mode** — `POSTFORME_READONLY=true` blocks every write; great for analytics-only sessions.\n- **`postforme_raw`** — call any endpoint for 100% API coverage, even brand-new ones.\n- **Resilient client** — Bearer auth, retries on 429/5xx with backoff, actionable error messages.\n\n## Install\n\n```bash\nnpm install\nnpm run build\n```\n\nOr run published (after release) without cloning:\n\n```bash\nnpx -y postforme-mcp-pro\n```\n\n## Configuration\n\nCopy `.env.example` → `.env` and set your key:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `POSTFORME_API_KEY` | ✅ | Your Post for Me API key (Dashboard → Settings → API Keys). |\n| `POSTFORME_BASE_URL` | — | Override the API base URL for self-hosted/open-source deployments. Default `https://api.postforme.dev`. |\n| `POSTFORME_READONLY` | — | `true` blocks all write tools (only reads + `postforme_raw` GET run). |\n| `POSTFORME_DISABLE_RAW` | — | `true` removes the `postforme_raw` tool. |\n| `POSTFORME_TIMEOUT_MS` | — | Per-request timeout (default `60000`). |\n| `POSTFORME_MAX_RETRIES` | — | Max retries on 429/5xx/network (default `3`). |\n\n## Test locally\n\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\n## Add to Claude Code\n\n`.claude/settings.json` → `mcpServers`:\n\n```json\n\"postforme\": {\n  \"command\": \"node\",\n  \"args\": [\"projects/postforme-mcp-pro/dist/index.js\"],\n  \"env\": { \"POSTFORME_API_KEY\": \"pfm_xxx\" }\n}\n```\n\n## Add to Claude Desktop\n\n`%APPDATA%\\Claude\\claude_desktop_config.json` (Windows) / `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):\n\n```json\n\"postforme\": {\n  \"command\": \"node\",\n  \"args\": [\"/abs/path/projects/postforme-mcp-pro/dist/index.js\"],\n  \"env\": { \"POSTFORME_API_KEY\": \"pfm_xxx\" }\n}\n```\n\nCursor uses the same config shape in its MCP file.\n\n## Tools\n\n### Social accounts\n| Tool | Description |\n|------|-------------|\n| `list_social_accounts` | List connected accounts (filter by platform/username). |\n| `get_social_account` | Get one account by id. |\n| `create_social_account` | Connect an account by supplying credentials. |\n| `update_social_account` | Update stored credentials/metadata. |\n| `create_auth_url` | Start the OAuth connect flow (returns a URL). |\n| `disconnect_social_account` | Revoke access for an account. |\n| `list_account_feeds` | **Analytics:** recent feed + engagement metrics for an account. |\n\n### Posts\n| Tool | Description |\n|------|-------------|\n| `create_post` | Create a post (publish now, schedule, or draft) across accounts. |\n| `publish_now` | Shortcut: publish immediately. |\n| `schedule_post` | Shortcut: schedule for an ISO-8601 time. |\n| `create_draft` | Shortcut: save as draft. |\n| `get_post` | Get a post by id. |\n| `list_posts` | List posts (filter by status). |\n| `update_post` | Edit caption/media/accounts/schedule/config. |\n| `reschedule_post` | Shortcut: change a scheduled time. |\n| `delete_post` | Delete a post. |\n\n### Results & previews\n| Tool | Description |\n|------|-------------|\n| `list_post_results` | **Analytics:** per-platform publish outcomes. |\n| `get_post_result` | One post result by id. |\n| `create_post_preview` | Preview how a post renders per platform. |\n\n### Media\n| Tool | Description |\n|------|-------------|\n| `create_media_upload_url` | Get a signed upload URL (2-step flow). |\n| `upload_media` | **One-step:** upload a local file or remote URL → returns `media_url`. |\n\n### Webhooks\n| Tool | Description |\n|------|-------------|\n| `list_webhooks` · `get_webhook` · `create_webhook` · `update_webhook` · `delete_webhook` | Manage event subscriptions. |\n\n### Escape hatch\n| Tool | Description |\n|------|-------------|\n| `postforme_raw` | Call any `/v1/...` endpoint directly (method, path, params, body). |\n\n## Companion skill\n\n`/postforme` (in [`skill/SKILL.md`](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.\n\n## Example\n\n```\nYou: post \"Lançamos a v2 🚀\" no instagram e no x, com a imagem ./hero.png\n→ list_social_accounts            (get the instagram + x account ids)\n→ upload_media { file_path: \"./hero.png\" }   → media_url\n→ create_post_preview             (optional, confirm look)\n→ publish_now { social_accounts: [...], caption: \"...\", media: [{ url: media_url }] }\n→ list_post_results               (report success/links per platform)\n```\n\n## Comparison with the official MCP\n\n| | postforme-mcp-pro | official `post-for-me-mcp` |\n|---|---|---|\n| Tool model | **27 typed tools**, one per operation | 2 tools (doc-search + code-execution sandbox) |\n| Calls | Direct tool calls | Model must write SDK code in a sandbox |\n| Shortcuts | `publish_now` / `schedule_post` / `create_draft` / `upload_media` | — |\n| Safety | `POSTFORME_READONLY` mode + SSRF/file-read hardening | — |\n| Escape hatch | `postforme_raw` (any `/v1` endpoint) | code execution |\n| Companion skill | `/postforme` guided workflows | — |\n\n## Security\n\n`upload_media` hardens remote fetches against SSRF (DNS resolution + public-unicast IP\nvalidation, no redirects, size cap) and restricts local file reads to recognized media\nextensions (optionally to `POSTFORME_MEDIA_DIR`). `postforme_raw` paths are validated to stay\non the versioned API surface. See [REVIEW.md](REVIEW.md) for the full audit.\n\n## License\n\nMIT © Helbert Paranhos / Strat Academy\n",
  "bytes": 9260,
  "sha": "4a48012eed6feb165b4bfc2a26a6f5178f7982ea79bc301fbf2617d17f73b2e4",
  "repo_slug": "helbertparanhos/postforme-mcp-pro",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_helbertparanhos_postforme_mcp__b42003a5/readme"
}