Редакция PLPB ·

Cursor MCP: как подключать внешние инструменты и ограничивать доступ

Практический гайд по Cursor MCP: что такое Model Context Protocol, как устроены mcp.json и транспорты, где хранить ключи и как безопасно разрешать внешние инструменты.

Короткий ответ

MCP в Cursor — способ подключить к Agent внешние инструменты и источники данных через Model Context Protocol. Серверы можно настроить через mcp.json; Cursor поддерживает локальный stdio, удалённые SSE и Streamable HTTP-соединения. Начинайте с одного понятного сервера, проверяйте его команды и выдавайте минимальные разрешения.

Официальная документация Cursor по MCP описывает серверы, транспорты, конфигурацию и способы установки. MCP расширяет возможности Agent, но одновременно увеличивает поверхность доступа, поэтому безопасность важнее количества интеграций.

Что MCP добавляет к Cursor

Без MCP Agent работает с кодом, контекстом и встроенными инструментами Cursor. MCP может добавить доступ к внешней системе: базе знаний, трекеру задач, сервису аналитики, внутреннему API или другому источнику данных.

Принцип простой:

1
сервер объявляет доступные инструменты, ресурсы или промпты;
1
Cursor показывает их Agent;
1
Agent выбирает вызов в рамках текущей задачи;
1
пользователь подтверждает действие, если это требуется настройками;
1
результат возвращается в контекст разговора.

Не следует считать MCP безопасным только потому, что это стандарт. Риск зависит от конкретного сервера, его кода, токенов и прав.

Три варианта транспорта

stdio

Сервер запускается локальной командой и общается через стандартные потоки. Это удобно для личного проекта: Cursor управляет процессом, а сервер не обязан быть доступен по сети.

SSE

Сервер работает как удалённый или локальный HTTP endpoint с Server-Sent Events. Он удобен, если инструмент развёрнут отдельно, но требует проверки URL, TLS, авторизации и доступности сети.

Streamable HTTP

Современный HTTP-вариант для подключения удалённого сервера. Важно проверить, как сервер принимает токены, какие домены разрешены и какие операции доступны аккаунту.

Актуальные названия транспортов и ограничения сверяйте в справке Cursor MCP, потому что реализация и интерфейс могут обновляться.

Где лежит mcp.json

Конфигурация может быть привязана к проекту или к пользовательскому окружению — точное расположение зависит от способа установки и текущей версии Cursor. Пример локального сервера выглядит так:

json
{
  "mcpServers": {
    "project-tools": {
      "command": "npx",
      "args": ["-y", "example-mcp-server"],
      "env": {
        "API_KEY": "${API_KEY}"
      }
    }
  }
}

Это только форма примера. Не вставляйте настоящий ключ в файл и не коммитьте конфигурацию с секретными значениями. Используйте переменные окружения, секретное хранилище или механизм авторизации, который рекомендует конкретный сервер.

Чек-лист перед подключением

До установки MCP-сервера ответьте на вопросы:

кто его поддерживает;
из какого источника скачан код;
какие инструменты он объявляет;
может ли он изменять файлы или выполнять команды;
какие каталоги и сети ему доступны;
где обрабатываются запросы и данные;
как отзываются токены;
есть ли журнал вызовов;
какие действия требуют подтверждения.

Если на часть вопросов нет ответа, не подключайте сервер к рабочему проекту. Сначала протестируйте его в отдельном окружении без чувствительных данных.

Минимальные права

Разделите серверы по задачам. Инструмент, который читает документацию, не должен иметь права изменять базу. Сервер для трекера задач не должен видеть секреты проекта. Если нужна запись, начните с read-only режима и включайте изменение только для конкретного сценария.

Полезные ограничения:

отдельный токен для MCP, а не основной токен пользователя;
минимальный scope в целевой системе;
ограниченный список репозиториев или проектов;
локальный тестовый аккаунт;
ручное подтверждение опасных действий;
регулярный отзыв неиспользуемых ключей.

MCP и терминал Agent

Не смешивайте «MCP подключён» с «Agent получил доступ ко всему компьютеру». Реальный доступ формируется суммой разрешений: сервер, процесс Cursor, операционная система, переменные окружения и команды терминала.

Официальная справка по .cursorignore отдельно предупреждает: ignore-файл не блокирует терминал и MCP-серверы Agent. Поэтому секреты должны быть защищены на уровне окружения, а не только паттерном исключения.

Как провести первый тест

1
Создайте отдельную тестовую папку.
1
Подключите один сервер без прав записи.
1
Попросите Agent перечислить доступные инструменты.
1
Проверьте, что каждый инструмент делает то, что заявлено.
1
Выполните безопасный запрос на тестовых данных.
1
Посмотрите логи и сетевые обращения.
1
Только после этого добавляйте сервер в рабочий workflow.

Пример запроса:

text
Покажи список подключённых MCP-инструментов.
Для каждого укажи назначение, требуемые разрешения и может ли он менять данные.
Ничего не вызывай без моего подтверждения.

