AI Wiki

MCP інтеграція

Підключення зовнішніх інструментів до Claude Code через Model Context Protocol

claude-codemcpmodel-context-protocoltoolsservers

📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ

Що таке MCP?

Model Context Protocol (MCP) — це відкритий стандарт від Anthropic для підключення зовнішніх інструментів та джерел даних до AI-моделей. MCP дозволяє Claude Code взаємодіяти з базами даних, API, браузерами, файловими системами та іншими сервісами через уніфікований протокол.

ℹ️Інформація

MCP працює за клієнт-серверною архітектурою: Claude Code виступає клієнтом, а MCP-сервери надають інструменти. Кожен сервер може надавати один або кілька інструментів.

Архітектура MCP

┌─────────────────┐ │ Claude Code │ ← MCP Client │ (клієнт) │ └────────┬────────┘ │ JSON-RPC (stdio / SSE) ┌────┴────┐ │ │ ┌───▼───┐ ┌──▼────┐ │ MCP │ │ MCP │ ← MCP Servers │Server1│ │Server2│ │(files)│ │(git) │ └───────┘ └───────┘

Конфігурація MCP серверів

Глобальна конфігурація

Файл: ~/.claude/settings.json

json
{ "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/documents"], "env": {} } } }

Проєктна конфігурація

Файл: .claude/settings.json

json
{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "ghp_..." } } } }

Додавання через CLI

bash
claude mcp add github -e GITHUB_TOKEN=ghp_... -- npx -y @modelcontextprotocol/server-github

Перевірка підключених серверів:

bash
claude mcp list

Популярні MCP сервери

Filesystem Server

Надає розширені можливості роботи з файловою системою:

json
{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/directory" ] } } }

Інструменти: read_file, write_file, list_directory, search_files, move_file

GitHub Server

Доступ до GitHub API — issues, pull requests, repositories:

json
{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "ghp_your_token" } } } }

Інструменти: create_issue, list_issues, create_pull_request, get_file_contents, search_repositories

Playwright Server

Браузерна автоматизація — тестування та веб-скрейпінг:

json
{ "mcpServers": { "playwright": { "command": "npx", "args": ["-y", "@anthropic-ai/mcp-server-playwright"] } } }

Інструменти: browser_navigate, browser_click, browser_fill_form, browser_snapshot, browser_take_screenshot

💡Порада

Playwright MCP дозволяє Claude Code відкривати веб-сторінки, заповнювати форми та робити скриншоти — ідеально для E2E тестування та дебагу UI.

PostgreSQL Server

Прямий доступ до бази даних:

json
{ "mcpServers": { "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres"], "env": { "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb" } } } }

Memory Server

Персистентна пам'ять для Claude Code між сесіями:

json
{ "mcpServers": { "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] } } }

Використання MCP інструментів

Після підключення MCP-серверу, його інструменти стають доступними для Claude Code автоматично:

bash
# Claude Code автоматично використає GitHub MCP для цього запиту > Створи issue в репозиторії my-org/my-repo з описом бага у формі логіна # Playwright MCP для перевірки сторінки > Відкрий https://myapp.com/login та перевір, чи форма логіна відображається коректно # PostgreSQL MCP для запитів до бази > Покажи останніх 10 користувачів, що зареєструвались

Створення власного MCP сервера

Якщо потрібен кастомний інструмент, можна створити власний MCP-сервер:

typescript
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; const server = new McpServer({ name: "my-custom-server", version: "1.0.0", }); // Додати інструмент server.tool( "get_deployment_status", "Отримати статус деплоя", { environment: { type: "string", description: "staging або production" } }, async ({ environment }) => { // Логіка отримання статусу const status = await checkDeployment(environment); return { content: [{ type: "text", text: JSON.stringify(status) }], }; } ); // Запустити сервер const transport = new StdioServerTransport(); await server.connect(transport);
⚠️Увага

MCP-сервери мають доступ до зовнішніх ресурсів. Завжди перевіряйте, які дозволи ви надаєте серверу, та обмежуйте доступ до чутливих даних через змінні середовища.

Debugging MCP

bash
# Перевірити статус серверів claude mcp list # Запустити з детальним логуванням claude --verbose # Перевірити конфігурацію cat ~/.claude/settings.json | jq '.mcpServers'

Наступні кроки

Агентний режим

Автономна робота Claude Code з MCP-інструментами

Hooks

Автоматизація через PreToolUse та PostToolUse hooks