# Instagram MCP connector

The Instagram connector brings your Instagram posts, stories, comments, hashtags and account insights into Claude, ChatGPT, Cursor and other AI clients, so your team can draft, publish and answer from the account it already runs.

Source: https://elaichi.ai/connectors/instagram/

## Facts

| | |
| --- | --- |
| Application | Instagram |
| Category | Marketing Automation |
| AI tools | 30 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Instagram is connected

- Show comments on our Instagram media from this week.
- List Instagram stories published by the brand team.
- Search Instagram hashtags for our spring campaign terms.

## Connect Instagram in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Instagram.
2. Optionally set Share with, then press Connect.
3. Supply your own Instagram app, then approve. Instagram needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Instagram tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Instagram to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Instagram to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Instagram to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Instagram to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Instagram tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Instagram through Elaichi

### Draft and publish the week's posts

Marketing. Hand an agent the captions and images for the week and have it create the posts, check them against the account's publishing limit, then publish on the go-ahead.

### Find the hashtags worth using

Social. Search hashtags for a launch, see what the account searched recently, and pick a shortlist for the caption before it goes out.

### Catch up on comments and reply

Community. Pull the comments on the latest posts, spot the ones that need a human, and post replies in the account's voice.

### Spot customer problems raised on posts

Support. Read through comments and posts the account was tagged in, list anything that sounds like a complaint or a shipping question, and hand it to the support desk.

### Review tagged and collaborator posts

Brand. See which posts the account has been tagged in and who is listed as a collaborator on shared posts, so partner content gets checked before it spreads.

### Report on account reach every Monday

Leadership. Ask for last week's account insights, compare them with the posts and stories that ran, and get a short readout on what moved the numbers.

## Frequently asked questions

### How do I connect Instagram to Claude?

Connecting Instagram takes two steps: connect it in Elaichi, then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Instagram is a little different from most connectors because Instagram asks for an app registered in its own developer settings, so somebody on your team brings that app's client ID and secret into Elaichi once. After that, each person simply signs in to Instagram in the browser and approves access, with nothing else to generate.

### Does Instagram work with ChatGPT and Cursor as well as Claude?

Yes. Once Instagram is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Instagram once and every client picks it up.

### What can an AI agent actually do with my Instagram data?

With Instagram connected, an agent can list the account's posts, stories and live videos, create and publish new posts, edit or remove a post, and read or reply to comments. It can also search hashtags, show posts the account was tagged in, list collaborators on shared posts, check how much publishing room is left for the day, and pull account insights for reporting.

### Does connecting Instagram give the AI access to my whole account?

No. Instagram access follows the person who signed in, so an agent can only see and do what that person's Instagram account already allows. Elaichi can narrow that further, for example to reading posts and comments only, but it can never grant more than the person already has in Instagram.

### Can my team share one Instagram connection?

Yes. One person connects the Instagram account in Elaichi and shares it with a team, and nobody else ever handles a password, client ID or secret. Each teammate still signs in to Elaichi as themselves, so every post published or comment answered through Instagram is logged under the person who did it.

### Can I stop an agent from deleting or changing posts in Instagram?

Yes. In Elaichi, restrictions on Instagram work per action, so you can allow reading posts and comments while blocking publishing, editing or deleting. A blocked action is never shown to Claude, ChatGPT or any other client at all, so no prompt, however worded, can reach it.

### What happens to an Instagram connection when someone leaves?

Offboarding a person in Elaichi ends their access to Instagram through every client at once. If they had shared an Instagram connection with a team, it keeps working for everyone else. Disconnecting Instagram once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

## All 30 Instagram tools

