mcp-insta
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-instashow my recent posts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-insta
Локальный MCP-сервер для Windows, который безопасно подключает один профессиональный Instagram Creator/Business аккаунт к AI-клиенту через Meta Graph API.
Он рассчитан на работу с одной заранее выбранной связкой Facebook Page → Instagram. Секреты и access token остаются в Windows Credential Manager; SQLite хранит только техническую привязку аккаунта и Page.
Что умеет
Задача | MCP-инструменты | Режим |
Подключить аккаунт и проверить доступ |
| OAuth с PKCE |
Читать профиль и медиа |
| Только чтение |
Читать аналитику |
| Только чтение |
Читать Instagram Direct |
| Только чтение |
Ответить в Direct |
| Только после явного подтверждения |
Читать комментарии |
| Зарегистрировано, но намеренно недоступно в этой поставке |
ig_direct_reply_prepare создаёт одноразовую операцию и ничего не отправляет. Только отдельный вызов ig_direct_reply_confirm выполняет отправку. Срок действия подготовленной операции — пять минут.
Related MCP server: Instagram MCP Server
Как устроено
flowchart LR
User["Пользователь"] --> Client["MCP-клиент"]
Client --> Runtime["mcp-insta"]
Runtime --> Auth["OAuth + PKCE"]
Auth --> Credentials["Windows Credential Manager"]
Runtime --> State["SQLite: IDs аккаунта и Page"]
Runtime --> Graph["Meta Graph API"]
Runtime --> Messaging["Instagram Messaging API"]
Runtime --> Gates["Capability gates"]
Gates --> Reads["Профиль, медиа, аналитика, Direct"]
Runtime --> Prepare["Подготовка ответа"]
Prepare --> Confirm["Явное подтверждение"]Расширенная схема: docs/architecture/project-graph.mmd.
.
├── docs/ # настройка Meta, Windows и матрица возможностей
├── scripts/ # сборка и подготовка пакета
├── src/
│ ├── auth/ # OAuth + PKCE и выбор Page → Instagram
│ ├── direct/ # ссылки и Direct workflow
│ ├── meta/ # Graph и Page Messaging клиенты
│ ├── secrets/ # Windows Credential Manager
│ ├── storage/ # локальная SQLite-привязка
│ └── tools/ # MCP-инструменты
└── tests/ # unit и интеграционные проверкиБыстрый старт
Нужны Windows и Node.js 22.5 или новее.
npm ci
npm run buildДобавьте собранный сервер в конфигурацию MCP-клиента:
{
"mcpServers": {
"insta": {
"command": "node",
"args": ["C:\\path\\to\\mcp-insta\\dist\\index.js"]
}
}
}Настройка Meta и подключение
Создайте Meta App с Facebook Login for Business.
Свяжите профессиональный Instagram Creator/Business аккаунт с отдельной Facebook Page.
Добавьте redirect URI
http://localhost:8787/callback.В Windows Credential Manager создайте generic credentials
mcp-insta/app-idиmcp-insta/app-secret.Вызовите
insta_auth_start, завершите OAuth в браузере, затем вызовитеinsta_auth_complete.Запустите
insta_diagnose: он открывает каждую возможность только после успешной API-проверки именно этой связки аккаунтов.
Полная инструкция: настройка Windows, настройка Meta, матрица возможностей.
Границы безопасности
App ID, App Secret и access token не попадают в
.env, SQLite, логи или ответы MCP.Cookie и тексты Direct не сохраняются локально.
OAuth закрепляет ровно одну выбранную связку Page → Instagram; неоднозначный результат отклоняется.
Ошибки очищаются от токенов и параметров URL.
Перед Graph-запросами проверяются capability gates, формат ID и совместимость метрик с endpoint.
Подтверждение Direct-ответа — единственная исходящая операция. Публикация, отправка сообщений одним вызовом и модерация комментариев не реализованы.
Превью

