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 в каталоге управляемых настроек | Политика организации. Если файл есть, он полностью определяет список серверов |
У всех файлов один формат:
{
"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, запущенный из терминала: он их видит.
Хуки
Запускайте свои команды, HTTP-запросы или проверки моделью в заданных точках цикла агента — с теми же событиями и JSON-протоколом, что у ваших существующих хуков.
Cusp Hub
Планируемый каталог расширений и blueprint-шаблонов с метками возможностей, оценками по моделям и закреплёнными проверяемыми установками. Что уже спроектировано и чем можно пользоваться сегодня.