Skip to content

Claude How ToClaude How To

MCP (Model Context Protocol)

Ця папка містить вичерпну документацію та приклади конфігурацій MCP-серверів та їх використання з Claude Code.

Огляд

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

Ключові характеристики:

  • Доступ до зовнішніх сервісів у реальному часі
  • Синхронізація даних у реальному часі
  • Розширювана архітектура
  • Безпечна автентифікація
  • Взаємодія на основі інструментів

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

Екосистема MCP

Методи встановлення MCP

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

HTTP-транспорт (рекомендовано)

bash
# Базове HTTP-підключення
claude mcp add --transport http notion https://mcp.notion.com/mcp

# HTTP з заголовком автентифікації
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

Stdio-транспорт (локальний)

Для локально запущених MCP-серверів:

bash
# Локальний Node.js-сервер
claude mcp add --transport stdio myserver -- npx @myorg/mcp-server

# Зі змінними оточення
claude mcp add --transport stdio myserver --env KEY=value -- npx server

SSE-транспорт (застарілий)

Транспорт Server-Sent Events застарілий на користь http, але все ще підтримується:

bash
claude mcp add --transport sse legacy-server https://example.com/sse

Примітка для Windows

На нативній Windows (не WSL) використовуйте cmd /c для команд npx:

bash
claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package

Автентифікація OAuth 2.0

Claude Code підтримує OAuth 2.0 для MCP-серверів, що його потребують. При підключенні до сервера з OAuth Claude Code обробляє весь потік автентифікації:

bash
# Підключення до MCP-сервера з OAuth (інтерактивний потік)
claude mcp add --transport http my-service https://my-service.example.com/mcp

# Попередньо налаштовані облікові дані OAuth для неінтерактивного встановлення
claude mcp add --transport http my-service https://my-service.example.com/mcp \
  --client-id "your-client-id" \
  --client-secret "your-client-secret" \
  --callback-port 8080
ФункціяОпис
Інтерактивний OAuthВикористовуйте /mcp для запуску OAuth-потоку через браузер
Попередньо налаштовані OAuth-клієнтиВбудовані OAuth-клієнти для популярних сервісів: Notion, Stripe та інших (v2.1.30+)
Попередньо налаштовані облікові даніПрапорці --client-id, --client-secret, --callback-port для автоматизованого встановлення
Зберігання токенівТокени зберігаються безпечно у системному keychain
Step-up authПідтримка step-up автентифікації для привілейованих операцій
Кешування виявленняМетадані OAuth discovery кешуються для швидших перепідключень
Перевизначення метаданихoauth.authServerMetadataUrl у .mcp.json для перевизначення стандартного OAuth metadata discovery

Перевизначення OAuth Metadata Discovery

Якщо ваш MCP-сервер повертає помилки на стандартному ендпоінті OAuth metadata (/.well-known/oauth-authorization-server), але має робочий OIDC-ендпоінт, ви можете вказати Claude Code отримувати метадані OAuth з конкретного URL. Встановіть authServerMetadataUrl в об'єкті oauth конфігурації сервера:

json
{
  "mcpServers": {
    "my-server": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"
      }
    }
  }
}

URL повинен використовувати https://. Ця опція потребує Claude Code v2.1.64 або новішої.

MCP-конектори Claude.ai

MCP-сервери, налаштовані у вашому обліковому записі Claude.ai, автоматично доступні в Claude Code. Будь-які MCP-підключення, налаштовані через веб-інтерфейс Claude.ai, будуть доступні без додаткової конфігурації.

MCP-конектори Claude.ai також доступні в режимі --print (v2.1.83+), що дозволяє неінтерактивне та скриптове використання.

Для вимкнення MCP-серверів Claude.ai у Claude Code встановіть змінну оточення ENABLE_CLAUDEAI_MCP_SERVERS у false:

bash
ENABLE_CLAUDEAI_MCP_SERVERS=false claude

Примітка: Ця функція доступна лише для користувачів, авторизованих через облікові записи Claude.ai.

Процес налаштування MCP

Пошук інструментів MCP

Коли описи інструментів MCP перевищують 10% контекстного вікна, Claude Code автоматично вмикає пошук інструментів для ефективного вибору правильних інструментів без перевантаження контексту моделі.

НалаштуванняЗначенняОпис
ENABLE_TOOL_SEARCHauto (за замовч.)Автоматично вмикається, коли описи інструментів перевищують 10% контексту
ENABLE_TOOL_SEARCHauto:<N>Автоматично вмикається при користувацькому порозі N інструментів
ENABLE_TOOL_SEARCHtrueЗавжди увімкнено незалежно від кількості інструментів
ENABLE_TOOL_SEARCHfalseВимкнено; всі описи інструментів надсилаються повністю

Примітка: Пошук інструментів потребує Sonnet 4 або новіший, або Opus 4 або новіший. Моделі Haiku не підтримують пошук інструментів.

Динамічне оновлення інструментів

Claude Code підтримує сповіщення MCP list_changed. Коли MCP-сервер динамічно додає, видаляє або змінює доступні інструменти, Claude Code отримує оновлення та автоматично коригує список інструментів — без потреби перепідключення або перезапуску.

MCP Apps

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

MCP Elicitation

MCP-сервери можуть запитувати структурований ввід від користувача через інтерактивні діалоги (v2.1.49+). Це дозволяє MCP-серверу запитувати додаткову інформацію під час воркфлову — наприклад, підтвердження, вибір зі списку опцій або заповнення обов'язкових полів — додаючи інтерактивність до взаємодії з MCP-серверами.

Ліміт описів інструментів та інструкцій

Починаючи з v2.1.84, Claude Code встановлює ліміт 2 КБ на описи та інструкції інструментів для кожного MCP-сервера. Це запобігає споживанню надмірного контексту окремими серверами з занадто багатослівними визначеннями інструментів.

MCP Prompts як слеш-команди

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

/mcp__<server>__<prompt>

Наприклад, якщо сервер github надає промпт review, його можна викликати як /mcp__github__review.

Дедуплікація серверів

Коли один і той самий MCP-сервер визначений на кількох рівнях (local, project, user), локальна конфігурація має пріоритет. Це дозволяє перевизначати налаштування MCP рівня проєкту або користувача локальними кастомізаціями без конфліктів.

MCP-ресурси через @-згадки

Ви можете посилатися на MCP-ресурси безпосередньо в промптах через синтаксис @:

@server-name:protocol://resource/path

Наприклад, для посилання на конкретний ресурс бази даних:

@database:postgres://mydb/users

Це дозволяє Claude отримувати та включати вміст MCP-ресурсів у контекст розмови.

Рівні MCP

Конфігурації MCP можна зберігати на різних рівнях з різним ступенем поширення:

РівеньРозташуванняОписДоступний дляПотребує підтвердження
Local (за замовч.)~/.claude.json (під шляхом проєкту)Приватний для поточного користувача, лише поточний проєкт (раніше називався project)Лише виНі
Project.mcp.jsonКомітиться в git-репозиторійЧлени командиТак (при першому використанні)
User~/.claude.jsonДоступний у всіх проєктах (раніше називався global)Лише виНі

Використання рівня Project

Зберігайте конфігурації MCP, специфічні для проєкту, у .mcp.json:

json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.github.com/mcp"
    }
  }
}

Члени команди побачать запит на підтвердження при першому використанні MCP проєкту.

Управління конфігурацією MCP

Додавання MCP-серверів

bash
# Додати HTTP-сервер
claude mcp add --transport http github https://api.github.com/mcp

# Додати локальний stdio-сервер
claude mcp add --transport stdio database -- npx @company/db-server

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

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

# Видалити MCP-сервер
claude mcp remove github

# Скинути вибори підтвердження для проєкту
claude mcp reset-project-choices

# Імпорт з Claude Desktop
claude mcp add-from-claude-desktop

Таблиця доступних MCP-серверів

MCP-серверПризначенняТипові інструментиАвторизаціяРеальний час
FilesystemФайлові операціїread, write, deleteДозволи ОС✅ Так
GitHubУправління репозиторіямиlist_prs, create_issue, pushOAuth✅ Так
SlackКомандна комунікаціяsend_message, list_channelsТокен✅ Так
DatabaseSQL-запитиquery, insert, updateОблікові дані✅ Так
Google DocsДоступ до документівread, write, shareOAuth✅ Так
AsanaУправління проєктамиcreate_task, update_statusAPI Key✅ Так
StripeПлатіжні даніlist_charges, create_invoiceAPI Key✅ Так
MemoryПостійна пам'ятьstore, retrieve, deleteЛокальна❌ Ні

