MCP (Model Context Protocol): как настроить источники данных для AI Agent?

Гайд по AI-инженерии  ·   ·  ~14 мин чтения

MCP Model Context Protocol — связь AI Agent с источниками данных

Коротко: Agent умеет писать код, но не видит ваши GitHub Issues, схему БД и внутреннюю документацию — проблема часто не в модели, а в том, что никто не объяснил, откуда берутся данные. Статья начинается с протокола MCP: слои архитектуры, три примитива Tools / Resources / Prompts, stdio и HTTP, затем примеры настройки и чек-лист для Cursor и Claude Code. После прочтения вы сможете самостоятельно подключить типовые источники без glue-кода для каждого SaaS.

Материалы серии: инструкция по установке MCP в Claude Code · 20 рекомендуемых MCP Server · минимальная экспозиция прав MCP

3
примитива возможностей
2
основных транспорта
настройка — много клиентов

Что такое MCP? Какую проблему решает?

Model Context Protocol (MCP) — открытый стандарт, опубликованный Anthropic в конце 2024 года. Цель: AI-приложения (Host) должны единым и аудируемым способом подключаться к внешнему миру — репозитории, БД, документация, тикеты, браузер — без custom-интеграции на каждый источник.

До MCP команды обычно шли одним из двух путей:

  • Ручное копирование контекста — ссылки на issues, SQL-результаты, ответы API в чат. Точно, но медленно и не масштабируется.
  • Собственный Function Calling — schema и auth для GitHub, Postgres, Notion по отдельности. Гибко, но дорого в поддержке; смена клиента (Cursor → Claude Code) часто означает переписывание.

MCP — третий путь: стандартизация интерфейса «источник данных ↔ Agent». Настроили GitHub MCP один раз — Cursor, Claude Code, VS Code Copilot и OpenAI Codex могут переиспользовать; сообщество поддерживает тысячи готовых Server для SaaS и dev-tools.

В одном предложении

MCP — не сама LLM, а «USB-порт» Agent: Host рассуждает и планирует, MCP Server превращает внешние данные в структурированные вызываемые возможности. Смена модели или клиента? Настройка источников может переехать вместе с вами.

Три слоя: Host, Client, Server

Для настройки MCP сначала разберите три роли:

Роль Типичный пример Обязанности
Host Cursor, Claude Code, Claude Desktop, VS Code UI чата, оркестрация модели, решение вызывать ли MCP tools
Client Встроенный MCP-коннектор Host Сессия с Server, передача tools/list, tools/call и JSON-RPC
Server GitHub MCP, Context7, Supabase MCP, свой Server Tools / Resources / Prompts, чтение/запись данных и вызовы API

Типичная цепочка: в Cursor спрашиваете «Какие файлы изменил PR #42?» → Host → модель выбирает mcp__github__get_pull_request → Client отправляет через stdio или HTTP в GitHub MCP → Server вызывает GitHub API → структурированный JSON → ответ на основе реальных данных.

Важно: вы настраиваете подключение к Server (команда, URL, переменные окружения). Host автоматически обнаруживает tools — не нужно вручную вставлять API-доку в prompt: при старте Server через tools/list отдаёт список возможностей.

Три примитива: Tools, Resources, Prompts

MCP Server предоставляет три типа возможностей — разные паттерны подключения источников:

Tools — «дать Agent выполнять действия»

Самый частый случай. У каждого Tool есть имя, описание и input schema (JSON Schema); Agent вызывает по необходимости. Примеры: GitHub MCP search_code, Playwright MCP browser_click, DB MCP execute_query.

При настройке источников: ~90 % сценариев — Tool-ориентированные Server: чтение repo, запрос таблиц, HTTP, управление браузером.

Resources — «статический контекст для чтения»

Resources — адресуемые фрагменты данных, как read-only файлы с URI. Server объявляет file://docs/api.md или db://schema/users; Host может загрузить содержимое до или во время диалога — без угадывания, какой Tool вызвать.

Подходит для: README, OpenAPI spec, снимок схемы БД, шаблонов конфигурации — знания относительно стабильные и перечислимые.

Prompts — «готовые точки входа в workflow»

Server может отдавать именованные шаблоны prompt (с параметрами) — «Code Review», «скрипт миграции» и т. п. В сообществе используются реже Tools, но удобны для упаковки командных SOP.

От источника данных к Agent: причинно-следственная цепочка настройки

