MCP-серверы

Подключайте серверы Model Context Protocol через stdio или HTTP, чтобы дать агенту новые инструменты и ресурсы.

Model Context Protocol (MCP) — открытый стандарт для подключения агентов к инструментам и данным: трекерам задач, базам данных, браузерам, инструментам дизайна, внутренним API. Cusp — MCP-клиент. Любой сервер, который работает с другим MCP-клиентом, работает и с Cusp.

Файлы конфигурации

ОбластьФайлДля чего
Проект.cusp/mcp.json или .mcp.json в корне репозиторияСерверы, которыми пользуется вся команда. Закоммитьте файл
Пользователь~/.cusp/mcp.json или mcpServers в ~/.claude.jsonСерверы, которые нужны вам в каждом проекте
Локальнаяprojects["<path>"].mcpServers в ~/.claude.jsonЛичные серверы для одного проекта
НастройкиmcpServers в любом файле настроекСерверы, заданные вместе с другими настройками
Управляемаяmanaged-mcp.json в каталоге управляемых настроекПолитика организации. Если файл есть, он полностью определяет список серверов

У всех файлов один формат:

.cusp/mcp.json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": { "Authorization": "Bearer ${GITHUB_TOKEN}" }
    },
    "postgres": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "${DATABASE_URL}"]
    }
  }
}

Если в двух областях задан сервер с одинаковым именем, побеждает вся запись из области с более высоким приоритетом; поля не объединяются. От высшего приоритета к низшему: управляемая, командная строка, локальная, проект, пользователь, настройки, затем серверы, объявленные субагентами. В пределах одной области файлы из .cusp/ побеждают .mcp.json и ~/.claude.json.

Транспорты

stdio

Cusp запускает сервер как дочерний процесс и общается с ним через stdin и stdout.

ПолеЗначение
type"stdio" (по умолчанию, если задано command)
commandИсполняемый файл
argsАргументы
envДополнительные переменные окружения
cwdРабочий каталог
timeoutТайм-аут запуска и запросов

HTTP

Cusp подключается к удалённому серверу по транспорту streamable HTTP, а для серверов, которые поддерживают только более старый транспорт SSE, переключается на него.

ПолеЗначение
type"http" (или "sse" для серверов, поддерживающих только SSE)
urlАдрес сервера
headersЗаголовки запроса, например Authorization
headersHelperКоманда, вывод которой задаёт заголовки, — для токенов с истекающим сроком
timeoutТайм-аут запроса

Общие поля

ПолеЗначение
alwaysLoadЗагружать инструменты этого сервера сразу, а не откладывать их

Переменные

${VAR} в любой строке заменяется переменной окружения VAR при запуске сервера. ${CUSP_PROJECT_DIR} и ${CLAUDE_PROJECT_DIR} указывают на корень проекта. Храните секреты в окружении, а не в закоммиченных файлах.

Подставленные значения, включая секреты, никогда не показываются модели.

Подтверждение серверов проекта

Файл .mcp.json проекта написал тот, кто создал репозиторий. Прежде чем Cusp подключится к серверу, описанному в нём, вы его подтверждаете. Подтверждение привязано к хешу конкретной записи, поэтому если кто-то позже изменит команду или URL, Cusp спросит снова.

Подтвердить серверы заранее можно в настройках:

НастройкаДействие
enabledMcpjsonServers: ["github"]Подтвердить эти серверы проекта
disabledMcpjsonServers: ["postgres"]Отклонить эти
enableAllProjectMcpServers: trueПодтвердить все серверы из файла проекта

В недоверенной рабочей области собственные настройки проекта не могут подтверждать его серверы.

Инструменты и ресурсы

Каждый инструмент сервера становится инструментом Cusp с именем mcp__<server>__<tool>. Схема входных данных — собственная JSON Schema сервера.

По умолчанию инструменты MCP откладываются: модель видит их имена и загружает определения через ToolSearch, когда инструмент нужен. Так сервер с пятьюдесятью инструментами не заполняет контекст на каждом ходе. Задайте alwaysLoad: true для сервера, инструменты которого нужны агенту постоянно.

Доступ к ресурсам серверов дают два встроенных инструмента: ListMcpResourcesTool и ReadMcpResourceTool.

Разрешения

Инструменты MCP проходят через движок разрешений, как и любые другие.

{
  "permissions": {
    "allow": ["mcp__github__get_issue", "mcp__github__list_pull_requests"],
    "ask": ["mcp__github__*"],
    "deny": ["mcp__postgres__execute"]
  }
}
ПравилоЧто охватывает
mcp__githubВсе инструменты сервера github
mcp__github__*То же самое, записанное через подстановочный знак
mcp__github__create_issueОдин инструмент

Серверы для отдельных агентов

Субагент может перечислить серверы в своём frontmatter — по имени или встроенным определением. Встроенные серверы доступны только этому агенту. См. Агенты.

Устранение неполадок

  • Сервер не появляется. Проверьте, что он подтверждён (для серверов проекта) и что команда сама по себе запускается в терминале.
  • Не хватает инструментов. Они отложены. Попросите агента использовать инструмент по имени или задайте alwaysLoad.
  • Переменные приходят пустыми. ${VAR} берётся из окружения демона (daemon). Приложение, запущенное из Dock или меню «Пуск», может не видеть переменные, экспортированные в профиле вашей оболочки. Проверьте через CLI, запущенный из терминала: он их видит.

На этой странице