meta-social-mcp
meta-social-mcp
Бесплатный self-hosted MCP-коннектор для управления Facebook Page и связанным с ней Instagram Business/Creator аккаунтом напрямую через официальный Meta Graph API. Никаких платных сервисов посередине — только твой собственный токен и этот код.
Что умеет
Facebook: публиковать текстовые/фото/видео посты, планировать посты на будущее, читать посты и комментарии, отвечать на комментарии, удалять посты, смотреть Page Insights.
Instagram: публиковать фото, видео/Reels, карусели, читать медиа и комментарии, отвечать на комментарии, смотреть инсайты по посту и по аккаунту.
Плюс graph_api_request — «люк» для любого запроса к Graph API, который
пока не завёрнут в отдельный инструмент.
Шаг 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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SwamiSasha/meta-social-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server