/ Diretório / Playground / Fetch
● Oficial modelcontextprotocol ⚡ Instantâneo

Fetch

por modelcontextprotocol · modelcontextprotocol/servers

A forma mais simples de dar ao Claude acesso à web — busque uma URL, obtenha Markdown limpo. Sem renderização JS, sem chaves API, sem complicações.

O MCP Fetch de referência. Pega uma URL, baixa a página, remove código boilerplate, converte para Markdown e retorna um trecho. Ideal para páginas estáticas, documentação, changelogs, RSS — em qualquer lugar onde você não precisa que JavaScript execute. Para SPAs e sites anti-bot, use Firecrawl ou Chrome DevTools.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

fetch.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "fetch",
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "fetch": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-fetch"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add fetch -- uvx mcp-server-fetch

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: Fetch

Resumir um artigo ou post de blog de uma URL

👤 Qualquer um que compartilhe links no chat e pergunte 'o que isso diz?' ⏱ ~3 min beginner

Quando usar: Você encontra um artigo sem paywall, página de documentação ou post de blog e quer um resumo mais uma opinião sem ler você mesmo.

Fluxo
  1. Buscar com saída Markdown
    Busque https://example.com/blog/post e me dê os primeiros ~3000 caracteres como Markdown limpo.✓ Copiado
    → Conteúdo chega com títulos funcionando e sem chrome de navegação
  2. Resumir e extrair alegações
    Resuma em 5 pontos. Liste qualquer número específico ou alegação que o autor faz, com a frase em que aparecem.✓ Copiado
    → Resumo com pontos mais citações diretas, não parafraseadas
  3. Fazer crítica
    Qual é o contra-argumento mais forte para a tese principal do autor? Seja específico.✓ Copiado
    → Crítica real, não mush de 'por outro lado...'

Resultado: Uma leitura útil do artigo em 30 segundos, com citações que você pode verificar.

Armadilhas
  • Página é renderizada por JS e a busca retorna um shell praticamente vazio — Verifique a saída da primeira busca — se for suspeitosamente curta ou disser 'Loading...', mude para Firecrawl ou Chrome DevTools MCP
  • Página longa truncada por max_length — Use start_index para paginar: a segunda chamada com start_index: 5000 continua de onde a primeira parou
Combine com: memory

Verificar o changelog de um fornecedor para saber o que mudou nesta semana

👤 Desenvolvedores que acompanham lançamentos de dependências ou recursos de concorrentes ⏱ ~5 min beginner

Quando usar: Uma biblioteca que você depende publica notas de lançamento em uma página estática e você não verificou em um mês.

Fluxo
  1. Buscar a página de changelog
    Busque https://vendor.com/changelog e liste cada lançamento desde 2026-03-01 com sua data e um resumo de uma linha do que mudou.✓ Copiado
    → Lista cronológica com datas
  2. Classificar por impacto
    Categorize cada um em: breaking change, novo recurso, correção de bug, interno. Marque qualquer coisa marcada como breaking ou deprecada.✓ Copiado
    → Tag por lançamento com itens breaking destacados
  3. Indicar o que nos afeta
    Usamos esta biblioteca principalmente para <feature X>. Quais dessas mudanças afetam nosso uso e que ação (se houver) devemos tomar?✓ Copiado
    → Lista acionável, não genérica 'revise as notas'

Resultado: Saiba em 2 minutos se você precisa fazer bump da versão e testar, ou pular o lançamento inteiramente.

Armadilhas
  • Changelogs paginam — primeira página só tem últimos 2 meses — Role com start_index ou busque a URL de arquivo explicitamente
  • Páginas de lançamento do GitHub agora renderizam via JS — Use a API bruta em vez disso: https://api.github.com/repos/owner/repo/releases retorna JSON sem precisar de JS
Combine com: github · memory

Trazer uma RFC ou página de documentação para o contexto de uma tarefa de codificação

👤 Engenheiros implementando uma especificação ou integração de API ⏱ ~15 min intermediate

Quando usar: Você está codificando contra uma especificação pública (OAuth, detalhes de problema RFC 9457, documentação de referência de uma REST API) e quer que Claude tenha a fonte canônica.

