Skip to main content
Glama
luminarylane

Instagram MCP Server

by luminarylane

Instagram MCP Server

MCP TypeScript License

A Model Context Protocol (MCP) server that connects Claude Desktop (and other MCP clients) to the Instagram Graph API — read analytics, manage comments, publish photos, carousels, and reels.

Features

11 Instagram Tools

SENSE (read-only):

Tool

Description

ig_get_account_insights

Account insights: reach, follower growth, profile views over a period

ig_get_post_insights

Engagement metrics for a specific post: reach, likes, shares, saves

ig_get_comments

Comments on a post with username, timestamp, and replies

ig_get_stories_insights

Insights for an active story: reach, replies, interactions

ig_get_audience_demographics

Follower demographics: city, country, age/gender breakdown

ig_get_hashtag_search

Search public posts by hashtag (30 unique hashtags per 7-day window)

ACT (write):

Tool

Description

ig_publish_photo

Publish a photo post from a public URL

ig_publish_carousel

Publish a carousel (2-10 images) from public URLs

ig_publish_reel

Publish a reel (short video) from a public URL

ig_reply_comment

Reply to a comment on a post

ig_delete_comment

Delete a comment on one of your posts

Built-in Reliability

  • Per-tenant rate limiting — token-bucket rate limiter keyed by IG Business Account ID

  • Exponential backoff retry — automatic retry with jitter for transient API errors

  • Container-based publishing — create container → poll status → publish (handles async video processing)

  • Input sanitization — strips zero-width characters, normalizes whitespace, truncates to API limits

  • Prompt injection protection — wraps external API data in randomized markers

Related MCP server: Instagram MCP Server

Quick Start

Prerequisites

  • Node.js 22.14+

  • An Instagram Business or Creator account connected to a Facebook Page

  • A Facebook App with the Instagram Graph API enabled

  • A long-lived Page Access Token

Getting Your Access Token

  1. Create a Facebook App

  2. Add the Instagram Graph API product

  3. In Graph API Explorer, generate a Page Access Token with these permissions:

    • instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insights, pages_show_list, pages_read_engagement

  4. Extend the token to a long-lived token (60 days)

Installation

Published package: @luminarylane/instagram-mcp-server on npm

Run without a global install:

INSTAGRAM_ACCESS_TOKEN=your-token INSTAGRAM_BUSINESS_ACCOUNT_ID=your-account-id npx --yes @luminarylane/instagram-mcp-server

To run from source:

git clone https://github.com/luminarylane/instagram-mcp-server.git
cd instagram-mcp-server
npm install
npm run build

Configuration

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["--yes", "@luminarylane/instagram-mcp-server"],
      "env": {
        "INSTAGRAM_ACCESS_TOKEN": "your_long_lived_page_token",
        "INSTAGRAM_BUSINESS_ACCOUNT_ID": "your_17_digit_ig_business_account_id"
      }
    }
  }
}

Environment variables:

Variable

Required

Description

INSTAGRAM_ACCESS_TOKEN

Yes*

Long-lived Facebook Page Access Token

INSTAGRAM_BUSINESS_ACCOUNT_ID

Yes*

17-digit IG Business Account ID

*Can also be passed per-call via tool arguments.

Finding Your Business Account ID

Use the Graph API Explorer:

GET /me/accounts?fields=instagram_business_account

The instagram_business_account.id field is your Business Account ID.

Usage Examples

Once configured, ask Claude to:

  • "Show me my Instagram account insights for the last 28 days"

  • "What are the engagement metrics for my latest post?"

  • "Get the comments on this post" (paste a media ID)

  • "Show my follower demographics by country"

  • "Publish this photo to Instagram" (provide a public image URL + caption)

  • "Create a carousel post with these images"

  • "Reply to this comment with 'Thanks!'"

  • "Search recent posts with #startup"

Publishing

Photo and carousel publishing is synchronous — the tool returns once the post is live. Reel publishing is asynchronous — the server polls the container status until processing completes, then publishes.

All publish tools accept an optional firstComment parameter to add a comment immediately after publishing (commonly used for hashtags).

