Conecte 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) . Os servidores MCP dão 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 que você habilitar)
- Consultar bancos de dados (inspeção de schema, consultas, relatórios)
- Integrar serviços internos (encapsular suas APIs como ferramentas MCP)
- Automatizar fluxos de trabalho (tarefas repetitivas expostas como ferramentas/prompts)
Se você está procurando o “comando único para começar”, vá direto para Início rápido.
Início rápido
O Qwen Code carrega os servidores MCP a partir de mcpServers no seu settings.json. Você pode configurar os servidores de duas formas:
- Editando o
settings.jsondiretamente - Usando os comandos
qwen mcp(consulte Referência da CLI)
Adicione seu primeiro servidor
- Adicione um servidor (exemplo: servidor MCP HTTP remoto):
qwen mcp add --transport http my-server http://localhost:3000/mcp- Abra o diálogo de gerenciamento do MCP para visualizar e gerenciar os servidores:
qwen mcp- Reinicie o Qwen Code no mesmo projeto (ou inicie-o se ainda não estiver em execução) e peça ao modelo para usar as ferramentas desse servidor.
Onde a configuração é armazenada (escopos)
A maioria dos usuários precisa apenas destes 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
Gravar 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/descontinuados 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 geram as mesmas entradas mcpServers no seu settings.json—use a que 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 remoto com streaming)
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 (pular confirmações)
- Confiança no servidor (
trust: true): ignora os prompts de confirmação para esse servidor (use com moderação).
Filtragem de ferramentas (permitir/negar 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/negação
O objeto mcp no seu settings.json define regras globais para todos os servidores MCP:
mcp.allowed: lista de permissão de nomes de servidores MCP (chaves emmcpServers)mcp.excluded: lista de negação de nomes de servidores MCP
Exemplo:
{
"mcp": {
"allowed": ["my-trusted-server"],
"excluded": ["experimental-server"]
}
}Solução de problemas
- O servidor mostra “Disconnected” em
qwen mcp list: verifique se a URL/comando está correto e aumente otimeout. - O servidor Stdio falha ao iniciar: use um caminho absoluto para
commande verifique novamentecwd/env. - Variáveis de ambiente no JSON não são resolvidas: certifique-se de que elas existam no ambiente onde o Qwen Code é executado (ambientes de shell vs aplicativos GUI podem diferir).
Referência
Estrutura do settings.json
Configuração específica do servidor (mcpServers)
Adicione um objeto mcpServers ao seu arquivo 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
}
}
}Propriedades de configuração:
Obrigatório (um dos seguintes):
| Propriedade | Descrição |
|---|---|
command | Caminho para o executável do 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 de linha de comando para o transporte Stdio |
headers | object | Cabeçalhos HTTP personalizados ao usar url ou httpUrl |
env | object | Variáveis de ambiente para o processo do servidor. Os valores podem referenciar variáveis de ambiente usando a sintaxe $VAR_NAME ou ${VAR_NAME} |
cwd | string | Diretório de trabalho para o transporte Stdio |
timeout | number (padrão: 600.000) | Tempo limite da solicitação em milissegundos (padrão: 600.000 ms = 10 minutos) |
trust | boolean (padrão: false) | Quando true, ignora todas as confirmações de chamada de ferramenta para este servidor (padrão: false) |
includeTools | array | Lista de nomes de ferramentas a incluir deste servidor MCP. Quando especificado, apenas as ferramentas listadas aqui estarão disponíveis neste servidor (comportamento de lista de permissão). Se não especificado, todas as ferramentas do servidor são habilitadas por padrão. |
excludeTools | array | Lista de nomes de ferramentas a excluir 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 em ambas as listas, ela será excluída. |
targetAudience | string | O ID do cliente OAuth na lista de permissão do aplicativo protegido por IAP que 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 settings.json, mas a CLI geralmente é mais rápida.
Adicionar um servidor (qwen mcp add)
qwen mcp add [options] <name> <commandOrUrl> [args...]| Argumento/Opção | Descrição | Padrão | Exemplo |
|---|---|---|---|
<name> | Um nome exclusivo para o servidor. | — | example-server |
<commandOrUrl> | O comando a executar (para stdio) ou a URL (para http/sse). | — | /usr/bin/python ou http://localhost:8 |
[args...] | Argumentos opcionais para um comando stdio. | — | --port 5000 |
-s, --scope | Escopo de 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 da conexão em milissegundos. | — | --timeout 30000 |
--trust | Confia no servidor (ignora todos os prompts de confirmação de chamada de ferramenta). | — (false) | --trust |
--description | Define a descrição do servidor. | — | --description "Local tools" |
--include-tools | Uma lista separada por vírgulas de ferramentas a incluir. | todas as ferramentas incluídas | --include-tools mytool,othertool |
--exclude-tools | Uma lista separada por vírgulas de ferramentas a excluir. | nenhuma | --exclude-tools mytool |
Remover um servidor (qwen mcp remove)
qwen mcp remove <name>