Содержание

Что такое MCP

MCP (Model Context Protocol) — открытый протокол, который позволяет подключать внешние инструменты к Claude. Вместо того чтобы Claude знал только о файлах в твоём проекте, MCP-серверы дают ему доступ к базам данных, GitHub, браузеру, Jira, Slack и многому другому. (Базовая настройка Claude Code — в первой статье серии.)

Архитектура простая:

Claude Code ←→ MCP-клиент ←→ MCP-сервер ←→ Внешний сервис

Как подключить MCP-сервер

Через CLI (быстро)

# Локальный (stdio) сервер: опции идут ДО имени, команда отделяется `--`
claude mcp add --transport stdio <название> -- npx -y <пакет> [аргументы]

# Удалённый (HTTP) сервер:
claude mcp add --transport http <название> <url>

# Примеры:
claude mcp add --transport stdio filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/dir
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer ${GITHUB_TOKEN}"

По умолчанию сервер ставится в scope local (только ты, только этот проект). Добавь --scope project, чтобы записать его в .mcp.json и расшарить на команду.

Через .mcp.json (рекомендуется для команды)

Создай .mcp.json в корне проекта:

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_TOKEN}"
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "${DATABASE_URL}"
      }
    }
  }
}

Этот файл коммитится в репозиторий — все в команде получают одинаковые инструменты.

Полезные MCP для разработки

GitHub MCP

# GitHub теперь hosted HTTP-сервер (старый npm-пакет @modelcontextprotocol/server-github устарел)
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer ${GITHUB_TOKEN}"

Что умеет:

  • Читать и создавать Issues и Pull Requests
  • Просматривать код в репозитории
  • Управлять ветками и коммитами
  • Искать по коду на GitHub

Пример использования:

"Посмотри на открытые баги с лейблом 'critical' и предложи план исправлений"
"Создай PR с описанием для текущей ветки"

PostgreSQL / SQLite MCP

# PostgreSQL
claude mcp add --transport stdio postgres -- npx -y @modelcontextprotocol/server-postgres

# SQLite
claude mcp add --transport stdio sqlite -- npx -y @modelcontextprotocol/server-sqlite --db-path ./db.sqlite

Что умеет:

  • Просматривать схему БД
  • Выполнять SQL-запросы
  • Анализировать данные

Пример:

"Покажи таблицы с самым большим количеством строк"
"Найди N+1 проблемы в этом коде, зная структуру БД"

Filesystem MCP

claude mcp add --transport stdio filesystem -- npx -y @modelcontextprotocol/server-filesystem /home/user/projects

Расширенный доступ к файлам за пределами рабочей директории — например, к общим конфигам или другим проектам.

Playwright MCP (браузер)

# Playwright — актуальный браузерный сервер (reference-сервер puppeteer архивирован)
claude mcp add --transport stdio playwright -- npx -y @playwright/mcp

Что умеет:

  • Открывать страницы в браузере
  • Делать скриншоты
  • Взаимодействовать с UI (клики, ввод)
  • Тестировать веб-приложения

Пример:

"Зайди на localhost:3000 и проверь что форма регистрации работает"
"Сделай скриншот страницы и найди визуальные баги"

Brave Search MCP

claude mcp add --transport stdio brave-search -- npx -y @modelcontextprotocol/server-brave-search
# Нужен BRAVE_API_KEY

Поиск в интернете прямо из сессии — полезно когда нужно найти актуальную документацию или решение ошибки.

Sentry MCP

# Sentry — hosted HTTP-сервер
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

Доступ к ошибкам из Sentry:

"Покажи последние 10 ошибок в production и предложи исправления"

Linear MCP

claude mcp add --transport stdio linear -- npx -y linear-mcp-server

Работа с задачами в Linear:

"Создай задачу на основе этого бага"
"Какие задачи в спринте ещё не взяты?"

Проверка подключённых серверов

# Список всех серверов
claude mcp list

# Детали конкретного сервера
claude mcp get github

# Удалить сервер
claude mcp remove github

Внутри сессии можно проверить доступные инструменты через /mcp.

Безопасность

MCP-серверы получают доступ к твоим данным — подключай только проверенные серверы.

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "${DATABASE_URL}"
      }
    }
  }
}

Никогда не хардкоди credentials в .mcp.json — используй переменные окружения. Сам файл можно коммитить, секреты — нет.

Свой MCP-сервер

Если нужен доступ к внутренней системе, можно написать свой сервер — MCP SDK доступен на TypeScript и Python (полный разбор с нуля — в статье пишем свой MCP-сервер):

npm install @modelcontextprotocol/sdk
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({ name: "my-server", version: "1.0.0" }, {
  capabilities: { tools: {} }
});

server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "get_deploys",
    description: "Получить последние деплои из внутренней системы",
    inputSchema: { type: "object", properties: {} }
  }]
}));

server.setRequestHandler("tools/call", async (req) => {
  if (req.params.name === "get_deploys") {
    // обращение к внутреннему API
    return { content: [{ type: "text", text: JSON.stringify(deploys) }] };
  }
});

const transport = new StdioServerTransport();
await server.connect(transport);

Итого

  • MCP расширяет Claude Code внешними инструментами: БД, GitHub, браузер, поиск
  • .mcp.json в корне проекта — удобный способ зафиксировать серверы для команды
  • Самые полезные для разработки: GitHub, PostgreSQL, Playwright, Brave Search
  • Секреты — только через переменные окружения, не в конфиг
  • Можно написать свой MCP-сервер для любого внутреннего сервиса
Поделиться: