Подключение Qwen Code к инструментам через MCP
Qwen Code может подключаться к внешним инструментам и источникам данных через Model Context Protocol (MCP) . MCP-серверы предоставляют Qwen Code доступ к вашим инструментам, базам данных и API.
Возможности MCP
При подключении MCP-серверов вы можете попросить Qwen Code:
- Работать с файлами и репозиториями (чтение/поиск/запись в зависимости от включённых инструментов)
- Выполнять запросы к базам данных (просмотр схемы, запросы, отчёты)
- Интегрировать внутренние сервисы (оборачивать ваши API в виде MCP-инструментов)
- Автоматизировать рабочие процессы (повторяющиеся задачи, доступные как инструменты/промпты)
Если вы ищете «одну команду для быстрого старта», переходите к разделу Быстрый старт.
Быстрый старт
Qwen Code загружает MCP-серверы из раздела mcpServers в файле settings.json. Настроить серверы можно двумя способами:
- Отредактировав
settings.jsonнапрямую - Используя команды
qwen mcp(см. Справочник по CLI)
Добавление первого сервера
- Добавьте сервер (пример: удалённый HTTP MCP-сервер):
qwen mcp add --transport http my-server http://localhost:3000/mcp- Откройте диалог управления MCP для просмотра и настройки серверов:
qwen mcp- Перезапустите Qwen Code в том же проекте (или запустите его, если он ещё не работал), а затем попросите модель использовать инструменты с этого сервера.
Где хранится конфигурация (области видимости)
Большинству пользователей достаточно двух областей видимости:
- Область проекта (по умолчанию):
.qwen/settings.jsonв корне вашего проекта - Область пользователя:
~/.qwen/settings.jsonдля всех проектов на вашем компьютере
Запись в область пользователя:
qwen mcp add --scope user --transport http my-server http://localhost:3000/mcpПодробнее о расширенных уровнях конфигурации (системные настройки по умолчанию и правила приоритета) см. в разделе Settings.
Настройка серверов
Выбор транспорта
| Транспорт | Когда использовать | Поле(я) JSON |
|---|---|---|
http | Рекомендуется для удалённых сервисов; хорошо подходит для облачных MCP-серверов | httpUrl (+ опционально headers) |
sse | Устаревшие/неподдерживаемые серверы, поддерживающие только Server-Sent Events | url (+ опционально headers) |
stdio | Локальный процесс (скрипты, CLI, Docker) на вашем компьютере | command, args (+ опционально cwd, env) |
Если сервер поддерживает оба варианта, отдавайте предпочтение HTTP вместо SSE.
Настройка через settings.json или qwen mcp add
Оба подхода создают одинаковые записи mcpServers в вашем settings.json — используйте тот, который вам удобнее.
Stdio-сервер (локальный процесс)
JSON (.qwen/settings.json):
{
"mcpServers": {
"pythonTools": {
"command": "python",
"args": ["-m", "my_mcp_server", "--port", "8080"],
"cwd": "./mcp-servers/python",
"env": {
"DATABASE_URL": "$DB_CONNECTION_STRING",
"API_KEY": "${EXTERNAL_API_KEY}"
},
"timeout": 15000
}
}
}CLI (по умолчанию записывает в область проекта):
qwen mcp add pythonTools -e DATABASE_URL=$DB_CONNECTION_STRING -e API_KEY=$EXTERNAL_API_KEY \
--timeout 15000 python -m my_mcp_server --port 8080HTTP-сервер (удалённый streamable HTTP)
JSON:
{
"mcpServers": {
"httpServerWithAuth": {
"httpUrl": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer your-api-token"
},
"timeout": 5000
}
}
}CLI:
qwen mcp add --transport http httpServerWithAuth http://localhost:3000/mcp \
--header "Authorization: Bearer your-api-token" --timeout 5000SSE-сервер (удалённый Server-Sent Events)
JSON:
{
"mcpServers": {
"sseServer": {
"url": "http://localhost:8080/sse",
"timeout": 30000
}
}
}CLI:
qwen mcp add --transport sse sseServer http://localhost:8080/sse --timeout 30000Безопасность и контроль
Доверие (пропуск подтверждений)
- Доверие к серверу (
trust: true): пропускает запросы подтверждения для этого сервера (используйте с осторожностью).
Фильтрация инструментов (разрешение/запрет инструментов для каждого сервера)
Используйте includeTools / excludeTools для ограничения инструментов, предоставляемых сервером (с точки зрения Qwen Code).
Пример: включение только нескольких инструментов:
{
"mcpServers": {
"filteredServer": {
"command": "python",
"args": ["-m", "my_mcp_server"],
"includeTools": ["safe_tool", "file_reader", "data_processor"],
"timeout": 30000
}
}
}Глобальные списки разрешений/запретов
Объект mcp в вашем settings.json определяет глобальные правила для всех MCP-серверов:
mcp.allowed: список разрешённых имён MCP-серверов (ключи вmcpServers)mcp.excluded: список запрещённых имён MCP-серверов
Пример:
{
"mcp": {
"allowed": ["my-trusted-server"],
"excluded": ["experimental-server"]
}
}Устранение неполадок
- Сервер отображает “Disconnected” в
qwen mcp list: убедитесь, что URL/команда указаны верно, затем увеличьтеtimeout. - Stdio-сервер не запускается: используйте абсолютный путь в
commandи перепроверьтеcwd/env. - Переменные окружения в JSON не подставляются: убедитесь, что они существуют в окружении, где запущен Qwen Code (окружения оболочки и GUI-приложений могут отличаться).
Справочник
Структура settings.json
Конфигурация конкретного сервера (mcpServers)
Добавьте объект mcpServers в файл settings.json:
// ... file contains other config objects
{
"mcpServers": {
"serverName": {
"command": "path/to/server",
"args": ["--arg1", "value1"],
"env": {
"API_KEY": "$MY_API_TOKEN"
},
"cwd": "./server-directory",
"timeout": 30000,
"trust": false
}
}
}Свойства конфигурации:
Обязательные (одно из следующего):
| Свойство | Описание |
|---|---|
command | Путь к исполняемому файлу для транспорта Stdio |
url | URL конечной точки SSE (например, "http://localhost:8080/sse") |
httpUrl | URL конечной точки HTTP-стриминга |
Опциональные:
| Свойство | Тип/Значение по умолчанию | Описание |
|---|---|---|
args | array | Аргументы командной строки для транспорта Stdio |
headers | object | Пользовательские HTTP-заголовки при использовании url или httpUrl |
env | object | Переменные окружения для процесса сервера. Значения могут ссылаться на переменные окружения с использованием синтаксиса $VAR_NAME или ${VAR_NAME} |
cwd | string | Рабочая директория для транспорта Stdio |
timeout | number (по умолчанию: 600 000) | Таймаут запроса в миллисекундах (по умолчанию: 600 000 мс = 10 минут) |
trust | boolean (по умолчанию: false) | При значении true пропускает все запросы подтверждения вызова инструментов для этого сервера (по умолчанию: false) |
includeTools | array | Список имён инструментов, которые нужно включить с этого MCP-сервера. Если указано, доступны будут только перечисленные здесь инструменты (режим белого списка). Если не указано, по умолчанию включены все инструменты сервера. |
excludeTools | array | Список имён инструментов, которые нужно исключить из этого MCP-сервера. Перечисленные здесь инструменты не будут доступны модели, даже если сервер их предоставляет. Примечание: excludeTools имеет приоритет над includeTools — если инструмент есть в обоих списках, он будет исключён. |
targetAudience | string | OAuth Client ID, добавленный в белый список защищённого IAP-приложения, к которому вы пытаетесь получить доступ. Используется с authProviderType: 'service_account_impersonation'. |
targetServiceAccount | string | Адрес электронной почты сервисного аккаунта Google Cloud, от имени которого выполняется действие. Используется с authProviderType: 'service_account_impersonation'. |
Управление MCP-серверами через qwen mcp
Вы всегда можете настроить MCP-серверы, вручную отредактировав settings.json, но CLI обычно работает быстрее.
Добавление сервера (qwen mcp add)
qwen mcp add [options] <name> <commandOrUrl> [args...]| Аргумент/Опция | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
<name> | Уникальное имя сервера. | — | example-server |
<commandOrUrl> | Команда для выполнения (для stdio) или URL (для http/sse). | — | /usr/bin/python или http://localhost:8 |
[args...] | Опциональные аргументы для команды stdio. | — | --port 5000 |
-s, --scope | Область конфигурации (user или project). | project | -s user |
-t, --transport | Тип транспорта (stdio, sse, http). | stdio | -t sse |
-e, --env | Установка переменных окружения. | — | -e KEY=value |
-H, --header | Установка HTTP-заголовков для транспортов SSE и HTTP. | — | -H "X-Api-Key: abc123" |
--timeout | Установка таймаута соединения в миллисекундах. | — | --timeout 30000 |
--trust | Доверять серверу (пропускать все запросы подтверждения вызова инструментов). | — (false) | --trust |
--description | Установка описания сервера. | — | --description "Local tools" |
--include-tools | Список инструментов для включения через запятую. | включены все инструменты | --include-tools mytool,othertool |
--exclude-tools | Список инструментов для исключения через запятую. | нет | --exclude-tools mytool |
Удаление сервера (qwen mcp remove)
qwen mcp remove <name>