Bulk downloader for public Instagram Reels and posts with three front ends: CLI, local web UI, and MCP stdio server for AI agents
Three tools with clear, action-oriented names (instagram_parse_links, instagram_resolve, instagram_download) and well-structured input schemas. Descriptions are substantive (80 - 180 chars) and explain WHEN to use each tool. All parameters have types and descriptions. However, output schemas are not documented in the visible code, LLMs cannot predict response structure. Parameter descriptions lack some constraints (e.g., no enum for cookies_from browser names, no explicit URL format validation). Error handling is present but generic.
Bulk-download Instagram Reels/posts (video, image carousels, or audio) to local disk and return the file paths. Blocks until finished. Public posts need no login; private ones need cookies_from.
Extract and de-duplicate Instagram Reel/post links from a blob of text. Cheap and offline — call it first to show the user what will be fetched.
Return metadata and direct CDN media URLs for public Instagram Reels/posts without downloading anything. Use when the caller only needs a playable/downloadable URL, dimensions, duration, or caption.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). instagram_resolve and instagram_download return metadata and file paths, but the exact schema is invisible.
cookies_from parameter lacks enum constraint. Description says 'chrome, safari, firefox…' but no formal enum. LLMs may hallucinate invalid browser names.
urls parameter in instagram_resolve and instagram_download lacks format validation hint. No description of expected URL format (e.g., 'must be public Instagram post/Reel URLs').
instagram_download description does not explicitly state it modifies state (writes files to disk). Agents need to know this is irreversible and may have side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
No error recovery guidance. If a URL is invalid or Instagram blocks the request, the tool error response should suggest next steps (e.g., 'Try instagram_parse_links first to validate URLs').