Практичні приклади

Приклад 1: Конфігурація GitHub MCP

Файл: .mcp.json (корінь проєкту)

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

Доступні інструменти GitHub MCP:

Управління Pull Request

  • list_prs — список усіх PR у репозиторії
  • get_pr — деталі PR, включаючи diff
  • create_pr — створення нового PR
  • update_pr — оновлення опису/назви PR
  • merge_pr — мердж PR у main
  • review_pr — додавання коментарів рев'ю

Приклад запиту:

/mcp__github__get_pr 456

# Повертає:
Title: Add dark mode support
Author: @alice
Description: Implements dark theme using CSS variables
Status: OPEN
Reviewers: @bob, @charlie

Управління Issue

  • list_issues — список усіх issue
  • get_issue — деталі issue
  • create_issue — створення нового issue
  • close_issue — закриття issue
  • add_comment — додавання коментаря

Інформація про репозиторій

  • get_repo_info — деталі репозиторію
  • list_files — структура файлового дерева
  • get_file_content — читання вмісту файлу
  • search_code — пошук по кодовій базі

Операції з комітами

  • list_commits — історія комітів
  • get_commit — деталі конкретного коміту
  • create_commit — створення нового коміту

Налаштування:

bash
export GITHUB_TOKEN="your_github_token"
# Або додайте через CLI:
claude mcp add --transport stdio github -- npx @modelcontextprotocol/server-github

Підстановка змінних оточення в конфігурації

Конфігурації MCP підтримують підстановку змінних оточення з резервними значеннями. Синтаксис ${VAR} та ${VAR:-default} працює в полях: command, args, env, url та headers.

json
{
  "mcpServers": {
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}",
        "X-Custom-Header": "${CUSTOM_HEADER:-default-value}"
      }
    },
    "local-server": {
      "command": "${MCP_BIN_PATH:-npx}",
      "args": ["${MCP_PACKAGE:-@company/mcp-server}"],
      "env": {
        "DB_URL": "${DATABASE_URL:-postgresql://localhost/dev}"
      }
    }
  }
}

Змінні розгортаються під час виконання:

  • ${VAR} — використовує змінну оточення, помилка якщо не встановлена
  • ${VAR:-default} — використовує змінну оточення, резервне значення якщо не встановлена

Приклад 2: Налаштування Database MCP

Конфігурація:

json
{
  "mcpServers": {
    "database": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-database"],
      "env": {
        "DATABASE_URL": "postgresql://user:pass@localhost/mydb"
      }
    }
  }
}

Приклад використання:

markdown
User: Fetch all users with more than 10 orders

Claude: I'll query your database to find that information.

# Використання інструменту MCP database:
SELECT u.*, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id
HAVING COUNT(o.id) > 10
ORDER BY order_count DESC;

# Результати:
- Alice: 15 orders
- Bob: 12 orders
- Charlie: 11 orders

Налаштування:

bash
export DATABASE_URL="postgresql://user:pass@localhost/mydb"
# Або додайте через CLI:
claude mcp add --transport stdio database -- npx @modelcontextprotocol/server-database

Приклад 3: Мульти-MCP воркфлов

Сценарій: генерація щоденного звіту

markdown
# Щоденний звіт з використанням кількох MCP

## Налаштування
1. GitHub MCP — метрики PR
2. Database MCP — дані продажів
3. Slack MCP — публікація звіту
4. Filesystem MCP — збереження звіту

## Воркфлов

### Крок 1: Отримання даних GitHub
/mcp__github__list_prs completed:true last:7days

### Крок 2: Запит до бази даних
SELECT COUNT(*) as sales, SUM(amount) as revenue
FROM orders
WHERE created_at > NOW() - INTERVAL '1 day'

### Крок 3: Генерація звіту

### Крок 4: Збереження у файлову систему

### Крок 5: Публікація в Slack

Приклад 4: Операції Filesystem MCP

Конфігурація:

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

Доступні операції:

