MCP-сервер соединяет ИИ-ассистента с внешними действиями, данными и шаблонами обращений: эта программа отдаёт их как инструменты, ресурсы и промпты по открытому протоколу MCP (Model Context Protocol). Он работает локально через stdio или удалённо через Streamable HTTP, а в Claude Desktop, Claude Code, Codex и Cursor подключается записью в конфиг или командой. Клиент должен поддерживать MCP и выбранный транспорт.
Зачем понадобился отдельный протокол
MCP нужен, чтобы интеграцию с внешним сервисом можно было использовать в разных ИИ-приложениях. Раньше каждая связка «ассистент плюс внешний сервис» писалась отдельно: свой формат описания функций у одного вендора, свой у другого, при переносе интеграцию приходилось переделывать. MCP убирает эту работу: сервис один раз описывает себя по общим правилам и подключается к клиентам, которые понимают стандарт и поддерживают нужный транспорт. Официальная документация сравнивает это с разъёмом USB-C для ИИ-приложений.
Anthropic представила MCP 25 ноября 2024 года как открытый стандарт подключения ИИ-приложений к внешним системам.
9 декабря 2025 года Anthropic передала MCP в Agentic AI Foundation, целевой фонд под управлением Linux Foundation. Сооснователями стали Anthropic, Block и OpenAI. На дату передачи в экосистеме было больше 10 000 активных публичных MCP-серверов; среди приложений с поддержкой стандарта Anthropic назвала ChatGPT, Cursor, Gemini, Microsoft Copilot и Visual Studio Code.
Версии протокола обозначаются датой. На 7 октября 2026 года текущая ревизия имеет номер 2026-07-28.
Учиться проще, когда уже видели результат. Завтра в 12:00 МСК на бесплатном мастер-классе ИИ-агент на ваших глазах выполняет задачу целиком, а в Claude Code за эфир собирают работающий сервис.
Посмотреть бесплатноИз чего состоит связка: хост, клиент и сервер
Хост управляет подключениями, клиент ведёт обмен с конкретным сервером, а сервер отдаёт данные и умения. В архитектуре MCP у каждой роли своя задача:
- Хостом служит само ИИ-приложение (Claude Code, Claude Desktop, VS Code, ChatGPT). Оно управляет подключениями и решает, что показать модели.
- Клиент работает внутри хоста. На каждый сервер хост поднимает отдельного клиента со своим соединением.
- Сервер отдаёт данные и умения. Эта программа работает локально на вашем компьютере или на чужой машине в интернете.
Модель никуда не «ходит» сама, все обращения идут через хост. Внутри протокол разделён на два слоя: слой данных описывает обмен сообщениями по JSON-RPC 2.0, слой транспорта отвечает за канал, по которому эти сообщения бегут.
По теме: MCP-серверы в Cursor: подключение и безопасная проверка
Что MCP-сервер отдаёт агенту
MCP-сервер отдаёт инструменты, ресурсы и промпты; в документации они называются примитивами:
- Инструменты (tools): функции, которые модель вызывает, чтобы что-то сделать: прочитать файл, выполнить SQL, создать задачу. У каждой есть имя, JSON-схема параметров и, как правило, описание. Список приходит по
tools/list, вызов идёт черезtools/call. - Ресурсы (resources): данные для чтения, адресуемые по URI. Содержимое файла, схема базы, ответ API.
- Промпты (prompts): готовые шаблоны обращений, которые сервер предлагает пользователю.
Пример из спецификации: сервер к базе отдаёт инструменты для выборок, ресурс со схемой таблиц и промпт с примерами обращений к ней.
В ревизии 2026-07-28 объявлены устаревшими Roots, Sampling и Logging. Вместо Roots рекомендуется передавать папки и файлы через параметры инструментов или настройки сервера; вместо Sampling обращаться к API модели напрямую; вместо Logging писать в stderr при stdio или использовать OpenTelemetry.
Устаревшие функции продолжают работать на время вывода из протокола. По правилам версий их сохраняют в спецификации не меньше 12 месяцев, если не применено ускоренное удаление.
Сервер по-прежнему может попросить у пользователя уточнение или подтверждение действия через elicitation. Теперь это работает по шаблону Multi Round-Trip Requests: сервер возвращает ответ «нужен ввод», а клиент повторяет исходный запрос с ответом пользователя.
Ещё одна деталь ревизии 2026 года: протокол стал бессессионным. Каждое обращение несёт свою версию и возможности в поле _meta. Сервер обязан поддерживать server/discover, а клиент может вызвать его, чтобы узнать возможности сервера, или сразу отправить другой запрос. Благодаря этому удалённый сервер живёт за обычным балансировщиком.
MCP Inspector показывает списки инструментов и ресурсов со стороны клиента, после этого чужие конфиги читаются легче. Для запуска нужен Node 22.19.0 или новее. Первая команда запускает Inspector, вторая сразу подключает Filesystem к
~/Desktop:
npx @modelcontextprotocol/inspector
npx -y @modelcontextprotocol/inspector npx @modelcontextprotocol/server-filesystem ~/Desktop
Транспорты: локальный процесс и удалённый сервер
Стандартных транспортов два: stdio и Streamable HTTP. Спецификация разрешает и собственные транспорты. Обычно stdio означает локальный процесс, а Streamable HTTP используется для удалённого сервера.
При stdio клиент запускает сервер как обычный процесс на вашей машине и общается через стандартный ввод-вывод. Для этого обмена сеть не нужна, задержки минимальны, сервер может обращаться к локальным файлам. Так работает почти всё, что вы ставите себе сами.
В Streamable HTTP каждое сообщение отправляется HTTP POST, ответ приходит как JSON или поток Server-Sent Events (SSE). Так подключаются удалённые серверы чужих сервисов. Протокол предусматривает bearer-токены, API-ключи и заголовки; для получения токенов рекомендуется OAuth.
Старый транспорт HTTP+SSE объявлен устаревшим. Его заменяет Streamable HTTP; использование SSE для потока ответа внутри Streamable HTTP при этом сохраняется.
Локальный сервер обычно обслуживает одного клиента, удалённый может обслуживать многих. Для локального Filesystem в Claude Desktop и Cursor используется JSON с ключом mcpServers, у Codex тот же смысл задаётся в TOML. В инструкции подключения локального сервера приведён такой формат:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
}
}
}
Последний аргумент задаёт папку, с которой Filesystem-серверу разрешено работать; можно перечислить несколько папок. Клиент с поддержкой Roots может полностью заменить этот список своим. Ограничение задаёт сам сервер, системной песочницы оно не создаёт. Этот пример относится к локальному серверу; MCP в Claude также используют через коннекторы и расширения.
По теме: Codex MCP: как подключить сервер и проверить инструменты в 2026
Как подключить MCP-сервер к Claude, Codex и Cursor
Чтобы подключить сервер, укажите в клиенте команду запуска локального процесса или адрес удалённого сервера. Перед локальными серверами на npx проверьте установленный Node.js командой ниже. В шаблонах замените <имя> именем сервера, <пакет> названием его пакета, а <адрес> адресом удалённого сервера.
node --version
В Claude Desktop откройте Settings, затем Developer и Edit Config. По инструкции MCP конфиг лежит в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows. Добавьте сервер в ключ mcpServers, как в JSON выше. После сохранения полностью закройте приложение и откройте его снова.
В Claude Code удалённый сервер добавляют с --transport http, локальный с --transport stdio; всё после -- передаётся серверу. Область хранения задают флагом --scope. По документации Claude Code область local действует по умолчанию: сервер записывается в ~/.claude.json и работает только в текущем проекте; project использует .mcp.json в корне проекта, который можно сохранить в git; user хранится в ~/.claude.json и действует для всех проектов. claude mcp list показывает серверы, /mcp открывает управление ими внутри сессии. Перенос из Claude Desktop командой claude mcp add-from-claude-desktop доступен только на macOS и WSL. Транспорт SSE устарел.
claude mcp add --transport http notion https://mcp.notion.com/mcp
claude mcp add --transport stdio <имя> -- npx -y <пакет>
claude mcp list
claude mcp add-from-claude-desktop
При подключении MCP в Codex десктопное приложение ChatGPT, Codex CLI и расширение IDE используют общий конфиг. Документация OpenAI указывает ~/.codex/config.toml или .codex/config.toml в проекте (проектный файл читается только в доверенных проектах): таблица [mcp_servers.<имя>] содержит command и args для локального сервера либо url для удалённого. codex mcp list показывает серверы, /mcp открывает их список в интерфейсе. Для сервера с OAuth выполните codex mcp login <имя>.
codex mcp add context7 -- npx -y @upstash/context7-mcp
codex mcp add <имя> --url <адрес>
codex mcp login <имя>
codex mcp list
Для MCP-серверов в Cursor сохраните конфиг в .cursor/mcp.json внутри проекта или ~/.cursor/mcp.json для всех проектов. Используйте ключ mcpServers и JSON выше. Cursor поддерживает stdio, SSE и Streamable HTTP.
Веб-ChatGPT подключает только удалённые серверы: OpenAI указывает поддержку SSE и streaming HTTP. Локальный stdio-сервер напрямую к веб-чату не подключается.
Команды и файлы настроек различаются у Codex, Claude Code, Cursor и Copilot; серверу в каждом случае нужен совместимый клиент.
Самый короткий путь в вайбкодинг Яков Юдин раскладывает на шесть шагов на бесплатном мастер-классе завтра в 12:00 МСК: инструменты, рабочее место, первые задачи для агента. Код и английский не нужны. Досмотревшим пошаговый гайд по выбору инструмента.
Хочу на мастер-классКакие MCP-серверы уже существуют и кто их понимает
В официальном репозитории поддерживаются семь эталонных серверов, они же самые понятные примеры для чтения кода:
- Filesystem: операции с файлами с ограничением по папкам.
- Git: чтение, поиск и изменения в git-репозиториях.
- Fetch: загрузка веб-страниц и приведение их к удобному для модели виду.
- Memory: долгая память в виде графа знаний.
- Time: время и часовые пояса.
- Sequential Thinking: пошаговое рассуждение над задачей.
- Everything: тестовый сервер с инструментами, ресурсами и промптами.
Интеграции с конкретными сервисами (GitHub, PostgreSQL, SQLite, Slack, Google Drive, браузер через Puppeteer) из этого репозитория перенесены в архив servers-archived. По README проекта для части есть замены от вендоров или сообщества: Brave Search заменён официальным сервером Brave, Slack теперь ведёт Zencoder.
Искать готовое стоит в официальном реестре. По описанию реестра он находится в статусе preview и намеренно не оценивает серверы. Реестр хранит метаданные, а пакеты лежат в npm, PyPI, Docker Hub или релизах GitHub. Свой каталог готовых подключений есть у Claude: коннекторы Claude.
На вводной странице стандарта среди клиентов названы Claude, ChatGPT, Visual Studio Code, Cursor и MCPJam. Один написанный сервер работает в терминальном агенте, редакторе или чате, если клиент поддерживает его транспорт. Вызов инструментов через такие серверы и отличает ИИ-агента от обычного чат-бота. Для доступа к сайтам через интерфейс браузера можно использовать Claude in Chrome.
По теме: Claude MCP: что это и как подключить серверы в 2026
Безопасность: что получает чужой сервер
При обычном локальном запуске MCP-сервер работает на вашем компьютере с вашими правами и видит то, что видите вы. Удалённый работает с доступом, который вы выдали ему при входе (обычно через OAuth), и видит данные, которые вы ему отправляете. Практики безопасности MCP разбирают конкретные атаки с примерами вредоносных команд.
Хост передаёт результат инструмента в контекст модели, поэтому прочитанные локальным сервером данные, которые вошли в этот результат, уходят провайдеру модели вместе с вашими сообщениями.
Что сделать перед подключением стороннего сервера:
- Прочитайте команду запуска целиком. В конфиг можно спрятать что угодно, документация прямо приводит примеры вредоносных команд, замаскированных под установку сервера.
- Проверьте происхождение пакета: репозиторий, автора, свежесть коммитов, наличие записи в официальном реестре. Запись в реестре подтверждает наличие метаданных, безопасность сервера реестр не оценивает.
- Ограничьте область. Файловому серверу указывайте рабочую папку, а не домашний каталог. Токенам выдавайте минимальные права и только на чтение, если запись не нужна. В Codex
enabled_toolsзадаёт разрешённый список инструментов,disabled_toolsзапрещённый,default_tools_approval_modeуправляет подтверждениями. Для Filesystem в Docker папку можно подключить с флагомro, тогда сервер сможет только читать её. - Оставляйте подтверждение действий на себе. Удаление, отправка сообщений, платежи не должны проходить без вашего явного согласия.
Модель принимает решения по тексту описаний инструментов, и недобросовестный сервер может спрятать в них инструкции. Серверы, которые загружают внешний контент, тоже открывают риск prompt injection; об этом предупреждает документация Claude Code.
Anthropic не проводит аудит безопасности и не управляет MCP-серверами. Выбирайте серверы от поставщиков, которым доверяете; каждый подключённый сервер должен быть вам понятен.
Во многих клиентах описания всех подключённых инструментов попадают в контекст сразу, поэтому серверов лучше держать немного. Для большого каталога рекомендации разработчикам клиентов предлагают progressive discovery: подгружать полные описания инструментов по мере надобности.
Как выглядит свой простой MCP-сервер
Минимальный MCP-сервер можно собрать из функции с описанием. Официальный быстрый старт на Python требует Python 3.10 или новее и SDK версии 2.0 или новее; SDK ставится командой uv add "mcp[cli]".
from mcp.server import MCPServer
mcp = MCPServer("hello")
@mcp.tool()
async def greet(name: str) -> str:
"""Поздороваться с человеком по имени.
Args:
name: имя человека
"""
return f"Привет, {name}!"
if __name__ == "__main__":
mcp.run(transport="stdio")
В настройках клиента укажите команду запуска и абсолютный путь к файлу. В официальном примере файл weather.py запускают через uv с аргументами ниже. Для своего сервера замените путь и имя файла. На Windows путь в JSON пишут с двойными обратными слэшами или с прямыми слэшами /. Иногда в command нужен полный путь к uv: его находят командой which uv на macOS/Linux или where uv на Windows. При stdio нельзя печатать через print: стандартный вывод занят протоколом. Для логов используйте модуль logging, который пишет в stderr.
{
"command": "uv",
"args": ["--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather", "run", "weather.py"]
}
Имя параметра и строка документации попадают в описание инструмента, по ним модель понимает, когда его звать, поэтому пишите их внятно.
Собирать такой сервер удобно вместе с ИИ-ассистентом, типовой занимает несколько десятков строк. При разработке ИИ-агента внешние действия можно вынести в свой сервер; создание MCP-сервера на Python начинается с описания его инструментов.
Частые вопросы
Чем MCP-сервер отличается от обычного API?
Формой подключения. Обычный API каждое приложение подключает своим кодом. MCP-сервер отдаёт список умений в едином формате по tools/list, и клиент получает готовые описания инструментов. Часто это тонкая обёртка над существующим API.
Нужно ли уметь программировать, чтобы пользоваться MCP?
Чтобы подключить готовый сервер, достаточно скопировать несколько строк в файл настроек или нажать кнопку в приложении. Для локальных серверов на npx нужен установленный Node.js, его проверяют командой node --version. Для Python-серверов нужен Python, а при запуске через uv также нужен uv. Код понадобится, только если вы пишете свой сервер, и там речь про десятки строк.
MCP-сервер это отдельная машина, которую надо арендовать?
Нет. Обычно это процесс на вашем же ноутбуке, который запускается вместе с ассистентом и закрывается вместе с ним. Свой удалённый сервер нужен, когда его должны видеть другие люди или облачные клиенты вроде веб-ChatGPT. Готовые удалённые серверы сервисов подключаются по адресу, для них арендовать машину не надо.
Как устроены хост, клиент и MCP-сервер, теперь ясно. Посмотрите, как агент с инструментами работает в реальном времени: завтра в 12:00 МСК на бесплатном мастер-классе Codex сам открывает браузер, собирает данные и сводит их в таблицу.
Записаться на эфир