# instapdown-mcp [![instapdown-mcp MCP server](https://glama.ai/mcp/servers/farukkolip/instapdown-mcp/badges/score.svg)](https://glama.ai/mcp/servers/farukkolip/instapdown-mcp) [![npm version](https://img.shields.io/npm/v/instapdown-mcp.svg)](https://www.npmjs.com/package/instapdown-mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) **16 Instagram creator tools as a Model Context Protocol server.** Wraps the public API and data behind [instapdown.com](https://instapdown.com) so any MCP client — Claude Desktop, Cursor, Cline, Zed — can download Reels, audit engagement, search hashtags, generate Reels hooks, get country-specific best-time-to-post data and browse a 2026 content calendar directly from a chat turn. Part of the [TapDown family](https://instapdown.com/about) alongside [xtapdown-mcp](https://www.npmjs.com/package/xtapdown-mcp) (X / Twitter). --- ## Install ```bash npx -y instapdown-mcp ``` That's the whole install path. No account, no API key, no config. ## Claude Desktop config Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows): ```json { "mcpServers": { "instapdown": { "command": "npx", "args": ["-y", "instapdown-mcp"] } } } ``` Restart Claude Desktop. In a new chat: > "Download this reel for me: https://www.instagram.com/reel/ABC123/" Claude will call `download_reels` and hand back the direct MP4 URL and audio track. --- ## The 16 tools ### Downloaders | Tool | Input | Returns | |---|---|---| | `download_reels` | Reel URL | Original 9:16 HD MP4, no watermark | | `download_video` | Feed video URL | Original MP4, no re-encoding | | `download_story` | Username | Every active Story in the 24h window | | `download_profile_picture` | Username | Full-resolution profile JPG | | `download_carousel` | Carousel URL | Every slide as a media array | | `download_photo` | Single-image post URL | Original full-resolution JPG | | `extract_reel_audio` | Reel URL | Source m4a audio track URL | Public accounts only. Private accounts return HTTP 422 by design. ### Analytics | Tool | Input | Returns | |---|---|---| | `engagement_health_check` | Username | Weighted ER, save rate, comment rate, tier benchmark from the last 12 posts | | `engagement_calculator` | Followers + interactions | Weighted ER (like×1 + comment×2 + save×3 + share×4), tier benchmark, performance rating | ### Content strategy | Tool | Input | Returns | |---|---|---| | `generate_reels_hooks` | Niche + optional country/language | 10 verified 2026 hook templates from the 900-hook library | | `search_hashtags` | Topic + locale | Real Instagram post counts for the returned hashtags | | `get_hashtag_niche` | Optional category | 25 curated seed niches | | `audit_creator_hashtags` | Username | Hashtag frequency map from the last 12 posts | | `generate_instagram_fonts` | Text + optional style | 22 Unicode font variants (Bold, Italic, Script, Fraktur, Double Struck, Monospace, Small Caps, Circled, Upside Down, …) | | `get_best_time_to_post` | Country code | 5 prime slots + 7-day heatmap, sourced from Buffer 2026 (30M+ posts) | | `get_content_calendar` | Market + date range + niche | Instagram content dates for 2026, each with a native-language Reels hook and hashtag set | Supported markets for country-varied tools: US, GB, CA, AU, BR, MX, ES, IT, DE, FR, NL, SE, TR, JP, SA, AE, RU. --- ## Environment Override the API host when developing locally against a staging Instapdown: ```bash INSTAPDOWN_BASE_URL=http://localhost:3000 npx -y instapdown-mcp ``` Default: `https://instapdown.com`. --- ## Development ```bash git clone https://github.com/farukkolip/instapdown-mcp cd instapdown-mcp npm install npm run build node dist/test/smoke.js # in-memory smoke test — 16 tools + 6 offline callable ``` --- ## License MIT © Ömer Faruk Kolip Instapdown is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc. or Instagram. Public content only.