ОпераціяКомандаПризначення
Список файлівls ~/projectsПоказати вміст каталогу
Читання файлуcat src/main.tsЧитання вмісту файлу
Запис файлуcreate docs/api.mdСтворення нового файлу
Редагування файлуedit src/app.tsМодифікація файлу
Пошукgrep "async function"Пошук у файлах
Видаленняrm old-file.jsВидалення файлу

MCP vs Пам'ять: матриця вибору

Патерн запит/відповідь

Змінні оточення

Зберігайте конфіденційні облікові дані у змінних оточення:

bash
# ~/.bashrc або ~/.zshrc
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxx"
export DATABASE_URL="postgresql://user:pass@localhost/mydb"
export SLACK_TOKEN="xoxb-xxxxxxxxxxxxx"

Потім посилайтесь на них у конфігурації MCP:

json
{
  "env": {
    "GITHUB_TOKEN": "${GITHUB_TOKEN}"
  }
}

Claude як MCP-сервер (claude mcp serve)

Сам Claude Code може працювати як MCP-сервер для інших додатків. Це дозволяє зовнішнім інструментам, редакторам та системам автоматизації використовувати можливості Claude через стандартний протокол MCP.

bash
# Запуск Claude Code як MCP-сервера через stdio
claude mcp serve

Інші додатки можуть підключатися до цього сервера як до будь-якого stdio-сервера MCP. Наприклад, додавання Claude Code як MCP-сервера в іншому екземплярі Claude Code:

bash
claude mcp add --transport stdio claude-agent -- claude mcp serve

Це корисно для побудови мультиагентних воркфловів, де один екземпляр Claude оркеструє інший.

Managed MCP Configuration (Enterprise)

Для корпоративних розгортань IT-адміністратори можуть застосовувати політики MCP-серверів через конфігураційний файл managed-mcp.json. Цей файл забезпечує ексклюзивний контроль над дозволеними або заблокованими MCP-серверами на рівні організації.

Розташування:

  • macOS: /Library/Application Support/ClaudeCode/managed-mcp.json
  • Linux: ~/.config/ClaudeCode/managed-mcp.json
  • Windows: %APPDATA%\ClaudeCode\managed-mcp.json

Функції:

  • allowedMcpServers — білий список дозволених серверів
  • deniedMcpServers — чорний список заборонених серверів
  • Підтримує зіставлення за назвою сервера, командою та URL-патернами
  • Загальноорганізаційні політики MCP застосовуються перед конфігурацією користувача
  • Запобігає неавторизованим підключенням серверів

Приклад конфігурації:

json
{
  "allowedMcpServers": [
    {
      "serverName": "github",
      "serverUrl": "https://api.github.com/mcp"
    },
    {
      "serverName": "company-internal",
      "serverCommand": "company-mcp-server"
    }
  ],
  "deniedMcpServers": [
    {
      "serverName": "untrusted-*"
    },
    {
      "serverUrl": "http://*"
    }
  ]
}

Примітка: Коли і allowedMcpServers, і deniedMcpServers збігаються з сервером, правило заборони має пріоритет.

MCP-сервери плагінів

Плагіни можуть включати власні MCP-сервери, які автоматично доступні при встановленні плагіна. MCP-сервери плагінів визначаються двома способами:

  1. Окремий .mcp.json — розміщення файлу .mcp.json у кореневому каталозі плагіна
  2. Вбудований у plugin.json — визначення MCP-серверів безпосередньо у маніфесті плагіна

Використовуйте змінну ${CLAUDE_PLUGIN_ROOT} для посилання на шляхи відносно каталогу встановлення плагіна:

json
{
  "mcpServers": {
    "plugin-tools": {
      "command": "node",
      "args": ["${CLAUDE_PLUGIN_ROOT}/dist/mcp-server.js"],
      "env": {
        "CONFIG_PATH": "${CLAUDE_PLUGIN_ROOT}/config.json"
      }
    }
  }
}

MCP, обмежений субагентом

MCP-сервери можна визначати вбудовано у фронтматері агента через ключ mcpServers:, обмежуючи їх конкретним субагентом, а не всім проєктом. Це корисно, коли агенту потрібен доступ до конкретного MCP-сервера, який не потрібен іншим агентам у воркфлові.

yaml
---
mcpServers:
  my-tool:
    type: http
    url: https://my-tool.example.com/mcp