MCP в командном проекте

Для команды зафиксируйте:

список разрешённых серверов;
владельца каждой интеграции;
срок действия и порядок ротации ключей;
журнал опасных операций;
правило, запрещающее добавление MCP-сервера без review;
способ удаления конфигурации.

Эти требования можно кратко описать в Cursor Rules, но текстовое правило не заменяет технические права в целевой системе.

MCP и приватность

MCP может передавать во внешний сервис не только запрос, но и выбранный контекст, если инструмент этого требует. До подключения прочитайте политику сервера и проверьте, какие данные входят в payload. Cursor Data Use & Privacy Overview полезен для понимания базового потока данных Cursor, но не заменяет политику стороннего MCP-сервера.

Если проект закрытый:

включите Privacy Mode и проверьте его состояние;
не подключайте внешние серверы без оценки данных;
исключите секреты из @-контекста;
не выводите токены в терминал;
используйте обезличенные тестовые записи.

Когда MCP не нужен

Не подключайте MCP, если задачу можно решить через локальный файл, обычный поиск или встроенный терминал без нового внешнего доступа. Дополнительная интеграция оправдана, когда она повторяет полезное действие часто и даёт понятный выигрыш.

Чем больше серверов включено, тем сложнее понять, какой инструмент вызвал Agent и куда ушли данные. Маленькая, документированная конфигурация обычно лучше длинного списка интеграций.

Пример read-only конфигурации

Для первого теста выбирайте сервер, который только читает тестовые данные. Форма конфигурации может выглядеть так:

json
{
  "mcpServers": {
    "docs-reader": {
      "command": "npx",
      "args": ["-y", "example-docs-server"],
      "env": {
        "DOCS_TOKEN": "${DOCS_TOKEN}"
      }
    }
  }
}

Название пакета здесь условное. Не устанавливайте его как готовую рекомендацию: проверьте официальный источник, код и документацию именно того сервера, который нужен вам.

OAuth, токены и окружение

Если сервер использует OAuth, проверьте redirect URL, область доступа и способ отзыва разрешения. Если используется API-ключ:

создайте отдельный ключ для MCP;
выдайте минимальные права;
не храните значение в mcp.json;
не печатайте его в диагностике;
установите срок действия или ротацию;
удалите ключ при отключении сервера.

Для локального stdio-сервера помните, что команда запускается в вашем окружении. Проверьте, какая версия runtime используется, какие переменные доступны процессу и какие каталоги он может читать.

Как объяснить Agent границы MCP

Добавьте правило на время теста:

text
MCP-инструменты используй только после моего подтверждения.
Сначала покажи название инструмента, входные данные и ожидаемый эффект.
Не вызывай операции записи, удаления и публикации.

После успешного read-only теста можно разрешить один безопасный write-сценарий на тестовых данных и отдельно проверить журнал операции.

Если MCP не работает

Проверьте по порядку:

1
корректен ли JSON;
1
доступна ли команда запуска;
1
установлен ли нужный runtime;
1
не истёк ли токен;
1
видит ли Cursor сервер в текущем проекте;
1
не блокирует ли соединение сеть;
1
не падает ли сервер из-за неверной версии пакета.

Сохраните текст ошибки без секретов. Не копируйте в публичный issue полный вывод терминала, если в нём могут быть токены или пути к закрытым данным.

Модель угроз для MCP

Составьте простую таблицу:

АктивВозможный рискКонтроль
API-ключУтечка через лог или promptПеременная окружения, минимальный scope
РепозиторийЧтение лишних файловУзкая область, права ОС, проверенный сервер
База данныхНезапланированная записьRead-only роль и подтверждение
Внешний сервисПубликация или удалениеОтдельный аккаунт и ручной review

Такая модель полезнее общего обещания «сервер безопасный», потому что связывает риск с конкретным контролем.

Частые вопросы (FAQ)

Что такое MCP в Cursor?

Это протокол, через который Cursor подключает внешние инструменты и источники данных к Agent.

Где хранить API-ключ для MCP?

Не в Git и не в тексте статьи или промпта. Используйте переменную окружения, секретное хранилище или штатную OAuth-конфигурацию сервера.

Безопасны ли сторонние MCP-серверы?

Автоматически — нет. Проверяйте код, владельца, разрешения, сетевые обращения, обработку данных и срок действия токена.

Может ли MCP менять файлы?

Зависит от объявленных инструментов и разрешений. Считайте операции записи потенциально опасными и включайте их только после проверки.

Защищает ли .cursorignore от MCP?

Нет. Ignore-файл не блокирует доступ MCP-сервера и терминала Agent. Нужны отдельные ограничения окружения и прав.

Сколько MCP-серверов подключать?

Столько, сколько вы можете проверить и сопровождать. Для старта достаточно одного read-only сервера на тестовых данных.

Нужен доступ к сервису?

Выберите товар в каталоге, оформите заказ и оплатите его на сайте. Дальнейшие шаги появятся в чате заказа.

Каталог подписок

Вопросы: help@plpb.tech