wip(docs): i18n (#12681)

This commit is contained in:
Adam
2026-02-09 11:34:35 -06:00
committed by GitHub
parent f74c0339cc
commit dc53086c1e
642 changed files with 192745 additions and 509 deletions

View File

@@ -0,0 +1,511 @@
---
title: MCP-серверы
description: Добавьте локальные и удаленные инструменты MCP.
---
Вы можете добавить внешние инструменты в OpenCode, используя _Model Context Protocol_ или MCP. OpenCode поддерживает как локальные, так и удаленные серверы.
После добавления инструменты MCP автоматически становятся доступными для LLM наряду со встроенными инструментами.
---
#### Предостережения
Когда вы используете сервер MCP, он добавляет контекст. Это может быстро сложиться, если у вас много инструментов. Поэтому мы рекомендуем быть осторожными с тем, какие серверы MCP вы используете.
:::кончик
Серверы 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
}
}
}
```
Значения вашей локальной конфигурации переопределяют удаленные значения по умолчанию. Дополнительную информацию см. в [config Priorce](/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` | Объект \ | ЛОЖЬ | Объект конфигурации OAuth или `false`, чтобы отключить автоматическое обнаружение OAuth. |
| `clientId` | Нить | Идентификатор клиента OAuth. Если этот параметр не указан, будет предпринята попытка динамической регистрации клиента. |
| `clientSecret` | Нить | Секрет клиента OAuth, если этого требует сервер авторизации. |
| `scope` | Нить | Области OAuth для запроса во время авторизации. |
#### Отладка
Если удаленный сервер 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 использует простые шаблоны подстановки регулярных выражений:
- `*` соответствует нулю или более любого символа (например, `"my-mcp*"` соответствует `my-mcp_search`, `my-mcp_list` и т. д.).
- `?` соответствует ровно одному символу.
- Все остальные символы совпадают буквально
:::примечание
Инструменты сервера MCP регистрируются с именем сервера в качестве префикса, поэтому, чтобы отключить все инструменты для сервера, просто используйте:
```
"mymcpservername_*": false
```
:::
---
## Примеры
Ниже приведены примеры некоторых распространенных серверов MCP. Вы можете отправить PR, если хотите документировать другие серверы.
---
### Часовой
Добавьте [сервер 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
```
---
### Контекст7
Добавьте [сервер 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.
```
---
### Греп от Верселя
Добавьте сервер 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.
```