Перейти к содержимому

MCP-серверы

Добавьте локальные и удаленные инструменты MCP.

Вы можете добавить внешние инструменты в opencode, используя Model Context Protocol или MCP. opencode поддерживает как локальные, так и удаленные серверы.

После добавления инструменты MCP автоматически становятся доступными для LLM наряду со встроенными инструментами.


Предостережения

Когда вы используете сервер MCP, он добавляет контекст. Это может быстро сложиться, если у вас много инструментов. Поэтому мы рекомендуем быть осторожными с тем, какие серверы MCP вы используете.

Некоторые серверы MCP, такие как сервер MCP GitHub, имеют тенденцию добавлять много токенов и могут легко превысить ограничение контекста.


Давать возможность

Вы можете определить серверы MCP в своем opencode Config в разделе mcp. Добавьте каждому MCP уникальное имя. Вы можете обратиться к этому MCP по имени при запросе LLM.

opencode.jsonc
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"name-of-mcp-server": {
// ...
"enabled": true,
},
"name-of-other-mcp-server": {
// ...
},
},
}

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


Переопределение удаленных настроек по умолчанию

Организации могут предоставлять серверы MCP по умолчанию через свою конечную точку .well-known/opencode. Эти серверы могут быть отключены по умолчанию, что позволяет пользователям выбирать те, которые им нужны.

Чтобы включить определенный сервер из удаленной конфигурации вашей организации, добавьте его в локальную конфигурацию с помощью enabled: true:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}

Значения вашей локальной конфигурации переопределяют удаленные значения по умолчанию. Дополнительную информацию см. в config Priorce.


Местный

Добавьте локальные серверы MCP с помощью type в "local" внутри объекта MCP.

opencode.jsonc
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-local-mcp-server": {
"type": "local",
// Or ["bun", "x", "my-mcp-command"]
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value",
},
},
},
}

Эта команда запускает локальный сервер MCP. Вы также можете передать список переменных среды.

Например, вот как можно добавить тестовый сервер @modelcontextprotocol/server-everything MCP.

opencode.jsonc
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
},
},
}

И чтобы использовать его, я могу добавить use the mcp_everything tool в свои подсказки.

use the mcp_everything tool to add the number 3 and 4

Параметры

Вот все варианты настройки локального сервера MCP.

ВариантТипНеобходимыйОписание
typeНитьДаТип подключения к серверу MCP должен быть "local".
commandМножествоДаКоманда и аргументы для запуска сервера MCP.
environmentОбъектПеременные среды, которые необходимо установить при запуске сервера.
enabledлогическое значениеВключите или отключите сервер MCP при запуске.
timeoutЧислоТайм-аут в мс для получения инструментов с сервера MCP. По умолчанию 5000 (5 секунд).

Удаленный

Добавьте удаленные серверы MCP, установив для type значение "remote".

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-remote-mcp": {
"type": "remote",
"url": "https://my-mcp-server.com",
"enabled": true,
"headers": {
"Authorization": "Bearer MY_API_KEY"
}
}
}
}

url — это URL-адрес удаленного сервера MCP, а с помощью параметра headers вы можете передать список заголовков.


Параметры

ВариантТипНеобходимыйОписание
typeНитьДаТип подключения к серверу MCP должен быть "remote".
urlНитьДаURL-адрес удаленного сервера MCP.
enabledлогическое значениеВключите или отключите сервер MCP при запуске.
headersОбъектЗаголовки для отправки с запросом.
oauthОбъектКонфигурация аутентификации OAuth. См. раздел OAuth ниже.
timeoutЧислоТайм-аут в мс для получения инструментов с сервера MCP. По умолчанию 5000 (5 секунд).

OAuth

opencode автоматически обрабатывает аутентификацию OAuth для удаленных серверов MCP. Когда серверу требуется аутентификация, opencode:

  1. Обнаружьте ответ 401 и инициируйте поток OAuth.
  2. Используйте Динамическую регистрацию клиента (RFC 7591), если это поддерживается сервером.
  3. Надежно храните токены для будущих запросов

Автоматический

Для большинства серверов MCP с поддержкой OAuth не требуется никакой специальной настройки. Просто настройте удаленный сервер:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp"
}
}
}

Если сервер требует аутентификации, opencode предложит вам пройти аутентификацию при первой попытке его использования. Если нет, вы можете вручную запустить поток с помощью opencode mcp auth <server-name>.


Предварительная регистрация

