MCP-серверы
Расширение возможностей Claude Code с помощью Model Context Protocol для подключения внешних инструментов и сервисов
MCP-серверы¶
MCP (Model Context Protocol — Протокол контекста моделей) — это открытый стандарт от Anthropic, позволяющий Claude Code подключаться к внешним инструментам, базам данных, API и сервисам. С помощью MCP вы можете значительно расширить возможности Claude Code.
Что такое MCP?¶
Основные понятия¶
MCP — это открытый протокол, определяющий стандарт взаимодействия между ИИ-ассистентом и внешними системами. Он включает три основных компонента:
| Компонент | Описание | Примеры |
|---|---|---|
| Tools (Инструменты) | Выполняемые действия | Запросы к БД, HTTP-запросы, операции с файлами |
| Resources (Ресурсы) | Данные для чтения | Содержимое файлов, ответы API, записи в БД |
| Prompts (Промпты) | Предопределённые шаблоны задач | Шаблоны ревью кода, генерации отчётов |
Зачем нужен MCP?¶
-
Расширение возможностей: даёт Claude доступ к системам, которые иначе недоступны
-
Актуальные данные: получение свежей документации, содержимого БД, данных API
-
Автоматизация операций: деплой, отправка уведомлений, управление ресурсами
-
Конфиденциальность: данные обрабатываются локально, без загрузки в облако
Быстрый старт¶
Проверка статуса MCP¶
> /mcp
Показывает статус текущих настроенных MCP-серверов.
Добавление MCP-сервера¶
Используйте команду claude mcp add для добавления сервера:
# Добавление сервера файловой системы
claude mcp add filesystem npx -y @modelcontextprotocol/server-filesystem /path/to/directory
# Добавление сервера базы данных SQLite
claude mcp add sqlite npx -y mcp-server-sqlite ./database.db
# Добавление пользовательского сервера
claude mcp add my-server node /path/to/server.js
Настройка через конфигурационный файл¶
Также можно создать файл .mcp.json в корне проекта:
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
},
"database": {
"command": "npx",
"args": ["-y", "mcp-server-sqlite", "./data.db"]
}
}
Популярные MCP-серверы¶
Файловая система¶
Доступ к локальной файловой системе:
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
}
}
Возможности: чтение, запись, поиск файлов в указанной директории.
База данных SQLite¶
Подключение к базе данных SQLite:
{
"sqlite": {
"command": "npx",
"args": ["-y", "mcp-server-sqlite", "./database.db"]
}
}
Возможности: выполнение SQL-запросов, управление структурой базы данных.
GitHub¶
Подключение к репозиториям GitHub:
{
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
Возможности: управление Issues, PR, операции с репозиториями.
Context7 (Поиск документации)¶
Получение актуальной документации библиотек:
{
"context7": {
"command": "npx",
"args": ["-y", "@context7/mcp-server"]
}
}
Возможности: получение актуальной документации и примеров кода любых библиотек.
Supabase¶
Подключение к бэкенду Supabase:
{
"supabase": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server"],
"env": {
"SUPABASE_URL": "${SUPABASE_URL}",
"SUPABASE_KEY": "${SUPABASE_KEY}"
}
}
}
Возможности: операции с базой данных, аутентификация, управление хранилищем.
Playwright (Автоматизация браузера)¶
Автоматизация браузерных операций и создание снимков страниц:
{
"playwright": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-server-playwright"]
}
}
Возможности: скриншоты страниц, заполнение форм, навигация, клики по элементам.
Tavily (Веб-поиск)¶
Предоставление Claude возможности поиска в интернете в реальном времени:
{
"tavily": {
"command": "npx",
"args": ["-y", "tavily-mcp-server"],
"env": {
"TAVILY_API_KEY": "${TAVILY_API_KEY}"
}
}
}
Возможности: веб-поиск, извлечение содержимого страниц, исследования.
Docker¶
Управление контейнерами:
{
"docker": {
"command": "npx",
"args": ["-y", "@docker/mcp-server"]
}
}
Возможности: управление контейнерами, образами, сетями.
Типы серверов¶
stdio (Локальный процесс)¶
Наиболее распространённый тип, запускается как локальный дочерний процесс:
{
"my-server": {
"command": "node",
"args": ["./server.js"],
"env": {
"API_KEY": "${API_KEY}"
}
}
}
Особенности:
-
Работает локально, данные не покидают машину
-
Claude Code управляет жизненным циклом процесса
-
Подходит для файловой системы, локальных баз данных и т. п.
SSE (Server-Sent Events)¶
Подключение к удалённым MCP-серверам:
{
"remote-server": {
"type": "sse",
"url": "https://mcp.example.com/sse"
}
}
Особенности:
-
Подходит для облачных сервисов
-
Поддержка OAuth-аутентификации
-
Не требует локальной установки
HTTP¶
REST API-подход:
{
"api-server": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
}
Переменные окружения¶
Конфигурация MCP поддерживает подстановку переменных окружения:
{
"my-server": {
"command": "node",
"args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],
"env": {
"DATABASE_URL": "${DATABASE_URL}",
"API_KEY": "${API_KEY}",
"DEFAULT_NAMESPACE": "${K8S_NAMESPACE:-default}"
}
}
}
Синтаксис:
-
${VAR}— подстановка значения переменной окружения -
${VAR:-default}— если переменная не задана, используется значение по умолчанию
Практические примеры¶
Пример 1: Помощник для работы с базой данных¶
{
"postgres": {
"command": "npx",
"args": ["-y", "mcp-server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/mydb"
}
}
}
Использование:
> Посчитай общую сумму заказов за последние 7 дней
> Найди топ-10 пользователей по количеству покупок
Пример 2: Администрирование Kubernetes¶
{
"kubernetes": {
"command": "node",
"args": ["./k8s-mcp-server.js"],
"env": {
"KUBECONFIG": "${KUBECONFIG}",
"K8S_NAMESPACE": "${K8S_NAMESPACE:-default}"
}
}
}
Использование:
> Покажи статус всех подов
> Перезапусти деплоймент api-server
> Покажи последние логи ошибок
Пример 3: Конфигурация нескольких серверов¶
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "./src"]
},
"database": {
"command": "npx",
"args": ["-y", "mcp-server-sqlite", "./data.db"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
Устранение неполадок¶
Сервер не запускается¶
-
Проверьте, что команда правильно установлена:
bash npx -y @modelcontextprotocol/server-filesystem --help -
Проверьте, что переменные окружения заданы:
bash echo $GITHUB_TOKEN -
Просмотрите логи Claude Code для получения информации об ошибке
Инструменты недоступны¶
-
Используйте
/mcpдля проверки статуса сервера -
Убедитесь в корректности формата конфигурационного файла (синтаксис JSON)
-
Перезапустите Claude Code для перезагрузки конфигурации
Проблемы с правами доступа¶
-
Убедитесь, что есть права на чтение/запись по указанным путям
-
Проверьте корректность строки подключения к базе данных
-
Убедитесь, что API-токен действителен и имеет достаточные права
Рекомендации по безопасности¶
-
Принцип минимальных привилегий: предоставляйте только необходимые права доступа
-
Защита конфиденциальной информации: храните токены и пароли в переменных окружения
-
Ограничение доступа к путям: сервер файловой системы должен открывать только необходимые директории
-
Регулярная ротация ключей: периодически обновляйте API-токены
Следующие шаги¶
-
Изучите Систему плагинов для создания пользовательской функциональности
-
Смотрите Советы по CLI для повышения эффективности
-
Исследуйте Советы по рабочим процессам для оптимизации процесса разработки