Подключение Qwen Code к инструментам через MCP
Qwen Code может подключаться к внешним инструментам и источникам данных через протокол контекста модели (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Для расширенных уровней конфигурации (системные значения по умолчанию, системные настройки и правила приоритетности) см. раздел Настройки.
Настройка серверов
Выбор транспорта
| Транспорт | Когда использовать | Поле(я) JSON |
|---|---|---|
http | Рекомендуется для удалённых сервисов; хорошо работает с облачными серверами MCP | httpUrl (+ необязательное поле headers) |
sse | Устаревшие/устаревшие серверы, поддерживающие только Server-Sent Events (SSE) | 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-сервер (удалённый потоковый HTTP)
JSON:
{
"mcpServers": {
"httpServerWithAuth": {
"httpUrl": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer ваш-токен-api"
},
"timeout": 5000
}
}
}CLI:
qwen mcp add --transport http httpServerWithAuth http://localhost:3000/mcp \
--header "Authorization: Bearer ваш-токен-api" --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"]
}
}Устранение неполадок
- Сервер отображается как «Отключён» в
qwen mcp list: убедитесь, что URL или команда указаны верно, затем увеличьте значение параметраtimeout. - Сервер stdio не запускается: укажите абсолютный путь к исполняемому файлу в параметре
commandи дважды проверьте значенияcwdиenv. - Переменные окружения в JSON не разрешаются: убедитесь, что они существуют в среде, где выполняется Qwen Code (среда оболочки и среда GUI-приложения могут отличаться).
Справочник
Структура файла settings.json
Конфигурация, специфичная для сервера (mcpServers)
Добавьте объект mcpServers в файл settings.json:
// ... файл содержит другие конфигурационные объекты
{
"mcpServers": {
"serverName": {
"command": "путь/к/серверу",
"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 | массив | Аргументы командной строки для транспорта через Stdio |
headers | объект | Пользовательские HTTP-заголовки при использовании url или httpUrl |
env | объект | Переменные окружения для процесса сервера. Значения могут ссылаться на переменные окружения с помощью синтаксиса $VAR_NAME или ${VAR_NAME} |
cwd | строка | Рабочий каталог для транспорта через Stdio |
timeout | число (по умолчанию: 600 000) | Таймаут запроса в миллисекундах (по умолчанию: 600 000 мс = 10 минут) |
trust | логическое значение (по умолчанию: false) | При значении true пропускаются все подтверждения вызовов инструментов для этого сервера (по умолчанию: false) |
includeTools | массив | Список имён инструментов, которые следует включить из этого MCP-сервера. При указании доступны только перечисленные здесь инструменты (поведение «белого списка»). Если не указано, по умолчанию включены все инструменты сервера. |
excludeTools | массив | Список имён инструментов, которые следует исключить из этого MCP-сервера. Перечисленные здесь инструменты недоступны модели, даже если они предоставляются сервером. Примечание: excludeTools имеет приоритет над includeTools: если инструмент указан в обоих списках, он будет исключён. |
targetAudience | строка | Идентификатор OAuth-клиента, разрешённый для доступа к защищённому IAP приложению, к которому вы пытаетесь получить доступ. Используется совместно с параметром authProviderType: 'service_account_impersonation'. |
targetServiceAccount | строка | Адрес электронной почты учётной записи сервиса Google Cloud, от имени которой выполняется вход. Используется совместно с параметром authProviderType: 'service_account_impersonation'. |
Управление серверами MCP с помощью qwen mcp
Вы всегда можете настраивать серверы MCP, вручную редактируя файл settings.json, однако использование CLI обычно быстрее.
Добавление сервера (qwen mcp add)
qwen mcp add [опции] <имя> <команда_или_адрес> [аргументы...]| Аргумент/опция | Описание | По умолчанию | Пример |
|---|---|---|---|
<имя> | Уникальное имя сервера. | — | example-server |
<команда_или_адрес> | Команда для выполнения (для stdio) или URL-адрес (для http/sse). | — | /usr/bin/python или http://localhost:8 |
[аргументы...] | Необязательные аргументы для команды stdio. | — | --port 5000 |
-s, --scope | Область действия конфигурации (пользовательская или проектная). | 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 "Локальные инструменты" |
--include-tools | Список инструментов для включения, разделённый запятыми. | включены все инструменты | --include-tools mytool,othertool |
--exclude-tools | Список инструментов для исключения, разделённый запятыми. | исключены никакие инструменты | --exclude-tools mytool |
Удаление сервера (qwen mcp remove)
qwen mcp remove <name>