meta-social-mcp
Allows managing a Facebook Page: publishing, scheduling, and deleting posts, reading posts and comments, replying to comments, and viewing Page Insights via the Meta Graph API.
Allows managing an Instagram Business/Creator account: publishing photos, videos/Reels, and carousels, reading media and comments, replying to comments, and viewing post/account insights.
meta-social-mcp
Бесплатный self-hosted MCP-коннектор для управления Facebook Page и связанным с ней Instagram Business/Creator аккаунтом напрямую через официальный Meta Graph API. Никаких платных сервисов посередине — только твой собственный токен и этот код.
Что умеет
Facebook: публиковать текстовые/фото/видео посты, планировать посты на будущее, читать посты и комментарии, отвечать на комментарии, удалять посты, смотреть Page Insights.
Instagram: публиковать фото, видео/Reels, карусели, читать медиа и комментарии, отвечать на комментарии, смотреть инсайты по посту и по аккаунту.
Плюс graph_api_request — «люк» для любого запроса к Graph API, который
пока не завёрнут в отдельный инструмент.
Related MCP server: Meta Social MCP
Шаг 1. Создать приложение в Meta for Developers
Зайди на https://developers.facebook.com/apps и создай приложение типа Business.
В приложении добавь продукты Facebook Login и Instagram Graph API (Add Product → выбрать оба).
Пока приложение в режиме Development (по умолчанию), Meta не требует App Review для того, чтобы ты сам управлял своими же страницами — это ограничение только для чужих пользователей твоего приложения. То есть для личного использования полноценная модерация не нужна.
Шаг 2. Получить токен через Graph API Explorer
Выбери своё приложение вверху.
Выбери "Get User Access Token" и отметь разрешения:
pages_show_list,pages_read_engagement,pages_manage_posts,pages_manage_engagement,pages_read_user_content,instagram_basic,instagram_content_publish,instagram_manage_comments,instagram_manage_insights,read_insights.Сгенерируй User Access Token.
Обменяй его на долгоживущий токен (60 дней) через Access Token Debugger → кнопка "Extend Access Token", либо запросом:
GET https://graph.facebook.com/v21.0/oauth/access_token ?grant_type=fb_exchange_token &client_id={app-id} &client_secret={app-secret} &fb_exchange_token={короткий_user_token}Получив долгоживущий User token, забери Page Access Token (он не истекает, пока не истечёт User token):
GET https://graph.facebook.com/v21.0/me/accounts?access_token={долгоживущий_user_token}В ответе для каждой твоей страницы будет
id(этоFB_PAGE_ID) иaccess_token(этоFB_PAGE_ACCESS_TOKEN).
Шаг 3. Найти Instagram Business Account ID
GET https://graph.facebook.com/v21.0/{FB_PAGE_ID}?fields=instagram_business_account&access_token={FB_PAGE_ACCESS_TOKEN}Ответ вида {"instagram_business_account": {"id": "179..."}} — это и есть
IG_BUSINESS_ACCOUNT_ID. Важно: Instagram-аккаунт должен быть переведён в
Business или Creator и привязан к этой Facebook-странице (Instagram → Settings
→ Linked Accounts → Facebook).
Шаг 4. Настроить проект
cd meta-social-mcp
npm install
cp .env.example .env
# впиши FB_PAGE_ACCESS_TOKEN, FB_PAGE_ID, IG_BUSINESS_ACCOUNT_ID в .envПроверить, что сервер стартует:
node index.js(Он будет молча ждать MCP-подключение по stdio — это нормально, просто Ctrl+C для выхода.)
Шаг 5. Подключить к Claude
Claude Desktop / Claude Code (локально)
Добавь в claude_desktop_config.json (Claude Desktop → Settings → Developer
→ Edit Config) или в конфиг MCP-серверов Claude Code:
{
"mcpServers": {
"meta-social": {
"command": "node",
"args": ["/полный/путь/до/meta-social-mcp/index.js"],
"env": {
"FB_PAGE_ACCESS_TOKEN": "...",
"FB_PAGE_ID": "...",
"IG_BUSINESS_ACCOUNT_ID": "..."
}
}
}
}Перезапусти Claude Desktop — в списке инструментов появятся fb_* и ig_*.
Cowork / claude.ai (удалённый коннектор)
Для этого в проекте есть http.js — тот же коннектор, но поднятый как
веб-сервис (Streamable HTTP transport) вместо stdio. Проверено локально:
хендшейк, tools/list и авторизация по токену работают.
Задеплоить можно на любой хостинг, который умеет запускать Dockerfile или
Node-процесс (Render, Fly.io, Railway, свой VPS) — Dockerfile уже готов.
Обычно это:
Залить проект в свой аккаунт на выбранном хостинге (или подключить GitHub-репозиторий).
Задать переменные окружения:
FB_PAGE_ACCESS_TOKEN,FB_PAGE_ID,IG_BUSINESS_ACCOUNT_ID,MCP_BEARER_TOKEN(придумай длинную случайную строку, напримерopenssl rand -hex 32— это пароль для доступа к твоему коннектору).Хостинг даст публичный URL вида
https://твой-сервис.onrender.com.В Cowork/claude.ai добавляешь Custom Connector с этим URL +
/mcpна конце и заголовкомAuthorization: Bearer <твой MCP_BEARER_TOKEN>.
Почему это не сделано полностью автоматически: у меня нет и не может быть своего аккаунта на Render/Fly.io/Railway — регистрация нового аккаунта где-либо для тебя мне прямо запрещена политикой безопасности (это защищает тебя от того, чтобы я создавал сервисы, привязанные не пойми к чьей личности и почте). Плюс сам хостинг всё равно попросит подтвердить e-mail на регистрации — это шаг, который может сделать только человек. Если скажешь, каким хостингом пользуешься (или что готов завести новый — это 2 минуты и бесплатно), я пройду с тобой весь процесс за штурвалом браузера и подставлю все переменные окружения сам.
Важно про лимиты и безопасность
Instagram Graph API позволяет не больше 25 публикаций за 24 часа на один business-аккаунт.
.envс токеном никогда не должен попадать в git —.gitignoreуже это учитывает.fb_delete_postнеобратимо удаляет пост — используй аккуратно.Токен даёт полный доступ к странице/аккаунту в рамках выданных разрешений — храни его как пароль.
Каждый год-два Meta выпускает новую версию Graph API и отключает старые — если запросы начнут падать с ошибкой о версии, обнови
GRAPH_API_VERSIONв.env.
Available Tools
20 toolsfb_create_photo_postA
Publish a photo post to the Facebook Page from an image URL.
Inputs: image_url (required), caption.
fb_create_text_postA
Publish a text post (optionally with a link) to the connected Facebook Page's feed.
Inputs: message (required), link.
fb_create_video_postB
Upload and publish a video to the Facebook Page from a video URL.
Inputs: video_url (required), description.
fb_delete_postA
Permanently delete a post from the Facebook Page. This cannot be undone.
Inputs: post_id (required).
fb_get_commentsA
List comments on a Facebook post.
Inputs: post_id (required), limit.
fb_get_page_insightsB
Get Facebook Page insight metrics (e.g. page_impressions, page_engaged_users, page_fans).
Inputs: since, until, period, metrics.
fb_get_postB
Get details of a single Facebook post by ID.
Inputs: post_id (required).
fb_list_postsB
List recent posts from the Facebook Page.
Inputs: limit.
fb_reply_to_commentC
Reply to a comment on a Facebook post.
Inputs: message (required), comment_id (required).
fb_schedule_postA
Schedule a text post to publish on the Facebook Page at a future time (10 minutes to 6 months out).
Inputs: message (required), publish_at (required), link.
graph_api_requestA
Advanced/escape hatch: make a raw call to any Meta Graph API endpoint with the configured access token. Use this for anything the other tools don't cover yet.
Inputs: path (required), method (required), params.
ig_get_account_infoB
Get profile info for the connected Instagram account.
Inputs: no named parameters.
ig_get_account_insightsB
Get account-level Instagram insight metrics (e.g. reach, impressions, profile_views).
Inputs: period, metrics.
ig_get_commentsC
List comments on an Instagram media item.
Inputs: media_id (required), limit.
ig_get_media_insightsA
Get insight metrics for a specific Instagram media item (e.g. reach, likes, comments, saved).
Inputs: media_id (required), metrics.
ig_list_mediaB
List recent media posts from the connected Instagram account.
Inputs: limit.
ig_publish_carouselB
Publish a multi-image carousel post (2-10 images) to Instagram.
Inputs: image_urls (required), caption.
ig_publish_photoB
Publish a single photo to the connected Instagram Business account.
Inputs: image_url (required), caption.
ig_publish_videoB
Publish a video to the connected Instagram account as a Reel, feed video, or Story.
Inputs: video_url (required), caption, media_type.
ig_reply_to_commentC
Reply to a comment on an Instagram media item.
Inputs: message (required), comment_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 20 tools
Every tool is clearly scoped to a specific platform and action, with fb_ and ig_ prefixes separating Facebook from Instagram. Within each platform, actions like create, schedule, list, get, delete, and reply are distinct and unlikely to be confused.
All tools use snake_case with platform prefixes, but there is a minor inconsistency: Facebook uses 'create' for publishing posts while Instagram uses 'publish'. This is a small deviation from a fully consistent verb_noun pattern.
20 tools is on the higher side but appropriate for a server covering two distinct social platforms with posts, comments, and insights. Each tool earns its place, and the dual-platform scope justifies the count.
Core workflows are well-covered: create/schedule/list/get/delete posts, comments, and insights for Facebook; publish media and retrieve insights for Instagram. Missing update operations and Instagram deletion are minor gaps, and the graph_api_request escape hatch covers edge cases.
Maintenance
Related MCP Connectors
Instagram and Facebook Pages for AI agents: publish, comments, DM by keyword, inbox, insights.
Social media API for AI agents: publish, DMs, comments, Meta ads and leads.
Instagram, WhatsApp and Messenger DMs through official Meta Business APIs.
Instagram + Facebook Pages: read comments, reply, DM commenters, comment-to-DM Auto DM rules.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables analytics and management of Facebook Pages through the Meta Graph API, including posts, insights, audience, and publishing.GPL 3.0
- FlicenseNot gradedqualityBmaintenanceEnables publishing and managing organic Facebook Page and Instagram content directly through Meta's Graph API without paid third-party services.-
- AlicenseNot gradedqualityDmaintenanceEnables automating and managing Facebook Page interactions through the Graph API, including posting, comment moderation, engagement analytics, scheduling, and direct messaging from natural language.MIT
- AlicenseBqualityCmaintenanceEnables MCP-based interaction with the Meta Graph API for Facebook Pages and linked Instagram Business accounts, including posting, commenting, and reading page details.610 npmMIT