① Инвентаризация источниковRepo / БД / docs / SaaS
② Выбор MCP ServerОфициальный Remote или локальный stdio
③ Проверка видимости tools/mcp или Settings — связь OK

Рекомендуемый порядок

  • Сначала один read-only источник
  • Прогнать реальную задачу
  • Затем добавить write-Server

Типичные ошибки

  • 10+ Server сразу
  • Prod-БД с write-DSN
  • Никогда не проверять после настройки
Суть MCP — не «установить максимум», а замкнуть реальную задачу. Сначала read-only, потом расширение.

Типы источников и типичные MCP Server

Таблица связывает «что хочу подключить» с «какой Server». Полный список из 20: рекомендуемые MCP Server 2026.

Тип источника Типичный MCP Server Основные возможности (Tools) Аутентификация
Репозиторий кода (GitHub) GitHub MCP (официальный) Чтение файлов, поиск кода, Issues/PR, статус CI OAuth Remote или fine-grained PAT
Локальная семантика кода CodeGraph MCP Навигация по символам, анализ зависимостей Локальный индекс, без remote token
Документация библиотек / фреймворков Context7 Официальные docs по lib и версии API Key (Remote)
Реляционная БД Supabase MCP / DBHub Чтение schema, выполнение SQL OAuth или read-only DSN
Веб / публичные API Fetch MCP HTTP GET → Markdown Нет (контролируемый egress)
Браузер / проверка UI Playwright MCP Клики, формы, a11y-дерево Локальный процесс
Тикеты / collaboration Linear / Notion / Slack MCP Issues, страницы, сообщения OAuth Remote
Мониторинг ошибок Sentry MCP Stack traces, статус issues OAuth Remote

Принцип выбора

Выбирайте по workflow, а не по рейтингу «всё сразу». Full-stack: Context7 + GitHub + Playwright закрывают ~80 %; backend + Supabase; Linear MCP — если команда им пользуется. Одновременно активно: 3–7 Server.

Транспортный слой: stdio или HTTP?

Client и Server MCP обмениваются JSON-RPC 2.0. В 2026 доминируют два транспорта:

stdio (стандартный ввод/вывод)

Host запускает Server как subprocess, напр. npx -y @modelcontextprotocol/server-github, сообщения через stdin/stdout. Плюсы: простая config, без открытых портов, удобно локально. Минусы: процесс на Server; полные Docker-версии могут превысить лимит Cursor ~40 tools.

Streamable HTTP / SSE (Remote)

Server удалённо или официально хостится; Client по HTTPS, часто OAuth. GitHub, Supabase, Linear, Sentry предлагают Remote-варианты. Плюсы: компактные наборы tools, без локального Node/Docker, tokens через OAuth. Минусы: зависимость от сети; в корп. сети проверьте egress.

Сценарий Рекомендуемый транспорт Причина
Cursor + GitHub Remote HTTP (OAuth) Локальная полная версия с 40+ tools превышает лимит
Claude Code + CodeGraph stdio (codegraph mcp) Локальный индекс repo, нужна та же машина
Внутренний custom-источник stdio или внутренний HTTP Данные не покидают сеть, аудируемо
Единый SaaS для команды Remote HTTP Без локальных зависимостей, централизованные права

Настройка источников в Cursor

Cursor: Settings → MCP или ~/.cursor/mcp.json. Структура: объект mcpServers, одна запись на Server.

Пример 1: локальный stdio — Fetch MCP

~/.cursor/mcp.json (фрагмент)
{
  "mcpServers": {
    "fetch": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-fetch"]
    }
  }
}

Пример 2: локальный stdio — GitHub MCP (PAT)

~/.cursor/mcp.json (фрагмент)
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxx"
      }
    }
  }
}

Лучше: официальный GitHub Remote MCP в UI Cursor (OAuth) — меньше tools, PAT не в JSON. PAT fine-grained read-only; не коммитить в git.

Пример 3: Context7 (источник документации)

~/.cursor/mcp.json (фрагмент)
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    }
  }
}

После сохранения перезапустите Cursor; Settings → MCP — статус Connected зелёный. В Agent-режиме: «синтаксис middleware Next.js 15?» — при правильной config модель вызовет Context7, а не выдумает API.

Настройка источников в Claude Code

Claude Code: ~/.claude.json (пользователь) или .mcp.json в корне проекта. Структура похожа на Cursor, пути немного отличаются.

~/.claude.json → mcpServers (фрагмент)
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxx"
      }
    },
    "codegraph": {
      "command": "codegraph",
      "args": ["mcp"]
    }
  }
}

После изменений полностью выйдите из Claude Code и запустите снова; в корне repo выполните claude, в сессии введите /mcp — список Server и tools. Успех: префиксы mcp__github__*, mcp__codegraph__*.

Пошагово: инструкция по установке MCP в Claude Code; обзор архитектуры: цепочка MCP GitHub Files API.

Уровень проекта vs пользователя: куда писать config?

Расположение Cursor Claude Code Когда использовать
Пользователь (глобально) ~/.cursor/mcp.json ~/.claude.json Личные Server: Context7, GitHub, Fetch
Проект (repo) .cursor/mcp.json .mcp.json Команда: CodeGraph, внутренний API, project DB

Best practice: credentials и личные предпочтения на уровне пользователя (не в git); источники, привязанные к repo (путь CodeGraph, project docs Server) в .mcp.json с commit — clone-and-go для команды. Чувствительные tokens через env, напр. "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PAT}" }, инжект из shell или CI.

Проверка: Agent действительно использует источник

Настроено ≠ работает. Чек-лист:

  1. Связь — Cursor: MCP зелёный в Settings; Claude Code: /mcp без error.
  2. Tools видны — целевой tool существует, напр. mcp__github__search_code.
  3. Smoke-тест — чёткая инструкция: «Список open issues этого repo через GitHub MCP» или «Context7: последний синтаксис Prisma migrate».
  4. Ошибки наблюдаемы — если Agent не вызывает tools: слишком много tools, размытая задача; уточните «использовать GitHub MCP».
  5. Граница прав — запрещённое действие (удалить repo) должно вернуть 403, а не тихий «OK».

Лимит tools

В Cursor около 40 tools. Один полный локальный GitHub MCP может отдать 40+ — используйте официальный Remote slim или отключайте лишние Server. Слишком много tools: неверный выбор и трата контекстных токенов.

Права и границы безопасности

Каждый источник открывает Agent дверь во внешние системы. Принцип: по умолчанию read-only, запись явно, production изолирован.

  • GitHub PAT — fine-grained token, только целевые repos; Issues/Contents read-only хватает для большинства dev-сценариев.
  • DB DSN — dev-БД с read-only ролью; никогда не класть prod write-DSN в project config.
  • Filesystem MCP — ограничить args корнем проекта, не $HOME и не /.
  • Внутренние API — staging read-only; workspace Claude без prod .env.

Матрица стратегий и цепочки атак: минимальная экспозиция прав MCP.

Типичные неполадки

Симптом Возможная причина Действие
Пустой список tools Ошибка JSON; Host не перезапущен Проверить JSON; полностью перезапустить Cursor / Claude Code
GitHub 401 / 403 PAT истёк или repo не авторизован Пересоздать token; проверить scope repo
CodeGraph пустой Не из корня repo; нет индекса codegraph init -i; проверить cwd
Agent никогда не вызывает MCP Слишком много tools; размытая задача Уменьшить число Server; назвать tool в prompt
Таймаут npx Первый download медленный; нет Node Предустановить deps; node -v

Частые вопросы

Чем MCP отличается от Function Calling?

Function Calling объявляет tools в одном API-запросе, часто привязан к модели/вендору. MCP — постоянное подключение к Server и открытый протокол: одна настройка, много клиентов, экосистема сообщества. MCP ≈ стандартизированный сменяемый runtime для Function Calling.

Можно ли написать свой MCP Server?

Да. Официальные SDK: TypeScript (@modelcontextprotocol/sdk), Python и др. Типично: внутренний wiki, ticketing API, data lake. Минимум: tools/list и tools/call, stdio — отладка в Cursor.

Отправляет ли MCP данные вендору модели?

Результаты tool-вызовов попадают в контекст диалога и уходят с запросом в LLM API Host — это необходимо для работы Agent. MCP сам ничего «лишнего» не загружает; риск = какие права вы дали Server. Minimal privilege ограничивает поверхность.

Какие источники подключать первыми в 2026?

Обычно Context7 (docs) + GitHub (repo) + Playwright (браузер). Backend: Supabase или DBHub; Linear/Notion — если команда ими пользуется. Подробнее: 20 рекомендуемых MCP Server.

ZavCloud Cloud Mac

Прогон MCP + Agent workflow на настоящем macOS

Выделенный Mac mini: локальный индекс CodeGraph, MCP-цепочка Claude Code, GitHub Runner CI — разработка, проверка и автоматизация на одной машине.

Начать настройку
Special Offer Аренда Mac mini онлайн