MCP інтеграція
Підключення зовнішніх інструментів до Claude Code через Model Context Protocol
📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ
Що таке 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
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/documents"],
"env": {}
}
}
}
Проєктна конфігурація
Файл: .claude/settings.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_..."
}
}
}
}
Додавання через CLI
claude mcp add github -e GITHUB_TOKEN=ghp_... -- npx -y @modelcontextprotocol/server-github
Перевірка підключених серверів:
claude mcp list
Популярні MCP сервери
Filesystem Server
Надає розширені можливості роботи з файловою системою:
{
"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:
{
"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
Браузерна автоматизація — тестування та веб-скрейпінг:
{
"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
Прямий доступ до бази даних:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
}
}
}
}
Memory Server
Персистентна пам'ять для Claude Code між сесіями:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
Використання MCP інструментів
Після підключення MCP-серверу, його інструменти стають доступними для Claude Code автоматично:
# Claude Code автоматично використає GitHub MCP для цього запиту
> Створи issue в репозиторії my-org/my-repo з описом бага у формі логіна
# Playwright MCP для перевірки сторінки
> Відкрий https://myapp.com/login та перевір, чи форма логіна відображається коректно
# PostgreSQL MCP для запитів до бази
> Покажи останніх 10 користувачів, що зареєструвались
Створення власного MCP сервера
Якщо потрібен кастомний інструмент, можна створити власний MCP-сервер:
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
# Перевірити статус серверів
claude mcp list
# Запустити з детальним логуванням
claude --verbose
# Перевірити конфігурацію
cat ~/.claude/settings.json | jq '.mcpServers'
Наступні кроки
Автономна робота Claude Code з MCP-інструментами
Автоматизація через PreToolUse та PostToolUse hooks