Conectar o Qwen Code a ferramentas via MCP
O Qwen Code pode se conectar a ferramentas e fontes de dados externas por meio do Model Context Protocol (MCP) . Servidores MCP fornecem ao Qwen Code acesso às suas ferramentas, bancos de dados e APIs.
O que você pode fazer com o MCP
Com servidores MCP conectados, você pode pedir ao Qwen Code para:
- Trabalhar com arquivos e repositórios (ler/pesquisar/escrever, dependendo das ferramentas habilitadas)
- Consultar bancos de dados (inspeção de esquema, consultas, relatórios)
- Integrar serviços internos (envolver suas APIs como ferramentas MCP)
- Automatizar fluxos de trabalho (tarefas repetitivas expostas como ferramentas/prompts)
Se você estiver procurando o “comando único para começar”, vá para Início rápido.
Início rápido
O Qwen Code carrega os servidores MCP a partir da chave mcpServers no seu arquivo settings.json. Você pode configurar os servidores de duas maneiras:
- Editando diretamente o arquivo
settings.json - Usando comandos
qwen mcp(veja Referência da CLI)
Adicione seu primeiro servidor
- Adicione um servidor (exemplo: servidor remoto HTTP MCP):
qwen mcp add --transport http my-server http://localhost:3000/mcp- Verifique se ele aparece:
qwen mcp list- Reinicie o Qwen Code no mesmo projeto (ou inicie-o caso ainda não esteja em execução) e depois peça ao modelo para usar ferramentas desse servidor.
Onde a configuração é armazenada (escopos)
A maioria dos usuários precisa apenas desses dois escopos:
- Escopo do projeto (padrão):
.qwen/settings.jsonna raiz do seu projeto - Escopo do usuário:
~/.qwen/settings.jsonem todos os projetos da sua máquina
Escrever no escopo do usuário:
qwen mcp add --scope user --transport http my-server http://localhost:3000/mcpPara camadas avançadas de configuração (padrões do sistema/configurações do sistema e regras de precedência), consulte Configurações.
Configurar servidores
Escolha um transporte
| Transporte | Quando usar | Campo(s) JSON |
|---|---|---|
http | Recomendado para serviços remotos; funciona bem para servidores MCP na nuvem | httpUrl (+ headers opcional) |
sse | Servidores legados/obsoletos que suportam apenas Server-Sent Events | url (+ headers opcional) |
stdio | Processo local (scripts, CLIs, Docker) na sua máquina | command, args (+ cwd, env opcionais) |
Se um servidor suportar ambos, prefira HTTP em vez de SSE.
Configurar via settings.json vs qwen mcp add
Ambas as abordagens produzem as mesmas entradas mcpServers no seu settings.json—use a que você preferir.
Servidor Stdio (processo local)
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 (grava no escopo do projeto por padrão):
qwen mcp add pythonTools -e DATABASE_URL=$DB_CONNECTION_STRING -e API_KEY=$EXTERNAL_API_KEY \
--timeout 15000 python -m my_mcp_server --port 8080Servidor HTTP (HTTP streamable remoto)
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 5000Servidor SSE (Server-Sent Events remoto)
JSON:
{
"mcpServers": {
"sseServer": {
"url": "http://localhost:8080/sse",
"timeout": 30000
}
}
}CLI:
qwen mcp add --transport sse sseServer http://localhost:8080/sse --timeout 30000Segurança e controle
Confiança (ignorar confirmações)
- Confiança no servidor (
trust: true): ignora os prompts de confirmação para aquele servidor (use com moderação).
Filtragem de ferramentas (permitir/bloquear ferramentas por servidor)
Use includeTools / excludeTools para restringir as ferramentas expostas por um servidor (da perspectiva do Qwen Code).
Exemplo: incluir apenas algumas ferramentas:
{
"mcpServers": {
"filteredServer": {
"command": "python",
"args": ["-m", "my_mcp_server"],
"includeTools": ["safe_tool", "file_reader", "data_processor"],
"timeout": 30000
}
}
}Listas globais de permissão/bloqueio
O objeto mcp no seu settings.json define regras globais para todos os servidores MCP:
mcp.allowed: lista de permissões de nomes de servidores MCP (chaves emmcpServers)mcp.excluded: lista de bloqueios de nomes de servidores MCP
Exemplo:
{
"mcp": {
"allowed": ["my-trusted-server"],
"excluded": ["experimental-server"]
}
}Solução de Problemas
- Servidor mostra “Disconnected” em
qwen mcp list: verifique se a URL/comando está correta e, em seguida, aumente otimeout. - Servidor Stdio falha ao iniciar: utilize um caminho absoluto para
commande verifique novamentecwd/env. - Variáveis de ambiente no JSON não são resolvidas: certifique-se de que elas existem no ambiente onde o Qwen Code é executado (ambientes de shell vs aplicativo GUI podem ser diferentes).
Referência
Estrutura do settings.json
Configuração específica do servidor (mcpServers)
Adicione um objeto mcpServers ao seu arquivo settings.json:
// ... o arquivo contém outros objetos de configuração
{
"mcpServers": {
"serverName": {
"command": "caminho/para/o/servidor",
"args": ["--arg1", "valor1"],
"env": {
"API_KEY": "$MEU_TOKEN_DA_API"
},
"cwd": "./diretorio-do-servidor",
"timeout": 30000,
"trust": false
}
}
}Propriedades de configuração:
Obrigatório (uma das seguintes):
| Propriedade | Descrição |
|---|---|
command | Caminho para o executável no transporte Stdio |
url | URL do endpoint SSE (ex.: "http://localhost:8080/sse" ) |
httpUrl | URL do endpoint de streaming HTTP |
Opcional:
| Propriedade | Tipo/Padrão | Descrição |
|---|---|---|
args | array | Argumentos da linha de comando para o transporte Stdio |
headers | objeto | Cabeçalhos HTTP personalizados ao usar url ou httpUrl |
env | objeto | Variáveis de ambiente para o processo do servidor. Os valores podem referenciar variáveis de ambiente usando a sintaxe $NOME_VAR ou ${NOME_VAR} |
cwd | string | Diretório de trabalho para o transporte Stdio |
timeout | número (padrão: 600.000) | Tempo limite da requisição em milissegundos (padrão: 600.000 ms = 10 minutos) |
trust | booleano (padrão: false) | Quando definido como true, ignora todas as confirmações de chamada de ferramenta para este servidor (padrão: false) |
includeTools | array | Lista com os nomes das ferramentas a serem incluídas deste servidor MCP. Quando especificado, apenas as ferramentas listadas aqui estarão disponíveis a partir deste servidor (comportamento de lista de permissões). Se não for especificado, todas as ferramentas do servidor são habilitadas por padrão. |
excludeTools | array | Lista com os nomes das ferramentas a serem excluídas deste servidor MCP. As ferramentas listadas aqui não estarão disponíveis para o modelo, mesmo que sejam expostas pelo servidor. Nota: excludeTools tem precedência sobre includeTools – se uma ferramenta estiver nas duas listas, ela será excluída. |
targetAudience | string | O ID do Cliente OAuth autorizado no aplicativo protegido por IAP ao qual você está tentando acessar. Usado com authProviderType: 'service_account_impersonation'. |
targetServiceAccount | string | O endereço de e-mail da Conta de Serviço do Google Cloud a ser personificada. Usado com authProviderType: 'service_account_impersonation'. |
Gerenciar servidores MCP com qwen mcp
Você sempre pode configurar servidores MCP editando manualmente o arquivo settings.json, mas a CLI geralmente é mais rápida.
Adicionando um servidor (qwen mcp add)
qwen mcp add [opções] <nome> <comandoOuUrl> [argumentos...]| Argumento/Opção | Descrição | Padrão | Exemplo |
|---|---|---|---|
<nome> | Um nome único para o servidor. | — | example-server |
<comandoOuUrl> | O comando a ser executado (para stdio) ou a URL (para http/sse). | — | /usr/bin/python ou http://localhost:8 |
[argumentos...] | Argumentos opcionais para um comando stdio. | — | --port 5000 |
-s, --scope | Escopo da configuração (usuário ou projeto). | project | -s user |
-t, --transport | Tipo de transporte (stdio, sse, http). | stdio | -t sse |
-e, --env | Define variáveis de ambiente. | — | -e KEY=value |
-H, --header | Define cabeçalhos HTTP para transportes SSE e HTTP. | — | -H "X-Api-Key: abc123" |
--timeout | Define o tempo limite de conexão em milissegundos. | — | --timeout 30000 |
--trust | Confiar no servidor (ignora todos os prompts de confirmação de chamada de ferramenta). | — (false) | --trust |
--description | Define a descrição do servidor. | — | --description "Ferramentas locais" |
--include-tools | Uma lista separada por vírgulas das ferramentas a incluir. | todas as ferramentas incluídas | --include-tools mytool,othertool |
--exclude-tools | Uma lista separada por vírgulas das ferramentas a excluir. | nenhuma | --exclude-tools mytool |
Listando servidores (qwen mcp list)
qwen mcp listRemovendo um servidor (qwen mcp remove)
qwen mcp remove <name>