Rate Limiting

The server enforces per-account rate limits to stay within Instagram's API quotas. If you hit a rate limit, the tool will return an error with a suggested retry time. The built-in retry logic handles transient 429 responses automatically.

Contributing

  1. Fork the repo

  2. Create a feature branch (git checkout -b feat/my-feature)

  3. Make changes and run tests (npm test)

  4. Submit a pull request

License

MIT License — see LICENSE for details.

Acknowledgments

Available Tools

11 tools
ig_delete_commentB

Delete a comment on one of your Instagram posts.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
commentIdYesID of the comment to delete
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the destructive nature ('Delete'), but does not mention whether deletion is irreversible, what permissions are required, or any rate limits. For a mutation tool, more detail is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Front-loaded with the core action. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with a well-documented schema (100% coverage), the description is mostly adequate. However, it lacks usage guidance and behavioral details that would fully inform an AI agent, especially given the absence of an output schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents each parameter (accountId, commentId, accessToken) including fallback behavior for accountId and accessToken. The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Delete a comment on one of your Instagram posts.' It uses a specific verb ('Delete') and resource ('comment on Instagram post'), and it effectively distinguishes itself from sibling tools like ig_get_comments (for reading) and ig_reply_comment (for writing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives, nor any mention of prerequisites (e.g., needing the comment to exist, ownership requirements). The description only states the action without contextualizing when it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_get_account_insightsB

Get Instagram account insights: impressions, reach, follower growth, and profile views over a period.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoStart date as Unix timestamp (e.g., '1700000000')
untilNoEnd date as Unix timestamp
periodNoAggregation period (default: "day")
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden. It does not disclose authentication requirements, rate limits, data freshness, or side effects. The operation is read-only but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no extraneous information. It efficiently conveys the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and no output schema, the description is too minimal. It fails to explain the return format, pagination, date range behavior, or how metrics are aggregated. A more detailed description would improve usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already defines all parameters. The description adds no additional meaning to parameters (e.g., usage tips, constraints, or format details). It merely restates the output metrics, which are not parameter-specific.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves Instagram account insights and lists specific metrics (impressions, reach, follower growth, profile views). This clearly differentiates it from sibling tools like ig_get_post_insights or ig_get_stories_insights, which operate on different entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, context (e.g., account-level vs post-level), or scenarios where this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_get_audience_demographicsB

Get follower demographics: city, country, and age/gender breakdown. Requires 100+ followers.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNoDemographic metric (default: follower_demographics). Requires 100+ followers.
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
breakdownNoBreakdown dimension (default: country)
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only mentions the follower requirement. Lacks details on rate limits, data freshness, authentication requirements, or whether multiple breakdowns can be retrieved in one call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with an appended requirement. Efficient and front-loaded, but could be slightly expanded to include key behavioral notes without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and multiple parameters (metric, breakdown). Description omits return format, how to interpret demographic data, and limitations. Incomplete for an agent to use correctly without trial and error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; the description adds no parameter-level information beyond what the schema already provides (enums, fallbacks). Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves follower demographics with breakdowns by city, country, and age/gender. This distinguishes it from sibling insight tools like ig_get_account_insights. However, it could be more explicit about being for audience demographics specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes a prerequisite ('Requires 100+ followers'), which helps agents know when to use it. Does not mention alternatives or when not to use it compared to siblings like ig_get_account_insights.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_get_commentsB

Get comments on an Instagram post. Returns comment text, username, and timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoPagination cursor
limitNoNumber of comments (default: 25, max: 50)
mediaIdYesInstagram media ID
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It mentions return fields but omits pagination behavior (after cursor), rate limits, authentication requirements, or that it requires a business account. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and resource. No wasted words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose and return fields but lacks context on pagination, limit handling, authentication fallback, and prerequisites. Adequate for a simple read tool but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented in the schema. The description does not add any extra meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('get comments'), the resource ('Instagram post'), and what is returned ('comment text, username, and timestamp'). It distinguishes from sibling tools like ig_delete_comment or ig_reply_comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not mention that it is a read-only operation or when to use other comment-related tools like ig_delete_comment or ig_reply_comment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_get_post_insightsA

