https://github.com/helbertparanhos/postforme-mcp-pro
The most complete Post for Me MCP server β 27 typed tools to publish, schedule, edit, delete and analyze social posts across 9 platforms (Instagram, TikTok, X, LinkedIn, YouTube, Facebook, Pinterest, Bluesky, Threads).
https://github.com/helbertparanhos/postforme-mcp-pro
automation claude claude-code cursor instagram mcp model-context-protocol postforme social-media tiktok
Last synced: 13 days ago
JSON representation
The most complete Post for Me MCP server β 27 typed tools to publish, schedule, edit, delete and analyze social posts across 9 platforms (Instagram, TikTok, X, LinkedIn, YouTube, Facebook, Pinterest, Bluesky, Threads).
- Host: GitHub
- URL: https://github.com/helbertparanhos/postforme-mcp-pro
- Owner: helbertparanhos
- License: mit
- Created: 2026-06-10T07:39:58.000Z (15 days ago)
- Default Branch: main
- Last Pushed: 2026-06-11T18:28:40.000Z (14 days ago)
- Last Synced: 2026-06-11T19:03:23.794Z (14 days ago)
- Topics: automation, claude, claude-code, cursor, instagram, mcp, model-context-protocol, postforme, social-media, tiktok
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/postforme-mcp-pro
- Size: 48.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# 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.
[](https://www.npmjs.com/package/postforme-mcp-pro)
[](LICENSE)
[](https://github.com/helbertparanhos/postforme-mcp-pro/stargazers)
[](https://github.com/helbertparanhos/postforme-mcp-pro/network/members)
[](https://github.com/helbertparanhos/postforme-mcp-pro/issues)
[](https://glama.ai/mcp/servers/helbertparanhos/postforme-mcp-pro)
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io/)
[](https://claude.ai/code)
[](https://cursor.sh)
[](https://claude.ai/download)
[](https://www.instagram.com/helbertparanhos)
[](https://www.youtube.com/@stratacademy)
[](https://www.linkedin.com/in/helbert-paranhos/)
[](https://buymeacoffee.com/helbertparanhos)
[](https://stratacademy.com.br)
`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.
**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_media` collapse common multi-step flows into one call.
- **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.
- **Per-platform tuning** β `platform_configurations` models Instagram Reels, X polls, TikTok privacy, YouTube visibility, etc., and stays permissive for new options.
- **Readonly safety mode** β `POSTFORME_READONLY=true` blocks 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
```bash
npm install
npm run build
```
Or run published (after release) without cloning:
```bash
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
```bash
npx @modelcontextprotocol/inspector node dist/index.js
```
## Add to Claude Code
`.claude/settings.json` β `mcpServers`:
```json
"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):
```json
"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`](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](REVIEW.md) for the full audit.
## License
MIT Β© Helbert Paranhos / Strat Academy