Instagram MCP server: let Claude or any agent post to Instagram
https://postwire.io/api/mcp to your agent as a remote MCP server, connect your Instagram Business or Creator account once, and the agent can publish a photo, a Reel or a carousel of up to 10 items with post_to_social, or queue it with schedule_post. PostWire posts through Meta's official Instagram API with its own approved app, so you need no Meta developer app, and Log in with Instagram works without a Facebook Page. The free plan includes Instagram and the MCP server: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card.What the agent sends decides the format: one photo is a feed post, one video is a Reel, two to ten items are a carousel. PNG images are converted to JPEG for you, because Instagram's API takes JPEG only.
Updated . Written from PostWire's own code; vendor prices read on Oct 6, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
Set it up and post, step by step
- Add PostWire's MCP server to your agent
In Claude, open PostWire in the connector directory and press Connect. Anywhere else, add the remote server
https://postwire.io/api/mcp(Streamable HTTP; OAuth sign-in or an API key) — in Claude Code:claude mcp add --transport http postwire https://postwire.io/api/mcp. Cursor, VS Code, Windsurf, Codex and Gemini CLI configs: MCP client configs. - Sign in with your email
The first time the agent uses a PostWire tool, a sign-in window asks for your email and a 6-digit code; that also creates a free PostWire account if you have none. No password and no card. Agents that cannot do OAuth send an API key instead (dashboard → API & MCP → Copy key).
- Connect Instagram
Ask "connect my Instagram". The agent calls
create_connect_linkand gives you a one-hour link; open it and choose Log in with Instagram (no Facebook Page needed) or connect through a Facebook Page you manage. Instagram's API publishes only from Business or Creator accounts — switching a personal account is done in the Instagram app's settings. PostWire never sees your password. - Give the post a photo or a video
Instagram refuses text-only posts. Pass a public https link as
photo_urlorvideo_url, or ask for an upload link:create_upload_linkreturns a 24-hour page where you pick the file on any device (JPG, PNG, WebP, GIF, MP4, MOV or WebM, up to 1 GB), andget_uploaded_filehands itsmedia_urlto the post. Chat attachments never reach an MCP server, so this is how a file on your phone gets there. - Let PostWire write the caption
"Write an Instagram caption for this, and a LinkedIn post too."
generate_postsreturns one draft per network and publishes nothing. Instagram's draft follows Reels rules — a hook in the first line, a short caption, at most 5 hashtags at the end — within Instagram's 2,200-character limit. - Publish, or schedule it
After you approve the draft, the agent calls
post_to_social(orschedule_postwith arun_attime, or"next_slot"for your next free queue slot). Two or more items inmediamake a carousel:{ "name": "post_to_social", "arguments": { "platforms": ["instagram"], "per_platform": { "instagram": { "text": "3 onboarding fixes 👇 …" } }, "media": [ { "url": "https://postwire.io/m/…/slide-1.png", "type": "image" }, { "url": "https://postwire.io/m/…/slide-2.jpg", "type": "image" }, { "url": "https://postwire.io/m/…/demo.mp4", "type": "video" } ] } } - Check that it went out
Instagram processes video before it can be published. If it takes longer than the call can wait, the result says
processingand PostWire publishes it on its own a few minutes later;get_post_statusorlist_scheduled_postsshows when it is live.
Stories and trial reels are set through the REST API today: POST /api/post with "options": {"instagram": {"post_type": "story"}} for a Story (Instagram's API takes no caption on Stories), or {"trial_reel": true} to show a Reel first to people who don't follow you; if the account cannot use trial reels, PostWire posts it as a normal Reel.
Instagram MCP servers, side by side
Each vendor's endpoint, sign-in and price, read on its own Instagram MCP page on Oct 6, 2026.
| Server | Endpoint | Sign-in | Free to start | Cheapest paid plan | Writes the caption |
|---|---|---|---|---|---|
| PostWire | https://postwire.io/api/mcp | OAuth 2.1 or API key | Free plan: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card | $9/mo — 3 businesses, every network in each post | Yes — generate_posts writes the Instagram version and each other network's from one idea |
| Upload-Post | mcp.upload-post.com/mcp | OAuth or API key | Free plan: 2 profiles, 10 uploads a month | $24/mo — 5 profiles | Not listed |
| Blotato | mcp.blotato.com/mcp | OAuth (Claude) or API key header | No — its 7-day trial excludes API and MCP access | $29/mo — 20 accounts | Not listed |
| Zernio | mcp.zernio.com/mcp | OAuth or API key | First 2 connected accounts free | $6 per account a month after 2 | Not listed |
Checked on Oct 6, 2026 (2026-10-06) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.
Where PostWire is ahead
- The caption is written for you, and so is every other network's version:
generate_poststurns one idea into an Instagram caption, a TikTok caption, a YouTube title and a LinkedIn post in one call. - The MCP server is on the free plan, without a card. Blotato's MCP access is not part of its 7-day trial.
- Instagram plus nine more networks in the same call: TikTok, YouTube, LinkedIn, Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
- PNG straight from an image model works: PostWire converts it to the JPEG Instagram requires.
- Approvals on every paid plan (from $9 a month): a post can wait until a person approves each network's version.
- Upload-Post — Instagram MCP server: www.upload-post.com/mcp/instagram/
- Upload-Post plans and free plan (llms-full.txt): www.upload-post.com/llms-full.txt
- Blotato — Instagram MCP server (price, trial, endpoint): www.blotato.com/mcp/instagram
- Zernio — Instagram MCP server (price, endpoint): zernio.com/instagram-mcp
- Meta — Instagram content publishing (100 API posts per 24 h, carousels count as one, JPEG only, 10 items): developers.facebook.com/docs/instagram-platform/content-publishing
Instagram's rules the agent works within
- Account: Instagram Business or Creator. Personal accounts cannot publish through the API.
- Media: every post needs a photo or a video. Images must be JPEG for Meta; PostWire converts PNG and other stills to JPEG at publish time, so AI-generated PNGs and screenshots work as they are.
- Carousels: 2 to 10 images, videos or a mix; Meta crops every slide to the first one's aspect ratio.
- Caption: up to 2,200 characters; Stories carry no caption through the API.
- Volume: Meta allows 100 API-published posts per account in a rolling 24 hours, and a carousel counts as one. Your PostWire plan's monthly posts apply too (Free 20, Starter 1,000).
Sources: Meta's content publishing guide (read Oct 6, 2026) and PostWire's Instagram publisher. More on the API itself: Does Instagram have an API?
What it does not do
PostWire publishes, schedules and reports how your own posts did (get_post_performance ranks your Instagram posts against your account's median, from the likes and replies Instagram reports). It does not read or answer comments or DMs, and it does not read other people's accounts.
Questions people ask
Is there an MCP server for Instagram?
Yes. PostWire's hosted MCP server (https://postwire.io/api/mcp) publishes photos, Reels and carousels of up to 10 items to an Instagram Business or Creator account, from Claude, ChatGPT, Cursor or any MCP client. It is in Claude's connector directory.
Do I need a Facebook Page or a Meta developer app?
No developer app: you connect to PostWire's approved Meta app. No Facebook Page either if you choose Log in with Instagram; the account must be a Business or Creator account.
Can the agent post Reels, carousels and Stories?
Reels and carousels, yes, through the MCP tools: one video is a Reel and 2 to 10 items are a carousel. Stories and trial reels are set through the REST API today (options.instagram.post_type "story", or trial_reel true).
Will it publish without asking me?
Not in Claude: generate_posts only writes drafts, and the tools that publish ask for your confirmation. Every agent sees the exact text and networks before it calls post_to_social.
How many Instagram posts can it publish a day?
Meta allows 100 API-published posts per account in a rolling 24 hours, a carousel counting as one. PostWire's plan limits are monthly: 20 posts on Free, 1,000 on Starter, 10,000 on Pro.
Can it answer Instagram comments or DMs?
No. PostWire publishes and schedules posts and reports how your own posts performed; it does not read or reply to comments or messages.
How much does it cost?
The free plan includes Instagram and the MCP server: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.
Try it on one business, free.
The free plan is 1 business, 20 posts a month, 5 AI drafts a day and 2 networks per post — every network connects free, no card, no time limit. Paid plans start at $9 a month and have a 14-day refund; after your first published post, Pro can be tried free for 3 days.