Instagram MCP server: let Claude or any agent post to Instagram

Add 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

  1. 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.

  2. 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).

  3. Connect Instagram

    Ask "connect my Instagram". The agent calls create_connect_link and 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.

  4. Give the post a photo or a video

    Instagram refuses text-only posts. Pass a public https link as photo_url or video_url, or ask for an upload link: create_upload_link returns a 24-hour page where you pick the file on any device (JPG, PNG, WebP, GIF, MP4, MOV or WebM, up to 1 GB), and get_uploaded_file hands its media_url to the post. Chat attachments never reach an MCP server, so this is how a file on your phone gets there.

  5. Let PostWire write the caption

    "Write an Instagram caption for this, and a LinkedIn post too." generate_posts returns 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.

  6. Publish, or schedule it

    After you approve the draft, the agent calls post_to_social (or schedule_post with a run_at time, or "next_slot" for your next free queue slot). Two or more items in media make 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" }
        ]
      }
    }
  7. 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 processing and PostWire publishes it on its own a few minutes later; get_post_status or list_scheduled_posts shows 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.

ServerEndpointSign-inFree to startCheapest paid planWrites the caption
PostWirehttps://postwire.io/api/mcpOAuth 2.1 or API keyFree 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 postYes — generate_posts writes the Instagram version and each other network's from one idea
Upload-Postmcp.upload-post.com/mcpOAuth or API keyFree plan: 2 profiles, 10 uploads a month$24/mo — 5 profilesNot listed
Blotatomcp.blotato.com/mcpOAuth (Claude) or API key headerNo — its 7-day trial excludes API and MCP access$29/mo — 20 accountsNot listed
Zerniomcp.zernio.com/mcpOAuth or API keyFirst 2 connected accounts free$6 per account a month after 2Not 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_posts turns 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.
Sources, all read on Oct 6, 2026:

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.