Собирает важное из Instagram, чтобы слышать аудиторию внимательнее.
Проверка
npm run check
npm pack --dry-run --jsonНабор тестов проверяет OAuth с PKCE, привязку Page → Instagram, хранение и редактирование секретов, capability gates, MCP-протокол, безопасные ошибки, Graph read API, пагинацию, аналитику и контракт Direct prepare → confirm.
Документация
Лицензия
2026-07-20 ·
28d951c·docs: add README history and project slogan· Открыть редакцию2026-07-20 ·
07b8e7d·docs: redesign README with verified preview· Открыть редакцию2026-07-20 ·
f600005·feat: establish secure Instagram MCP· Открыть редакцию
Available Tools
5 toolsig_direct_reply_confirmA
Отправить ранее подготовленный ответ Direct после явного подтверждения.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure. It correctly indicates a write operation (sending a reply) and adds context about requiring prior preparation and confirmation. However, it does not detail side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence, front-loaded with the action and prerequisite. No unnecessary words; highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one param, no output schema), the description covers the essential action and prerequisite. However, the missing parameter description and lack of detail about the operation_id reduce completeness for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for parameters, and the description fails to explain the meaning of operation_id. This leaves the agent without clarity on what value to provide; the purpose is implied but not explicitly documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a previously prepared Direct reply after explicit confirmation, using a specific verb and resource. It distinguishes from sibling tools like ig_direct_reply_prepare, which handles the preparation phase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after explicit confirmation, indicating a step in a workflow, but does not explicitly state when not to use it or mention alternatives. The agent infers context from sibling tools but the description lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ig_direct_reply_prepareC
Подготовить ответ в Direct; сообщение ещё не отправляется.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| conversation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It indicates the message is not sent, but does not mention other important behaviors such as whether it saves drafts, requires authentication, or is idempotent. Limited transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose. It earns its place but is perhaps too brief for a tool with complex sibling relationships. No waste, but could include more useful details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and minimal parameter coverage, the description is incomplete. It fails to address authentication, error conditions, or the relationship with sibling tools like ig_direct_reply_confirm. An agent would lack crucial context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It names two parameters (text and conversation_id) by implication but provides no additional details about constraints (e.g., maxLength, format) or semantics beyond what is obvious from the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Prepare a reply in Direct; the message is not sent yet.' It clearly identifies the tool's verb (prepare) and resource (reply in Direct), and the phrase 'not sent yet' hints at the distinction from sending tools like ig_direct_reply_confirm. However, 'prepare' is somewhat vague, lacking specifics on what preparation entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It implicitly indicates it is a pre-send step, but does not elaborate on context or prerequisites. The sibling ig_direct_reply_confirm suggests a two-step process, but the description does not clarify the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ig_get_commentC
Получить комментарий.
| Name | Required | Description | Default |
|---|---|---|---|
| comment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description lacks any behavioral details such as idempotency, permissions, rate limits, or side effects. The term 'get' suggests a read operation, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short phrase), but it lacks structure and essential information. It does not earn its place as it provides minimal value beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, no parameter descriptions, and no behavioral information, the description is inadequate for an agent to use the tool effectively. It fails to explain what a comment ID is or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (no descriptions for the parameter 'comment_id'), and the tool description does not explain the parameter's meaning, format, or constraints beyond the regex pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Получить комментарий' translates to 'Get a comment', which clearly indicates the action and resource. However, it does not explicitly differentiate from the sibling tool 'ig_get_comments' (plural), though the singular form implies it gets one comment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided about when to use this tool versus alternatives like ig_get_comments or ig_direct_reply_*. There is no mention of prerequisites, limitations, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ig_get_commentsC
Получить комментарии медиа.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| media_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states 'get comments', implying a read operation, but does not explain pagination, ordering, rate limits, or what response to expect. The behavioral transparency is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence), but it sacrifices necessary detail. It is under-specified rather than efficiently compact, as it omits critical information for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description is very incomplete. It does not explain what 'media' is, how to obtain the media_id, or what the tool returns. This is inadequate for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters (media_id and limit) with 0% schema description coverage. The description adds no meaning beyond the schema; it does not explain what media_id refers to or how limit affects results. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get comments of media' clearly states the verb and resource, but it is vague and does not specify which media or provide context to distinguish from similar tools like ig_get_comment. It is minimally adequate but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., ig_get_comment for a single comment), nor does it mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insta_auth_completeA
Завершить OAuth-подключение по коду; токен не выводится и сохраняется только в Credential Manager.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| state | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses critical behavior: the token is not output and is saved only in Credential Manager. This informs the agent that the tool does not return credentials, which is important for security.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the core behavior but lacks context on success/failure indications, prerequisites (e.g., matching state), and rate limits. It is minimally complete for a simple auth tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not explain the parameters 'code' or 'state' beyond the generic 'by code'. It fails to add meaning that minimally helps the agent, such as explaining that 'state' is for CSRF protection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (complete OAuth connection) and the resource (OAuth connection via code). It distinguishes from sibling tools which are about direct messaging and comments, so purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after obtaining an authorization code, but does not explicitly state when to use or when not to use. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clear and distinct purpose: OAuth completion, preparing and confirming direct replies, and getting all or a single comment. No overlapping functionality.
Mixed prefixes ('insta_' vs 'ig_') and inconsistent patterns ('auth_complete' vs 'direct_reply_prepare'). Though verb+noun structure is mostly consistent, the prefix inconsistency reduces coherence.
Five tools is a reasonable number for a focused Instagram assistant. It covers a specific set of features without being too sparse or cluttered.
The tool surface is limited to comments and direct messages, missing essential Instagram operations like posting, fetching user data, or exploring content. Gaps are significant for a general Instagram integration.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create your offers and launch AI Instagram DM sales agents from any MCP client, over OAuth.
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAn MCP server that integrates with Instagram's Graph API to enable AI-driven management of Instagram Business accounts. It provides tools for fetching profile data, publishing media, analyzing engagement metrics, and managing direct messages.180MIT
- AlicenseBqualityCmaintenanceMCP server that connects AI agents to Instagram for reading statistics, insights, and comments via the official Meta Graph API.162MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Instagram Graph API integration, enabling AI applications to manage Instagram Business accounts: fetch profiles, media, insights, publish content, and handle DMs.MIT
- AlicenseNot gradedqualityAmaintenanceLocal MCP server for preparing previews and publishing single image posts to Instagram after explicit user confirmation, with OAuth and safety safeguards.MIT
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/lstunn25ai/mcp-insta'
If you have feedback or need assistance with the MCP directory API, please join our Discord server