MCP server for Instagram Graph API, Threads API & Meta platform management
Meta-mcp provides 27 tools with consistent naming (verb_noun pattern) and reasonable descriptions across Instagram and Threads APIs. However, significant gaps exist: parameter descriptions are present but often minimal (10-30 chars), output schemas are not documented in the source, and error handling guidance is absent. Tool names are clear and action-focused (e.g., ig_post_comment, ig_delete_media), but descriptions lack guidance on WHEN to use each tool vs. similar ones, prerequisites, or recovery steps. Parameters have types but lack constraints (enums for pagination, format hints, range limits). No evidence of input validation, error categorization, or recovery guides in the provided source.
Look up another Instagram Business/Creator account's public info by username.
Delete a comment from your media post. This action is irreversible.
Delete an Instagram media post (posts, carousels, reels, stories). This action is irreversible. Requires instagram_manage_contents permission.
Get Instagram account insights. Note: 'impressions', 'email_contacts', 'phone_call_clicks', 'text_message_clicks', 'get_directions_clicks', 'website_clicks', 'profile_views' were deprecated in v22.0. Use 'views', 'reach', 'follower_count', 'reposts' instead.
Get pending collaboration invites for the Instagram account. Added in December 2025.
Get details of a specific comment.
Output schemas not documented. Tools return Instagram Graph API responses but no description of the structure, fields, or types agents should expect. This forces LLMs to parse unstructured API responses and risks hallucination about available fields.
Pagination parameters (limit, after, before) lack range constraints and defaults. 'limit' has no documented min/max; 'after' and 'before' are opaque string cursors with no format guidance. LLMs may pass invalid limits (e.g., 1000 when max is 100).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get comments on a specific Instagram media post.
Get Instagram DM conversations using Instagram Messaging with Facebook Login. Requires a Page access token, the linked Facebook Page ID, instagram_manage_messages, and pages_manage_metadata.
Get hashtag information by ID.
Get recent media tagged with a specific hashtag.
Get top (most popular) media tagged with a specific hashtag.
Get details of a specific Instagram media post.
Get insights/analytics for a specific media post. Note: 'impressions' and 'video_views' were deprecated in v22.0 — use 'views' instead. Available metrics: views, reach, saved, shares, likes, comments, reposts, reels_skip_rate.
Get list of media published on the Instagram account.
Get comments where the account was @mentioned. Returns the media and comment details.
Get details of a specific DM message.
Get messages in a specific DM conversation.
Get Instagram Business/Creator account profile information.
Get replies to a specific comment.
Get media where the account is tagged (photo tags, not @mentions).
Hide or unhide a comment on your post.
Post a top-level comment on a media post.
Reply to a specific comment.
Accept or decline a collaboration invite. Added in December 2025.
Search for a hashtag ID by name. Required before querying hashtag media. Limited to 30 unique hashtags per 7-day rolling window.
Send an Instagram DM using Instagram Messaging with Facebook Login. Requires a Page access token, instagram_manage_messages, and pages_manage_metadata. The recipient must have messaged the professional account first.
Enable or disable comments on an Instagram media post.
No error handling guidance. Tools document API requirements (e.g., 'Requires instagram_manage_contents permission') but do not explain what happens if permissions are missing, if rate limits are hit, or how to recover. Error responses are not categorized (retryable vs. user-fixable vs. fatal).
Minimal parameter descriptions. Many parameters have only 1-2 sentence descriptions with no guidance on valid ranges, formats, or constraints. E.g., 'Comment ID' tells the LLM nothing about format (string vs. numeric ID, prefix convention). 'Message text' doesn't explain length limits or allowed characters.
No confirmation or dry-run for destructive operations. ig_delete_comment and ig_delete_media are irreversible but have no confirm-before-execute step. An LLM mistake (e.g., intended to search but actually deletes) cannot be undone.
Overlapping tool names without clear differentiation. ig_get_media vs. ig_get_media_list vs. ig_get_media_insights could be confusing; descriptions should explicitly state which returns all posts vs. details of one vs. analytics for one.
No access token or authentication parameter exposure, but descriptions reference permission requirements (e.g., 'Requires instagram_manage_contents') without explaining how authentication is validated or what to do if missing. No guidance on whether the server will reject the call or silently fail.
Resource limit caps not documented. ig_get_comments and ig_get_hashtag_recent accept 'limit' but do not state max results per call (likely 100 from Meta API). LLMs may expect pagination to be implicit.