Guide
Instagram MCP: Let AI Agents Publish Posts & Reels
Connect Claude Code or Codex to Instagram through MCP. Follow the upload and scheduling workflow, compare options and troubleshoot common errors.
Cadenus · 10 September 2026 · 10 min read
An Instagram MCP server connects an AI agent to Instagram-related tools. For publishing, those tools let the agent upload media, select an account and schedule a post through a service that uses Meta's API. Your agent can take the caption and video it already created and put them into your publishing queue.
This guide focuses on posting with AI agents: connecting Claude Code or Codex, uploading a local file and scheduling an Instagram Reel with Cadenus Connect. Other Instagram MCP tools cover analytics, comments or messages, so check the actual actions before choosing a provider.
The quick answer
To automate Instagram posting with an AI agent, you need an eligible Instagram account, a publishing connection and an AI client allowed to use it. With Cadenus, connect your Instagram professional account, add https://app.cadenus.io/api/mcp to your agent and grant write access.
Cadenus Connect costs €19 a month for eight connected channels, with the MCP server, API and local-agent skill included. The trial lasts seven days and requires a card. Your AI assistant subscription or API usage is separate.
The walkthrough uses a local agent with file and shell access. A web-only chat cannot automatically read a video from your laptop; it needs a supported attachment or hosted-media route.
Connect Claude Code or Codex to Instagram
1. Connect the Instagram account
In Cadenus, open Settings → Connections and connect your Instagram professional account through the authorization flow. The agent receives access to Cadenus tools; you do not give it your Instagram password.
Have a short video and its caption ready in the agent's working folder. Use an account you control, check that the content is suitable to publish, and choose a future time. Scheduling is a real action: the post will go out when that time arrives.
2. Add the MCP server
For Claude Code, run this in your project terminal:
claude mcp add --transport http cadenus https://app.cadenus.io/api/mcp
Open Claude Code, enter /mcp, select Cadenus and authenticate. Choose write access for uploading and publishing. Read-only access lets the agent inspect connected channels but cannot schedule a post.
For Codex CLI, create a write token in Settings → API & MCP. Load it into CADENUS_TOKEN using your local secret-management method, then run:
codex mcp add cadenus \
--url https://app.cadenus.io/api/mcp \
--bearer-token-env-var CADENUS_TOKEN
Launch Codex from an environment that has that variable available. This configuration stores the variable's name rather than embedding the token in the example. Keep tokens out of prompts, screenshots and version control. See the developer setup guide for other connection options.
ChatGPT connection limit: Cadenus's /api/mcp-apps connection does not expose publishing or scheduling tools. Use the full /api/mcp server with a compatible client such as Claude Code or Codex for this walkthrough.
3. Check the connection before publishing
Ask the agent:
Use Cadenus to list my connected channels. Show the Instagram account names and whether each connection is active. Do not upload or publish anything.
The relevant tool is list_channels. Its response includes the account name, platform, connection state and caption limits. Copy the exact name into your publishing instruction. A platform selector such as instagram can select several accounts; use the individual handle when you mean one account.
If the tools are missing, reconnect the client. If the account is absent or disconnected, fix the Instagram connection in Cadenus before proceeding.
Schedule a Reel with an AI agent
Here is an example instruction for a local agent. Replace the illustrative handle, files and date with your own:
Schedule
launch-reel.mp4as an Instagram Reel to@studio.northonly, on 17 September 2026 at 09:00 Europe/Bucharest. Use the exact text incaption.txt. First check that the account is connected. Upload and validate the file, then schedule it once. Report the returned post ID, scheduled time and any errors. Do not describe a queued post as already published. If the request times out, stop and ask me to check the calendar before trying again.
You do not need to type the tool calls yourself. The sequence below explains what the agent needs to do so you can inspect its work. It is a request walkthrough checked against Cadenus's implementation, not a transcript of a live Instagram publication.
Upload the actual file
The agent reads the file's actual byte size and calls create_media_upload with its filename, content type and size_bytes. Cadenus returns a media_id and a signed upload_url. The direct-upload limit is 300 MB.
The agent then sends the raw bytes to that URL. This shell step transfers the file; the MCP request itself does not contain the video:
curl --fail-with-body --request PUT \
--header "Content-Type: video/mp4" \
--data-binary @launch-reel.mp4 \
"$UPLOAD_URL"
Here, UPLOAD_URL must be the signed URL returned by the tool. Treat it as temporary access to storage and keep it out of shared logs. Use the same content type when reserving the upload and sending the bytes.
After the upload succeeds, the agent calls confirm_media_upload with the returned media_id. Confirmation checks the media and returns a ref for the next call. Where supported, HEVC video is normalized to H.264. A failed confirmation means the agent must stop before scheduling.
Schedule to one named account
The agent calls publish_post with the confirmed media reference, the full contents of caption.txt, the exact handle and a timezone-aware when. Despite its name, this tool can schedule a future post.
This is the argument shape. Replace the uppercase placeholders with the actual caption and media reference:
{
"caption": "EXACT_CONTENTS_OF_CAPTION_FILE",
"channels": ["@studio.north"],
"media": ["REF_FROM_CONFIRM_MEDIA_UPLOAD"],
"post_type": "reel",
"when": "2026-09-17T09:00:00+03:00"
}
Use the UTC offset appropriate to your chosen date. A fixed +03:00 offset does not automatically adjust when Bucharest switches to winter time. For an image feed post, upload the image with its correct content type and set post_type to post.
Check what was actually scheduled
The response contains scheduled entries with a post_id, an errors list and the requested when. Check both lists: a request targeting several accounts can succeed for some destinations and fail for others.
At this stage, success means accepted into the queue. Open the Cadenus publishing calendar, check the account, media, caption and time, and inspect the final status after the scheduled time. A queued response alone does not prove that Instagram accepted the media or that the post is live.
One current integration detail matters here: the direct tool returns publishing post IDs, while get_post_result takes a draft ID. Those identifiers are not interchangeable. This walkthrough therefore uses the publishing calendar for final verification rather than promising an automatic live-link lookup through that tool.
Fix the common failures
| What you see | What to check next |
|---|---|
| Tools are missing | Check the MCP URL and reconnect. The ChatGPT apps connection does not include publishing tools. |
| A read-only error | Grant write access or replace the read token with a write token. |
| The account is missing | Reconnect Instagram and run list_channels again. |
| The agent cannot read the video | Give the local agent file access, or use an appropriate hosted-media route. |
| Upload or confirmation fails | Check file size, signed URL expiry and matching content type. Do not schedule an unconfirmed file. |
| The time is wrong | Specify the date and UTC offset, including daylight-saving changes. |
| The publishing request times out | Inspect the calendar before retrying; the first request may already have created a post. |
For video preparation, see Instagram Reels size and dimensions. If you prefer to schedule manually, our Instagram scheduling guide covers that workflow.
Which Instagram MCP option fits your workflow?
Cadenus is one option, and we publish this guide. The comparison uses providers' documented capabilities checked on 10 September 2026; it is not a hands-on benchmark of every service.
| Option | Best fit | Documented capability | Check before choosing |
|---|---|---|---|
| Cadenus Connect | A local AI agent that already creates your assets | Direct file uploads, named-account publishing and scheduling; €19/month for eight channels | Local files need a client with file access; final verification for the direct path is in the calendar |
| Zapier Instagram for Business MCP | Someone already connecting business apps through Zapier | Photo/carousel publishing and video publishing as a Reel through MCP | Its page specifies Business accounts, excluding Personal and Creator accounts; check media inputs and your usage allowance |
| Composio Instagram toolkit | Developers building agents that need several Instagram actions | Media-container creation and publishing, insights, comments and messaging tools | Check the particular tool schemas and how your application handles media and scheduled execution |
| Your own MCP server over Meta's publishing API | A team that wants to own the integration | The API provides the underlying media-container and publication operations | You build authentication, uploads, scheduling, status handling and maintenance |
Zapier has a direct Instagram MCP integration, so a separate scheduler is not always required. Make or n8n can also be relevant when posting is part of a larger automation; inspect the actual Instagram actions in your chosen setup.
Cadenus is a practical fit when your assistant already produces the caption and video and you want to connect that work to a publishing queue. Composio's documented tool set is broader if insights, comments and messaging are central to your agent. An existing Zapier setup may be the simplest place to begin if your workflow already lives there.
What MCP does, and what it does not do
Model Context Protocol lets an AI application discover and call external tools. Instagram MCP describes an integration category; it does not guarantee that every server supports posting, Reels or scheduling.
In this workflow, the agent interprets your instruction, Cadenus exposes the permitted tools, and its publisher sends the content through Meta's API. The account still needs to be eligible, the media must meet Instagram's requirements and your connection must remain active.
Use read-only access when the agent only needs to inspect accounts. Grant write access when it needs to act, and revoke the token or OAuth connection when access is no longer needed. Your AI client may also ask you to confirm individual tool calls.
Start with one account and one scheduled post before automating a batch. Confirm the destination and time, inspect errors, and establish what should happen after a timeout.
FAQ
What is an Instagram MCP server?
An Instagram MCP server exposes Instagram-related tools that an AI agent can discover and call. Depending on the provider, those tools may cover publishing, analytics, comments or messages. Check for explicit publishing support if your goal is to post content.
Can Claude or Codex post to Instagram?
Yes, with a compatible publishing connection and write access. Cadenus's full MCP server lets local agents such as Claude Code and Codex upload media and schedule posts or Reels to connected Instagram professional accounts.
Can I use the Cadenus ChatGPT connection to publish?
The Cadenus ChatGPT apps connection does not currently expose publishing or scheduling tools. Use the full MCP server with a compatible client such as Claude Code or Codex for the publishing workflow in this guide.
Do I need an Instagram business account?
Cadenus requires a connected Instagram professional account for API publishing. Requirements differ by provider: Zapier's Instagram for Business MCP page specifically requires a Business account and excludes Creator and Personal accounts.
Can an AI agent schedule Instagram Reels?
Yes. With Cadenus, a local agent uploads and confirms the video, then calls publish_post with post_type set to reel and a future time including its UTC offset. Check the publishing calendar for the final outcome.
How much does Cadenus Connect cost?
Cadenus Connect costs €19 a month for eight connected channels and includes the MCP server, local-agent skill and API. The seven-day trial requires a card; cancel before it ends to avoid the first subscription charge. AI assistant subscriptions and model usage are separate.
Ready to connect your own agent? Explore Cadenus for AI agents or start the seven-day Connect trial.
Sources and verification
The setup and request examples were checked against Cadenus's MCP tool definitions, upload service and local CLI help on 10 September 2026. This guide does not claim a live Instagram publishing test. Provider comparisons use published documentation, rather than independently measured performance.
- Cadenus developer documentation: connection options, API and uploads.
- Model Context Protocol introduction: what the protocol does.
- Meta Content Publishing documentation: the underlying Instagram API.
- Zapier Instagram for Business MCP: publishing actions and account eligibility.
- Composio Instagram toolkit: the provider's supported tools.