Get engagement metrics for a specific Instagram post: impressions, reach, engagement, saves, shares.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdYesInstagram media ID
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It indicates a read operation (get) and lists returned metrics, but does not disclose any potential side effects, rate limits, or authentication requirements beyond what is in the schema. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is concise and front-loaded with the core purpose. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description lists key return metrics (impressions, reach, engagement, saves, shares), which is sufficient. Could hint at additional fields but overall complete for a simple post-level insights tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description adds no additional parameter meaning beyond the schema; it lists output metrics but not parameter details. Does not explain mediaId format or fallback logic already described in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets engagement metrics for a specific Instagram post, listing specific metrics like impressions, reach, etc. Distinguishes from sibling tools like ig_get_account_insights which are account-level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not mention that it is for post-level metrics only, nor does it mention prerequisites or fallback behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_get_stories_insightsA

Get insights for an active Instagram story: reach, replies, follows, profile_visits, total_interactions. Stories expire after 24 hours — storyId must reference a currently active story (fetch from /{ig-account-id}/stories).

ParametersJSON Schema
NameRequiredDescriptionDefault
storyIdYesInstagram story media ID
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the key behavioral trait that stories expire after 24 hours and the storyId must reference an active story. With no annotations, this is adequate. Could mention auth but not required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, followed by important usage context. Every word earned its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and only 3 parameters, the description covers the essential constraints (story expiry, active requirement) and parameter source. Could mention return format but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage, so baseline is 3. The description adds value by explaining the storyId context (active, expiry, fetch method), which goes beyond the schema's simple description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get' and the resource 'insights for an active Instagram story', listing specific metrics. It distinguishes from siblings like ig_get_post_insights by targeting stories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use (for active stories, within 24 hours) and how to obtain the storyId. Lacks explicit 'when not to use' but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_publish_photoA

Publish a photo post to Instagram. The image_url must be publicly accessible. Flow: create media container → publish.

