Half the social posts on the internet get drafted in ChatGPT anyway, then copied into some scheduler tab by hand. The copy-paste step is the silly part, and a custom connector removes it: ChatGPT talks to planpo.st directly and the draft becomes a scheduled post in the same conversation.
Free plan, no card: 2 accounts, 30 posts a month, your agent included. X needs a paid plan.
Connect ChatGPT
Sign in, no key
Settings -> Connectors -> Create
Name: PlanPost
MCP URL: https://mcp.planpo.st/mcp
Auth: OAuth
ChatGPT sends you to planpo.st to log in and allow access.You sign in, there is no key to paste. Its posts go out at the time the agent sets, unless you turn on approval when you connect.
It works over MCP, the same protocol Claude and Cursor use, pointed at our hosted endpoint. Nothing to install, and you sign in rather than paste a key.
ChatGPT supports remote MCP servers through custom connectors, depending on plan and settings. It connects to hosted servers only, so this is the one client where the local npx option does not apply, and our hosted endpoint is the way in.
Plain requests work. Each one below is something you could send today, and what happens next.
You say
I want to post daily about my app launch this week. Draft 5 posts for X and LinkedIn in my usual tone and schedule them 9am each day.
What happens
ChatGPT drafts ten pieces of copy, sizes them per network, and calls create_post for each with the right slot. The whole launch week sits in the queue before the conversation ends.
You say
How much revenue came in this month?
What happens
The connector calls get_revenue_overview and answers with the month's total, the conversions and the change from last month. On Pro the Revenue screen shows which post each payment came from.
You say
Move everything scheduled for Friday to Monday morning, we slipped the release.
What happens
list_posts finds Friday's queue, update_post moves each one, and the agent reads the new schedule back. A minute of chat instead of dragging six posts around a calendar.
You say
Make a group called English Pages with my English LinkedIn, X and Threads accounts.
What happens
create_account_group bundles the three connections. After that, "post this to English Pages" resolves through get_account_group to the right IDs in one step.
You say
I want to add my YouTube channel.
What happens
get_connection_link returns a URL. OAuth needs a person at a browser, so ChatGPT hands you the link, you approve on Google's side, and list_connections shows the channel afterwards.
You say
Yesterday's Instagram post failed. Why?
What happens
get_post returns the post with a result per network, and get_delivery_report the error and the fix in words. If the fix needs you, such as reconnecting the account, ChatGPT hands you the link from get_connection_link.
All 7 that planpo.st publishes to. Each network has its own rules, and each pairing has its own page with the settings table, three prompts and the limits that stop a post.
Short posts, 500 characters, one image or video, clickable links.
A quick one. Ask ChatGPT for five Threads posts from a single idea and have them spread across the week.
Profile or company page, 3,000 characters, up to 9 images or one video.
ChatGPT drafts the LinkedIn post in the tone you have taught it, then creates it on the right connection, profile or company page.
Feed posts, carousels up to 10, Reels and Stories. Media on every post.
ChatGPT works through the hosted endpoint and cannot reach your files, so Instagram posts use photos you have already uploaded to planpo.st, with the caption written in the chat.
Posts and threads, 280 characters, images or video, no links.
If your drafts already happen in ChatGPT, the scheduling can happen there too. It writes the X version without a link, because planpo.st rejects links on X, and books the slot.
Page posts with link cards, photo sets, video and Reels.
ChatGPT writes the Page post and schedules it. Paste the link and Facebook builds the preview card from the first URL in the text.
Video uploads and Shorts with title, description, tags and visibility.
ChatGPT is good at titles and descriptions and has no way to upload your video, so the file goes in through the dashboard and the metadata comes from the chat.
Video posts, 2,200 character captions, a privacy level on every post.
Use ChatGPT for the captions and the schedule. The video has to be in your library already, and you have to say who can see it.
The same list on the hosted and the local server. Grouped by the job they do, with the ones ChatGPT reaches for most:
| Job | Tools | What that covers |
|---|---|---|
| Posts and scheduling | create_post, bulk_create_posts, update_post, preview_post, get_best_times, suggest_schedule | Draft, schedule and reschedule, one post or up to 50 in a call. Each network can get its own text, media and settings, and every post can wait for your approval if you turn that on. |
| What is queued and what failed | list_posts, get_post, list_campaigns, get_delivery_report, retry_failed, list_pending_approvals | Filter the queue by status, network or campaign. Failed posts come back with the error and the fix, and a passing failure can be sent again. |
| Analytics | get_analytics | Impressions, likes, comments and shares for published posts, on Creator and Pro. |
| Revenue | get_revenue_overview | Revenue totals, conversions and the trend from Stripe, Shopify or RevenueCat, on Creator and Pro. Revenue next to each post is on Pro. |
| Accounts | list_connections, get_connection_link, list_account_groups, get_account_group | Find the accounts to post to, and hand you the link to connect a new one. |
Every tool with its description is in the MCP tool reference.
Turn on approval. By default ChatGPT's posts go out at the time it sets. Switch on “Ask me before anything goes live” when you connect it, or any time on the Agent page, and every post it writes waits in Posts, under In review, until you approve it. With an API key, the switch is “Require approval before publishing”, in the key's row on the Agent page. ChatGPT cannot change either setting itself.
Ask for drafts, if you want less than that. A post created without a time is a draft, and nothing leaves planpo.st until it is scheduled.
Scope the key. With an API key, permissions such as posts:read and posts:write decide what it can touch, so a key without posts:write lets ChatGPT read the calendar and the numbers and change nothing.
It finds out when the post is created, not two weeks later when the slot arrives. Every post is checked against the rules of each network it targets: character limits, required media, the X rule against links, a TikTok privacy level, a connection that has lapsed.
A post that breaks one is saved as a draft and the tool result lists each issue with a code, the network and the fix in words. ChatGPT reads that, corrects the post with update_post, and it goes back on the schedule. Softer problems, such as a caption link that will not be clickable on Instagram or a missing YouTube title, come back as warnings and do not block anything.
When a post reaches some of its networks and fails on one, its status is partially_published, with a result per network, so a post is never reported as published while one network refused it.
Partly, and the rest is in the app. ChatGPT can read your revenue totals, the conversions and the trend through get_revenue_overview, on Creator and Pro. Which post each payment came from is on Pro, on the app's Revenue screen: links in your posts are tracked, and a payment from Stripe, Shopify or RevenueCat that follows a click is matched to the post that caused it.
It takes about a minute. Connects through custom connectors. Availability depends on your ChatGPT plan and whether developer mode is enabled. No API key is needed: add the hosted endpoint and sign in to planpo.st when the browser opens. With a key instead, add the server over the hosted endpoint and the tools appear.
Settings -> Connectors -> Create
Name: PlanPost
MCP URL: https://mcp.planpo.st/mcp
Auth: OAuth
ChatGPT sends you to planpo.st to log in and allow access.Settings -> Connectors -> Create
Name: PlanPost
MCP URL: https://mcp.planpo.st/mcp
Auth: Custom header
Header: Authorization
Value: Bearer pk_live_xxxFor ChatGPT there is one way in, the hosted endpoint as a custom connector. Nothing runs on your machine. You sign in once, and the endpoint keeps no session between requests.
| Question | Hosted HTTP | Local npm (stdio) |
|---|---|---|
| What it is | Streamable HTTP to https://mcp.planpo.st/mcp | Not available in ChatGPT |
| What you install | Nothing | Not available in ChatGPT |
| How it signs in | You sign in to planpo.st in the browser, or send an API key in a header | Not available in ChatGPT |
| Tools you get | All of them; signed in, all but image generation | Not available in ChatGPT |
| Updates | Server side, nothing to do | Not available in ChatGPT |
| Choose it when | You want it working in a minute | Not available in ChatGPT |
Both reach the same tools, so switching later is a config change and nothing else. The ChatGPT setup guide has every variant.
Free plan, no card: 2 accounts, 30 posts a month, your agent included. X needs a paid plan.