Skip to main content
Glama
meta-social-mcp

meta-social-mcp

by SwamiSasha

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

  1. Зайди на https://developers.facebook.com/apps и создай приложение типа Business.

  2. В приложении добавь продукты Facebook Login и Instagram Graph API (Add Product → выбрать оба).

  3. Пока приложение в режиме Development (по умолчанию), Meta не требует App Review для того, чтобы ты сам управлял своими же страницами — это ограничение только для чужих пользователей твоего приложения. То есть для личного использования полноценная модерация не нужна.

Шаг 2. Получить токен через Graph API Explorer

  1. Открой https://developers.facebook.com/tools/explorer

  2. Выбери своё приложение вверху.

  3. Выбери "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.

  4. Сгенерируй User Access Token.

  5. Обменяй его на долгоживущий токен (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}
  6. Получив долгоживущий 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 уже готов. Обычно это:

  1. Залить проект в свой аккаунт на выбранном хостинге (или подключить GitHub-репозиторий).

  2. Задать переменные окружения: FB_PAGE_ACCESS_TOKEN, FB_PAGE_ID, IG_BUSINESS_ACCOUNT_ID, MCP_BEARER_TOKEN (придумай длинную случайную строку, например openssl rand -hex 32 — это пароль для доступа к твоему коннектору).

  3. Хостинг даст публичный URL вида https://твой-сервис.onrender.com.

  4. В 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 tools
fb_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_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

    A3.5/5.0

    Scored across 20 tools

    Disambiguation5/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables analytics and management of Facebook Pages through the Meta Graph API, including posts, insights, audience, and publishing.
      GPL 3.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables automating and managing Facebook Page interactions through the Graph API, including posting, comment moderation, engagement analytics, scheduling, and direct messaging from natural language.
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables MCP-based interaction with the Meta Graph API for Facebook Pages and linked Instagram Business accounts, including posting, commenting, and reading page details.
      6
      10 npm
      MIT