Fluxo
  1. Buscar a(s) página(s) de especificação
    Busque https://datatracker.ietf.org/doc/html/rfc9457 como Markdown. Retorne apenas as seções 1-4.✓ Copiado
    → Markdown limpo das seções normativas
  2. Implementar contra ela
    Usando essa RFC como fonte de verdade, escreva um tipo TypeScript mais validador para o objeto de detalhes do problema. Cite números de seção específicos em comentários.✓ Copiado
    → Código com referências inline // per RFC 9457 §3.1
  3. Verificação de caso extremo
    Da mesma RFC, quais casos extremos ou campos opcionais minha implementação não trata? Decida se deve tratá-los ou documentar a escolha.✓ Copiado
    → Análise honesta de lacunas contra a especificação

Resultado: Uma implementação fiel à especificação com citações rastreáveis que você pode defender na revisão de código.

Armadilhas
  • Páginas IETF são enormes — um RFC inteiro pode exceder o orçamento de contexto — Busque apenas as seções que você precisa usando links de âncora ou start_index, não o documento completo
Combine com: filesystem · github

Combinações

Combine com outros MCPs para 10× de alavancagem

fetch + filesystem

Salve páginas buscadas localmente para RAG offline ou arquivamento

Busque https://docs.anthropic.com/en/docs/mcp e salve como /knowledge/anthropic/mcp.md.✓ Copiado
fetch + memory

Lembre-se de fatos-chave de uma página para não buscar novamente na próxima vez

Busque a página de preços do Stripe e armazene as taxas por transação como observações na entidade 'stripe-pricing' com a data de hoje.✓ Copiado

Busque várias fontes e depois raciocine sobre elas passo a passo

Busque esses 3 artigos concorrentes sobre o tópico X. Use pensamento sequencial para identificar onde eles realmente discordam versus apenas usam palavras diferentes.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
fetch url: str, max_length?: int (default 5000), start_index?: int, raw?: bool Recupere uma única URL como Markdown; defina raw=true para pular a conversão Markdown gratuito (apenas largura de banda)

Custo e limites

O que custa rodar

Cota de API
Sem cota — limitado apenas pela sua largura de banda e limites de taxa do site de destino
Tokens por chamada
max_length padrão é 5000 caracteres (~1500 tokens); páginas longas precisam de múltiplas chamadas
Monetário
Gratuito
Dica
Se você se encontrar paginando a mesma página frequentemente, coloque em cache via MCP filesystem após a primeira busca.

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: Nenhum
Saída de dados: Direto da sua máquina para a URL de destino — sem proxy, sem terceiros

Solução de problemas

Erros comuns e correções

Conteúdo suspeitosamente curto (<200 caracteres)

Página é provavelmente renderizada por JS. Confirme visualizando a URL em curl; se a saída do curl também for minúscula, fetch não pode ajudar — use Firecrawl ou MCP chrome-devtools.

Verificar: curl -sL <url> | wc -c
403 Forbidden

Site bloqueia user agents não-navegador. Fetch MCP envia uma UA moderna por padrão; se ainda estiver bloqueado, o site explicitamente desativa scraping — respeite isso.

robots.txt não permitido

Para buscas iniciadas pelo usuário, únicas (não crawls autônomos), você pode desabilitar a verificação de robots conforme a documentação do servidor. Não desabilite para loops de agente.

Truncamento — resposta cortada no meio da sentença

Aumente max_length ou chame novamente com start_index definido para onde a última chamada terminou.

Alternativas

Fetch vs. outros

AlternativaQuando usarTroca
FirecrawlAlvo é uma SPA renderizada por JS, ou você precisa de extração JSON estruturada via schemaPago após créditos gratuitos; adiciona uma dependência de terceiros
Chrome DevTools MCPVocê precisa interagir (clicar, fazer login, rolar) com a página para revelar conteúdoMais pesado — lança um navegador real; mais lento por página
Brightdata MCPAlvo bloqueia ativamente IPs de datacenter e você precisa de proxies residenciaisPreço de empresa; excessivo para a maioria das necessidades

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills