MCP-сервер в OpenCode: как подключить инструменты и не выдать лишние доступы
Как добавить MCP-сервер в OpenCode, проверить запуск и доступные инструменты, а также безопасно настроить локальные и удалённые интеграции.
Сам по себе OpenCode рассуждает и работает с файлами проекта. MCP даёт ему доступ дальше: к внешней документации, базе данных или разрешённой команде. Подключать всё подряд «на всякий случай» не стоит. Начни с одного сервера под понятную задачу.
Что проверить до настройки
Локальный сервер OpenCode запускает у тебя на компьютере отдельным процессом через stdio. Удалённый уже работает где-то в сети, и агент ходит к нему по адресу. У локального смотри на команду запуска и её права, у удалённого на авторизацию и на то, какие данные уйдут наружу.
Одна частая путаница: место запуска не определяет, куда идут данные. Локальный MCP для GitHub всё равно отправляет запросы в GitHub.
Как добавить сервер
Сервер добавляется в конфигурацию OpenCode, в раздел
mcp.servers. В актуальной схеме V2 имя
сервера лежит именно внутри servers. Старые примеры, где имя стоит прямо в mcp, могут не
заработать.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"docs": {
"type": "local",
"command": ["npx", "-y", "example-mcp-server"]
}
}
}
}
Это форма конфига, копировать его как есть бессмысленно. Вместо example-mcp-server подставь
команду из документации нужного сервера. После перезапуска OpenCode сам попробует его
подключить, если не стоит disabled: true.
Первая проверка
Для начала хватит безобидного запроса: попроси агента перечислить инструменты сервера или прочитать один тестовый ресурс. Если сервер не появился, проверь по порядку:
- запускается ли команда вручную и стоят ли её зависимости;
- валиден ли JSONC и на месте ли
mcp.servers; - не ждёт ли процесс токен, который ему не передали;
- доступен ли сетевой адрес из окружения, где работает OpenCode.
Ключам не место в opencode.json, который лежит в репозитории. Передавай их через переменные
окружения или тем способом входа, который советует автор сервера. Если без локального файла
никак, добавь его в .gitignore.
Права: чем уже, тем лучше
Разрешения удобно держать не на одном агенте, а раздельно — про это есть отдельный разбор агентов и режимов. Принцип везде один: токену для чтения issue незачем уметь удалять репозитории. Учётке, которая только смотрит в базу, не нужны права на изменение схемы. Если MCP запускает команды или пишет файлы, первый прогон делай в тестовой папке, где нечего терять.
Модель может ошибиться в рассуждении, а инструмент выполнит реальное действие. Прежде чем запускать незнакомый MCP-сервер, посмотри его исходники, список команд и требуемые права.
В Доке MCP подключается по той же логике. Основы протокола есть в статье о MCP для терминального агента, а если хочешь OpenCode на локальной модели, смотри настройку через Ollama.