loading…
Search for a command to run...
loading…
Full-coverage MCP server for Instagram Graph API v25.0, Threads API & Meta platform — 57 tools for publishing, comments, insights, hashtags, DMs, and token mana
Full-coverage MCP server for Instagram Graph API v25.0, Threads API & Meta platform — 57 tools for publishing, comments, insights, hashtags, DMs, and token management.
English | 한국어
npm version License: MIT MCP Badge
Full-coverage MCP server for Instagram Graph API (v25.0), Threads API, and Meta platform management.
Tell your AI assistant things like:
content_publish promptAI Agent Integration: See llms.txt for a machine-readable summary, or copy templates/CLAUDE.md / templates/AGENTS.md into your project for automatic MCP discovery.
x-app-usage headerimpressions, video_views, engagement replaced with views, reach, saved, sharesparent_post_author_only and followers_only optionsclicks, reposts, reels_skip_rate metrics| Platform | Account Type | Notes |
|---|---|---|
| Business or Creator account | Personal accounts cannot use the Graph API. Free to switch in Instagram settings | |
| Threads | Any account | All Threads accounts can use the API (Instagram account link no longer required since Sep 2025) |
| Meta (token/webhook tools) | Meta Developer App | Create at developers.facebook.com |
{
"mcpServers": {
"meta": {
"command": "npx",
"args": ["-y", "@mikusnuz/meta-mcp"],
"env": {
"INSTAGRAM_ACCESS_TOKEN": "your_ig_token",
"INSTAGRAM_USER_ID": "your_ig_user_id",
"THREADS_ACCESS_TOKEN": "your_threads_token",
"THREADS_USER_ID": "your_threads_user_id"
}
}
}
}
git clone https://github.com/mikusnuz/meta-mcp.git
cd meta-mcp
npm install
npm run build
{
"mcpServers": {
"meta": {
"command": "node",
"args": ["/path/to/meta-mcp/dist/index.js"],
"env": {
"INSTAGRAM_ACCESS_TOKEN": "your_ig_token",
"INSTAGRAM_USER_ID": "your_ig_user_id",
"THREADS_ACCESS_TOKEN": "your_threads_token",
"THREADS_USER_ID": "your_threads_user_id"
}
}
}
}
| Variable | Required | Description |
|---|---|---|
INSTAGRAM_ACCESS_TOKEN |
For Instagram | Instagram Graph API access token |
INSTAGRAM_USER_ID |
For Instagram | Instagram Business/Creator account ID |
THREADS_ACCESS_TOKEN |
For Threads | Threads API access token |
THREADS_USER_ID |
For Threads | Threads user ID |
META_APP_ID |
For token/webhook tools | Meta App ID |
META_APP_SECRET |
For token/webhook tools | Meta App Secret |
You only need to set the variables for the platforms you use. For example, if you only use Threads, just set THREADS_ACCESS_TOKEN and THREADS_USER_ID.
| Tool | Description |
|---|---|
meta_exchange_token |
Exchange short-lived token for long-lived token (~60 days) |
meta_refresh_token |
Refresh a long-lived token before expiration |
meta_debug_token |
Inspect token validity, expiration, and scopes |
meta_get_app_info |
Get Meta App information |
meta_subscribe_webhook |
Subscribe to webhook notifications |
meta_get_webhook_subscriptions |
List current webhook subscriptions |
| Tool | Description |
|---|---|
ig_publish_photo |
Publish a photo post (supports alt_text) |
ig_publish_video |
Publish a video post |
ig_publish_carousel |
Publish a carousel/album (2-10 items, supports alt_text per item) |
ig_publish_reel |
Publish a Reel (supports alt_text) |
ig_publish_story |
Publish a Story (24hr) |
ig_get_container_status |
Check media container processing status |
| Tool | Description |
|---|---|
ig_get_media_list |
List published media |
ig_get_media |
Get media details |
ig_delete_media |
Delete a media post |
ig_get_media_insights |
Get media analytics (views, reach, saved, shares) |
ig_toggle_comments |
Enable/disable comments on a post |
| Tool | Description |
|---|---|
ig_get_comments |
Get comments on a post |
ig_get_comment |
Get comment details |
ig_post_comment |
Post a comment |
ig_get_replies |
Get replies to a comment |
ig_reply_to_comment |
Reply to a comment |
ig_hide_comment |
Hide/unhide a comment |
ig_delete_comment |
Delete a comment |
| Tool | Description |
|---|---|
ig_get_profile |
Get account profile info |
ig_get_account_insights |
Get account-level analytics (views, reach, follower_count) |
ig_business_discovery |
Look up another business account |
ig_get_collaboration_invites |
Get pending collaboration invites |
ig_respond_collaboration_invite |
Accept or decline collaboration invites |
| Tool | Description |
|---|---|
ig_search_hashtag |
Search hashtag by name |
ig_get_hashtag |
Get hashtag info |
ig_get_hashtag_recent |
Get recent media for a hashtag |
ig_get_hashtag_top |
Get top media for a hashtag |
| Tool | Description |
|---|---|
ig_get_mentioned_comments |
Get comments mentioning you |
ig_get_tagged_media |
Get media you're tagged in |
| Tool | Description |
|---|---|
ig_get_conversations |
List DM conversations |
ig_get_messages |
Get messages in a conversation |
ig_send_message |
Send a DM |
ig_get_message |
Get message details |
| Tool | Description |
|---|---|
threads_publish_text |
Publish a text post (supports polls, GIFs, link attachments, topic tags, quote posts, spoiler flag) |
threads_publish_image |
Publish an image post (supports alt_text, topic tags, spoiler flag) |
threads_publish_video |
Publish a video post (supports alt_text, topic tags, spoiler flag) |
threads_publish_carousel |
Publish a carousel (2-20 items, supports alt_text per item) |
threads_delete_post |
Delete a post (max 100/day) |
threads_get_container_status |
Check container processing status |
threads_get_publishing_limit |
Check remaining publishing quota (250 posts/day) |
| Tool | Description |
|---|---|
threads_get_posts |
List published posts (includes topic_tag, poll, GIF fields) |
threads_get_post |
Get post details |
threads_search_posts |
Search public posts by keyword or topic tag |
| Tool | Description |
|---|---|
threads_get_replies |
Get replies to a post |
threads_reply |
Reply to a post (supports image/video attachments) |
threads_hide_reply |
Hide a reply |
threads_unhide_reply |
Unhide a reply |
| Tool | Description |
|---|---|
threads_get_profile |
Get Threads profile info (includes is_verified) |
threads_get_user_threads |
List user's threads |
| Tool | Description |
|---|---|
threads_get_post_insights |
Get post analytics (views, likes, replies, reposts, quotes, clicks) |
threads_get_user_insights |
Get account-level analytics |
| Resource URI | Description |
|---|---|
instagram://profile |
Instagram account profile data |
threads://profile |
Threads account profile data (includes is_verified) |
| Prompt | Description |
|---|---|
content_publish |
Cross-post content to Instagram and Threads |
analytics_report |
Generate combined analytics report |
All platforms (Instagram, Threads) require a Meta Developer App.
Your META_APP_ID and META_APP_SECRET are in App Settings → Basic.
Requires an Instagram Business or Creator account. Switch for free in Instagram app → Settings → Account type.
instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insights, instagram_manage_contents, pages_show_list, pages_read_engagementGET https://graph.facebook.com/v25.0/oauth/access_token
?grant_type=fb_exchange_token
&client_id=YOUR_APP_ID
&client_secret=YOUR_APP_SECRET
&fb_exchange_token=SHORT_LIVED_TOKEN
Or use the meta_exchange_token tool after setup.GET https://graph.facebook.com/v25.0/me/accounts?access_token=YOUR_TOKEN
This returns your Facebook Pages. For each page, get the linked Instagram account:GET https://graph.facebook.com/v25.0/{page-id}?fields=instagram_business_account&access_token=YOUR_TOKEN
The instagram_business_account.id is your INSTAGRAM_USER_ID (a numeric ID like 17841400123456789).Works with any Threads account (personal or business). Instagram account link is no longer required since September 2025.
https://threads.net/oauth/authorize
?client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&scope=threads_basic,threads_content_publish,threads_manage_insights,threads_manage_replies,threads_read_replies
&response_type=code
https://localhost/ as redirect URI (configure in App Settings → Threads API → Redirect URIs)POST https://graph.threads.net/oauth/access_token
Content-Type: application/x-www-form-urlencoded
client_id=YOUR_APP_ID
&client_secret=YOUR_APP_SECRET
&grant_type=authorization_code
&redirect_uri=YOUR_REDIRECT_URI
&code=AUTHORIZATION_CODE
GET https://graph.threads.net/access_token
?grant_type=th_exchange_token
&client_secret=YOUR_APP_SECRET
&access_token=SHORT_LIVED_TOKEN
GET https://graph.threads.net/v1.0/me?fields=id,username&access_token=YOUR_TOKEN
The id field is your THREADS_USER_ID (a numeric ID like 1234567890).Set only the variables for the platforms you use:
# Instagram (requires Business/Creator account)
INSTAGRAM_ACCESS_TOKEN=EAAxxxxxxx... # Long-lived token from Step 2
INSTAGRAM_USER_ID=17841400123456789 # Numeric ID from Step 2.5
# Threads (any account)
THREADS_ACCESS_TOKEN=THQWxxxxxxx... # Long-lived token from Step 3
THREADS_USER_ID=1234567890 # Numeric ID from Step 3.6
# Meta App (for token management & webhooks)
META_APP_ID=123456789012345 # From App Settings → Basic
META_APP_SECRET=abcdef0123456789abcdef # From App Settings → Basic
Access tokens expire after ~60 days. Refresh before expiration:
meta_exchange_token with the current valid tokenmeta_refresh_token or call:GET https://graph.threads.net/refresh_access_token
?grant_type=th_refresh_token
&access_token=CURRENT_LONG_LIVED_TOKEN
You can check token status anytime with meta_debug_token.
The following Instagram metrics were deprecated in Graph API v22.0 (January 2025) and removed for all versions on April 21, 2025:
| Deprecated Metric | Replacement |
|---|---|
impressions |
views |
video_views |
views |
plays |
views |
clips_replays_count |
views |
engagement |
saves + shares + likes + comments |
email_contacts |
Removed (no replacement) |
phone_call_clicks |
Removed (no replacement) |
text_message_clicks |
Removed (no replacement) |
get_directions_clicks |
Removed (no replacement) |
website_clicks |
Removed (no replacement) |
profile_views |
Removed (no replacement) |
MIT
Run in your terminal:
claude mcp add mikusnuz-meta-mcp -- npx Yes, mikusnuz/meta-mcp MCP is free — one-click install via Unyly at no cost.
No, mikusnuz/meta-mcp runs without API keys or environment variables.
Self-hosted: the server runs locally on your machine via the install command above.
Open mikusnuz/meta-mcp on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Transcripts, channel stats, search
by YouTubeAI image generation using various models.
by modelcontextprotocolUnified GPU inference API with 30 AI services (LLM, image gen, video, TTS, whisper, embeddings, reranking, OCR) as MCP tools. Pay-per-use via x402 USDC or API k
by gpu-bridgeA powerful image generation tool using Google's Imagen 3.0 API through MCP. Generate high-quality images from text prompts with advanced photography, artistic,
by hamflxNot sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs