English version

Автор: abavyka

Шо за покемон MCP

Що це

MCP (Model Context Protocol) — відкритий стандарт підключення AI-застосунків до зовнішніх систем. Його зробили в Anthropic і викатили в листопаді 2024, а в грудні 2025 віддали в Agentic AI Foundation під Linux Foundation (засновники — Anthropic, Block і OpenAI). Тому MCP зараз підтримують не тільки Claude, а й ChatGPT, VS Code, Cursor.

По суті це обгортка над API у форматі, зручному для моделі. Сервер описує кожен tool: імʼя, опис словами, що він робить і коли його брати, і JSON Schema параметрів. Модель читає опис, сама вирішує, коли tool викликати, а Claude Code передає виклик серверу і повертає результат у розмову. Всередині сервер робить звичайні запити до API, бази чи файлів.

Схема така:

  • host — застосунок з моделлю, тут Claude Code
  • client — зʼєднання з одним сервером, host створює по одному на кожен
  • server — програма, яка дає tools. Локальна (запускається процесом на твоїй машині) або віддалена (по HTTP, всі ж знають шо таке HTTP, правда?)

Крім tools сервер може давати resources (дані, які можна підтягнути в контекст) і prompts (готові шаблони запитів), про них нижче.

Дока дає простий сигнал: якщо копіюєш у чат дані з іншої тули (таск з трекера, графік з моніторингу), час підключити сервер. Тоді Claude читає і робить там сам, а не працює з того, що ти вставив.

Як виглядає tool

Для прикладу DeepWiki — безкоштовний віддалений сервер без авторизації, який відповідає по документації публічних GitHub-репо. Ось один його tool так, як сервер віддає його у tools/list (прибрав outputSchema і _meta):

{
  "name": "read_wiki_structure",
  "description": "Get a list of documentation topics for a GitHub repository.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "repoName": {
        "type": "string",
        "description": "GitHub repository in owner/repo format (e.g. \"facebook/react\")."
      }
    },
    "required": ["repoName"]
  }
}

Ще два:

  • read_wiki_contents — «View documentation about a GitHub repository.»
  • ask_wiki_question — «Ask any question about a GitHub repository’s codebase and get an AI-powered answer grounded in its DeepWiki.» Параметри: repoName і question

Це все, що модель знає про tool: імʼя, опис і параметри. Пишеш «як у facebook/react влаштований reconciler?» — Claude сам вибирає ask_wiki_question і підставляє repoName: "facebook/react".

І це все, що Claude може зробити через цей сервер. MCP не дає повного API сервісу чи всього, що ти можеш зробити руками в UI, а тільки те, під що автор сервера написав tools. Нема tool — Claude цього не зробить, хоч у самому сервісі воно є.

Мої

  • claude-in-chrome і chrome-devtools — браузер
  • phpstorm — IDE
  • code-review-graph
  • excalidraw — схеми
  • atlassian — Jira і Confluence на роботі
  • Claude Docs — connector з claude.ai

(MCP не тільки про код, ще Booking.com, Kiwi.com, Tripadvisor, garmin mcp etc)

Connectors, які ти додав у claude.ai, зʼявляються в Claude Code самі, якщо ти залогінений через підписку.

Як підключити

Віддалений сервер, той самий DeepWiki (можна пробувати одразу, логін не треба):

claude mcp add --transport http deepwiki https://mcp.deepwiki.com/mcp

Локальний, який запускається процесом на твоїй машині (все після -- — команда сервера):

claude mcp add airtable -- npx -y airtable-mcp-server

http — рекомендований транспорт, sse застарів.

Де шукати сервери:

  • Anthropic Directory — перевірені connectors. Додаєш у claude.ai або будь-який віддалений звідти через claude mcp add
  • плагіни — можуть приносити MCP-сервери з собою, вмикаються разом з плагіном

Далі:

  • claude mcp list — список зі статусом: підключений, треба логін, не підключився
  • /mcp — логін через OAuth, вимкнути сервер без видалення конфіга

Scope

  • local — за замовчуванням: тільки ти і тільки цей проєкт, живе в ~/.claude.json
  • project — .mcp.json у корені репо, комітиться, вся команда отримує ті самі сервери
  • user — ти, але в усіх проєктах

Ключі в .mcp.json текстом не пишемо, там працює ${API_KEY} і ${VAR:-default}.

Скільки їсть контексту

Я спочатку підключав усе цікаве, а потім вимкнув те, що не юзав: Uber, Uber Eats, Gmail, Google Calendar, Strava.

Зараз за замовчуванням працює tool search: на старті в контекст ідуть тільки назви tools та інструкції серверів, а повний опис tool підвантажується, коли Claude вирішив його використати (раніше описи всіх tools з усіх серверів вантажились у контекст на старті і висіли там усю сесію, тож кожен підключений сервер забирав місце, навіть якщо ти його не юзав; з 2.1.7, січень 2026, Claude Code почав ховати їх за пошук, коли вони займали понад 10% контексту). Тож десяток серверів наперед контекст майже не їсть.

Їсть результат кожного виклику. Він лягає в контекст і далі летить з кожним запитом:

  • з 10 000 токенів — попередження
  • 25 000 — ліміт за замовчуванням, міняється через MAX_MCP_OUTPUT_TOKENS
  • більший результат (або понад 50 000 символів) Claude Code зберігає у файл, а в розмову кладе шлях до нього

Скільки зʼїв кожен сервер, показує /usage. Що зараз у контексті — /context.

MCP чи CLI

Для GitHub і AWS я беру gh і aws CLI. Дока прямо пише, що CLI ощадніший: він не додає в контекст жодного списку tools, Claude просто запускає команду. MCP — коли CLI нема або він незручний: браузер, IDE.

Permissions

Кожен tool з MCP називається mcp__<server>__<tool>. Дозволити весь сервер — mcp__deepwiki__* в allow.

Allow-правило з * працює тільки з іменем сервера: mcp__* без нього пропускається з попередженням і нічого не дозволяє.

Безпека

  • Підключай тільки сервери, яким довіряєш. Сервер, що тягне зовнішній контент, — двері для prompt injection
  • Для бази — read-only користувач у connection string, щоб Claude нічого не змінив
  • .mcp.json з репо Claude Code в інтерактивній сесії не запустить без твого підтвердження. Але в claude -p і cloud-сесіях він вантажить сервери з нього без питань

Resources і prompts

Resources — дані сервера, які ти сам підтягуєш у контекст, як файли. Набираєш @, і в автокомпліті поруч з файлами зʼявляються ресурси всіх підключених серверів. Формат @server:protocol://path, наприклад з GitHub MCP @github:repo://abavyka/agentic-dev-wiki/refs/heads/main/contents — вміст репо з гілки main. Claude Code сам завантажує ресурс і чіпляє до повідомлення.

Prompts — готові шаблони запитів від сервера, які стають командами. Набираєш /, і вони в списку як /servername:promptname (MCP). Аргументи через пробіл, у GitHub MCP це, наприклад, /mcp__github__issue_to_fix_workflow owner repo title description labels assignees. Результат промпта йде прямо в розмову.

Різниця з tools: tool Claude викликає сам, а resource і prompt запускаєш ти.

Почитати