Claude Code «из коробки» уже умеет читать локальные файлы, выполнять команды в терминале и редактировать исходный код проекта. Однако в реальной разработке этого часто недостаточно: требуется извлечь данные из базы PostgreSQL, проверить открытые Pull Requests на GitHub, подтянуть актуальную документацию или сделать запрос к внутреннему корпоративному API.
Для решения этой задачи разработан Model Context Protocol (MCP) — открытый стандарт, превращающий Claude Code из локального ассистента в полноценный центр оркестрации внешних систем и сервисов.
В этом практическом руководстве мы разберём архитектуру MCP, научимся подключать официальные готовые серверы, напишем собственный сервер на TypeScript и закрепим знания на практических задачах.
1. Что такое MCP Server
Model Context Protocol (MCP) — открытый протокол коммуникации, разработанный компанией Anthropic, который стандартизирует взаимодействие между большими языковыми моделями (LLM) и внешними инструментами или источниками данных.
Вместо написания уникальных плагинов под каждый сервис MCP вводит единый клиент-серверный интерфейс:
Любой MCP Server предоставляет модели три базовых примитива:
- Tools (Инструменты) — исполняемые функции с типизированной JSON-схемой параметров, которые Claude Code может вызывать в процессе решения задачи (например,
create_issue,execute_query). - Resources (Ресурсы) — пассивные данные или схемы, которые ассистент считывает в качестве входного контекста (файлы, схемы БД, логи).
- Prompts (Шаблоны промптов) — преднастроенные сценарии, упрощающие типовые повторяющиеся задачи.
Сравнение возможностей Claude Code
| Сценарий | Без MCP (базовый Claude Code) | С подключенными MCP Servers |
|---|---|---|
| Работа с файлами | Только внутри текущей директории проекта | Доступ к любым разрешённым папкам и заметкам |
| Данные репозитория | Локальные файлы через git diff / git log | Чтение issues, PR, code review и API GitHub |
| Базы данных | Только при наличии локального CLI-клиента | Прямой анализ схемы, просмотр таблиц и выполнение SQL |
| Поиск информации | Локальный поиск через grep / ripgrep | Актуальный веб-поиск в реальном времени через Brave |
| Внутренние сервисы | Недоступны без сложных bash-скриптов | Вызов методов внутренних микросервисов через SDK |
2. Архитектура и принцип работы MCP
Архитектура взаимодействия построена на стандарте JSON-RPC 2.0. В большинстве локальных сценариев обмен данными происходит через стандартные потоки ввода/вывода (stdio), а для удалённых серверов — через Server-Sent Events (SSE) или HTTP.
Пошаговый жизненный цикл запроса
- Инициализация и Handshake: При запуске Claude Code считывает конфигурацию, запускает процессы серверов и запрашивает перечень инструментов (
tools/list). - Публикация возможностей: Сервер возвращает методы с JSON-схемами параметров и описанием их назначения.
- Оценка намерения: При вводе запроса на естественном языке Claude сопоставляет задачу с зарегистрированными инструментами.
- Вызов инструмента: Если для решения требуются внешние данные, модель отправляет структурированный запрос
tools/callсерверу с валидными аргументами. - Выполнение сервером: Сервер связывается с внешней БД, API или файловой системой и передаёт сырой результат клиенту.
- Синтез ответа: Claude интерпретирует полученные данные и формирует итоговый структурированный ответ.
Взаимодействие прозрачно для разработчика: не нужно вручную помнить параметры методов или синтаксис API. Claude выбирает подходящий инструмент автономно на основе контекста.
3. Как подключить MCP Server к Claude Code
Серверы подключаются через JSON-конфигурацию в секции mcpServers. Claude Code поддерживает два уровня конфигурации:
- Конфигурация проекта (
.claude/settings.json) — действует исключительно в рамках текущей папки и может безопасно храниться в репозитории для всей команды. - Глобальная конфигурация (
~/.claude/settings.json) — доступна для всех проектов текущего пользователя в операционной системе.
json{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@anthropic-ai/mcp-filesystem", "./docs" ] } } }
Параметры конфигурации
Каждая запись сервера в mcpServers состоит из трёх ключевых полей:
| Параметр | Тип | Обязательный | Описание и назначение | Примеры значений |
|---|---|---|---|---|
command | string | Да | Исполняемая команда запуска процесса сервера | "npx", "node", "uvx", "docker" |
args | string[] | Да | Массив аргументов запуска (имя пакета, пути, флаги) | ["-y", "@anthropic-ai/mcp-filesystem", "/path"] |
env | object | Нет | Переменные окружения для авторизации и API-ключей | {"GITHUB_TOKEN": "ghp_...", "DEBUG": "1"} |
Если вы используете MCP-серверы на Python, вместо npx можно применять uvx: "command": "uvx", "args": ["mcp-server-git"].
4. Каталог готовых MCP Servers
Официальные и проверенные сообществом серверы закрывают большинство типичных задач разработчика:
| Сервер | Официальный пакет | Доступ / Аутентификация | Основные возможности |
|---|---|---|---|
| Filesystem | @anthropic-ai/mcp-filesystem | Пути к разрешённым локальным папкам | Чтение, запись и поиск в каталогах вне корня проекта |
| GitHub | @anthropic-ai/mcp-github | Personal Access Token (GITHUB_TOKEN) | Поиск по репозиториям, анализ issues, ревью PR |
| PostgreSQL | @anthropic-ai/mcp-postgres | Строка подключения (connectionString) | Чтение схемы, просмотр таблиц, выполнение SQL |
| Brave Search | @anthropic-ai/mcp-brave-search | API-ключ поиска (BRAVE_API_KEY) | Свежая информация из интернета без галлюцинаций |
1. Filesystem Server
Предоставляет Claude доступ к каталогам за пределами текущего проекта (например, к базе знаний Obsidian):
2. GitHub Server
Позволяет напрямую взаимодействовать с задачами, PR и репозиториями организации:
3. PostgreSQL Server
Даёт возможность выполнять аналитические и диагностические SQL-запросы к базе данных:
4. Brave Search Server
Интегрирует поисковый движок для проверки свежей документации, changelog'ов и баг-репортов:
5. Как Claude Code использует MCP в диалоге
После регистрации сервера специальные команды не требуются. Claude Code анализирует запрос и автономно принимает решение о вызове нужного инструмента.
Пример сценария: работа с GitHub
Запрос пользователя:
"Проверь открытые issues, назначенные на меня в репозитории acme/platform, и выведи самые приоритетные."
Внутренний цикл Claude Code:
- Модель понимает, что локальных файлов проекта недостаточно для ответа.
- Формирует вызов
mcp__github__search_issuesс фильтрамиrepo:acme/platform state:open assignee:@me. - Получает структурированный ответ от GitHub API.
- Выдаёт читаемый отчёт:
6. Создание собственного MCP Server на TypeScript
Когда стандартных инструментов недостаточно для внутренней инфраструктуры, собственный сервер можно написать с помощью официального пакета @modelcontextprotocol/sdk.
Шаг 1. Инициализация проекта и зависимости
Создайте отдельную директорию и установите библиотеки:
Шаг 2. Реализация сервера (server.ts)
Создайте файл server.ts с регистрацией инструмента:
Шаг 3. Подключение к настройкам Claude Code
Добавьте сервер в .claude/settings.json:
Утилита tsx позволяет исполнять TypeScript-файлы без предварительной компиляции через tsc.
7. Безопасность и изоляция окружения
MCP расширяет автономность ассистента, но код серверов выполняется на вашей машине. Соблюдайте ключевые правила безопасности:
1. Сервер выполняется с вашими системными правами
MCP Server работает от имени текущего пользователя ОС. Ненадежный сервер имеет доступ ко всем файлам и портам вашей учетной записи.
2. Защита секретов и токенов
Не коммитьте боевые ключи в git. Храните чувствительные параметры в ~/.claude/settings.json или передавайте их через .env-файлы, добавленные в .gitignore.
3. Аудит сторонних пакетов перед запуском
Проверяйте репозитории публичных серверов перед запуском:
- Открытый исходный код и история коммитов.
- Активность сообщества и число загрузок.
- Отсутствие скрытых сетевых запросов при инициализации.
4. Разделение уровней конфигурации
Не подключайте серверы с правами записи к производственным базам данных в интерактивных сессиях. Используйте изолированные реплики только для чтения или Docker-контейнеры.
8. Практический воркшоп: пошаговая настройка
Выполните два практических задания для закрепления навыков настройки MCP.
Задание 1. Подключение GitHub MCP Server
- Создайте GitHub Personal Access Token с правами
repoиread:org. - Добавьте сервер в
~/.claude/settings.json:
- Запустите новую сессию Claude Code и выполните проверку:
Тестовый промпт:
"Покажи мои 5 последних обновлённых репозиториев на GitHub и их статус."
- Claude Code успешно вызвал GitHub инструмент без ошибок авторизации.
- Получен актуальный список репозиториев.
Задание 2. Подключение Filesystem Server для заметок
- Добавьте сервер
filesystemв.claude/settings.json:
- Отправьте проверочный запрос:
Тестовый промпт:
"Найди в папке external-docs файлы markdown, описывающие архитектуру API, и составь краткий обзор."
- Claude прочитал файлы за пределами текущего проекта.
- Корректно обобщил найденную информацию.
9. Быстрая самопроверка знаний
Проверьте, насколько точно вы усвоили архитектуру Model Context Protocol.
Вопрос 1. Что является базовым назначением MCP Server?
- A. Облачная виртуальная машина для хостинга моделей Claude
- B. Программа-адаптер, предоставляющая LLM стандартизированный доступ к инструментам и данным
- C. Библиотека для компрессии векторных эмбеддингов
- D. Веб-сервер для публикации готового фронтенда
Правильный ответ: B.
MCP Server выступает в роли адаптера между моделью и сторонними системами, публикуя стандартные Tools, Resources и Prompts.
Вопрос 2. В каком файле хранится конфигурация серверов, предназначенная только для конкретного проекта?
- A.
~/.claude/settings.json - B.
package.json - C.
.claude/settings.jsonв корне проекта - D.
CLAUDE.md
Правильный ответ: C.
Для проектного уровня используется .claude/settings.json, тогда как файл в домашней директории ~/.claude/settings.json отвечает за глобальные инструменты.
Вопрос 3. Как Claude Code определяет, какой инструмент использовать при ответе?
- A. Пользователь обязан указывать флаг
--tool=nameперед каждым запросом - B. Нужно предварительно вызывать команду
/mcp select - C. Модель оценивает семантику запроса и схемы инструментов, вызывая подходящий автономно
- D. Запускаются все инструменты одновременно, а лишние данные отбрасываются
Правильный ответ: C.
На основе схем и описаний параметров Claude определяет намерение пользователя и передаёт вызовы с валидными аргументами.
10. Итоги и чек-лист архитектуры
Model Context Protocol превращает Claude Code в гибкую платформу разработки. Вместо ручного копирования дампов и схем в чат вы настраиваете надёжные каналы взаимодействия один раз.
Чек-лист готовности среды
- Уровни настроек: Глобальные инструменты вынесены в
~/.claude/settings.json, проектные — в.claude/settings.json. - Безопасность: Токены не попадают в git; базы данных подключены с правами только для чтения.
- Верификация: Инструменты протестированы целевыми промптами при старте сессии.
- Расширяемость: Для внутренних задач подготовлен шаблон сервера на TypeScript через
@modelcontextprotocol/sdk.