Если у вас есть учетные данные клиента от поставщика сервера MCP, вы можете их настроить:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": {
"clientId": "{env:MY_MCP_CLIENT_ID}",
"clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
"scope": "tools:read tools:execute"
}
}
}
}

Аутентификация

Вы можете вручную активировать аутентификацию или управлять учетными данными.

Аутентификация с помощью определенного сервера MCP:

Окно терминала
opencode mcp auth my-oauth-server

Перечислите все серверы MCP и их статус аутентификации:

Окно терминала
opencode mcp list

Удалить сохраненные учетные данные:

Окно терминала
opencode mcp logout my-oauth-server

Команда mcp auth откроет ваш браузер для авторизации. После того как вы авторизуетесь, opencode надежно сохранит токены в ~/.local/share/opencode/mcp-auth.json.


Отключение OAuth

Если вы хотите отключить автоматический OAuth для сервера (например, для серверов, которые вместо этого используют ключи API), установите для oauth значение false:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-api-key-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": false,
"headers": {
"Authorization": "Bearer {env:MY_API_KEY}"
}
}
}
}

Параметры OAuth

ВариантТипОписание
oauthObject | falseОбъект конфигурации OAuth или false, чтобы отключить автообнаружение OAuth.
clientIdStringOAuth client ID. Если не указан, будет выполнена динамическая регистрация клиента.
clientSecretStringOAuth client secret, если этого требует сервер авторизации.
scopeStringOAuth scopes для запроса во время авторизации.

Отладка

Если удаленный сервер MCP не может аутентифицироваться, вы можете диагностировать проблемы с помощью:

Окно терминала
# View auth status for all OAuth-capable servers
opencode mcp auth list
# Debug connection and OAuth flow for a specific server
opencode mcp debug my-oauth-server

Команда mcp debug показывает текущий статус аутентификации, проверяет соединение HTTP и пытается выполнить поток обнаружения OAuth.


Управлять

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


Глобальный

Это означает, что вы можете включать или отключать их глобально.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp-foo": false
}
}

Мы также можем использовать шаблон glob, чтобы отключить все соответствующие MCP.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp*": false
}
}

Здесь мы используем шаблон my-mcp* для отключения всех MCP.


За агента

Если у вас большое количество серверов MCP, вы можете включить их только для каждого агента и отключить глобально. Для этого:

  1. Отключите его как инструмент глобально.
  2. В вашей конфигурации агента включите сервер MCP в качестве инструмента.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp": {
"type": "local",
"command": ["bun", "x", "my-mcp-command"],
"enabled": true
}
},
"tools": {
"my-mcp*": false
},
"agent": {
"my-agent": {
"tools": {
"my-mcp*": true
}
}
}
}

Шаблоны глобусов

Шаблон glob использует простые шаблоны подстановки регулярных выражений:

  • * соответствует нулю или более любого символа (например, "my-mcp*" соответствует my-mcp_search, my-mcp_list и т. д.).
  • ? соответствует ровно одному символу.
  • Все остальные символы совпадают буквально

Примеры

Ниже приведены примеры некоторых распространенных серверов MCP. Вы можете отправить PR, если хотите документировать другие серверы.


Часовой

Добавьте сервер Sentry MCP для взаимодействия с вашими проектами и проблемами Sentry.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}

После добавления конфигурации пройдите аутентификацию с помощью Sentry:

Окно терминала
opencode mcp auth sentry

Откроется окно браузера для завершения процесса OAuth и подключения opencode к вашей учетной записи Sentry.

После аутентификации вы можете использовать инструменты Sentry в своих подсказках для запроса данных о проблемах, проектах и ​​ошибках.

Show me the latest unresolved issues in my project. use sentry

Контекст7

Добавьте сервер Context7 MCP для поиска в документах.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}

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

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
}
}
}
}

Здесь мы предполагаем, что у вас установлена ​​переменная среды CONTEXT7_API_KEY.

Добавьте use context7 в запросы на использование сервера Context7 MCP.

Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7

Альтернативно вы можете добавить что-то подобное в свой файл AGENTS.md.

AGENTS.md
When you need to search docs, use `context7` tools.

Греп от Верселя

Добавьте сервер MCP Grep от Vercel для поиска по фрагментам кода на GitHub.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gh_grep": {
"type": "remote",
"url": "https://mcp.grep.app"
}
}
}

Поскольку мы назвали наш сервер MCP gh_grep, вы можете добавить use the gh_grep tool в свои запросы, чтобы агент мог его использовать.

What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool

Альтернативно вы можете добавить что-то подобное в свой файл AGENTS.md.

AGENTS.md
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.