MCP-серверы
Добавьте локальные и удаленные инструменты MCP.
Вы можете добавить внешние инструменты в opencode, используя Model Context Protocol или MCP. opencode поддерживает как локальные, так и удаленные серверы.
После добавления инструменты MCP автоматически становятся доступными для LLM наряду со встроенными инструментами.
Предостережения
Когда вы используете сервер MCP, он добавляет контекст. Это может быстро сложиться, если у вас много инструментов. Поэтому мы рекомендуем быть осторожными с тем, какие серверы MCP вы используете.
Некоторые серверы MCP, такие как сервер MCP GitHub, имеют тенденцию добавлять много токенов и могут легко превысить ограничение контекста.
Давать возможность
Вы можете определить серверы MCP в своем opencode Config в разделе 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 } }}Значения вашей локальной конфигурации переопределяют удаленные значения по умолчанию. Дополнительную информацию см. в config Priorce.
Местный
Добавьте локальные серверы MCP с помощью type в "local" внутри объекта MCP.
{ "$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.
{ "$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".
{ "$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:
- Обнаружьте ответ 401 и инициируйте поток OAuth.
- Используйте Динамическую регистрацию клиента (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 | OAuth client ID. Если не указан, будет выполнена динамическая регистрация клиента. |
clientSecret | String | OAuth client secret, если этого требует сервер авторизации. |
scope | String | OAuth scopes для запроса во время авторизации. |
Отладка
Если удаленный сервер MCP не может аутентифицироваться, вы можете диагностировать проблемы с помощью:
# View auth status for all OAuth-capable serversopencode mcp auth list
# Debug connection and OAuth flow for a specific serveropencode 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 }}Здесь мы используем шаблон 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 использует простые шаблоны подстановки регулярных выражений:
*соответствует нулю или более любого символа (например,"my-mcp*"соответствуетmy-mcp_search,my-mcp_listи т. д.).?соответствует ровно одному символу.- Все остальные символы совпадают буквально
Примеры
Ниже приведены примеры некоторых распространенных серверов MCP. Вы можете отправить PR, если хотите документировать другие серверы.
Часовой
Добавьте сервер Sentry MCP для взаимодействия с вашими проектами и проблемами 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 sentryКонтекст7
Добавьте сервер Context7 MCP для поиска в документах.
{ "$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.Греп от Верселя
Добавьте сервер MCP Grep от Vercel для поиска по фрагментам кода на 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.