Короткий ответ
OpenCode держит настройки в файле opencode.json (допустим и opencode.jsonc с комментариями). MCP-серверы описываются под ключом mcp, и каждый сервер обязан указать свой тип: local — запускается у вас на машине, remote — уже где-то работает и доступен по адресу.
Локальный сервер
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"мой-сервер": {
"type": "local",
"command": ["npx", "-y", "имя-пакета"],
"enabled": true
}
}
}
Обратите внимание: command здесь массив, а не строка. Это отличает OpenCode от Cursor, где команда и аргументы разнесены по разным полям. Частая ошибка при переносе конфига между редакторами — оставить строку и получить сервер, который не стартует.
Удалённый сервер
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"удалённый": {
"type": "remote",
"url": "https://адрес-сервера",
"enabled": true
}
}
}
Для удалённых серверов доступны headers — туда кладут токен авторизации — и настройки OAuth, если сервер требует входа в аккаунт. Локальные вместо этого принимают environment для переменных окружения.
Ключ, который экономит время
Поле enabled есть у обоих типов. Поставьте false — сервер останется в конфиге, но подключаться не будет.
Это удобнее, чем удалять блок и вставлять обратно. Когда агент начинает вести себя странно, самый быстрый способ понять причину — по очереди выключать серверы и смотреть, что изменится. Заодно так удобно держать наготове серверы, которые нужны раз в месяц.
Ещё есть timeout — для серверов, которые долго стартуют и не успевают ответить за отведённое время.
Чем OpenCode отличается
Тем, что это открытый проект и он не привязан к одному поставщику моделей. Сам протокол MCP от этого не меняется: те же серверы, что вы подключали к Cursor или Codex, работают и здесь, переписать нужно только форму записи.
Если сервер нужен только вам и данные не должны уходить наружу, смотрите в сторону локального запуска — что это значит на практике, разобрано в материале про локальный MCP-сервер.
Если не работает
Проверьте JSON. Файл читается целиком, поэтому одна лишняя запятая выключает вообще все серверы, а не один.
Проверьте, что command — массив. Самая частая причина при переезде с другого редактора.
Запустите команду руками в терминале. Если она падает там, в OpenCode она тоже упадёт, просто ошибка будет менее заметной.
Общий порядок действий, одинаковый для любого агента, собран в инструкции по подключению MCP. Готовые серверы, которые стоит попробовать первыми, — в списке MCP-серверов.