Local MCP server for official Meta Instagram API read-only analytics.
Server has 17 tools with mixed quality. Naming follows verb_noun convention (meta_get_*, meta_list_*, meta_create_*, meta_publish_*) which is good. However, critical gaps exist: (1) Tool #16 (meta_create_media_container) has description in Russian, making it inaccessible to English-speaking LLMs and violating pattern:tool-description. (2) Many parameter descriptions are missing or minimal, e.g., meta_get_user_insights has 9 parameters (metric, period, metricType, breakdown, timeframe, since, until) with NO descriptions visible in schema. (3) Output schemas are not documented, LLMs cannot infer what fields to expect from responses. (4) Error handling is absent, no guidance on retryability, user-fixable vs fatal errors, or recovery paths. (5) Tool #17 (meta_publish_media) is IRREVERSIBLE but lacks confirmation/dry-run pattern. Baseline: 194 chars avg description, 72 chars avg param annotation, this server falls well short.
Show Meta Instagram MCP configuration and redacted token metadata.
Build an official Instagram Business Login OAuth URL for selected analytics permissions.
Создать контейнер публикации (POST /{ig-user-id}/media) по ПУБЛИЧНОЙ ссылке на медиа и вернуть его id и status_code. Ничего не публикует: без meta_publish_media контейнер истекает сам. Это сухой прогон публикации.
Exchange an Instagram authorization code for a long-lived token and optionally save it outside the repo.
Fetch profile/account metadata for the authorized Instagram professional account.
List replies for an Instagram comment when the authorized account has comment access.
Tool #16 (meta_create_media_container) description is entirely in Russian. LLMs trained on English cannot parse it. Violates pattern:tool-description requirement for clear, accessible descriptions.
meta_get_user_insights has 9 parameters (metric, period, metricType, breakdown, timeframe, since, until, accessToken, userId) but parameter descriptions are missing from the schema. LLMs cannot infer what 'metric' or 'breakdown' accept without descriptions.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does meta_list_media return 'id' or 'media_id'?). Violates pattern:tool requirement for documented return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Fetch metadata for one Instagram media object.
Fetch insights for a specific Instagram media object.
List and locally rank recent media by engagement, likes, comments, or timestamp.
Fetch account-level Instagram insights for the authorized account.
List comments for a media object when the authorized account has comment access.
List Facebook Pages available to the Facebook Login token and include connected Instagram Business accounts when present.
List media objects for the authorized Instagram professional account.
Publish a media container created by meta_create_media_container. Requires META_INSTAGRAM_WRITE=true and logs all attempts.
Refresh the current long-lived Instagram token before it expires.
Resolve and save an Instagram professional account id for later Graph API calls. Use pageId for Page-linked accounts or userId when Facebook Login granted direct Instagram access.
Show supported Instagram OAuth scope presets for this MCP.
Tool #17 (meta_publish_media) is marked IRREVERSIBLE but lacks confirmation/dry-run pattern. Agents can publish media without a safety gate. Violates pattern:confirmation-request for destructive operations.
No error handling guidance. Tools do not document retryability, user-fixable vs fatal errors, or recovery paths. E.g., meta_exchange_code could fail due to invalid code, expired code, or network error, LLM has no guidance on what to do next.