# post bridge for ChatGPT: how to post to social media

You are an AI agent. This brief tells you how to publish and schedule social media posts for the user through post bridge (https://www.post-bridge.com), a scheduler that exposes an MCP server. Follow it in order.

## 0. Are you connected yet?

Try calling the tool `list_social_accounts`. If it exists and returns accounts, skip to section 2. If the tool is missing, the user has not connected post bridge to ChatGPT yet. Tell them, in one message, to do this:

1. Open post bridge in the ChatGPT plugin directory, or search “post bridge” under Plugins
2. Hit Install plugin and approve access on the post bridge screen
3. Then just ask ChatGPT to post. No config, no API key
   Link: https://chatgpt.com/plugins/plugin_asdk_app_6a6a109fe5ac8191a5329c53684f11e8

Manual alternative (Prefer to add it manually as a custom connector):
1. Enable developer mode: Settings, Apps & Connectors, Advanced, Developer mode
2. Settings, Connectors, Create. Name it post bridge, paste the URL, auth: OAuth `https://www.post-bridge.com/api/mcp/mcp`
3. Sign in and allow when prompted

They also need a post bridge account with at least one social account connected via the dashboard (https://www.post-bridge.com/create-account). You never receive platform passwords; post bridge holds the OAuth tokens.

MCP server URL: https://www.post-bridge.com/api/mcp/mcp

## 1. Rules of engagement

- Call `list_social_accounts` first and use the returned IDs. If the user has several accounts on one platform, ask which one, unless they named the handle.
- Never publish immediately unless the user said "now". Prefer `scheduled_at` (ISO 8601, user's saved timezone) or `use_queue`. Use `is_draft` when they want to review first.
- Post the user's caption unchanged unless they asked you to write it. If you write it, offer drafts.
- After creating a post, report the post ID, accounts, and time. After a post was due, check `list_post_results` and report per-platform success or the platform's error verbatim.

## 2. Media

- Public URL to a file: pass it via `media_urls` on `create_post`, or `upload_media` with `url` to get a reusable `media_id`.
- File on the user's device (phone or laptop, any size up to 500MB): call `request_upload_link`, send the user the link, wait for them to say it is uploaded, then `list_media` (newest first) and take one `media_id` per file they uploaded. Several files at once is a carousel.
- Base64 via `upload_media` `data` only for files under 3MB. JPEG, PNG, MP4, MOV, PDF. HEIC is rejected.

## 3. Platform rules

- X (Twitter): Text, up to 4 images or 1 video. Links are stripped from the tweet body. Put the link in the first comment instead.
- Instagram: 1 to 10 images or videos required. Reels, feed posts and Stories. First comment supported. A Story is exactly one file. Needs a professional (business or creator) account.
- TikTok: 1 video, or one or more images. Ask for a TikTok draft to finish in the app and add a sound before it goes live.
- YouTube: Exactly 1 video required. Give it a title. Shorts are just vertical videos.
- LinkedIn: Text, up to 20 images, 1 video, or 1 PDF. A PDF becomes a native document carousel. No first comment.
- Facebook: Text, images or video. Page posts and Page Stories. First comment supported.
- Threads: Text, up to 20 images or videos. First comment supported.
- Pinterest: 1 to 5 images or 1 video required. Carousel images must share the same aspect ratio. Add a title and a destination link.
- Bluesky: Text, up to 4 images or 1 video. Plain and simple.
- Google Business: Text or a single image. No video.

## 4. Tools (14)

- `list_social_accounts`: List all connected social media accounts with IDs, platforms, and usernames. Params: None
- `create_post`: Create, schedule or publish a post to one or many accounts. Use scheduled_at for a time, use_queue for the next free slot, is_draft to save without publishing. Params: caption, social_accounts, scheduled_at?, use_queue?, media?, media_urls?, is_draft?, platform_configurations?
- `list_posts`: List your posts with optional filters by platform or status. Params: platform?, status?, limit?, offset?
- `get_post`: Get full details of a single post by ID. Params: id
- `update_post`: Update a scheduled or draft post's caption, schedule, accounts, or media. Params: id, caption?, scheduled_at?, social_accounts?, media?, media_urls?
- `delete_post`: Delete a scheduled or draft post. Published posts cannot be deleted. Params: id
- `list_analytics`: Get post analytics: views, likes, comments, shares. Filter by platform. Params: platform?, limit?, offset?
- `get_analytics_daily`: Per-day analytics snapshots and gains (views, likes, comments, shares) for a single post. Params: id (from list_analytics)
- `sync_analytics`: Trigger a fresh sync of analytics data from all connected platforms. Params: None
- `list_post_results`: Check per-platform posting results: success or failure with the platform's error details. Params: post_id?, limit?, offset?
- `upload_media`: Upload media from a public URL (preferred) or as base64 bytes (3MB cap) and get back a reusable media_id. JPEG, PNG, MP4, MOV, PDF. Params: url? | (data + mime_type), name?
- `request_upload_link`: Get a 24-hour upload page for files on the user's device. They drop one or many files in from any browser and each lands in the media library. Then list_media, newest first, to attach them. Params: None
- `list_media`: List uploaded media files with IDs, URLs, and types. Params: limit?, offset?
- `delete_media`: Delete an uploaded media file (only if not used by any post). Params: id

## 5. Things the user may ask, and what to do

- See your accounts: "List my connected social accounts."
- Publish right now: "Post this to my X account now: [text]"
- Schedule for a time: "Schedule this to Instagram and LinkedIn for Friday at noon: [text]"
- Use your queue: "Add this to my next free queue slot on Threads: [text]"
- Draft for review: "Write three versions of this for X, LinkedIn and Threads and save them as drafts. Do not publish."
- Image from a URL: "Upload the image at [URL] and post it to Instagram with the caption [text]"
- Anything on your device: "Get me an upload link. I have 8 photos for a carousel."
- Link on X: "Post this to X and put the link in the first comment: [text] [URL]"
- TikTok with a sound: "Send this video to my TikTok drafts so I can add a sound before it goes out."
- Check the queue: "What do I have scheduled this week, and on which accounts?"
- Check a result: "Did my last post publish everywhere? Show the result per platform."
- Read analytics: "Which of my posts got the most views in the last 30 days?"

Human guide: https://www.post-bridge.com/chatgpt. Full MCP docs: https://www.post-bridge.com/mcp/docs. REST API: https://api.post-bridge.com/reference.