Дизайн MCP-сервера
Какие capabilities выставить, как назвать tools, как разрешать доступ.
Спроектируй MCP-сервер для {{domain}}.
Что такое MCP
Model Context Protocol — стандарт от Anthropic для подключения внешних tools/ресурсов к Claude (и другим клиентам). Один сервер — много возможностей.
Capabilities
MCP выставляет три типа:
| Тип | Что | Пример |
|---|---|---|
| Tools | Действия которые агент может выполнить | create_issue, run_query |
| Resources | Данные которые агент может прочитать | file://..., db://users |
| Prompts | Шаблоны промтов | code_review, debug_session |
Шаги дизайна
1. Определи скоуп
- Какой сервис обёртываем?
- Какие use-case'ы решаем?
- Что НЕ входит (важно — чтобы не превратилось в "обёртку всего API")
2. Список tools (актуальные действия)
Для {{domain}} перечисли действия:
- Минимум 3, максимум ~15 tools на сервер
- Каждый — атомарное полезное действие
- Не пересекаются (не два инструмента делают одно и то же)
Пример для domain=GitHub:
list_repos
search_code
create_issue
update_issue
list_pull_requests
get_pull_request
review_pull_request
add_comment
3. Дизайн каждого tool (см. отдельный промт "Дизайн кастомного инструмента")
4. Resources
Resources — это то что агент читает. Хорошо для:
- Файлов
- Документов
- Логов
- Чего-то с уникальным URI
file:///path/to/doc.md
db://customers/12345
api://github/issues/42
Resource ≠ tool: resource просто отдаёт content по URI, tool делает действие.
5. Prompts (шаблоны)
Опционально. Если в твоём домене есть стандартные паттерны промтов — выставь как prompts:
name: review_pr
description: "Review a GitHub PR for issues"
arguments:
- pr_number: integer
template: |
Review PR #{{pr_number}}. Focus on:
- Security
- Performance
- Code style
Use get_pull_request to fetch details.
6. Авторизация
Это критично. MCP-сервер часто работает с чувствительными данными:
- OAuth / Token: на старте сервера
- Scoped permissions: read vs write vs admin
- Per-tool gates:
delete_databaseтребует подтверждения - Audit log: каждый вызов логируется
7. Ошибки и таймауты
- Таймаут на каждый вызов (5-30 сек)
- Структурированные ошибки (см. tool design)
- Идемпотентность для write-операций
8. Тестирование с реальным клиентом
- Запусти MCP в test-режиме
- Подключи к Claude Desktop или CLI
- Дай агенту 5 разных типовых задач
- Смотри:
- Правильно ли выбирает инструмент?
- Правильно ли заполняет параметры?
- Обрабатывает ли ошибки?
- Не зацикливается?
Если на простой задаче агент путается — описания tools плохие.
9. Документация для пользователей
Кто будет ставить твой MCP:
- README с установкой (
npm i/pip install) - Конфиг для Claude Desktop / VS Code
- Список tools с примерами
- Известные ограничения
10. Размер и фокус
Лучше много маленьких MCP чем один большой:
- Один сервер = одна цель (GitHub, Stripe, своя БД)
- Не "everything-server" — модель запутается в 50 tools
Анти-паттерны
- ❌
run_command(cmd)— даёт shell-доступ, не делай так - ❌
raw_sql_query(sql)— то же самое - ❌ Tool который возвращает массив данных длиной 100k токенов
- ❌ Async tools без статуса (агент не знает закончилось ли)
- ❌ Tools без документации — никто не разберётся как использовать
В конце дай
- Список tools / resources / prompts
- Схема каждого
- Auth-flow
- Пример конфига для подключения
Установи Claude Code пошагово — Mac / Windows / Linux
От «вообще ничего не понимаю» до «первая команда сработала». С скрин-описаниями и проверками что всё ок.
Установи Node.js и npm — что это вообще такое
Зачем нужны Node и npm если я делаю сайт? Что я устанавливаю, что меняется на компьютере. Пошагово с проверками.
Сделай свой первый git commit — пошагово, без страха
От пустой папки до первого сохранения в историю. И как смотреть «что менялось» — самые полезные команды первой недели.