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, queries, relatórios)
- Integrar serviços internos (expor 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 a 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 em 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).
Autenticação OAuth
O Qwen Code suporta autenticação OAuth 2.0 para servidores MCP. Isso é útil ao acessar servidores remotos que exigem autenticação.
Uso básico
Quando você adiciona um servidor MCP com credenciais OAuth, o Qwen Code gerencia automaticamente o fluxo de autenticação:
qwen mcp add --transport sse oauth-server https://api.example.com/sse/ \
--oauth-client-id your-client-id \
--oauth-redirect-uri https://your-server.com/oauth/callback \
--oauth-authorization-url https://provider.example.com/authorize \
--oauth-token-url https://provider.example.com/tokenImportante: Configuração do redirect URI
O fluxo OAuth exige um redirect URI para onde o provedor de autorização envia o código de autenticação.
-
Desenvolvimento local: Por padrão, o Qwen Code usa
http://localhost:7777/oauth/callback. Isso funciona ao executar o Qwen Code na sua máquina local com um navegador local. -
Implantações remotas/em nuvem: Ao executar o Qwen Code em servidores remotos, IDEs em nuvem ou terminais web, o redirecionamento
localhostpadrão NÃO funcionará. Você DEVE configurar--oauth-redirect-uripara apontar para uma URL publicamente acessível que possa receber o callback OAuth.
Exemplo para servidores remotos:
qwen mcp add --transport sse remote-server https://api.example.com/sse/ \
--oauth-redirect-uri https://your-remote-server.example.com/oauth/callbackConfiguração manual via settings.json
Você também pode configurar o OAuth editando o settings.json diretamente:
{
"mcpServers": {
"oauthServer": {
"url": "https://api.example.com/sse/",
"oauth": {
"enabled": true,
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"authorizationUrl": "https://provider.example.com/authorize",
"tokenUrl": "https://provider.example.com/token",
"redirectUri": "https://your-server.com/oauth/callback",
"scopes": ["read", "write"]
}
}
}
}Propriedades de configuração do OAuth:
| Propriedade | Descrição |
|---|---|
enabled | Habilita o OAuth para este servidor (booleano) |
clientId | Identificador do cliente OAuth (string, opcional com registro dinâmico) |
clientSecret | Segredo do cliente OAuth (string, opcional para clientes públicos) |
authorizationUrl | Endpoint de autorização OAuth (string, descoberto automaticamente se omitido) |
tokenUrl | Endpoint de token OAuth (string, descoberto automaticamente se omitido) |
scopes | Scopes OAuth obrigatórios (array de strings) |
redirectUri | Redirect URI personalizado (string). Crítico para implantações remotas. Padrão: http://localhost:7777/oauth/callback |
tokenParamName | Nome do parâmetro de query para tokens em URLs SSE (string) |
audiences | Audiências para as quais o token é válido (array de strings) |
Gerenciamento de tokens
Os tokens OAuth são automaticamente:
- Armazenados com segurança em
~/.qwen/mcp-oauth-tokens.json - Atualizados quando expiram (se refresh tokens estiverem disponíveis)
- Validados antes de cada tentativa de conexão
Use o comando /mcp auth dentro do Qwen Code para gerenciar a autenticação OAuth de forma interativa.
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. - Falha ao iniciar o servidor Stdio: 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 | Headers 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) | Timeout da solicitação em milissegundos (padrão: 600.000ms = 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 allowlist). 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 Client ID OAuth na allowlist 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 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 headers HTTP para transportes SSE e HTTP. | — | -H "X-Api-Key: abc123" |
--timeout | Define o timeout 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 |
--oauth-client-id | Client ID OAuth para autenticação do servidor MCP. | — | --oauth-client-id your-client-id |
--oauth-client-secret | Client secret OAuth para autenticação do servidor MCP. | — | --oauth-client-secret your-client-secret |
--oauth-redirect-uri | Redirect URI OAuth para callback de autenticação. | http://localhost:7777/oauth/callback | --oauth-redirect-uri https://your-server.com/oauth/callback |
--oauth-authorization-url | URL de autorização OAuth. | — | --oauth-authorization-url https://provider.example.com/authorize |
--oauth-token-url | URL de token OAuth. | — | --oauth-token-url https://provider.example.com/token |
--oauth-scopes | Scopes OAuth (separados por vírgula). | — | --oauth-scopes scope1,scope2 |
As flags
--oauth-*aplicam-se apenas a--transport ssee--transport http. Combiná-las com--transport stdioresultará em erro.
Remover um servidor (qwen mcp remove)
qwen mcp remove <name>