← [Раздел](README.md) · [Главная](../README.md)

# MCP-серверы в Cursor

## Цель

Подключить и отладить **MCP-серверы** в Cursor, выбрать серверы под задачу и соблюдать безопасность (секреты, prod-доступ).

## Предварительно

- [functions-i-mcp-tools.md](../09-templates-i-kontekst/functions-i-mcp-tools.md)
- Node.js / npx для многих серверов
- Права на редактирование конфигурации Cursor

## Время

~60–90 минут на первый сервер + 30 мин на каждый следующий.

---

## Что такое MCP в одном абзаце

**Model Context Protocol** стандартизирует, как AI-клиент вызывает внешние **tools** (функции) и читает **resources** (данные). Сервер MCP — отдельный процесс; Cursor запускает его и проксирует вызовы агенту.

---

## Где настраивать

1. **Cursor Settings → MCP** (GUI) — предпочтительно для начала.
2. **Конфигурационный файл** — зависит от ОС (см. документацию Cursor для вашей версии).

Структура логически:

```json
{
  "mcpServers": {
    "имя-сервера": {
      "command": "команда",
      "args": ["аргументы"],
      "env": {
        "ПЕРЕМЕННАЯ": "значение из окружения хоста"
      }
    }
  }
}
```

**Никогда** не коммитьте токены в репозиторий. Используйте env хоста или secret manager.

---

## Проверка подключения

После добавления сервера:

1. Перезапустите MCP / Reload Window.
2. В Agent спросите: «какие MCP tools тебе доступны?»
3. Выполните безобидный tool (например, поиск docs).

Если ошибка — смотрите **Output → MCP** в Cursor.

---

## Примеры серверов (без секретов)

### Context7 — документация библиотек

**Задача:** актуальные примеры API React, Next.js, Prisma.

```text
Используй MCP Context7 для документации Next.js 15 App Router.
Не выдумывай устаревшие API.
```

Skill ECC: `documentation-lookup` / MCP `user-context7`.

### Yandex Tracker

**Задача:** прочитать описание задачи PROJ-123.

Требует OAuth/токен в env (настройте по инструкции MCP, не копируйте в курс).

### Kubernetes (lab)

**Задача:** список подов в namespace `dev`.

Только read-only kubeconfig на **учебный** кластер.

---

## MCP vs встроенный terminal

| MCP K8s | kubectl в shell |
|---------|-----------------|
| Структурированный tool | Полная мощь CLI |
| Легче аудитить hook'ом | Риск destructive команд |
| Зависит от качества сервера | Привычно для DevOps |

Для опасных операций — явное подтверждение в rule.

---

## Hooks и MCP

`beforeMCPExecution` / `afterMCPExecution` в `ECC/.cursor/hooks.json`:

- лог имени сервера и tool;
- предупреждение о недоверенных серверах.

Рекомендуется при >3 MCP в команде.

---

## Отладка типичных проблем

| Симптом | Причина | Fix |
|---------|---------|-----|
| Server not found | Неверный command/path | Проверьте `which npx` |
| Auth error | Пустой env | Экспорт токена в shell профиле |
| Tool timeout | Сеть/VPN | Проверьте доступ к API |
| Агент не вызывает MCP | Не знает о сервере | Явно попросите в промпте |

---

## ECC: свои MCP

Skill `ECC/.cursor/skills/mcp-server-patterns/SKILL.md` — разработка серверов на TypeScript SDK.

Инвентаризация:

```text
ECC/.cursor/scripts/lib/mcp-inventory/
```

---

## Политика для команды

1. Allowlist серверов в internal doc.
2. Отдельные токены read-only.
3. Запрет prod MCP без роли.
4. Ревью `mcp.json` как кода.

---

## Упражнение

1. Подключите один безопасный MCP (Context7 или аналог).
2. Задайте вопрос по API библиотеки из вашего стека.
3. Сравните ответ с `@Web` — что точнее?

---

## Самопроверка

1. Что запускает процесс MCP — Cursor или агент?
2. Где хранить API-токен?
3. Зачем `beforeMCPExecution`?
4. Когда kubectl лучше, чем MCP?

---

## Дальше

→ [Многофайловые правки](multi-file-i-kontekst.md)  
← [Режимы](rejimy-chat-agent-plan.md)
