MCP-серверы
Добавляйте локальные и удалённые MCP-инструменты.
Вы можете добавлять внешние инструменты в OpenCode, используя Model Context Protocol, или MCP. OpenCode поддерживает как локальные, так и удалённые серверы.
После добавления MCP-инструменты автоматически становятся доступными для LLM наряду со встроенными инструментами.
Предупреждения
При использовании MCP-сервера он добавляется в контекст. Это может быстро накапливаться, если у вас много инструментов. Поэтому мы рекомендуем быть осторожными с выбором MCP-серверов.
MCP-серверы добавляются в ваш контекст, поэтому будьте осторожны с тем, какие из них вы включаете.
Некоторые MCP-серверы, такие как GitHub MCP-сервер, добавляют много токенов и могут легко превысить лимит контекста.
Включение
Вы можете определить MCP-серверы в вашей конфигурации OpenCode в разделе mcp. Добавьте каждый MCP с уникальным именем. Вы можете ссылаться на этот MCP по имени при запросах к LLM.
{
"$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:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}Ваши локальные значения конфигурации переопределяют удалённые значения по умолчанию. Подробнее см. приоритет конфигурации.
Локальные
Добавляйте локальные MCP-серверы, устанавливая type в "local" внутри объекта MCP.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-local-mcp-server": {
"type": "local",
// Или ["bun", "x", "my-mcp-command"]
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value",
},
},
},
}Команда — это способ запуска локального MCP-сервера. Вы также можете передать список переменных окружения.
Например, вот как можно добавить тестовый MCP-сервер @modelcontextprotocol/server-everything (opens in a new tab).
{
"$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 | String | Да | Тип подключения MCP-сервера, должен быть "local". |
command | Array | Да | Команда и аргументы для запуска MCP-сервера. |
environment | Object | Переменные окружения для установки при запуске сервера. | |
enabled | Boolean | Включить или отключить MCP-сервер при запуске. | |
timeout | Number | Тайм-аут в мс для получения инструментов от MCP-сервера. По умолчанию 5000 (5 секунд). |
Удалённые
Добавляйте удалённые MCP-серверы, устанавливая type в "remote".
{
"$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 | String | Да | Тип подключения MCP-сервера, должен быть "remote". |
url | String | Да | URL удалённого MCP-сервера. |
enabled | Boolean | Включить или отключить MCP-сервер при запуске. | |
headers | Object | Заголовки для отправки с запросом. | |
oauth | Object | Конфигурация OAuth-аутентификации. См. раздел OAuth ниже. | |
timeout | Number | Тайм-аут в мс для получения инструментов от MCP-сервера. По умолчанию 5000 (5 секунд). |
OAuth
OpenCode автоматически обрабатывает OAuth-аутентификацию для удалённых MCP-серверов. Когда сервер требует аутентификации, OpenCode:
- Обнаруживает ответ 401 и инициирует OAuth-поток
- Использует Dynamic Client Registration (RFC 7591), если поддерживается сервером
- Безопасно сохраняет токены для будущих запросов
Автоматическая
Для большинства MCP-серверов с поддержкой OAuth специальная настройка не требуется. Просто настройте удалённый сервер:
{
"$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-сервера, вы можете их настроить:
{
"$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:
{
"$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
| Параметр | Тип | Описание |
|---|---|---|
oauth | Object | false | Объект конфигурации OAuth или false для отключения автоопределения OAuth. |
clientId | String | ID клиента OAuth. Если не указан, будет предпринята попытка динамической регистрации клиента. |
clientSecret | String | Секрет клиента OAuth, если требуется сервером авторизации. |
scope | String | OAuth-области для запроса во время авторизации. |
Отладка
Если удалённый MCP-сервер не может аутентифицироваться, вы можете диагностировать проблемы с помощью:
# Просмотр статуса аутентификации для всех серверов с поддержкой OAuth
opencode mcp auth list
# Отладка подключения и OAuth-потока для определённого сервера
opencode mcp debug my-oauth-serverКоманда mcp debug показывает текущий статус аутентификации, тестирует HTTP-подключение и пытается выполнить OAuth-обнаружение.
Управление
Ваши MCP доступны как инструменты в OpenCode наряду со встроенными инструментами. Поэтому вы можете управлять ими через конфигурацию OpenCode, как любым другим инструментом.
Глобально
Это означает, что вы можете включать или отключать их глобально.
{
"$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.
{
"$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
}
}Здесь мы используем glob-шаблон my-mcp* для отключения всех MCP.
По агентам
Если у вас большое количество MCP-серверов, вы можете захотеть включать их только для каждого агента и отключать глобально. Для этого:
- Отключите его как инструмент глобально.
- В вашей конфигурации агента включите MCP-сервер как инструмент.
{
"$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-шаблоны
Glob-шаблон использует простые regex-шаблоны:
*соответствует нулю или более любых символов (например,"my-mcp*"соответствуетmy-mcp_search,my-mcp_listи т.д.)?соответствует ровно одному символу- Все остальные символы соответствуют буквально
Инструменты MCP-сервера регистрируются с именем сервера в качестве префикса, поэтому для отключения всех инструментов сервера просто используйте:
"mymcpservername_*": falseПримеры
Ниже приведены примеры некоторых распространённых MCP-серверов. Вы можете отправить PR, если хотите задокументировать другие серверы.
Sentry
Добавьте Sentry MCP-сервер (opens in a new tab) для взаимодействия с вашими проектами и задачами Sentry.
{
"$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 sentryContext7
Добавьте Context7 MCP-сервер (opens in a new tab) для поиска по документации.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}Если вы зарегистрировали бесплатную учётную запись, вы можете использовать свой API-ключ и получить более высокие лимиты.
{
"$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.
When you need to search docs, use `context7` tools.Grep by Vercel
Добавьте MCP-сервер Grep by Vercel (opens in a new tab) для поиска фрагментов кода на GitHub.
{
"$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.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.