ParametersJSON Schema
NameRequiredDescriptionDefault
captionNoPost caption (max 2200 characters). Supports #hashtags and @mentions.
imageUrlYesPublicly accessible URL to the image. Must be JPEG or PNG.
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.
firstCommentNoOptional first comment posted immediately after publishing. Use for hashtags or a call-to-action. NOTE: links in Instagram comments are NOT clickable — do not use for bare URLs. Requires an IG Business account. Max 2200 chars.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It describes the two-step process, constraints on image URL (public, JPEG/PNG), caption limits (2200 chars, supports #hashtags and @mentions), firstComment limitations (links not clickable), and fallback env vars for accountId and accessToken. Some behaviors like error handling or rate limits are omitted, but the core traits are well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, both directly adding value. The first sentence states the purpose, the second provides a critical constraint and the workflow. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description covers the essential behavioral aspects: constraints, fallback, and limitations. It does not explain return values or error handling, which is acceptable without an output schema. It is fairly complete for a single-photo publishing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the public accessibility requirement for imageUrl, the support for hashtags/mentions in caption, the non-clickable links note for firstComment, and the fallback behavior for accountId and accessToken. This goes beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Publish a photo post to Instagram') and distinguishes it from siblings like ig_publish_carousel and ig_publish_reel by specifying the single photo scope and the two-step flow ('create media container → publish').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a critical usage requirement ('image_url must be publicly accessible') and hints at the workflow, but does not explicitly contrast with sibling tools. However, the sibling list and the mention of 'photo' vs 'carousel'/'reel' imply when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_publish_reelA

Publish a reel (short video) to Instagram. The video_url must be publicly accessible. Video processing is async — this tool polls until ready, then publishes.

ParametersJSON Schema
NameRequiredDescriptionDefault
captionNoReel caption (max 2200 characters).
coverUrlNoPublicly accessible URL for a custom cover image.
videoUrlYesPublicly accessible URL to the video. MP4 format recommended.
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.
shareToFeedNoAlso share to the main feed (default: true).
firstCommentNoOptional first comment posted immediately after publishing. Use for hashtags or a call-to-action. NOTE: links in Instagram comments are NOT clickable — do not use for bare URLs. Requires an IG Business account. Max 2200 chars.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions the async polling behavior, which is a key behavioral trait beyond what the schema shows. With no annotations, it carries the full burden. It lacks details on rate limits, failure modes, timeouts, or required permissions (beyond env vars). This leaves important behaviors unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two well-structured sentences. Every word adds value, and there is no redundancy or fluff. It prioritizes the most critical information upfront.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information about return values (e.g., the published reel ID) and error handling. Given the complexity of async video processing and the absence of an output schema, these are significant gaps. The tool does not specify what the agent can expect after successful publishing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds only minor clarification (e.g., first comment notes about links) that largely duplicates the schema. It does not provide significant new meaning beyond the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Publish a reel') and the resource ('short video to Instagram'), distinguishing it from sibling tools like ig_publish_photo or ig_publish_carousel. It also specifies a key requirement (publicly accessible video URL) and the async behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides prerequisites (public URL) and the async nature (polling). However, it does not explicitly state when to use this tool versus alternatives like ig_publish_photo, though the name and context make it clear. Could be improved by adding explicit when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ig_reply_commentB

Reply to a comment on an Instagram post.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesReply text
accountIdNoInstagram Business Account ID. Falls back to INSTAGRAM_BUSINESS_ACCOUNT_ID env var.
commentIdYesID of the comment to reply to
accessTokenNoInstagram access token. Falls back to INSTAGRAM_ACCESS_TOKEN env var.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Reply to a comment' but does not mention authentication requirements, rate limits, or any side effects beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is front-loaded and contains no unnecessary words, earning its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with no output schema, the description is minimally complete but lacks context about prerequisites (e.g., needing an Instagram Business Account) beyond what's inferred from schema field descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already describes all parameters. The description adds no extra semantics beyond what the schema provides, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Reply to a comment on an Instagram post' uses a specific verb ('Reply') and resource ('comment on an Instagram post'), clearly indicating the action. It distinguishes from sibling tools like 'ig_delete_comment'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., deleting a comment). The context is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv1.6.6
    • First observedig_delete_comment
    • First observedig_get_account_insights
    • First observedig_get_audience_demographics
    • First observedig_get_comments
    • First observedig_get_hashtag_search
    • First observedig_get_post_insights
    • First observedig_get_stories_insights
    • First observedig_publish_carousel
    • First observedig_publish_photo
    • First observedig_publish_reel
    • First observedig_reply_comment

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct action on Instagram (publish different media types, manage comments, retrieve insights, search hashtags). No two tools overlap in purpose, so an agent can clearly distinguish them.

Naming Consistency5/5

All tools follow the 'ig_<verb>_<noun>' pattern using snake_case. Verbs like get, publish, delete, reply are consistently applied, and nouns clearly indicate the target (e.g., comment, account_insights). No mixing of conventions.

Tool Count5/5

11 tools is appropriate for an Instagram integration covering publishing, comments, insights, audience demographics, and hashtag search. The scope is focused without being too narrow or overly broad.

Completeness3/5

The tool set covers publishing and insights well but lacks basic post management operations (read, update, delete posts). Also missing story publishing and like/unlike functions. Some common workflows require external tools to fill gaps.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    C
    maintenance
    Provides Instagram analytics, media downloads, and search capabilities through an MCP interface for use with Claude and other MCP clients.
    43
    41
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes Instagram actions (posts, media, comments, DMs, insights, Messenger profile) to Claude and ChatGPT via MCP.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A production-ready Remote MCP Server that gives Claude direct, tool-based access to your Instagram Business account through the Meta Graph API — profile data, posts, comments, publishing, insights, analytics, hashtags, messaging, and real-time webhooks.
    26
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables posting and managing Instagram content (photos, reels, stories, carousels) and interacting with media and comments via Instagram Graph API.
    10
    26
    -