---

You are an agent with access to my-tool for specialized operations.

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

Ліміти виводу MCP

Claude Code встановлює ліміти на вивід інструментів MCP для запобігання переповненню контексту:

ЛімітПорігПоведінка
Попередження10 000 токенівВідображається попередження про великий вивід
Максимум за замовч.25 000 токенівВивід обрізається за цим лімітом
Збереження на диск50 000 символівРезультати інструментів, що перевищують 50K символів, зберігаються на диск

Максимальний ліміт виводу налаштовується через змінну оточення MAX_MCP_OUTPUT_TOKENS:

bash
# Збільшити максимальний вивід до 50 000 токенів
export MAX_MCP_OUTPUT_TOKENS=50000

Розв'язання проблеми роздування контексту через виконання коду

З масштабуванням MCP підключення до десятків серверів із сотнями або тисячами інструментів створює значну проблему: роздування контексту (context bloat). Це, мабуть, найбільша проблема MCP у масштабі, і інженерна команда Anthropic запропонувала елегантне рішення — використання виконання коду замість прямих викликів інструментів.

Джерело: Code Execution with MCP: Building More Efficient Agents — блог Anthropic Engineering

Проблема: два джерела марнування токенів

1. Визначення інструментів перевантажують контекстне вікно

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

2. Проміжні результати споживають додаткові токени

Кожен проміжний результат інструменту проходить через контекст моделі. Наприклад, при перенесенні транскрипту зустрічі з Google Drive до Salesforce — повний транскрипт проходить через контекст двічі: при читанні та при записі в призначення. Дводинна зустріч може означати 50 000+ додаткових токенів.

Рішення: MCP-інструменти як код-API

Замість передачі визначень інструментів та результатів через контекстне вікно, агент пише код, який викликає MCP-інструменти як API. Код виконується в ізольованому середовищі, і лише кінцевий результат повертається до моделі.

Як це працює

MCP-інструменти представляються як файлове дерево типізованих функцій:

servers/
├── google-drive/
│   ├── getDocument.ts
│   └── index.ts
├── salesforce/
│   ├── updateRecord.ts
│   └── index.ts
└── ...

Кожен файл інструменту містить типізовану обгортку:

typescript
// ./servers/google-drive/getDocument.ts
import { callMCPTool } from "../../../client.js";

interface GetDocumentInput {
  documentId: string;
}

interface GetDocumentResponse {
  content: string;
}

export async function getDocument(
  input: GetDocumentInput
): Promise<GetDocumentResponse> {
  return callMCPTool<GetDocumentResponse>(
    'google_drive__get_document', input
  );
}

Агент пише код для оркестрації інструментів:

typescript
import * as gdrive from './servers/google-drive';
import * as salesforce from './servers/salesforce';

// Дані передаються безпосередньо між інструментами — ніколи через модель
const transcript = (
  await gdrive.getDocument({ documentId: 'abc123' })
).content;

await salesforce.updateRecord({
  objectType: 'SalesMeeting',
  recordId: '00Q5f000001abcXYZ',
  data: { Notes: transcript }
});

Результат: використання токенів знижується з ~150 000 до ~2 000 — зменшення на 98,7%.

Ключові переваги

ПеревагаОпис
Прогресивне розкриттяАгент переглядає файлову систему для завантаження лише потрібних визначень інструментів
Ефективність контекстуДані фільтруються/трансформуються в середовищі виконання перед поверненням до моделі
Потужний контроль потокуЦикли, умови та обробка помилок виконуються в коді без повернення через модель
Збереження конфіденційностіПроміжні дані (персональні дані, чутливі записи) залишаються в середовищі виконання; ніколи не потрапляють у контекст моделі
Збереження стануАгенти можуть зберігати проміжні результати у файли та будувати повторно використовувані функції

Приклад: фільтрація великих наборів даних

typescript
// Без виконання коду — всі 10 000 рядків проходять через контекст
// TOOL CALL: gdrive.getSheet(sheetId: 'abc123')
//   -> повертає 10 000 рядків у контекст

