summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/ru/mcp-servers.mdx
blob: da88f413f9dc4a7225646356fb62b041ed532b4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
---
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.
```