MCP: стандарт интеграции ИИ с инструментами
MCP — открытый протокол для подключения ИИ к инструментам и данным. Разбираем архитектуру и практическое применение.
Model Context Protocol (MCP) — открытый стандарт, разработанный Anthropic для подключения языковых моделей к внешним источникам данных и инструментам. До MCP каждая интеграция (с базой данных, API, файловой системой) требовала кастомного кода. MCP стандартизирует этот процесс: один протокол для любых подключений.
Проблема, которую решает MCP
LLM знают только то, на чём обучены. Для доступа к актуальным данным, внутренним системам компании или инструментам (Slack, Jira, база данных) нужна интеграция. До MCP каждый провайдер предлагал свой подход: OpenAI — Actions и Plugins, Google — Extensions, Anthropic — Tool Use. Разработчик писал адаптер под каждый LLM отдельно.
MCP — «USB для ИИ»: единый стандартный разъём для подключения чего угодно к любой модели. Написали MCP-сервер для PostgreSQL — он работает с Claude, GPT, Gemini и локальными моделями.
Архитектура
MCP работает по модели клиент-сервер. MCP-сервер — программа, которая предоставляет доступ к ресурсу (база данных, API, файлы). MCP-клиент — приложение с LLM (Claude Desktop, Cursor, собственное приложение), которое подключается к серверам.
Протокол определяет три типа возможностей: Resources — данные, которые модель может прочитать (файлы, записи БД, документы). Tools — действия, которые модель может выполнить (создать запись, отправить сообщение, запустить запрос). Prompts — шаблоны для типовых задач.
Коммуникация — через JSON-RPC поверх stdio (для локальных серверов) или HTTP/SSE (для удалённых).
Примеры MCP-серверов
Anthropic и сообщество уже создали десятки серверов: файловая система (чтение/запись файлов), PostgreSQL (SQL-запросы), GitHub (issues, PR, код), Slack (чтение/отправка сообщений), Google Drive (документы), Notion (страницы и базы данных), Brave Search (веб-поиск).
Пример использования: подключите MCP-сервер PostgreSQL к Claude Desktop, и модель сможет выполнять SQL-запросы к вашей базе. «Покажи топ-10 клиентов по выручке за март» → Claude формирует SQL, выполняет запрос через MCP, возвращает результат.
Для разработчиков
Создать MCP-сервер — просто. SDK доступен для Python и TypeScript. Минимальный сервер на Python:
from mcp.server import Server
import mcp.types as types
server = Server("my-tool")
@server.list_tools()
async def list_tools():
return [types.Tool(
name="get_weather",
description="Получить погоду в городе",
inputSchema={"type": "object", "properties": {"city": {"type": "string"}}}
)]
@server.call_tool()
async def call_tool(name, arguments):
if name == "get_weather":
# Логика получения погоды
return [types.TextContent(type="text", text=f"Погода в {arguments[0][1]}: +15°C")]
server.run()Поддержка
MCP поддерживается в Claude Desktop, Cursor, Windsurf, Zed и десятках других приложений. OpenAI объявила о поддержке MCP в Agents SDK. Google работает над интеграцией в Gemini. Стандарт быстро становится общепринятым.
Для RAG-систем MCP предлагает альтернативу кастомным интеграциям: вместо написания загрузчика документов используйте готовый MCP-сервер. Подробнее о интеграции с Claude API.
Как работает MCP
MCP использует клиент-серверную архитектуру:
- MCP-хост — приложение с ИИ (Claude Desktop, IDE с Copilot, кастомный агент)
- MCP-клиент — часть хоста, которая общается с серверами по протоколу MCP
- MCP-сервер — лёгкий сервис, предоставляющий доступ к ресурсам: файлам, БД, API, браузеру
Коммуникация происходит через JSON-RPC 2.0 по транспортам: stdio (для локальных процессов) или SSE (Server-Sent Events для HTTP).
Три примитива MCP
- Resources (Ресурсы) — данные, которые модель может читать: файлы, записи БД, API-ответы. Аналог GET-запросов — только чтение.
- Tools (Инструменты) — действия, которые модель может выполнять: запись файлов, вызов API, запросы к БД. Аналог POST/PUT-запросов.
- Prompts (Промпты) — шаблоны для типичных взаимодействий, которые сервер предоставляет клиенту.
Популярные MCP-серверы
| Сервер | Что даёт | Тип |
|---|---|---|
| filesystem | Чтение/запись файлов | Официальный |
| github | GitHub API: репозитории, PR, issues | Официальный |
| postgres | Запросы к PostgreSQL | Официальный |
| brave-search | Веб-поиск через Brave | Официальный |
| puppeteer | Управление браузером | Официальный |
| memory | Граф знаний для агентов | Официальный |
Как написать свой MCP-сервер (Python)
from mcp.server import Server
from mcp.server.models import InitializationOptions
import mcp.types as types
server = Server("my-tool-server")
@server.list_tools()
async def handle_list_tools():
return [
types.Tool(
name="get_weather",
description="Получить погоду по городу",
inputSchema={
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
)
]
@server.call_tool()
async def handle_call_tool(name: str, arguments: dict):
if name == "get_weather":
city = arguments["city"]
# Реальный вызов API погоды
return [types.TextContent(type="text", text=f"В {city}: +15°C, облачно")]
# Запуск
import asyncio
from mcp.server.stdio import stdio_server
asyncio.run(stdio_server(server))Интеграция с Claude Desktop
Для подключения сервера к Claude Desktop редактируем config:
{
"mcpServers": {
"my-tool-server": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}После перезапуска Claude видит инструменты сервера и может их вызывать в диалоге.
Экосистема MCP в 2026 году
MCP был открыт Anthropic в ноябре 2024 года. К 2026 году протокол поддержан:
- Claude (Anthropic) — нативная поддержка
- OpenAI — поддержка MCP в своих агентах
- Google Gemini — интеграция через Vertex AI
- IDE: Zed, Cursor, VS Code (через расширения)
- Тысячи сторонних серверов в сообществе (awesome-mcp-servers)
MCP стал де-факто стандартом для подключения ИИ к внешним инструментам. Подробнее о фреймворках для агентов — в нашем сравнении LangChain и LlamaIndex.
MCP (Model Context Protocol): что это и зачем
Model Context Protocol — открытый стандарт Anthropic для подключения LLM к внешним инструментам и данным. Задача MCP — стандартизировать способ, которым ИИ-приложения общаются с базами данных, API, файловыми системами и другими сервисами. Аналог USB-C для периферии, только для ИИ-агентов.
Архитектура MCP
| Компонент | Роль | Примеры |
|---|---|---|
| MCP Host | Приложение, использующее LLM | Claude Desktop, Cursor, VS Code |
| MCP Client | Слой связи внутри host | Встроен в Claude SDK |
| MCP Server | Сервис, предоставляющий инструменты | GitHub MCP, PostgreSQL MCP |
| Transport | Протокол связи | stdio (локальный), HTTP+SSE (удалённый) |
Официальные MCP серверы от Anthropic
- filesystem — чтение/запись файлов в указанных директориях
- github — работа с репозиториями, issues, pull requests через GitHub API
- postgres — SQL-запросы к PostgreSQL базам данных
- brave-search — веб-поиск через Brave Search API
- puppeteer — управление браузером для scraping и автоматизации
- slack — отправка сообщений, работа с каналами Slack
- google-maps — геолокация, маршруты, поиск мест
Настройка MCP в Claude Desktop
Конфигурация MCP серверов в файле claude_desktop_config.json: укажите серверы которые нужно подключить с их параметрами (путь к исполняемому файлу, переменные окружения). После перезапуска Claude Desktop увидит новые инструменты и сможет их вызывать в диалоге.
Создание собственного MCP сервера
MCP SDK доступен для Python и TypeScript. Минимальный сервер реализует три метода: list_tools() (что умеет сервер), call_tool(name, args) (вызов инструмента), list_resources() (доступные данные). Это позволяет подключить любой внутренний API компании к Claude без изменения кода самой модели.
MCP vs Function Calling: в чём разница
Function Calling (OpenAI, Anthropic) — инструменты определяются в каждом запросе и специфичны для приложения. MCP — стандартный протокол для повторно используемых серверов-инструментов. MCP серверы можно подключить к любому MCP-совместимому хосту без доработки. Trend 2025: OpenAI, Google и Microsoft анонсировали поддержку MCP в своих продуктах, что делает его реальным стандартом индустрии.