Buckets:
| title: MCP-серверы | |
| description: Добавьте локальные и удаленные инструменты MCP. | |
| Вы можете добавить внешние инструменты в opencode, используя _Model Context Protocol_ или MCP. opencode поддерживает как локальные, так и удаленные серверы. | |
| После добавления инструменты MCP автоматически становятся доступными для LLM наряду со встроенными инструментами. | |
| #### Предостережения | |
| Когда вы используете сервер MCP, он добавляет контекст. Это может быстро сложиться, если у вас много инструментов. Поэтому мы рекомендуем быть осторожными с тем, какие серверы MCP вы используете. | |
| :::tip | |
| Серверы MCP добавляются к вашему контексту, поэтому будьте осторожны с тем, какие из них вы включаете. | |
| ::: | |
| Некоторые серверы MCP, такие как сервер MCP GitHub, имеют тенденцию добавлять много токенов и могут легко превысить ограничение контекста. | |
| ## Включение | |
| Вы можете определить серверы MCP в своем [opencode Config](https://opencode.ai/docs/config/) в разделе `mcp`. Добавьте каждому MCP уникальное имя. Вы можете обратиться к этому MCP по имени при запросе LLM. | |
| ```jsonc title="opencode.jsonc" {6} | |
| { | |
| "$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`: | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "jira": { | |
| "type": "remote", | |
| "url": "https://jira.example.com/mcp", | |
| "enabled": true | |
| } | |
| } | |
| } | |
| ``` | |
| Значения вашей локальной конфигурации переопределяют удаленные значения по умолчанию. Дополнительную информацию см. в [приоритете конфигурации](/docs/config#precedence-order). | |
| ## Локальные | |
| Добавьте локальные серверы MCP с помощью `type` в `"local"` внутри объекта MCP. | |
| ```jsonc title="opencode.jsonc" {15} | |
| { | |
| "$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`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything) MCP. | |
| ```jsonc title="opencode.jsonc" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "mcp_everything": { | |
| "type": "local", | |
| "command": ["npx", "-y", "@modelcontextprotocol/server-everything"], | |
| }, | |
| }, | |
| } | |
| ``` | |
| И чтобы использовать его, добавьте `use the mcp_everything tool` в свои подсказки. | |
| ```txt "mcp_everything" | |
| 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"`. | |
| ```json title="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](#oauth) ниже. | | |
| | `timeout` | Число | | Тайм-аут в мс для получения инструментов с сервера MCP. По умолчанию 5000 (5 секунд). | | |
| ## OAuth | |
| opencode автоматически обрабатывает аутентификацию OAuth для удаленных серверов MCP. Когда серверу требуется аутентификация, opencode: | |
| 1. Обнаружьте ответ 401 и инициируйте поток OAuth. | |
| 2. Используйте **Динамическую регистрацию клиента (RFC 7591)**, если это поддерживается сервером. | |
| 3. Надежно храните токены для будущих запросов | |
| ### Автоматически | |
| Для большинства серверов MCP с поддержкой OAuth не требуется никакой специальной настройки. Просто настройте удаленный сервер: | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "my-oauth-server": { | |
| "type": "remote", | |
| "url": "https://mcp.example.com/mcp" | |
| } | |
| } | |
| } | |
| ``` | |
| Если сервер требует аутентификации, opencode предложит вам пройти аутентификацию при первой попытке его использования. Если нет, вы можете [вручную запустить поток ](#authenticating) с помощью `opencode mcp auth <server-name>`. | |
| ### Предварительная регистрация | |
| Если у вас есть учетные данные клиента от поставщика сервера MCP, вы можете их настроить: | |
| ```json title="opencode.json" {7-11} | |
| { | |
| "$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: | |
| ```bash | |
| opencode mcp auth my-oauth-server | |
| ``` | |
| Перечислите все серверы MCP и их статус аутентификации: | |
| ```bash | |
| opencode mcp list | |
| ``` | |
| Удалить сохраненные учетные данные: | |
| ```bash | |
| opencode mcp logout my-oauth-server | |
| ``` | |
| Команда `mcp auth` откроет ваш браузер для авторизации. После того как вы авторизуетесь, opencode надежно сохранит токены в `~/.local/share/opencode/mcp-auth.json`. | |
| #### Отключение OAuth | |
| Если вы хотите отключить автоматический OAuth для сервера (например, для серверов, которые вместо этого используют ключи API), установите для `oauth` значение `false`: | |
| ```json title="opencode.json" {7} | |
| { | |
| "$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 не может аутентифицироваться, вы можете диагностировать проблемы с помощью: | |
| ```bash | |
| # 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, как и любым другим инструментом. | |
| ### Глобально | |
| Это означает, что вы можете включать или отключать их глобально. | |
| ```json title="opencode.json" {14} | |
| { | |
| "$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. | |
| ```json title="opencode.json" {14} | |
| { | |
| "$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. В вашей [конфигурации агента](/docs/agents#tools) включите сервер MCP в качестве инструмента. | |
| ```json title="opencode.json" {11, 14-18} | |
| { | |
| "$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 использует простые шаблоны подстановки регулярных выражений: | |
| - `*` соответствует нулю или более любого символа (например, `"my-mcp*"` соответствует `my-mcp_search`, `my-mcp_list` и т. д.). | |
| - `?` соответствует ровно одному символу. | |
| - Все остальные символы совпадают буквально | |
| :::note | |
| Инструменты сервера MCP регистрируются с именем сервера в качестве префикса, поэтому, чтобы отключить все инструменты для сервера, просто используйте: | |
| ``` | |
| "mymcpservername_*": false | |
| ``` | |
| ::: | |
| ## Примеры | |
| Ниже приведены примеры некоторых распространенных серверов MCP. Вы можете отправить PR, если хотите документировать другие серверы. | |
| ### Sentry | |
| Добавьте [сервер Sentry MCP](https://mcp.sentry.dev) для взаимодействия с вашими проектами и проблемами Sentry. | |
| ```json title="opencode.json" {4-8} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "sentry": { | |
| "type": "remote", | |
| "url": "https://mcp.sentry.dev/mcp", | |
| "oauth": {} | |
| } | |
| } | |
| } | |
| ``` | |
| После добавления конфигурации пройдите аутентификацию с помощью Sentry: | |
| ```bash | |
| opencode mcp auth sentry | |
| ``` | |
| Откроется окно браузера для завершения процесса OAuth и подключения opencode к вашей учетной записи Sentry. | |
| После аутентификации вы можете использовать инструменты Sentry в своих подсказках для запроса данных о проблемах, проектах и ошибках. | |
| ```txt "use sentry" | |
| Show me the latest unresolved issues in my project. use sentry | |
| ``` | |
| ### Context7 | |
| Добавьте [сервер Context7 MCP](https://github.com/upstash/context7) для поиска в документах. | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "context7": { | |
| "type": "remote", | |
| "url": "https://mcp.context7.com/mcp" | |
| } | |
| } | |
| } | |
| ``` | |
| Если вы зарегистрировали бесплатную учетную запись, вы можете использовать свой ключ API и получить более высокие ограничения скорости. | |
| ```json title="opencode.json" {7-9} | |
| { | |
| "$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. | |
| ```txt "use context7" | |
| Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7 | |
| ``` | |
| Альтернативно вы можете добавить что-то подобное в свой файл [AGENTS.md](/docs/rules/). | |
| ```md title="AGENTS.md" | |
| When you need to search docs, use `context7` tools. | |
| ``` | |
| ### Grep by Vercel | |
| Добавьте сервер MCP [Grep от Vercel](https://grep.app) для поиска по фрагментам кода на GitHub. | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "gh_grep": { | |
| "type": "remote", | |
| "url": "https://mcp.grep.app" | |
| } | |
| } | |
| } | |
| ``` | |
| Поскольку мы назвали наш сервер MCP `gh_grep`, вы можете добавить `use the gh_grep tool` в свои запросы, чтобы агент мог его использовать. | |
| ```txt "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](/docs/rules/). | |
| ```md title="AGENTS.md" | |
| If you are unsure how to do something, use `gh_grep` to search code examples from GitHub. | |
| ``` | |
Xet Storage Details
- Size:
- 20.4 kB
- Xet hash:
- e26ce2801025e3ae323fb0f6f67c3bd0764bd9a2edb60516a8a37820e96ad634
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.