MCP в OpenCode: удалённые серверы в opencode.json
Коротко: MCP-серверы в OpenCode описываются в блоке mcp файла opencode.json. Для удалённого сервера нужны "type": "remote" и url; вход — ключом в headers или через opencode mcp auth. Ниже готовый конфиг и то, о чём не пишут в кратких инструкциях: как не раздуть контекст агента инструментами.
Что даёт MCP агенту в терминале
OpenCode и так умеет читать проект, править файлы и запускать команды. MCP добавляет то, что находится за пределами репозитория: свежую документацию библиотек из интернета, чтение страницы с описанием ошибки, генерацию иконок и картинок для интерфейса прямо по ходу работы. Что такое MCP в целом, разобрано в обзоре MCP-серверов.
Шаг 1. Ключ
Если вы уже настроили OpenCode на наш API по главе «opencode в России», ключ у вас есть: тот же ключ открывает и MCP-серверы, баланс общий. Если нет — получите его здесь, без регистрации:
Ключ для OpenCode
Получите ключ sk-… прямо на странице
Один ключ подходит и для модели в OpenCode, и для MCP-серверов. Выберите серию — пригодится, если захотите подключить и модель тоже.
Нажмите — и получите base_url и API-ключ.
Регистрация и карта не нужны.
Бесплатно. Ключ появится прямо здесь.
Положите ключ в переменную окружения, чтобы он не попал в git:
~/.zshrc или ~/.bashrcПодсвеченное — заглушки. Их выдаёт кнопка выше: пара секунд, без регистрации и карты.export TWELVER_API_KEY="sk-<ваш-ключ>"Шаг 2. Блок mcp в opencode.json
Глобальный конфиг лежит в ~/.config/opencode/opencode.json, проектный — в opencode.json в корне репозитория. Добавьте серверы:
opencode.jsonВаш ключ уже подставлен — копируйте как есть. Синее — не заглушка: {env:…} подставляет значение из переменной окружения. Оставьте как есть.{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"twelver-web-search": {
"type": "remote",
"url": "https://twelver.ru/api/mcp/v1/web-search",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:TWELVER_API_KEY}"
}
},
"twelver-image": {
"type": "remote",
"url": "https://twelver.ru/api/mcp/v1/image-generation",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:TWELVER_API_KEY}"
}
}
}
}Перезапустите OpenCode и проверьте, что серверы подключились:
opencode mcp listВариант без ключа: OAuth
Если убрать headers, OpenCode увидит, что серверу нужен вход, и предложит пройти его в браузере. Запустить вход можно и вручную:
opencode mcp auth twelver-web-searchДля входа через OAuth нужен зарегистрированный аккаунт. Если что-то идёт не так, opencode mcp debug имя-сервера покажет, на каком шаге остановился вход, а opencode mcp logout сбросит сохранённые токены.
Шаг 3. Проверьте в сессии
Попросите агента что-то, для чего нужен инструмент:
- «Найди в документации, как в последней версии Next.js настраиваются кэширующие заголовки, и поправь next.config» — агент сходит в
web-search, прочитает страницу и только потом возьмётся за код. - «Сгенерируй иконку приложения 1:1 в плоском стиле, положи ссылку в README» — сработает
text-to-image.
Как не перегрузить агента инструментами
Каждый подключённый сервер добавляет описания своих инструментов в каждый запрос к модели. Это стоит токенов и, что хуже, размывает внимание модели: при двадцати инструментах она чаще зовёт не тот. Три практических правила:
- Держите в глобальном конфиге только то, что нужно везде — обычно это поиск. Генерацию картинок включайте в проектном конфиге фронтенда.
- Выключайте, а не удаляйте:
"enabled": falseоставляет сервер в конфиге, но не грузит его при старте. - Подключайте набор под задачу. Серверы Twelver разделены по наборам как раз для этого: поиск отдельно, изображения отдельно, видео отдельно.
Поле timeout — не про долгие генерации
timeout у MCP-сервера — это время на получение списка инструментов при подключении (по умолчанию 5 секунд), а не на выполнение вызова. Если сервер не успевает ответить на старте, поднимите его; на длительность генерации это поле не влияет.Модель и инструменты одним ключом
Особенность связки, ради которой её стоит собрать: OpenCode может брать у Twelver и модель (через OpenAI-совместимый провайдер), и инструменты (через MCP) — одним ключом и с одного баланса. Провайдер настраивается по главе «opencode в России», MCP — как выше; оба блока живут в одном opencode.json.
Если не работает
| Симптом | Причина | Что делать |
|---|---|---|
| Сервер в mcp list со статусом ошибки | Ключ не подставился из окружения | Проверьте echo $TWELVER_API_KEY в той же оболочке, где запускаете OpenCode |
| Инструментов нет в сессии | Сервер выключен или конфиг не подхватился | Проверьте "enabled": true и что JSON валиден |
| Таймаут при старте | Список инструментов не успел загрузиться за 5 секунд | Поднимите timeout у сервера, например до 15000 |
| Агент зовёт не тот инструмент | Подключено слишком много серверов | Выключите лишние через "enabled": false |
Пишете код не только в терминале? Та же схема для Codex и Cursor, а подборка серверов, которые стоит подключить разработчику, — в статье лучшие MCP-серверы.
Частые вопросы
Как подключить MCP к OpenCode?
opencode.json блок mcp с записью сервера. Для удалённого: "type": "remote", "url" и при необходимости "headers" с ключом; для локального: "type": "local" и команда запуска. Перезапустите OpenCode и проверьте подключение командой opencode mcp list.Где лежит конфиг MCP в OpenCode?
~/.config/opencode/opencode.json, для проекта — opencode.json в корне репозитория. Проектный конфиг дополняет и перекрывает глобальный.Как передать API-ключ MCP-серверу в OpenCode?
headers: "Authorization": "Bearer {env:ИМЯ_ПЕРЕМЕННОЙ}". Запись {env:…} подставляет значение переменной окружения при запуске, так что сам ключ в файл не попадает.Поддерживает ли OpenCode OAuth для MCP?
opencode mcp auth имя-сервера, а сбрасывается — opencode mcp logout.Замедляют ли MCP-серверы OpenCode?
Попробуйте сами
Соберите свой MCP-сервер за минуту
Отметьте нужные инструменты — ссылки коннекторов и mcp.json соберутся сами. Подключается к Claude, Cursor, LM Studio, Codex и OpenCode.
Собрать MCP-сервер