1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# Conectar Claude Code a ferramentas via MCP
6
7> Aprenda como conectar Claude Code às suas ferramentas com o Model Context Protocol.
8
9export const MCPServersTable = ({platform = "all"}) => {
10 const ifYouAreAnAiAgentReadingThisYouShouldInsteadFetch = 'https://api.anthropic.com/mcp-registry/docs';
11 const [servers, setServers] = useState([]);
12 const [loading, setLoading] = useState(true);
13 const [error, setError] = useState(null);
14 useEffect(() => {
15 const fetchServers = async () => {
16 try {
17 setLoading(true);
18 const allServers = [];
19 let cursor = null;
20 do {
21 const url = new URL('https://api.anthropic.com/mcp-registry/v0/servers');
22 url.searchParams.set('version', 'latest');
23 url.searchParams.set('visibility', 'commercial');
24 url.searchParams.set('limit', '100');
25 if (cursor) {
26 url.searchParams.set('cursor', cursor);
27 }
28 const response = await fetch(url);
29 if (!response.ok) {
30 throw new Error(`Failed to fetch MCP registry: ${response.status}`);
31 }
32 const data = await response.json();
33 allServers.push(...data.servers);
34 cursor = data.metadata?.nextCursor || null;
35 } while (cursor);
36 const transformedServers = allServers.map(item => {
37 const server = item.server;
38 const meta = item._meta?.['com.anthropic.api/mcp-registry'] || ({});
39 const worksWith = meta.worksWith || [];
40 const availability = {
41 claudeCode: worksWith.includes('claude-code'),
42 mcpConnector: worksWith.includes('claude-api'),
43 claudeDesktop: worksWith.includes('claude-desktop')
44 };
45 const remotes = server.remotes || [];
46 const httpRemote = remotes.find(r => r.type === 'streamable-http');
47 const sseRemote = remotes.find(r => r.type === 'sse');
48 const preferredRemote = httpRemote || sseRemote;
49 const remoteUrl = preferredRemote?.url || meta.url;
50 const remoteType = preferredRemote?.type;
51 const isTemplatedUrl = remoteUrl?.includes('{');
52 let setupUrl;
53 if (isTemplatedUrl && meta.requiredFields) {
54 const urlField = meta.requiredFields.find(f => f.field === 'url');
55 setupUrl = urlField?.sourceUrl || meta.documentation;
56 }
57 const urls = {};
58 if (!isTemplatedUrl) {
59 if (remoteType === 'streamable-http') {
60 urls.http = remoteUrl;
61 } else if (remoteType === 'sse') {
62 urls.sse = remoteUrl;
63 }
64 }
65 let envVars = [];
66 if (server.packages && server.packages.length > 0) {
67 const npmPackage = server.packages.find(p => p.registryType === 'npm');
68 if (npmPackage) {
69 urls.stdio = `npx -y ${npmPackage.identifier}`;
70 if (npmPackage.environmentVariables) {
71 envVars = npmPackage.environmentVariables;
72 }
73 }
74 }
75 return {
76 name: meta.displayName || server.title || server.name,
77 description: meta.oneLiner || server.description,
78 documentation: meta.documentation,
79 urls: urls,
80 envVars: envVars,
81 availability: availability,
82 customCommands: meta.claudeCodeCopyText ? {
83 claudeCode: meta.claudeCodeCopyText
84 } : undefined,
85 setupUrl: setupUrl
86 };
87 });
88 setServers(transformedServers);
89 setError(null);
90 } catch (err) {
91 setError(err.message);
92 console.error('Error fetching MCP registry:', err);
93 } finally {
94 setLoading(false);
95 }
96 };
97 fetchServers();
98 }, []);
99 const generateClaudeCodeCommand = server => {
100 if (server.customCommands && server.customCommands.claudeCode) {
101 return server.customCommands.claudeCode.replace('--transport streamable-http', '--transport http');
102 }
103 const serverSlug = server.name.toLowerCase().replace(/[^a-z0-9]/g, '-');
104 if (server.urls.http) {
105 return `claude mcp add ${serverSlug} --transport http ${server.urls.http}`;
106 }
107 if (server.urls.sse) {
108 return `claude mcp add ${serverSlug} --transport sse ${server.urls.sse}`;
109 }
110 if (server.urls.stdio) {
111 const envFlags = server.envVars && server.envVars.length > 0 ? server.envVars.map(v => `--env ${v.name}=YOUR_${v.name}`).join(' ') : '';
112 const baseCommand = `claude mcp add ${serverSlug} --transport stdio`;
113 return envFlags ? `${baseCommand} ${envFlags} -- ${server.urls.stdio}` : `${baseCommand} -- ${server.urls.stdio}`;
114 }
115 return null;
116 };
117 if (loading) {
118 return <div>Loading MCP servers...</div>;
119 }
120 if (error) {
121 return <div>Error loading MCP servers: {error}</div>;
122 }
123 const filteredServers = servers.filter(server => {
124 if (platform === "claudeCode") {
125 return server.availability.claudeCode;
126 } else if (platform === "mcpConnector") {
127 return server.availability.mcpConnector;
128 } else if (platform === "claudeDesktop") {
129 return server.availability.claudeDesktop;
130 } else if (platform === "all") {
131 return true;
132 } else {
133 throw new Error(`Unknown platform: ${platform}`);
134 }
135 });
136 return <>
137 <style jsx>{`
138 .cards-container {
139 display: grid;
140 gap: 1rem;
141 margin-bottom: 2rem;
142 }
143 .server-card {
144 border: 1px solid var(--border-color, #e5e7eb);
145 border-radius: 6px;
146 padding: 1rem;
147 }
148 .command-row {
149 display: flex;
150 align-items: center;
151 gap: 0.25rem;
152 }
153 .command-row code {
154 font-size: 0.75rem;
155 overflow-x: auto;
156 }
157 `}</style>
158
159 <div className="cards-container">
160 {filteredServers.map(server => {
161 const claudeCodeCommand = generateClaudeCodeCommand(server);
162 const mcpUrl = server.urls.http || server.urls.sse;
163 const commandToShow = platform === "claudeCode" ? claudeCodeCommand : mcpUrl;
164 return <div key={server.name} className="server-card">
165 <div>
166 {server.documentation ? <a href={server.documentation}>
167 <strong>{server.name}</strong>
168 </a> : <strong>{server.name}</strong>}
169 </div>
170
171 <p style={{
172 margin: '0.5rem 0',
173 fontSize: '0.9rem'
174 }}>
175 {server.description}
176 </p>
177
178 {server.setupUrl && <p style={{
179 margin: '0.25rem 0',
180 fontSize: '0.8rem',
181 fontStyle: 'italic',
182 opacity: 0.7
183 }}>
184 Requires user-specific URL.{' '}
185 <a href={server.setupUrl} style={{
186 textDecoration: 'underline'
187 }}>
188 Get your URL here
189 </a>.
190 </p>}
191
192 {commandToShow && !server.setupUrl && <>
193 <p style={{
194 display: 'block',
195 fontSize: '0.75rem',
196 fontWeight: 500,
197 minWidth: 'fit-content',
198 marginTop: '0.5rem',
199 marginBottom: 0
200 }}>
201 {platform === "claudeCode" ? "Command" : "URL"}
202 </p>
203 <div className="command-row">
204 <code>
205 {commandToShow}
206 </code>
207 </div>
208 </>}
209 </div>;
210 })}
211 </div>
212 </>;
213};
214
215Claude Code pode se conectar a centenas de ferramentas e fontes de dados externas através do [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), um padrão de código aberto para integrações de IA com ferramentas. Os servidores MCP dão ao Claude Code acesso às suas ferramentas, bancos de dados e APIs.
216
217Conecte um servidor quando você se encontrar copiando dados para o chat de outra ferramenta, como um rastreador de problemas ou um painel de monitoramento. Uma vez conectado, Claude pode ler e agir nesse sistema diretamente em vez de trabalhar com o que você cola.
218
219## O que você pode fazer com MCP
220
221Com servidores MCP conectados, você pode pedir ao Claude Code para:
222
223* **Implementar recursos de rastreadores de problemas**: "Adicione o recurso descrito no problema JIRA ENG-4521 e crie um PR no GitHub."
224* **Analisar dados de monitoramento**: "Verifique Sentry e Statsig para verificar o uso do recurso descrito em ENG-4521."
225* **Consultar bancos de dados**: "Encontre emails de 10 usuários aleatórios que usaram o recurso ENG-4521, com base no nosso banco de dados PostgreSQL."
226* **Integrar designs**: "Atualize nosso modelo de email padrão com base nos novos designs do Figma que foram postados no Slack"
227* **Automatizar fluxos de trabalho**: "Crie rascunhos do Gmail convidando esses 10 usuários para uma sessão de feedback sobre o novo recurso."
228* **Reagir a eventos externos**: Um servidor MCP também pode atuar como um [canal](/pt/channels) que envia mensagens para sua sessão, para que Claude reaja a mensagens do Telegram, chats do Discord ou eventos de webhook enquanto você está ausente.
229
230## Servidores MCP populares
231
232Aqui estão alguns servidores MCP comumente usados que você pode conectar ao Claude Code:
233
234<Warning>
235 Use servidores MCP de terceiros por sua conta e risco - Anthropic não verificou
236 a correção ou segurança de todos esses servidores.
237 Certifique-se de confiar nos servidores MCP que está instalando.
238 Tenha especial cuidado ao usar servidores MCP que possam buscar conteúdo não confiável,
239 pois estes podem expô-lo ao risco de injeção de prompt.
240</Warning>
241
242<MCPServersTable platform="claudeCode" />
243
244<Note>
245 **Precisa de uma integração específica?** [Encontre centenas de servidores MCP no GitHub](https://github.com/modelcontextprotocol/servers), ou crie o seu próprio usando o [MCP SDK](https://modelcontextprotocol.io/quickstart/server).
246</Note>
247
248## Instalando servidores MCP
249
250Os servidores MCP podem ser configurados de três maneiras diferentes dependendo de suas necessidades:
251
252### Opção 1: Adicionar um servidor HTTP remoto
253
254Servidores HTTP são a opção recomendada para conectar a servidores MCP remotos. Este é o transporte mais amplamente suportado para serviços baseados em nuvem.
255
256```bash theme={null}
257# Sintaxe básica
258claude mcp add --transport http <name> <url>
259
260# Exemplo real: Conectar ao Notion
261claude mcp add --transport http notion https://mcp.notion.com/mcp
262
263# Exemplo com token Bearer
264claude mcp add --transport http secure-api https://api.example.com/mcp \
265 --header "Authorization: Bearer your-token"
266```
267
268### Opção 2: Adicionar um servidor SSE remoto
269
270<Warning>
271 O transporte SSE (Server-Sent Events) está descontinuado. Use servidores HTTP em vez disso, quando disponível.
272</Warning>
273
274```bash theme={null}
275# Sintaxe básica
276claude mcp add --transport sse <name> <url>
277
278# Exemplo real: Conectar ao Asana
279claude mcp add --transport sse asana https://mcp.asana.com/sse
280
281# Exemplo com cabeçalho de autenticação
282claude mcp add --transport sse private-api https://api.company.com/sse \
283 --header "X-API-Key: your-key-here"
284```
285
286### Opção 3: Adicionar um servidor stdio local
287
288Servidores Stdio são executados como processos locais em sua máquina. Eles são ideais para ferramentas que precisam de acesso direto ao sistema ou scripts personalizados.
289
290```bash theme={null}
291# Sintaxe básica
292claude mcp add [options] <name> -- <command> [args...]
293
294# Exemplo real: Adicionar servidor Airtable
295claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \
296 -- npx -y airtable-mcp-server
297```
298
299<Note>
300 **Importante: Ordenação de opções**
301
302 Todas as opções (`--transport`, `--env`, `--scope`, `--header`) devem vir **antes** do nome do servidor. O `--` (travessão duplo) então separa o nome do servidor do comando e argumentos que são passados para o servidor MCP.
303
304 Por exemplo:
305
306 * `claude mcp add --transport stdio myserver -- npx server` → executa `npx server`
307 * `claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080` → executa `python server.py --port 8080` com `KEY=value` no ambiente
308
309 Isso evita conflitos entre as flags do Claude e as flags do servidor.
310</Note>
311
312### Gerenciando seus servidores
313
314Uma vez configurados, você pode gerenciar seus servidores MCP com estes comandos:
315
316```bash theme={null}
317# Listar todos os servidores configurados
318claude mcp list
319
320# Obter detalhes para um servidor específico
321claude mcp get github
322
323# Remover um servidor
324claude mcp remove github
325
326# (dentro do Claude Code) Verificar status do servidor
327/mcp
328```
329
330### Atualizações dinâmicas de ferramentas
331
332Claude Code suporta notificações MCP `list_changed`, permitindo que servidores MCP atualizem dinamicamente suas ferramentas, prompts e recursos disponíveis sem exigir que você se desconecte e reconecte. Quando um servidor MCP envia uma notificação `list_changed`, Claude Code atualiza automaticamente as capacidades disponíveis desse servidor.
333
334### Reconexão automática
335
336Se um servidor HTTP ou SSE se desconectar durante a sessão, Claude Code se reconecta automaticamente com backoff exponencial: até cinco tentativas, começando com um atraso de um segundo e dobrando a cada vez. O servidor aparece como pendente em `/mcp` enquanto a reconexão está em andamento. Após cinco tentativas falhadas, o servidor é marcado como falho e você pode tentar novamente manualmente de `/mcp`. Servidores Stdio são processos locais e não são reconectados automaticamente.
337
338O mesmo backoff se aplica quando um servidor HTTP ou SSE falha sua conexão inicial na inicialização. A partir da v2.1.121, Claude Code tenta novamente a conexão inicial até três vezes em erros transitórios, como uma resposta 5xx, uma conexão recusada ou um tempo limite, e então marca o servidor como falho se ainda não conseguir se conectar. Erros de autenticação e não encontrado não são retentados porque exigem uma mudança de configuração para serem resolvidos.
339
340### Enviar mensagens com canais
341
342Um servidor MCP também pode enviar mensagens diretamente para sua sessão para que Claude possa reagir a eventos externos como resultados de CI, alertas de monitoramento ou mensagens de chat. Para habilitar isso, seu servidor declara a capacidade `claude/channel` e você a ativa com a flag `--channels` na inicialização. Veja [Canais](/pt/channels) para usar um canal oficialmente suportado, ou [Referência de canais](/pt/channels-reference) para construir o seu próprio.
343
344<Tip>
345 Dicas:
346
347 * Use a flag `--scope` para especificar onde a configuração é armazenada:
348 * `local` (padrão): Disponível apenas para você no projeto atual (era chamado de `project` em versões mais antigas)
349 * `project`: Compartilhado com todos no projeto via arquivo `.mcp.json`
350 * `user`: Disponível para você em todos os projetos (era chamado de `global` em versões mais antigas)
351 * Defina variáveis de ambiente com flags `--env` (por exemplo, `--env KEY=value`)
352 * Configure o tempo limite de inicialização do servidor MCP usando a variável de ambiente MCP\_TIMEOUT (por exemplo, `MCP_TIMEOUT=10000 claude` define um tempo limite de 10 segundos)
353 * Claude Code exibirá um aviso quando a saída da ferramenta MCP exceder 10.000 tokens. Para aumentar este limite, defina a variável de ambiente `MAX_MCP_OUTPUT_TOKENS` (por exemplo, `MAX_MCP_OUTPUT_TOKENS=50000`)
354 * Use `/mcp` para autenticar com servidores remotos que exigem autenticação OAuth 2.0
355</Tip>
356
357### Servidores MCP fornecidos por plugins
358
359[Plugins](/pt/plugins) podem agrupar servidores MCP, fornecendo automaticamente ferramentas e integrações quando o plugin está habilitado. Os servidores MCP de plugins funcionam de forma idêntica aos servidores configurados pelo usuário.
360
361**Como funcionam os servidores MCP de plugins**:
362
363* Plugins definem servidores MCP em `.mcp.json` na raiz do plugin ou inline em `plugin.json`
364* Quando um plugin está habilitado, seus servidores MCP iniciam automaticamente
365* As ferramentas MCP do plugin aparecem junto com as ferramentas MCP configuradas manualmente
366* Os servidores de plugins são gerenciados através da instalação de plugins (não comandos `/mcp`)
367
368**Exemplo de configuração MCP de plugin**:
369
370Em `.mcp.json` na raiz do plugin:
371
372```json theme={null}
373{
374 "mcpServers": {
375 "database-tools": {
376 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
377 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
378 "env": {
379 "DB_URL": "${DB_URL}"
380 }
381 }
382 }
383}
384```
385
386Ou inline em `plugin.json`:
387
388```json theme={null}
389{
390 "name": "my-plugin",
391 "mcpServers": {
392 "plugin-api": {
393 "command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
394 "args": ["--port", "8080"]
395 }
396 }
397}
398```
399
400**Recursos de MCP de plugin**:
401
402* **Ciclo de vida automático**: Na inicialização da sessão, os servidores para plugins habilitados se conectam automaticamente. Se você habilitar ou desabilitar um plugin durante uma sessão, execute `/reload-plugins` para conectar ou desconectar seus servidores MCP
403* **Variáveis de ambiente**: Use `${CLAUDE_PLUGIN_ROOT}` para arquivos agrupados do plugin e `${CLAUDE_PLUGIN_DATA}` para [estado persistente](/pt/plugins-reference#persistent-data-directory) que sobrevive a atualizações de plugins
404* **Acesso a variáveis de ambiente do usuário**: Acesso às mesmas variáveis de ambiente que servidores configurados manualmente
405* **Múltiplos tipos de transporte**: Suporte para transportes stdio, SSE e HTTP (o suporte de transporte pode variar por servidor)
406
407**Visualizando servidores MCP de plugins**:
408
409```bash theme={null}
410# Dentro do Claude Code, veja todos os servidores MCP incluindo os de plugins
411/mcp
412```
413
414Os servidores de plugins aparecem na lista com indicadores mostrando que vêm de plugins.
415
416**Benefícios dos servidores MCP de plugins**:
417
418* **Distribuição agrupada**: Ferramentas e servidores empacotados juntos
419* **Configuração automática**: Nenhuma configuração MCP manual necessária
420* **Consistência da equipe**: Todos obtêm as mesmas ferramentas quando o plugin está instalado
421
422Veja a [referência de componentes de plugins](/pt/plugins-reference#mcp-servers) para detalhes sobre como agrupar servidores MCP com plugins.
423
424## Escopos de instalação de MCP
425
426Os servidores MCP podem ser configurados em três escopos diferentes dependendo de suas necessidades:
427
428| Escopo | Carrega em | Compartilhado com equipe | Armazenado em |
429| ------------------------- | ---------------------- | --------------------------- | ------------------------------ |
430| [Local](#local-scope) | Apenas projeto atual | Não | `~/.claude.json` |
431| [Projeto](#project-scope) | Apenas projeto atual | Sim, via controle de versão | `.mcp.json` na raiz do projeto |
432| [Usuário](#user-scope) | Todos os seus projetos | Não | `~/.claude.json` |
433
434### Escopo local
435
436O escopo local é o padrão. Um servidor com escopo local carrega apenas no projeto onde você o adicionou e permanece privado para você. Claude Code o armazena em `~/.claude.json` sob o caminho desse projeto, então o mesmo servidor não aparecerá em seus outros projetos. Use o escopo local para servidores de desenvolvimento pessoal, configurações experimentais ou servidores com credenciais que você não deseja no controle de versão.
437
438<Note>
439 O termo "escopo local" para servidores MCP difere das configurações locais gerais. Os servidores MCP com escopo local são armazenados em `~/.claude.json` (seu diretório inicial), enquanto as configurações locais gerais usam `.claude/settings.local.json` (no diretório do projeto). Veja [Configurações](/pt/settings#settings-files) para detalhes sobre localizações de arquivos de configuração.
440</Note>
441
442```bash theme={null}
443# Adicionar um servidor com escopo local (padrão)
444claude mcp add --transport http stripe https://mcp.stripe.com
445
446# Especificar explicitamente escopo local
447claude mcp add --transport http stripe --scope local https://mcp.stripe.com
448```
449
450O comando escreve o servidor na entrada do seu projeto atual dentro de `~/.claude.json`. O exemplo abaixo mostra o resultado quando você o executa de `/path/to/your/project`:
451
452```json theme={null}
453{
454 "projects": {
455 "/path/to/your/project": {
456 "mcpServers": {
457 "stripe": {
458 "type": "http",
459 "url": "https://mcp.stripe.com"
460 }
461 }
462 }
463 }
464}
465```
466
467### Escopo de projeto
468
469Servidores com escopo de projeto permitem colaboração em equipe armazenando configurações em um arquivo `.mcp.json` no diretório raiz do seu projeto. Este arquivo é projetado para ser verificado no controle de versão, garantindo que todos os membros da equipe tenham acesso às mesmas ferramentas e serviços MCP. Quando você adiciona um servidor com escopo de projeto, Claude Code cria ou atualiza automaticamente este arquivo com a estrutura de configuração apropriada.
470
471```bash theme={null}
472# Adicionar um servidor com escopo de projeto
473claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp
474```
475
476O arquivo `.mcp.json` resultante segue um formato padronizado:
477
478```json theme={null}
479{
480 "mcpServers": {
481 "shared-server": {
482 "command": "/path/to/server",
483 "args": [],
484 "env": {}
485 }
486 }
487}
488```
489
490Por razões de segurança, Claude Code solicita aprovação antes de usar servidores com escopo de projeto de arquivos `.mcp.json`. Se você precisar redefinir essas escolhas de aprovação, use o comando `claude mcp reset-project-choices`.
491
492### Escopo de usuário
493
494Servidores com escopo de usuário são armazenados em `~/.claude.json` e fornecem acessibilidade entre projetos, tornando-os disponíveis em todos os projetos em sua máquina enquanto permanecem privados para sua conta de usuário. Este escopo funciona bem para servidores de utilitários pessoais, ferramentas de desenvolvimento ou serviços que você usa frequentemente em diferentes projetos.
495
496```bash theme={null}
497# Adicionar um servidor de usuário
498claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic
499```
500
501### Hierarquia de escopo e precedência
502
503Quando o mesmo servidor é definido em mais de um lugar, Claude Code se conecta a ele uma vez, usando a definição da fonte com maior precedência:
504
5051. Escopo local
5062. Escopo de projeto
5073. Escopo de usuário
5084. [Servidores fornecidos por plugins](/pt/plugins)
5095. [Conectores claude.ai](#use-mcp-servers-from-claude-ai)
510
511Os três escopos correspondem duplicatas por nome. Plugins e conectores correspondem por endpoint, então um que aponta para a mesma URL ou comando que um servidor acima é tratado como uma duplicata.
512
513### Expansão de variáveis de ambiente em `.mcp.json`
514
515Claude Code suporta expansão de variáveis de ambiente em arquivos `.mcp.json`, permitindo que equipes compartilhem configurações mantendo flexibilidade para caminhos específicos da máquina e valores sensíveis como chaves de API.
516
517**Sintaxe suportada:**
518
519* `${VAR}` - Expande para o valor da variável de ambiente `VAR`
520* `${VAR:-default}` - Expande para `VAR` se definida, caso contrário usa `default`
521
522**Locais de expansão:**
523As variáveis de ambiente podem ser expandidas em:
524
525* `command` - O caminho do executável do servidor
526* `args` - Argumentos de linha de comando
527* `env` - Variáveis de ambiente passadas para o servidor
528* `url` - Para tipos de servidor HTTP
529* `headers` - Para autenticação de servidor HTTP
530
531**Exemplo com expansão de variável:**
532
533```json theme={null}
534{
535 "mcpServers": {
536 "api-server": {
537 "type": "http",
538 "url": "${API_BASE_URL:-https://api.example.com}/mcp",
539 "headers": {
540 "Authorization": "Bearer ${API_KEY}"
541 }
542 }
543 }
544}
545```
546
547Se uma variável de ambiente necessária não estiver definida e não tiver um valor padrão, Claude Code falhará ao analisar a configuração.
548
549## Exemplos práticos
550
551{/* ### Exemplo: Automatizar testes de navegador com Playwright
552
553```bash
554claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest
555```
556
557Então escreva e execute testes de navegador:
558
559```text
560Teste se o fluxo de login funciona com test@example.com
561```
562```text
563Tire uma captura de tela da página de checkout em mobile
564```
565```text
566Verifique se o recurso de pesquisa retorna resultados
567``` */}
568
569### Exemplo: Monitorar erros com Sentry
570
571```bash theme={null}
572claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
573```
574
575Autentique com sua conta Sentry:
576
577```text theme={null}
578/mcp
579```
580
581Então depure problemas de produção:
582
583```text theme={null}
584Quais são os erros mais comuns nas últimas 24 horas?
585```
586
587```text theme={null}
588Mostre-me o rastreamento de pilha para o erro ID abc123
589```
590
591```text theme={null}
592Qual implantação introduziu esses novos erros?
593```
594
595### Exemplo: Conectar ao GitHub para revisões de código
596
597O servidor MCP remoto do GitHub autentica com um token de acesso pessoal do GitHub passado como cabeçalho. Para obter um, abra suas [configurações de token do GitHub](https://github.com/settings/personal-access-tokens), gere um novo token refinado com acesso aos repositórios com os quais você deseja que Claude trabalhe, então adicione o servidor:
598
599```bash theme={null}
600claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
601 --header "Authorization: Bearer YOUR_GITHUB_PAT"
602```
603
604Então trabalhe com GitHub:
605
606```text theme={null}
607Revise o PR #456 e sugira melhorias
608```
609
610```text theme={null}
611Crie um novo problema para o bug que acabamos de encontrar
612```
613
614```text theme={null}
615Mostre-me todos os PRs abertos atribuídos a mim
616```
617
618### Exemplo: Consultar seu banco de dados PostgreSQL
619
620```bash theme={null}
621claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
622 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"
623```
624
625Então consulte seu banco de dados naturalmente:
626
627```text theme={null}
628Qual é nossa receita total este mês?
629```
630
631```text theme={null}
632Mostre-me o esquema para a tabela de pedidos
633```
634
635```text theme={null}
636Encontre clientes que não fizeram uma compra em 90 dias
637```
638
639## Autenticar com servidores MCP remotos
640
641Muitos servidores MCP baseados em nuvem exigem autenticação. Claude Code suporta OAuth 2.0 para conexões seguras.
642
643<Steps>
644 <Step title="Adicione o servidor que requer autenticação">
645 Por exemplo:
646
647 ```bash theme={null}
648 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
649 ```
650 </Step>
651
652 <Step title="Use o comando /mcp dentro do Claude Code">
653 No Claude Code, use o comando:
654
655 ```text theme={null}
656 /mcp
657 ```
658
659 Então siga os passos no seu navegador para fazer login.
660 </Step>
661</Steps>
662
663<Tip>
664 Dicas:
665
666 * Os tokens de autenticação são armazenados com segurança e atualizados automaticamente
667 * Use "Clear authentication" no menu `/mcp` para revogar acesso
668 * Se seu navegador não abrir automaticamente, copie a URL fornecida e abra-a manualmente
669 * Se o redirecionamento do navegador falhar com um erro de conexão após autenticar, cole a URL de callback completa da barra de endereços do seu navegador no prompt de URL que aparece no Claude Code
670 * A autenticação OAuth funciona com servidores HTTP
671</Tip>
672
673### Usar uma porta de callback OAuth fixa
674
675Alguns servidores MCP exigem um URI de redirecionamento específico registrado antecipadamente. Por padrão, Claude Code escolhe uma porta aleatória disponível para o callback OAuth. Use `--callback-port` para fixar a porta para que corresponda a um URI de redirecionamento pré-registrado do formulário `http://localhost:PORT/callback`.
676
677Você pode usar `--callback-port` sozinho (com registro dinâmico de cliente) ou junto com `--client-id` (com credenciais pré-configuradas).
678
679```bash theme={null}
680# Porta de callback fixa com registro dinâmico de cliente
681claude mcp add --transport http \
682 --callback-port 8080 \
683 my-server https://mcp.example.com/mcp
684```
685
686### Usar credenciais OAuth pré-configuradas
687
688Alguns servidores MCP não suportam configuração automática de OAuth via Registro Dinâmico de Cliente. Se você vir um erro como "Incompatible auth server: does not support dynamic client registration," o servidor requer credenciais pré-configuradas. Claude Code também suporta servidores que usam um Documento de Metadados de ID do Cliente (CIMD) em vez de Registro Dinâmico de Cliente, e descobre esses automaticamente. Se a descoberta automática falhar, registre um aplicativo OAuth através do portal do desenvolvedor do servidor primeiro, depois forneça as credenciais ao adicionar o servidor.
689
690<Steps>
691 <Step title="Registre um aplicativo OAuth com o servidor">
692 Crie um aplicativo através do portal do desenvolvedor do servidor e anote seu ID do cliente e segredo do cliente.
693
694 Muitos servidores também exigem um URI de redirecionamento. Se assim for, escolha uma porta e registre um URI de redirecionamento no formato `http://localhost:PORT/callback`. Use essa mesma porta com `--callback-port` na próxima etapa.
695 </Step>
696
697 <Step title="Adicione o servidor com suas credenciais">
698 Escolha um dos seguintes métodos. A porta usada para `--callback-port` pode ser qualquer porta disponível. Ela apenas precisa corresponder ao URI de redirecionamento que você registrou na etapa anterior.
699
700 <Tabs>
701 <Tab title="claude mcp add">
702 Use `--client-id` para passar o ID do cliente do seu aplicativo. A flag `--client-secret` solicita o segredo com entrada mascarada:
703
704 ```bash theme={null}
705 claude mcp add --transport http \
706 --client-id your-client-id --client-secret --callback-port 8080 \
707 my-server https://mcp.example.com/mcp
708 ```
709 </Tab>
710
711 <Tab title="claude mcp add-json">
712 Inclua o objeto `oauth` na configuração JSON e passe `--client-secret` como uma flag separada:
713
714 ```bash theme={null}
715 claude mcp add-json my-server \
716 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' \
717 --client-secret
718 ```
719 </Tab>
720
721 <Tab title="claude mcp add-json (apenas porta de callback)">
722 Use `--callback-port` sem um ID de cliente para fixar a porta enquanto usa registro dinâmico de cliente:
723
724 ```bash theme={null}
725 claude mcp add-json my-server \
726 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"callbackPort":8080}}'
727 ```
728 </Tab>
729
730 <Tab title="CI / variável de ambiente">
731 Defina o segredo via variável de ambiente para pular o prompt interativo:
732
733 ```bash theme={null}
734 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \
735 --client-id your-client-id --client-secret --callback-port 8080 \
736 my-server https://mcp.example.com/mcp
737 ```
738 </Tab>
739 </Tabs>
740 </Step>
741
742 <Step title="Autentique no Claude Code">
743 Execute `/mcp` no Claude Code e siga o fluxo de login do navegador.
744 </Step>
745</Steps>
746
747<Tip>
748 Dicas:
749
750 * O segredo do cliente é armazenado com segurança no seu chaveiro do sistema (macOS) ou em um arquivo de credenciais, não na sua configuração
751 * Se o servidor usar um cliente OAuth público sem segredo, use apenas `--client-id` sem `--client-secret`
752 * `--callback-port` pode ser usado com ou sem `--client-id`
753 * Essas flags se aplicam apenas aos transportes HTTP e SSE. Elas não têm efeito em servidores stdio
754 * Use `claude mcp get <name>` para verificar se as credenciais OAuth estão configuradas para um servidor
755</Tip>
756
757### Substituir descoberta de metadados OAuth
758
759Aponte Claude Code para uma URL de metadados específica de servidor de autorização OAuth para contornar a cadeia de descoberta padrão. Defina `authServerMetadataUrl` quando os endpoints padrão do servidor MCP falharem, ou quando você deseja rotear a descoberta através de um proxy interno. Por padrão, Claude Code primeiro verifica os Metadados de Recurso Protegido RFC 9728 em `/.well-known/oauth-protected-resource`, depois volta para os metadados do servidor de autorização RFC 8414 em `/.well-known/oauth-authorization-server`.
760
761Defina `authServerMetadataUrl` no objeto `oauth` da configuração do seu servidor em `.mcp.json`:
762
763```json theme={null}
764{
765 "mcpServers": {
766 "my-server": {
767 "type": "http",
768 "url": "https://mcp.example.com/mcp",
769 "oauth": {
770 "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"
771 }
772 }
773 }
774}
775```
776
777A URL deve usar `https://`. `authServerMetadataUrl` requer Claude Code v2.1.64 ou posterior. Os `scopes_supported` da URL de metadados substituem os escopos que o servidor upstream anuncia.
778
779### Restringir escopos OAuth
780
781Defina `oauth.scopes` para fixar os escopos que Claude Code solicita durante o fluxo de autorização. Esta é a forma suportada de restringir um servidor MCP a um subconjunto aprovado pela equipe de segurança quando o servidor de autorização upstream anuncia mais escopos do que você deseja conceder. O valor é uma única string separada por espaço, correspondendo ao formato do parâmetro `scope` em RFC 6749 §3.3.
782
783```json theme={null}
784{
785 "mcpServers": {
786 "slack": {
787 "type": "http",
788 "url": "https://mcp.slack.com/mcp",
789 "oauth": {
790 "scopes": "channels:read chat:write search:read"
791 }
792 }
793 }
794}
795```
796
797`oauth.scopes` tem precedência sobre `authServerMetadataUrl` e os escopos que o servidor descobre em `/.well-known`. Deixe-o indefinido para permitir que o servidor MCP determine o conjunto de escopos solicitado.
798
799Se o servidor de autorização anuncia `offline_access` em `scopes_supported`, Claude Code o acrescenta aos escopos fixados para que o token de acesso possa ser atualizado sem um novo login no navegador.
800
801Se o servidor depois retorna um 403 `insufficient_scope` para uma chamada de ferramenta, Claude Code se autentica novamente com os mesmos escopos fixados. Amplie `oauth.scopes` quando uma ferramenta que você precisa requer um escopo fora do pino.
802
803### Usar cabeçalhos dinâmicos para autenticação personalizada
804
805Se seu servidor MCP usar um esquema de autenticação diferente de OAuth (como Kerberos, tokens de curta duração ou um SSO interno), use `headersHelper` para gerar cabeçalhos de solicitação no momento da conexão. Claude Code executa o comando e mescla sua saída nos cabeçalhos de conexão.
806
807```json theme={null}
808{
809 "mcpServers": {
810 "internal-api": {
811 "type": "http",
812 "url": "https://mcp.internal.example.com",
813 "headersHelper": "/opt/bin/get-mcp-auth-headers.sh"
814 }
815 }
816}
817```
818
819O comando também pode ser inline:
820
821```json theme={null}
822{
823 "mcpServers": {
824 "internal-api": {
825 "type": "http",
826 "url": "https://mcp.internal.example.com",
827 "headersHelper": "echo '{\"Authorization\": \"Bearer '\"$(get-token)\"'\"}'"
828 }
829 }
830}
831```
832
833**Requisitos:**
834
835* O comando deve escrever um objeto JSON de pares chave-valor de string para stdout
836* O comando é executado em um shell com um tempo limite de 10 segundos
837* Cabeçalhos dinâmicos substituem qualquer `headers` estático com o mesmo nome
838
839O auxiliar é executado novamente em cada conexão (no início da sessão e ao reconectar). Não há cache, então seu script é responsável por qualquer reutilização de token.
840
841Claude Code define essas variáveis de ambiente ao executar o auxiliar:
842
843| Variável | Valor |
844| :---------------------------- | :--------------------- |
845| `CLAUDE_CODE_MCP_SERVER_NAME` | o nome do servidor MCP |
846| `CLAUDE_CODE_MCP_SERVER_URL` | a URL do servidor MCP |
847
848Use essas para escrever um único script auxiliar que serve múltiplos servidores MCP.
849
850<Note>
851 `headersHelper` executa comandos shell arbitrários. Quando definido no escopo de projeto ou local, ele só é executado após você aceitar o diálogo de confiança do espaço de trabalho.
852</Note>
853
854## Adicionar servidores MCP de configuração JSON
855
856Se você tiver uma configuração JSON para um servidor MCP, você pode adicioná-la diretamente:
857
858<Steps>
859 <Step title="Adicione um servidor MCP de JSON">
860 ```bash theme={null}
861 # Sintaxe básica
862 claude mcp add-json <name> '<json>'
863
864 # Exemplo: Adicionar um servidor HTTP com configuração JSON
865 claude mcp add-json weather-api '{"type":"http","url":"https://api.weather.com/mcp","headers":{"Authorization":"Bearer token"}}'
866
867 # Exemplo: Adicionar um servidor stdio com configuração JSON
868 claude mcp add-json local-weather '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
869
870 # Exemplo: Adicionar um servidor HTTP com credenciais OAuth pré-configuradas
871 claude mcp add-json my-server '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' --client-secret
872 ```
873 </Step>
874
875 <Step title="Verifique se o servidor foi adicionado">
876 ```bash theme={null}
877 claude mcp get weather-api
878 ```
879 </Step>
880</Steps>
881
882<Tip>
883 Dicas:
884
885 * Certifique-se de que o JSON está adequadamente escapado no seu shell
886 * O JSON deve estar em conformidade com o esquema de configuração do servidor MCP
887 * Você pode usar `--scope user` para adicionar o servidor à sua configuração de usuário em vez da específica do projeto
888</Tip>
889
890## Importar servidores MCP do Claude Desktop
891
892Se você já configurou servidores MCP no Claude Desktop, você pode importá-los:
893
894<Steps>
895 <Step title="Importe servidores do Claude Desktop">
896 ```bash theme={null}
897 # Sintaxe básica
898 claude mcp add-from-claude-desktop
899 ```
900 </Step>
901
902 <Step title="Selecione quais servidores importar">
903 Após executar o comando, você verá um diálogo interativo que permite selecionar quais servidores você deseja importar.
904 </Step>
905
906 <Step title="Verifique se os servidores foram importados">
907 ```bash theme={null}
908 claude mcp list
909 ```
910 </Step>
911</Steps>
912
913<Tip>
914 Dicas:
915
916 * Este recurso funciona apenas em macOS e Windows Subsystem for Linux (WSL)
917 * Ele lê o arquivo de configuração do Claude Desktop de sua localização padrão nessas plataformas
918 * Use a flag `--scope user` para adicionar servidores à sua configuração de usuário
919 * Os servidores importados terão os mesmos nomes que no Claude Desktop
920 * Se servidores com os mesmos nomes já existirem, eles receberão um sufixo numérico (por exemplo, `server_1`)
921</Tip>
922
923## Usar servidores MCP do Claude.ai
924
925Se você fez login no Claude Code com uma conta [Claude.ai](https://claude.ai), os servidores MCP que você adicionou no Claude.ai estão automaticamente disponíveis no Claude Code:
926
927<Steps>
928 <Step title="Configure servidores MCP no Claude.ai">
929 Adicione servidores em [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Em planos Team e Enterprise, apenas administradores podem adicionar servidores.
930 </Step>
931
932 <Step title="Autentique o servidor MCP">
933 Complete quaisquer etapas de autenticação necessárias no Claude.ai.
934 </Step>
935
936 <Step title="Visualize e gerencie servidores no Claude Code">
937 No Claude Code, use o comando:
938
939 ```text theme={null}
940 /mcp
941 ```
942
943 Os servidores do Claude.ai aparecem na lista com indicadores mostrando que vêm do Claude.ai.
944 </Step>
945</Steps>
946
947Para desabilitar servidores MCP do claude.ai no Claude Code, defina a variável de ambiente `ENABLE_CLAUDEAI_MCP_SERVERS` como `false`:
948
949```bash theme={null}
950ENABLE_CLAUDEAI_MCP_SERVERS=false claude
951```
952
953## Usar Claude Code como um servidor MCP
954
955Você pode usar Claude Code em si como um servidor MCP que outros aplicativos podem se conectar:
956
957```bash theme={null}
958# Inicie Claude como um servidor MCP stdio
959claude mcp serve
960```
961
962Você pode usar isso no Claude Desktop adicionando esta configuração ao claude\_desktop\_config.json:
963
964```json theme={null}
965{
966 "mcpServers": {
967 "claude-code": {
968 "type": "stdio",
969 "command": "claude",
970 "args": ["mcp", "serve"],
971 "env": {}
972 }
973 }
974}
975```
976
977<Warning>
978 **Configurando o caminho do executável**: O campo `command` deve referenciar o executável do Claude Code. Se o comando `claude` não estiver no PATH do seu sistema, você precisará especificar o caminho completo para o executável.
979
980 Para encontrar o caminho completo:
981
982 ```bash theme={null}
983 which claude
984 ```
985
986 Então use o caminho completo na sua configuração:
987
988 ```json theme={null}
989 {
990 "mcpServers": {
991 "claude-code": {
992 "type": "stdio",
993 "command": "/full/path/to/claude",
994 "args": ["mcp", "serve"],
995 "env": {}
996 }
997 }
998 }
999 ```
1000
1001 Sem o caminho correto do executável, você encontrará erros como `spawn claude ENOENT`.
1002</Warning>
1003
1004<Tip>
1005 Dicas:
1006
1007 * O servidor fornece acesso às ferramentas do Claude como View, Edit, LS, etc.
1008 * No Claude Desktop, tente pedir ao Claude para ler arquivos em um diretório, fazer edições e muito mais.
1009 * Observe que este servidor MCP está apenas expondo as ferramentas do Claude Code ao seu cliente MCP, então seu próprio cliente é responsável por implementar confirmação do usuário para chamadas de ferramentas individuais.
1010</Tip>
1011
1012## Limites de saída MCP e avisos
1013
1014Quando as ferramentas MCP produzem grandes saídas, Claude Code ajuda a gerenciar o uso de tokens para evitar sobrecarregar seu contexto de conversa:
1015
1016* **Limite de aviso de saída**: Claude Code exibe um aviso quando qualquer saída de ferramenta MCP excede 10.000 tokens
1017* **Limite configurável**: você pode ajustar o máximo de tokens de saída MCP permitidos usando a variável de ambiente `MAX_MCP_OUTPUT_TOKENS`
1018* **Limite padrão**: o máximo padrão é 25.000 tokens
1019* **Escopo**: a variável de ambiente se aplica a ferramentas que não declaram seu próprio limite. Ferramentas que definem [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) usam esse valor em vez disso para conteúdo de texto, independentemente do que `MAX_MCP_OUTPUT_TOKENS` está definido. Ferramentas que retornam dados de imagem ainda estão sujeitas a `MAX_MCP_OUTPUT_TOKENS`
1020
1021Para aumentar o limite para ferramentas que produzem grandes saídas:
1022
1023```bash theme={null}
1024export MAX_MCP_OUTPUT_TOKENS=50000
1025claude
1026```
1027
1028Isso é particularmente útil ao trabalhar com servidores MCP que:
1029
1030* Consultam grandes conjuntos de dados ou bancos de dados
1031* Geram relatórios ou documentação detalhados
1032* Processam arquivos de log extensos ou informações de depuração
1033
1034### Aumentar o limite para uma ferramenta específica
1035
1036Se você está construindo um servidor MCP, você pode permitir que ferramentas individuais retornem resultados maiores do que o limite padrão de persistência em disco definindo `_meta["anthropic/maxResultSizeChars"]` na entrada da ferramenta em resposta `tools/list`. Claude Code aumenta o limite dessa ferramenta para o valor anotado, até um teto rígido de 500.000 caracteres.
1037
1038Isso é útil para ferramentas que retornam saídas inerentemente grandes mas necessárias, como esquemas de banco de dados ou árvores de arquivos completas. Sem a anotação, resultados que excedem o limite padrão são persistidos em disco e substituídos por uma referência de arquivo na conversa.
1039
1040```json theme={null}
1041{
1042 "name": "get_schema",
1043 "description": "Returns the full database schema",
1044 "_meta": {
1045 "anthropic/maxResultSizeChars": 200000
1046 }
1047}
1048```
1049
1050A anotação se aplica independentemente de `MAX_MCP_OUTPUT_TOKENS` para conteúdo de texto, então os usuários não precisam aumentar a variável de ambiente para ferramentas que a declaram. Ferramentas que retornam dados de imagem ainda estão sujeitas ao limite de token.
1051
1052<Warning>
1053 Se você encontrar frequentemente avisos de saída com servidores MCP específicos que você não controla, considere aumentar o limite `MAX_MCP_OUTPUT_TOKENS`. Você também pode pedir ao autor do servidor para adicionar a anotação `anthropic/maxResultSizeChars` ou para paginar suas respostas. A anotação não tem efeito em ferramentas que retornam conteúdo de imagem; para essas, aumentar `MAX_MCP_OUTPUT_TOKENS` é a única opção.
1054</Warning>
1055
1056## Responder a solicitações de elicitação MCP
1057
1058Os servidores MCP podem solicitar entrada estruturada de você durante uma tarefa usando elicitação. Quando um servidor precisa de informações que não consegue obter por conta própria, Claude Code exibe um diálogo interativo e passa sua resposta de volta para o servidor. Nenhuma configuração é necessária do seu lado: diálogos de elicitação aparecem automaticamente quando um servidor os solicita.
1059
1060Os servidores podem solicitar entrada de duas maneiras:
1061
1062* **Modo de formulário**: Claude Code mostra um diálogo com campos de formulário definidos pelo servidor (por exemplo, um prompt de nome de usuário e senha). Preencha os campos e envie.
1063* **Modo de URL**: Claude Code abre uma URL do navegador para autenticação ou aprovação. Complete o fluxo no navegador, depois confirme no CLI.
1064
1065Para responder automaticamente a solicitações de elicitação sem mostrar um diálogo, use o [hook `Elicitation`](/pt/hooks#Elicitation).
1066
1067Se você está construindo um servidor MCP que usa elicitação, veja a [especificação de elicitação MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para detalhes de protocolo e exemplos de esquema.
1068
1069## Usar recursos MCP
1070
1071Os servidores MCP podem expor recursos que você pode referenciar usando menções @, semelhante a como você referencia arquivos.
1072
1073### Referenciar recursos MCP
1074
1075<Steps>
1076 <Step title="Liste recursos disponíveis">
1077 Digite `@` no seu prompt para ver recursos disponíveis de todos os servidores MCP conectados. Os recursos aparecem junto com arquivos no menu de preenchimento automático.
1078 </Step>
1079
1080 <Step title="Referencie um recurso específico">
1081 Use o formato `@server:protocol://resource/path` para referenciar um recurso:
1082
1083 ```text theme={null}
1084 Você pode analisar @github:issue://123 e sugerir uma correção?
1085 ```
1086
1087 ```text theme={null}
1088 Por favor, revise a documentação da API em @docs:file://api/authentication
1089 ```
1090 </Step>
1091
1092 <Step title="Múltiplas referências de recursos">
1093 Você pode referenciar múltiplos recursos em um único prompt:
1094
1095 ```text theme={null}
1096 Compare @postgres:schema://users com @docs:file://database/user-model
1097 ```
1098 </Step>
1099</Steps>
1100
1101<Tip>
1102 Dicas:
1103
1104 * Os recursos são automaticamente buscados e incluídos como anexos quando referenciados
1105 * Os caminhos dos recursos são pesquisáveis por correspondência aproximada no preenchimento automático de menção @
1106 * Claude Code fornece automaticamente ferramentas para listar e ler recursos MCP quando os servidores os suportam
1107 * Os recursos podem conter qualquer tipo de conteúdo que o servidor MCP fornece (texto, JSON, dados estruturados, etc.)
1108</Tip>
1109
1110## Escalar com MCP Tool Search
1111
1112Tool Search mantém o uso de contexto MCP baixo adiando definições de ferramentas até que Claude precise delas. Apenas nomes de ferramentas são carregados no início da sessão, então adicionar mais servidores MCP tem impacto mínimo na sua janela de contexto.
1113
1114### Como funciona
1115
1116Tool Search é ativado por padrão. As ferramentas MCP são adiadas em vez de carregadas no contexto antecipadamente, e Claude usa uma ferramenta de pesquisa para descobrir as relevantes quando uma tarefa precisa delas. Apenas as ferramentas que Claude realmente usa entram no contexto. Da sua perspectiva, as ferramentas MCP funcionam exatamente como antes.
1117
1118Se você preferir carregamento baseado em limite, defina `ENABLE_TOOL_SEARCH=auto` para carregar esquemas antecipadamente quando se encaixarem em 10% da janela de contexto e adiar apenas o excesso. Veja [Configurar pesquisa de ferramentas](#configure-tool-search) para todas as opções.
1119
1120### Para autores de servidores MCP
1121
1122Se você está construindo um servidor MCP, o campo de instruções do servidor se torna mais útil com Tool Search habilitado. As instruções do servidor ajudam Claude a entender quando pesquisar suas ferramentas, semelhante a como [skills](/pt/skills) funcionam.
1123
1124Adicione instruções de servidor claras e descritivas que expliquem:
1125
1126* Que categoria de tarefas suas ferramentas lidam
1127* Quando Claude deve pesquisar suas ferramentas
1128* Capacidades principais do seu servidor
1129
1130Claude Code trunca descrições de ferramentas e instruções de servidor em 2KB cada. Mantenha-as concisas para evitar truncamento, e coloque detalhes críticos perto do início.
1131
1132### Configurar pesquisa de ferramentas
1133
1134Tool Search é ativado por padrão: as ferramentas MCP são adiadas e descobertas sob demanda. Está desabilitado por padrão no Vertex AI, que não aceita o cabeçalho beta de pesquisa de ferramentas, e quando `ANTHROPIC_BASE_URL` aponta para um host que não é de primeira parte, já que a maioria dos proxies não encaminha blocos `tool_reference`. Defina `ENABLE_TOOL_SEARCH` explicitamente para ativar. Este recurso requer modelos que suportam blocos `tool_reference`: Sonnet 4 e posterior, ou Opus 4 e posterior. Os modelos Haiku não suportam pesquisa de ferramentas.
1135
1136Controle o comportamento da pesquisa de ferramentas com a variável de ambiente `ENABLE_TOOL_SEARCH`:
1137
1138| Valor | Comportamento |
1139| :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1140| (não definido) | Todas as ferramentas MCP adiadas e carregadas sob demanda. Volta a carregar antecipadamente no Vertex AI ou quando `ANTHROPIC_BASE_URL` é um host que não é de primeira parte |
1141| `true` | Todas as ferramentas MCP adiadas, incluindo no Vertex AI e para `ANTHROPIC_BASE_URL` que não é de primeira parte |
1142| `auto` | Modo de limite: ferramentas carregam antecipadamente se se encaixarem em 10% da janela de contexto, adiadas caso contrário |
1143| `auto:<N>` | Modo de limite com uma porcentagem personalizada, onde `<N>` é 0-100 (por exemplo, `auto:5` para 5%) |
1144| `false` | Todas as ferramentas MCP carregadas antecipadamente, sem adiamento |
1145
1146```bash theme={null}
1147# Use um limite personalizado de 5%
1148ENABLE_TOOL_SEARCH=auto:5 claude
1149
1150# Desabilite a pesquisa de ferramentas completamente
1151ENABLE_TOOL_SEARCH=false claude
1152```
1153
1154Ou defina o valor no seu [campo `env` de settings.json](/pt/settings#available-settings).
1155
1156Você também pode desabilitar a ferramenta `ToolSearch` especificamente:
1157
1158```json theme={null}
1159{
1160 "permissions": {
1161 "deny": ["ToolSearch"]
1162 }
1163}
1164```
1165
1166### Isentar um servidor de adiamento
1167
1168Se as ferramentas de um servidor devem estar sempre visíveis para Claude sem uma etapa de pesquisa, defina `alwaysLoad` como `true` na configuração desse servidor. Cada ferramenta desse servidor então carrega no contexto no início da sessão independentemente da configuração `ENABLE_TOOL_SEARCH`. Use isso para um pequeno número de ferramentas que Claude precisa a cada turno, já que cada ferramenta antecipada consome contexto que estaria disponível para sua conversa.
1169
1170A seguinte entrada `.mcp.json` isenta um servidor HTTP enquanto deixa outros servidores adiados:
1171
1172```json theme={null}
1173{
1174 "mcpServers": {
1175 "core-tools": {
1176 "type": "http",
1177 "url": "https://mcp.example.com/mcp",
1178 "alwaysLoad": true
1179 }
1180 }
1181}
1182```
1183
1184O campo `alwaysLoad` está disponível em todos os tipos de servidor e requer Claude Code v2.1.121 ou posterior. Um servidor MCP também pode marcar ferramentas individuais como sempre carregadas incluindo `"anthropic/alwaysLoad": true` no objeto `_meta` da ferramenta, que tem o mesmo efeito apenas para essa ferramenta.
1185
1186## Usar prompts MCP como comandos
1187
1188Os servidores MCP podem expor prompts que se tornam disponíveis como comandos no Claude Code.
1189
1190### Executar prompts MCP
1191
1192<Steps>
1193 <Step title="Descubra prompts disponíveis">
1194 Digite `/` para ver todos os comandos disponíveis, incluindo aqueles de servidores MCP. Os prompts MCP aparecem com o formato `/mcp__servername__promptname`.
1195 </Step>
1196
1197 <Step title="Execute um prompt sem argumentos">
1198 ```text theme={null}
1199 /mcp__github__list_prs
1200 ```
1201 </Step>
1202
1203 <Step title="Execute um prompt com argumentos">
1204 Muitos prompts aceitam argumentos. Passe-os separados por espaço após o comando:
1205
1206 ```text theme={null}
1207 /mcp__github__pr_review 456
1208 ```
1209
1210 ```text theme={null}
1211 /mcp__jira__create_issue "Bug no fluxo de login" high
1212 ```
1213 </Step>
1214</Steps>
1215
1216<Tip>
1217 Dicas:
1218
1219 * Os prompts MCP são descobertos dinamicamente de servidores conectados
1220 * Os argumentos são analisados com base nos parâmetros definidos do prompt
1221 * Os resultados do prompt são injetados diretamente na conversa
1222 * Os nomes do servidor e do prompt são normalizados (espaços se tornam sublinhados)
1223</Tip>
1224
1225## Configuração MCP gerenciada
1226
1227Para organizações que precisam de controle centralizado sobre servidores MCP, Claude Code suporta duas opções de configuração:
1228
12291. **Controle exclusivo com `managed-mcp.json`**: Implante um conjunto fixo de servidores MCP que os usuários não podem modificar ou estender
12302. **Controle baseado em política com listas de permissão/bloqueio**: Permita que os usuários adicionem seus próprios servidores, mas restrinja quais são permitidos
1231
1232Essas opções permitem que administradores de TI:
1233
1234* **Controle quais servidores MCP os funcionários podem acessar**: Implante um conjunto padronizado de servidores MCP aprovados em toda a organização
1235* **Evite servidores MCP não autorizados**: Restrinja os usuários de adicionar servidores MCP não aprovados
1236* **Desabilite MCP completamente**: Remova a funcionalidade MCP completamente se necessário
1237
1238### Opção 1: Controle exclusivo com managed-mcp.json
1239
1240Quando você implanta um arquivo `managed-mcp.json`, ele assume **controle exclusivo** sobre todos os servidores MCP. Os usuários não podem adicionar, modificar ou usar nenhum servidor MCP além daqueles definidos neste arquivo. Esta é a abordagem mais simples para organizações que desejam controle completo.
1241
1242Os administradores do sistema implantam o arquivo de configuração em um diretório em todo o sistema:
1243
1244* macOS: `/Library/Application Support/ClaudeCode/managed-mcp.json`
1245* Linux e WSL: `/etc/claude-code/managed-mcp.json`
1246* Windows: `C:\Program Files\ClaudeCode\managed-mcp.json`
1247
1248<Note>
1249 Estes são caminhos em todo o sistema (não diretórios de home do usuário como `~/Library/...`) que exigem privilégios de administrador. Eles são projetados para serem implantados por administradores de TI.
1250</Note>
1251
1252O arquivo `managed-mcp.json` usa o mesmo formato que um arquivo `.mcp.json` padrão:
1253
1254```json theme={null}
1255{
1256 "mcpServers": {
1257 "github": {
1258 "type": "http",
1259 "url": "https://api.githubcopilot.com/mcp/"
1260 },
1261 "sentry": {
1262 "type": "http",
1263 "url": "https://mcp.sentry.dev/mcp"
1264 },
1265 "company-internal": {
1266 "type": "stdio",
1267 "command": "/usr/local/bin/company-mcp-server",
1268 "args": ["--config", "/etc/company/mcp-config.json"],
1269 "env": {
1270 "COMPANY_API_URL": "https://internal.company.com"
1271 }
1272 }
1273 }
1274}
1275```
1276
1277### Opção 2: Controle baseado em política com listas de permissão e bloqueio
1278
1279Em vez de assumir controle exclusivo, os administradores podem permitir que os usuários configurem seus próprios servidores MCP enquanto aplicam restrições sobre quais servidores são permitidos. Esta abordagem usa `allowedMcpServers` e `deniedMcpServers` no [arquivo de configurações gerenciadas](/pt/settings#settings-files).
1280
1281<Note>
1282 **Escolhendo entre opções**: Use a Opção 1 (`managed-mcp.json`) quando você deseja implantar um conjunto fixo de servidores sem personalização do usuário. Use a Opção 2 (listas de permissão/bloqueio) quando você deseja permitir que os usuários adicionem seus próprios servidores dentro de restrições de política.
1283</Note>
1284
1285#### Opções de restrição
1286
1287Cada entrada na lista de permissão ou bloqueio pode restringir servidores de três maneiras:
1288
12891. **Por nome do servidor** (`serverName`): Corresponde ao nome configurado do servidor
12902. **Por comando** (`serverCommand`): Corresponde ao comando exato e argumentos usados para iniciar servidores stdio
12913. **Por padrão de URL** (`serverUrl`): Corresponde a URLs de servidor remoto com suporte a caracteres curinga
1292
1293**Importante**: Cada entrada deve ter exatamente um de `serverName`, `serverCommand` ou `serverUrl`.
1294
1295#### Exemplo de configuração
1296
1297```json theme={null}
1298{
1299 "allowedMcpServers": [
1300 // Permitir por nome do servidor
1301 { "serverName": "github" },
1302 { "serverName": "sentry" },
1303
1304 // Permitir por comando exato (para servidores stdio)
1305 { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] },
1306 { "serverCommand": ["python", "/usr/local/bin/approved-server.py"] },
1307
1308 // Permitir por padrão de URL (para servidores remotos)
1309 { "serverUrl": "https://mcp.company.com/*" },
1310 { "serverUrl": "https://*.internal.corp/*" }
1311 ],
1312 "deniedMcpServers": [
1313 // Bloquear por nome do servidor
1314 { "serverName": "dangerous-server" },
1315
1316 // Bloquear por comando exato (para servidores stdio)
1317 { "serverCommand": ["npx", "-y", "unapproved-package"] },
1318
1319 // Bloquear por padrão de URL (para servidores remotos)
1320 { "serverUrl": "https://*.untrusted.com/*" }
1321 ]
1322}
1323```
1324
1325#### Como funcionam as restrições baseadas em comando
1326
1327**Correspondência exata**:
1328
1329* Os arrays de comando devem corresponder **exatamente** - tanto o comando quanto todos os argumentos na ordem correta
1330* Exemplo: `["npx", "-y", "server"]` NÃO corresponderá a `["npx", "server"]` ou `["npx", "-y", "server", "--flag"]`
1331
1332**Comportamento do servidor stdio**:
1333
1334* Quando a lista de permissão contém **qualquer** entrada `serverCommand`, servidores stdio **devem** corresponder a um desses comandos
1335* Os servidores stdio não podem passar apenas pelo nome quando restrições de comando estão presentes
1336* Isso garante que os administradores possam aplicar quais comandos são permitidos executar
1337
1338**Comportamento do servidor não-stdio**:
1339
1340* Servidores remotos (HTTP, SSE, WebSocket) usam correspondência baseada em URL quando entradas `serverUrl` existem na lista de permissão
1341* Se nenhuma entrada de URL existir, servidores remotos voltam para correspondência baseada em nome
1342* As restrições de comando não se aplicam a servidores remotos
1343
1344#### Como funcionam as restrições baseadas em URL
1345
1346Os padrões de URL suportam caracteres curinga usando `*` para corresponder a qualquer sequência de caracteres. Isso é útil para permitir domínios inteiros ou subdomínios.
1347
1348**Exemplos de caracteres curinga**:
1349
1350* `https://mcp.company.com/*` - Permitir todos os caminhos em um domínio específico
1351* `https://*.example.com/*` - Permitir qualquer subdomínio de example.com
1352* `http://localhost:*/*` - Permitir qualquer porta em localhost
1353
1354**Comportamento do servidor remoto**:
1355
1356* Quando a lista de permissão contém **qualquer** entrada `serverUrl`, servidores remotos **devem** corresponder a um desses padrões de URL
1357* Os servidores remotos não podem passar apenas pelo nome quando restrições de URL estão presentes
1358* Isso garante que os administradores possam aplicar quais endpoints remotos são permitidos
1359
1360<Accordion title="Exemplo: Lista de permissão apenas de URL">
1361 ```json theme={null}
1362 {
1363 "allowedMcpServers": [
1364 { "serverUrl": "https://mcp.company.com/*" },
1365 { "serverUrl": "https://*.internal.corp/*" }
1366 ]
1367 }
1368 ```
1369
1370 **Resultado**:
1371
1372 * Servidor HTTP em `https://mcp.company.com/api`: ✅ Permitido (corresponde ao padrão de URL)
1373 * Servidor HTTP em `https://api.internal.corp/mcp`: ✅ Permitido (corresponde ao subdomínio curinga)
1374 * Servidor HTTP em `https://external.com/mcp`: ❌ Bloqueado (não corresponde a nenhum padrão de URL)
1375 * Servidor stdio com qualquer comando: ❌ Bloqueado (nenhuma entrada de nome ou comando para corresponder)
1376</Accordion>
1377
1378<Accordion title="Exemplo: Lista de permissão apenas de comando">
1379 ```json theme={null}
1380 {
1381 "allowedMcpServers": [
1382 { "serverCommand": ["npx", "-y", "approved-package"] }
1383 ]
1384 }
1385 ```
1386
1387 **Resultado**:
1388
1389 * Servidor stdio com `["npx", "-y", "approved-package"]`: ✅ Permitido (corresponde ao comando)
1390 * Servidor stdio com `["node", "server.js"]`: ❌ Bloqueado (não corresponde ao comando)
1391 * Servidor HTTP nomeado "my-api": ❌ Bloqueado (nenhuma entrada de nome para corresponder)
1392</Accordion>
1393
1394<Accordion title="Exemplo: Lista de permissão mista de nome e comando">
1395 ```json theme={null}
1396 {
1397 "allowedMcpServers": [
1398 { "serverName": "github" },
1399 { "serverCommand": ["npx", "-y", "approved-package"] }
1400 ]
1401 }
1402 ```
1403
1404 **Resultado**:
1405
1406 * Servidor stdio nomeado "local-tool" com `["npx", "-y", "approved-package"]`: ✅ Permitido (corresponde ao comando)
1407 * Servidor stdio nomeado "local-tool" com `["node", "server.js"]`: ❌ Bloqueado (entradas de comando existem mas não correspondem)
1408 * Servidor stdio nomeado "github" com `["node", "server.js"]`: ❌ Bloqueado (servidores stdio devem corresponder aos comandos quando entradas de comando existem)
1409 * Servidor HTTP nomeado "github": ✅ Permitido (corresponde ao nome)
1410 * Servidor HTTP nomeado "other-api": ❌ Bloqueado (nome não corresponde)
1411</Accordion>
1412
1413<Accordion title="Exemplo: Lista de permissão apenas de nome">
1414 ```json theme={null}
1415 {
1416 "allowedMcpServers": [
1417 { "serverName": "github" },
1418 { "serverName": "internal-tool" }
1419 ]
1420 }
1421 ```
1422
1423 **Resultado**:
1424
1425 * Servidor stdio nomeado "github" com qualquer comando: ✅ Permitido (nenhuma restrição de comando)
1426 * Servidor stdio nomeado "internal-tool" com qualquer comando: ✅ Permitido (nenhuma restrição de comando)
1427 * Servidor HTTP nomeado "github": ✅ Permitido (corresponde ao nome)
1428 * Qualquer servidor nomeado "other": ❌ Bloqueado (nome não corresponde)
1429</Accordion>
1430
1431#### Comportamento da lista de permissão (`allowedMcpServers`)
1432
1433* `undefined` (padrão): Sem restrições - os usuários podem configurar qualquer servidor MCP
1434* Array vazio `[]`: Bloqueio completo - os usuários não podem configurar nenhum servidor MCP
1435* Lista de entradas: Os usuários podem configurar apenas servidores que correspondem por nome, comando ou padrão de URL
1436
1437#### Comportamento da lista de bloqueio (`deniedMcpServers`)
1438
1439* `undefined` (padrão): Nenhum servidor é bloqueado
1440* Array vazio `[]`: Nenhum servidor é bloqueado
1441* Lista de entradas: Servidores especificados são explicitamente bloqueados em todos os escopos
1442
1443#### Notas importantes
1444
1445* **Opção 1 e Opção 2 podem ser combinadas**: Se `managed-mcp.json` existir, ele tem controle exclusivo e os usuários não podem adicionar servidores. As listas de permissão/bloqueio ainda se aplicam aos servidores gerenciados em si.
1446* **A lista de bloqueio tem precedência absoluta**: Se um servidor corresponder a uma entrada de lista de bloqueio (por nome, comando ou URL), será bloqueado mesmo que esteja na lista de permissão
1447* As restrições baseadas em nome, comando e URL funcionam juntas: um servidor passa se corresponder **a qualquer** entrada de nome, entrada de comando ou padrão de URL (a menos que bloqueado pela lista de bloqueio)
1448
1449<Note>
1450 **Ao usar `managed-mcp.json`**: Os usuários não podem adicionar servidores MCP através de `claude mcp add` ou arquivos de configuração. As configurações `allowedMcpServers` e `deniedMcpServers` ainda se aplicam para filtrar quais servidores gerenciados são realmente carregados.
1451</Note>