Schedule and publish social media posts to 10 platforms from your AI agent
One address for any MCP client. You sign in at www.post-bridge.com once, after adding it.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Odel could not list its tools without signing in.
Give your AI agent the ability to post to 10 social media platforms from a single command.
Supports: Instagram, TikTok, YouTube, X (Twitter), LinkedIn, Facebook, Pinterest, Threads, Bluesky, Google Business
Built on the Post Bridge API. Post Bridge is a social media scheduling tool used by 1,500+ creators and teams to post everywhere from one place.
This repo is also a portable Agent Plugin (spec 1.0.0), the open packaging standard from Amazon, Cursor, Microsoft, OpenAI, and Vercel. Root plugin.json + mcp.json + skills/ mean any compatible client (Cursor, VS Code, and more as they adopt it) can load the post bridge skill and connect to the hosted MCP server from this one package. Claude Code keeps using .claude-plugin/ as before; both formats live side by side.
Skills are markdown files that give AI agents specialized knowledge and workflows for specific tasks. Add this to your project and your AI agent will be able to create, schedule, and publish social media content across 10 platforms.
npx skills add post-bridge-hq/agent-mode
This installs the skills and makes the postbridge-cli CLI available to your agent.
Two skills ship in this repo:
| skill | what it does |
|---|---|
post-bridge | Create, schedule and manage posts across 10 platforms via the Post Bridge API |
b2c-organic-social-media-marketing | Organic growth coach for B2C apps on TikTok and Instagram, the system behind 500M+ views and 130K+ downloads with no ad spend |
Install just one with --skill:
npx skills add post-bridge-hq/agent-mode --skill b2c-organic-social-media-marketing
The CLI is published standalone on npm — no install required, npx fetches it on first use:
npx postbridge-cli setup --key pb_live_xxxxx
npx postbridge-cli accounts
Requires Node.js 18+. Install globally with npm i -g postbridge-cli if you'd rather drop the npx prefix.
Claude Code Plugin:
Add the marketplace and install:
/plugin marketplace add post-bridge-hq/agent-mode
/plugin install post-bridge@post-bridge
Or load locally for development:
claude --plugin-dir ./agent-mode
Cursor:
https://github.com/post-bridge-hq/agent-mode.gitManual:
Clone this repository and copy skills/post-bridge/ to your project's .cursor/skills/ or .claude/skills/ directory.
npx postbridge-cli setup --key pb_live_xxxxx
Tip: You can also set the API key as an environment variable instead of running
setup:export POST_BRIDGE_API_KEY=pb_live_xxxxx(add it to~/.zshrc/~/.bashrcto persist).
Ask your AI agent things like:
# List your connected accounts
npx postbridge-cli accounts
# Post to specific accounts
npx postbridge-cli post --caption "Hello world!" --accounts 1,2,3
# Schedule a post (specific UTC time)
npx postbridge-cli post --caption "Morning post" --accounts 1,2 --schedule "2026-06-20T14:00:00Z"
# Or auto-schedule to your next queue slot
npx postbridge-cli post --caption "Morning post" --accounts 1,2 --use-queue
# Upload media and post with it
npx postbridge-cli upload --file ./video.mp4
npx postbridge-cli post --caption "Check this out" --accounts 1,2,3 --media mid_xxx
# Check analytics, then per-day numbers for one post
npx postbridge-cli analytics
npx postbridge-cli analytics:daily --id <analytics_id>
# File is on someone else's device? Mint a 24h drop page, then list media for the id
npx postbridge-cli upload-link
# Per-platform options, e.g. YouTube title + tags and a TikTok inbox draft
npx postbridge-cli post --caption "New video" --accounts 1,2 --media mid_xxx \
--platform-config '{"youtube":{"title":"My video","tags":["cooking","easy recipes"]},"tiktok":{"draft":true}}'
# Every command and flag
npx postbridge-cli help
Some platforms can't publish a text-only post and will fail without an image or video:
| Platform | Media | Accepts |
|---|---|---|
| YouTube | Required | exactly 1 video |
| TikTok | Required | 1 video, or one+ images (photo post) |
| Required | 1–10 images/videos; story = exactly 1; no PDFs | |
| Required | 1-5 images (2+ publishes as a carousel; all images must share one aspect ratio) or 1 video | |
| X (Twitter) | Optional | up to 4 images, or 1 video |
| Optional | 1 video, or one+ images | |
| Optional | up to 20 images, or 1 video, or 1 PDF | |
| Threads | Optional | up to 20 images/videos |
| Bluesky | Optional | up to 4 images, or 1 video |
| Google Business | Optional | text or a single image; no video |
You can create a post without media and add it later with posts:update — but it won't publish to a media-required platform until the media exists.
Run the setup command:
npx postbridge-cli setup --key pb_live_xxxxx
Or set the environment variable manually:
export POST_BRIDGE_API_KEY=pb_live_xxxxx
To persist across sessions, add it to your shell profile (~/.bashrc, ~/.zshrc, etc.).
The CLI is a zero-dependency Node.js script and requires Node.js 18+ (for built-in fetch). Install a recent Node.js version, then retry.
Each platform posts independently. If one fails, the others still go through. Use npx postbridge-cli results --post-id <id> to see per-platform status and error details.
Post Bridge also runs a hosted MCP server, so MCP-compatible clients (Claude, ChatGPT, Cursor, and other agents) can connect directly — no CLI, no install.
https://www.post-bridge.com/api/mcp/mcp (streamable HTTP)pb_live_... key as a Bearer token, see below.)Claude or ChatGPT (one-click, OAuth): add a custom connector / app using the endpoint URL above, sign in to Post Bridge, and authorize. Leave any OAuth client ID/secret blank — the server registers the client automatically.
Claude Desktop (via mcp-remote) — add to claude_desktop_config.json:
{
"mcpServers": {
"post-bridge": {
"command": "npx",
"args": [
"mcp-remote",
"https://www.post-bridge.com/api/mcp/mcp",
"--header",
"Authorization: Bearer pb_live_your_api_key_here"
]
}
}
}
Claude Code / other HTTP MCP clients — add to ~/.claude/settings.json:
{
"mcpServers": {
"post-bridge": {
"type": "http",
"url": "https://www.post-bridge.com/api/mcp/mcp",
"headers": { "Authorization": "Bearer pb_live_your_api_key_here" }
}
}
}
list_social_accounts, create_post, update_post, get_post, list_posts, delete_post, list_post_results, upload_media, request_upload_link, list_media, delete_media, list_analytics, get_analytics_daily, sync_analytics
Full setup guide and tool reference: post-bridge.com/mcp/docs
MIT