// З виконанням коду — фільтрація в середовищі виконання
const allRows = await gdrive.getSheet({ sheetId: 'abc123' });
const pendingOrders = allRows.filter(
  row => row["Status"] === 'pending'
);
console.log(`Found ${pendingOrders.length} pending orders`);
console.log(pendingOrders.slice(0, 5)); // Лише 5 рядків потрапляють до моделі

Приклад: цикл без повернення через модель

typescript
// Опитування для сповіщення про деплой — виконується цілком у коді
let found = false;
while (!found) {
  const messages = await slack.getChannelHistory({
    channel: 'C123456'
  });
  found = messages.some(
    m => m.text.includes('deployment complete')
  );
  if (!found) await new Promise(r => setTimeout(r, 5000));
}
console.log('Deployment notification received');

Компроміси

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

  • Безпечного ізольованого середовища виконання з відповідними лімітами ресурсів
  • Моніторингу та логування виконаного коду
  • Додаткових інфраструктурних витрат порівняно з прямими викликами інструментів

Переваги — зменшення вартості токенів, нижча затримка, покращена композиція інструментів — слід зважити проти цих витрат на впровадження. Для агентів з кількома MCP-серверами прямі виклики інструментів можуть бути простішими. Для агентів у масштабі (десятки серверів, сотні інструментів) виконання коду — значне покращення.

MCPorter: середовище виконання для композиції MCP-інструментів

MCPorter — TypeScript-середовище виконання та CLI-інструментарій для виклику MCP-серверів без шаблонного коду, що допомагає зменшити роздування контексту через вибіркове надання інструментів та типізовані обгортки.

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

Ключові функції:

ФункціяОпис
Zero-config discoveryАвтовиявлення MCP-серверів з Cursor, Claude, Codex або локальних конфігурацій
Типізовані клієнти інструментівmcporter emit-ts генерує .d.ts інтерфейси та готові обгортки
Composable APIcreateServerProxy() надає інструменти як camelCase-методи з хелперами .text(), .json(), .markdown()
Генерація CLImcporter generate-cli перетворює будь-який MCP-сервер у CLI з фільтрацією --include-tools / --exclude-tools
Приховування параметрівОпціональні параметри приховані за замовчуванням, зменшуючи багатослівність схеми

Встановлення:

bash
npx mcporter list          # Без встановлення — виявлення серверів миттєво
pnpm add mcporter          # Додати до проєкту
brew install steipete/tap/mcporter  # macOS через Homebrew

Приклад — композиція інструментів у TypeScript:

typescript
import { createRuntime, createServerProxy } from "mcporter";

const runtime = await createRuntime();
const gdrive = createServerProxy(runtime, "google-drive");
const salesforce = createServerProxy(runtime, "salesforce");

// Дані передаються між інструментами без проходження через контекст моделі
const doc = await gdrive.getDocument({ documentId: "abc123" });
await salesforce.updateRecord({
  objectType: "SalesMeeting",
  recordId: "00Q5f000001abcXYZ",
  data: { Notes: doc.text() }
});

Приклад — виклик інструменту через CLI:

bash
# Виклик конкретного інструменту
npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!'

# Список доступних серверів та інструментів
npx mcporter list

MCPorter доповнює підхід з виконанням коду, описаний вище, надаючи інфраструктуру для виклику MCP-інструментів як типізованих API — спрощуючи утримання проміжних даних поза контекстом моделі.

Найкращі практики

Безпекові рекомендації

Рекомендовано ✅

  • Використовуйте змінні оточення для всіх облікових даних
  • Регулярно ротуйте токени та API-ключі (рекомендовано щомісяця)
  • Використовуйте токени лише для читання, де можливо
  • Обмежуйте область доступу MCP-серверів до мінімально необхідної
  • Моніторте використання MCP-серверів та журнали доступу
  • Використовуйте OAuth для зовнішніх сервісів, де доступно
  • Впроваджуйте rate limiting для MCP-запитів
  • Тестуйте MCP-підключення перед продакшен-використанням
  • Документуйте всі активні MCP-підключення
  • Тримайте пакети MCP-серверів оновленими

Не рекомендовано ❌

  • Не хардкодьте облікові дані в конфігураційних файлах
  • Не комітьте токени чи секрети в git
  • Не поширюйте токени в командних чатах чи листах
  • Не використовуйте персональні токени для командних проєктів
  • Не надавайте зайвих дозволів
  • Не ігноруйте помилки автентифікації
  • Не відкривайте MCP-ендпоінти публічно
  • Не запускайте MCP-сервери з правами root/admin
  • Не кешуйте чутливі дані в журналах
  • Не вимикайте механізми автентифікації

Найкращі практики конфігурації

  1. Контроль версій: тримайте .mcp.json у git, але використовуйте змінні оточення для секретів
  2. Мінімальні привілеї: надавайте мінімальні дозволи для кожного MCP-сервера
  3. Ізоляція: запускайте різні MCP-сервери в окремих процесах, де можливо
  4. Моніторинг: логуйте всі MCP-запити та помилки для аудиту
  5. Тестування: тестуйте всі конфігурації MCP перед розгортанням у продакшен

Поради щодо продуктивності

  • Кешуйте часто запитувані дані на рівні додатку
  • Використовуйте конкретні MCP-запити для зменшення передачі даних
  • Моніторте час відповіді MCP-операцій
  • Розгляньте rate limiting для зовнішніх API
  • Використовуйте пакетну обробку для кількох операцій

Інструкції з встановлення

Передумови

  • Node.js та npm встановлені
  • Claude Code CLI встановлений
  • API-токени/облікові дані для зовнішніх сервісів

Покрокове налаштування

  1. Додайте перший MCP-сервер через CLI (приклад: GitHub):
bash
claude mcp add --transport stdio github -- npx @modelcontextprotocol/server-github

Або створіть файл .mcp.json у корені проєкту:

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}
  1. Встановіть змінні оточення:
bash
export GITHUB_TOKEN="your_github_personal_access_token"
  1. Протестуйте підключення:
bash
claude /mcp
  1. Використовуйте MCP-інструменти:
bash
/mcp__github__list_prs
/mcp__github__create_issue "Title" "Description"

Встановлення конкретних сервісів

GitHub MCP:

bash
npm install -g @modelcontextprotocol/server-github

Database MCP:

bash
npm install -g @modelcontextprotocol/server-database

Filesystem MCP:

bash
npm install -g @modelcontextprotocol/server-filesystem

Slack MCP:

bash
npm install -g @modelcontextprotocol/server-slack

Усунення несправностей

MCP-сервер не знайдено

bash
# Перевірте, чи встановлений MCP-сервер
npm list -g @modelcontextprotocol/server-github

# Встановіть, якщо відсутній
npm install -g @modelcontextprotocol/server-github

Помилка автентифікації

bash
# Перевірте, чи встановлена змінна оточення
echo $GITHUB_TOKEN

# Перевстановіть, якщо потрібно
export GITHUB_TOKEN="your_token"

# Перевірте дозволи токена
# Дозволи GitHub-токена: https://github.com/settings/tokens

Таймаут з'єднання

  • Перевірте мережеве з'єднання: ping api.github.com
  • Перевірте доступність API-ендпоінта
  • Перевірте rate limits API
  • Спробуйте збільшити таймаут у конфігурації
  • Перевірте наявність фаєрволу або проксі

MCP-сервер аварійно завершується

  • Перевірте журнали MCP-сервера: ~/.claude/logs/
  • Перевірте, що всі змінні оточення встановлені
  • Перевірте дозволи файлів
  • Спробуйте перевстановити пакет MCP-сервера
  • Перевірте конфліктуючі процеси на тому ж порту

Пов'язані концепції

Пам'ять vs MCP

  • Пам'ять: зберігає постійні, незмінні дані (налаштування, контекст, історія)
  • MCP: доступ до живих, змінюваних даних (API, бази даних, сервіси реального часу)

Коли використовувати кожен

  • Пам'ять для: налаштувань користувача, історії розмов, засвоєного контексту
  • MCP для: поточних GitHub issue, живих запитів до бази даних, даних реального часу

Інтеграція з іншими функціями Claude

  • Комбінуйте MCP з пам'яттю для збагаченого контексту
  • Використовуйте MCP-інструменти в промптах для кращого міркування
  • Поєднуйте кілька MCP для складних воркфловів

Додаткові ресурси


Останнє оновлення: 9 квітня 2026 Версія Claude Code: 2.1.97 Сумісні моделі: Claude Sonnet 4.6, Claude Opus 4.6, Claude Haiku 4.5