Instagram Public MCP
Provides tools to fetch public Instagram profile metadata and recent posts without authentication, using an anonymous Instaloader patch with fallback to mobile feed endpoints.
README
Instagram Public MCP for Vercel
A remote MCP server written in Python that queries public Instagram data only without an Instagram login, cookies, passwords, or saved account sessions.
Important: mobile-feed Instaloader patch
This build does not use the stock Instaloader 4.15.3 package.
It pins the anonymous profile/post fix from Instaloader pull request #2722 at:
3f72b47466cc505b92c6e9b0ca2f5689e93a6a89
Dependency:
instaloader @ https://github.com/alimony/instaloader/archive/3f72b47466cc505b92c6e9b0ca2f5689e93a6a89.zip
The patch changes anonymous behavior so that:
- profile resolution can fall back from
api/v1/users/web_profile_info/toapi/v1/feed/user/{username}/username/; - anonymous post pagination uses
api/v1/feed/user/{id}/; - post pages use
max_idpagination; - items are converted through Instaloader's iPhone/mobile response model;
- failures from
web_profile_infocan reach the feed fallback immediately instead of waiting through a long retry/backoff loop.
No authenticated Instagram account is used.
Architecture
MCP Client
|
v
Vercel /api/mcp
|
v
Patched Instaloader (PR #2722)
|
v
Instagram mobile feed endpoint
MCP Tools
get_instagram_profile
Returns public metadata for an Instagram profile.
{
"username": "instagram"
}
get_instagram_posts
Returns recent public posts.
{
"username": "instagram",
"count": 3
}
debug_instagram_connection
Inspects the raw legacy web_profile_info HTTP response. This tool remains
available for diagnostics, but the patched Instaloader can fall back to the
mobile feed endpoint when that endpoint is refused.
{
"username": "instagram"
}
MCP Resources
instagram://profile/{username}
instagram://profile/{username}/posts
Cache
Default in-memory cache:
CACHE_TTL_SECONDS=600
DEFAULT_POST_COUNT=12
MAX_POST_COUNT=30
Set CACHE_TTL_SECONDS=0 to disable it.
Vercel instances are ephemeral, so this cache is per warm function instance, not a globally shared cache.
Deploy to Vercel
npm install -g vercel
vercel --prod
The included vercel.json deploys the function to São Paulo:
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"regions": ["gru1"]
}
MCP endpoint:
https://YOUR-PROJECT.vercel.app/api/mcp
Health endpoint:
https://YOUR-PROJECT.vercel.app/api/health
Local development
python -m venv .venv
pip install -r requirements.txt
uvicorn api.index:app --reload
MCP endpoint:
http://127.0.0.1:8000/api/mcp
Cursor
.cursor/mcp.json:
{
"mcpServers": {
"instagram-public": {
"url": "https://YOUR-PROJECT.vercel.app/api/mcp"
}
}
}
Security
This repository contains no Instagram account credentials.
It does not contain or require:
- Instagram username/password credentials
sessionidcsrftokenfb_dtsg- authenticated account IDs
- saved Instaloader sessions
- Instagram cookies
Limitations
The server only queries public data and does not attempt to bypass private profiles.
Instagram may still rate-limit or block anonymous traffic based on the
deployment IP. The mobile-feed patch fixes the known broken anonymous
web_profile_info/timeline path, but it cannot guarantee that Instagram will
accept traffic from every hosting provider or IP range.
v2.1.1 profile compatibility fix
The anonymous mobile-feed fallback may omit optional profile fields that are
normally present in web_profile_info.
Version 2.1.1 reads profile properties defensively. Missing values such as
biography, external_url, or business-account metadata are returned as
null instead of causing get_instagram_profile to fail.
The post-fetching path is unchanged from v2.1.0.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.