Every tool below is callable through https://api.elaichi.ai/mcp once Instagram is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Update a Instagram Instagram media by ID** (Update). Enable or disable comments on an Instagram Media by id. Returns: success. Required: id, comment_enabled. Live video Instagram Media not supported.
- **Delete a Instagram Instagram media by ID** (Delete). Delete an Instagram Media by id. Returns: success, deleted_id. Required: id. Only supports non-ad posts, Stories, Reels, and entire carousel albums; individual carousel child media cannot be deleted separately.
- **List all Instagram Instagram media** (List). List Instagram media objects on an IG User. Returns: id, uri, success. Required: ig_user_id.
- **Create a Instagram Instagram media** (Create). Create an Instagram media container (image, carousel, story, or reel) for later publishing via the media_publish endpoint. Returns: id, uri. Required: ig_user_id. Containers expire after 24 hours; an account can create up to 400 containers per rolling 24-hour period.
- **Instagram Instagram media publish** (Publish). Publish a previously created IG Container (single media or carousel) on an Instagram Business account. Returns: id. Required: ig_user_id, creation_id. The container must reach FINISHED status before publishing and expires if not published within 24 hours.
- **Instagram Instagram hashtags search** (Search). Search for an Instagram hashtag by name to retrieve its static, global IG Hashtag ID. Returns: id. Required: user_id, q. Limited to 30 unique hashtag queries within a 7-day period; sensitive or offensive hashtags return a generic error.
- **Create a Instagram access token** (Create). Exchange a short-lived Instagram User access token (expires in one hour) for a long-lived token valid for 60 days. Returns: access_token, token_type, expires_in. Required: grant_type, client_secret, access_token. Requests include the app secret and should only be made from server-side code.
- **Update a Instagram access token by ID** (Update). Refresh a long-lived Instagram User access token that is at least 24 hours old but not expired. Returns: access_token, token_type, expires_in. Required: grant_type, access_token. Refreshed tokens are valid for 60 days from the refresh date.
- **List all Instagram oauth** (List). Initiate the Business Login for Instagram OAuth authorization flow by redirecting the app user to Instagram's authorization window. Returns an authorization code via redirect to the configured redirect_uri (valid for 1 hour, single use). Required: client_id, redirect_uri, response_type, scope.
- **List all Instagram Instagram media children** (List). List child IG Media objects on an Instagram album (carousel) IG Media. Returns: id, caption, media_type, media_url, timestamp, owner, comments_count, like_count. Required: ig_media_id. Some fields such as permalink are not available on photos within albums.
- **List all Instagram Instagram media comments** (List). List comments on an Instagram media object. Returns: id, text, timestamp. Required: ig_media_id. Returns only top-level comments (replies not included); maximum 50 comments per query.
- **Create a Instagram Instagram media comment** (Create). Create a comment on an Instagram media object. Returns: id. Required: ig_media_id, message. Comments on live video IG Media are not supported.
- **List all Instagram Instagram media collaborators** (List). List collaborators and their invitation status on an Instagram IG Media object. Returns: id, username, invite_status. Required: ig_media_id. Supports Feed image, Reels, and Carousel (Stories not supported); up to 5 collaborator accounts per media object.
- **List all Instagram Instagram stories** (List). List Instagram stories (IG Media objects) for a given IG User. Returns: id, caption, media_type, media_url, permalink, timestamp, owner. Required: ig_user_id. Stories are only available for 24 hours; Live Video stories and reshared stories are not included. Only one caption is returned per story even if more than one exists.
- **List all Instagram Instagram tagged media** (List). List Instagram IG Media objects in which an app user's professional account has been tagged by another Instagram user. Returns: id, username, caption, media_type, media_url, permalink, timestamp, comments_count, like_count. Required: ig_user_id. Private IG Media objects will not be returned. Use the fields parameter to request specific IG Media fields and edges.
- **List all Instagram Instagram live media** (List). List live video IG Media on an Instagram IG User. Returns: id, media_type, media_product_type, owner, username, comments. Required: ig_user_id. Only live video IG Media being broadcast at the time of the request will be returned.
- **List all Instagram Instagram user insights** (List). List insights metrics for an Instagram business or creator account. Returns: name, period, title, description, total_value, id. Required: ig_user_id, metric, period. Demographic metrics additionally require timeframe; some metrics need 100+ followers.
- **List all Instagram Instagram content publishing limits** (List). List Instagram content publishing limits for an IG User, showing how many IG Containers have been published within a given time period. Returns: quota_usage, config. Required: ig_user_id.
- **Create a Instagram Instagram mention** (Create). Create an Instagram comment reply when an IG User is @mentioned in a caption or comment. Returns: id. Required: ig_user_id, media_id, message; comment_id is also required when replying to a comment. Mentions on Stories are not supported.
- **List all Instagram Instagram recently searched hashtags** (List). List Instagram hashtags an IG User has searched for within the last 7 days. Returns: id, name. Required: ig_user_id. Returns up to 30 results per page (25 by default); users can query a maximum of 30 unique hashtags in a rolling 7-day period, and emojis in hashtag queries are not supported.
- **List all Instagram Instagram connected threads users** (List). List Threads accounts connected to an Instagram account in Instagram. Returns: threads_user_id. Required: ig_user_id. An Instagram account can have only one connected Threads account.
- **List all Instagram Instagram backed threads users** (List). List Instagram-backed Threads accounts for a given Instagram user. The API returns the Threads account ID; each item in the response contains threads_user_id. Required: ig_user_id. An Instagram account can have only one Instagram-backed Threads account.
- **Create a Instagram Instagram backed threads user** (Create). Create an Instagram-backed Threads account for running ads on Threads. Returns: threads_user_id. Required: ig_user_id. An Instagram account can have only one Instagram-backed Threads account — verify one does not already exist before creating.
- **Create a Instagram Instagram subscription** (Create). Subscribe an Instagram professional account to webhook notification fields by sending a POST to the subscribed_apps endpoint. Returns: success. Required: ig_user_id, subscribed_fields. The subscribed_fields value is a comma-separated list of webhook fields such as comments, live_comments, messages, story_insights.
- **List all Instagram Instagram comment replies** (List). List all replies (IG Comments) on an Instagram IG Comment. Returns: id, text, timestamp. Required: ig_comment_id. You cannot get replies to a comment that has been deleted.
- **Create a Instagram Instagram comment reply** (Create). Create a reply to an Instagram IG Comment. Returns: id. Required: ig_comment_id, message. You can only reply to top-level comments; you cannot reply to hidden comments or comments on a live video.
- **List all Instagram Instagram hashtag recent media** (List). List the most recently published Instagram media tagged with a specific hashtag. Returns: id, caption, children, comments_count, like_count, media_type, media_url, permalink, timestamp. Required: ig_hashtag_id, user_id. Only returns public media published within the last 24 hours; maximum 50 results per page.
- **List all Instagram Instagram hashtag top media** (List). List the most popular Instagram photo and video IG Media objects tagged with a hashtag, ranked by views and viewer interaction. Returns: id, caption, children, comments_count, like_count, media_type, media_url, permalink, timestamp. Required: ig_hashtag_id, user_id. Maximum 50 results per page; only public media is returned and promoted/ads media is excluded.
- **Get single Instagram me by ID** (Get). Get fields and edges on an Instagram Business or Creator Account by id. Returns: id, followers_count, media_count. Required: id.
- **List all Instagram Instagram users** (List). Get the authenticated Instagram user's profile information. This endpoint examines the access token to determine the user ID and translates to GET /{user-id}. Returns: id, username, biography, followers_count, media_count, website.
