agent search mcp
Sobre servidor MCP de busca gratuito com múltiplos mecanismos — 8 mecanismos gratuitos (DDG, Sogou, Bing, Baidu, Wikipedia, Startpage, Yandex, Mojeek), busca progressiva em cascata, verificação multi-fonte, enriquecimento de conteúdo, busca de notícias, detecção automática de idioma, exposição de limite de taxa. Nenhuma chave de API necessária. Auto-hospedável.
Documentação
Agent Search MCP: Busca web gratuita em primeiro lugar com evidências inspecionáveis
Um servidor MCP Node.js e CLI para busca web em inglês e chinês.
O Agent Search MCP inicia sem uma chave de API. Ele retorna evidências compactas de múltiplas fontes, registra falhas de provedores e limita o trabalho com orçamentos de solicitação e evidência. Provedores pagos são executados apenas quando a política e as credenciais permitem.
Documentação em chinês · Página do produto · Benchmarks · Arquitetura · CHANGELOG
Instalação
npx -y agent-search-mcp
Requer Node.js >= 18.17. O runtime padrão não requer navegador, banco de dados, Python ou conta de API de busca.
Conecte um cliente MCP
Use esta configuração stdio em clientes MCP que aceitam JSON mcpServers, incluindo Claude Desktop, Cursor, VS Code e Windsurf:
{
"mcpServers": {
"agent-search": {
"command": "npx",
"args": ["-y", "agent-search-mcp"]
}
}
}
Claude Code e Codex podem registrar o mesmo comando stdio npx -y agent-search-mcp por meio das configurações de MCP.
Adicione a Skill de Agente opcional
Após conectar o servidor MCP, clientes compatíveis com Agent Skills podem instalar o guia de roteamento do repositório:
npx skills add lennney/agent-search-mcp --skill agent-search
Invoque-a com uma solicitação como Use $agent-search to verify this claim with official sources. A Agent Search Skill escolhe um de quatro caminhos limitados: descoberta rápida, verificação mais rigorosa, busca em fontes chinesas ou extração de uma URL selecionada. Ela verifica se a ferramenta MCP necessária existe e pergunta antes de qualquer alteração de instalação ou configuração. Instalar a Skill não inicia nem configura o servidor MCP.
Exemplo: inspecione um resultado de busca limitado
Após compilar o pacote local, execute uma consulta CLI sem adicionar uma chave de provedor:
npm run build
fasm search "MCP server without an API key" --json
O contrato de resposta mantém evidências de resultado, meta.execution e partialFailures separados. Um timeout ou desafio de provedor permanece visível para o agente em vez de ser convertido em um resultado vazio inexplicável. Este é um exemplo de contrato, não um benchmark de disponibilidade ou qualidade de busca em tempo real.
Após uma instalação global, verifique o runtime local sem fazer uma solicitação de busca:
npm install -g agent-search-mcp
fasm doctor
Por que o Agent Search MCP
| Necessidade | Comportamento do produto |
|---|---|
| Busca web gratuita | Fontes sem chave funcionam sem conta de API |
| Controle de custo do provedor | Provedores pagos são executados apenas sob uma política de roteamento explícita |
| Controle de custo de tokens | Saída compacta e um orçamento de evidência limitam o tamanho da resposta |
| Evidência de múltiplas fontes | Resultados retêm proveniência, relevância, contagem de famílias de provedores e falhas parciais |
| Busca web em chinês | Sogou e Baidu lidam com consultas em chinês sem camada de tradução |
| Autohospedagem leve | Runtime Node.js puro com acesso stdio, Streamable HTTP e CLI |
A diferença de um wrapper simples de múltiplos mecanismos
| Agregação simples de múltiplos mecanismos | Agent Search MCP |
|---|---|
| Retorna N resultados deduplicados | Retorna resultados mais o número de fontes independentes (famílias de provedores, não nomes de adaptadores) |
| Uma falha de provedor descarta silenciosamente alguns resultados | Cada falha permanece em partialFailures (timeout, limite de taxa, desafio, permissão, orçamento) |
| Para quando a contagem de resultados parece suficiente | Para somente após um portão de qualidade (contagem, relevância, confiança, cobertura de fontes) e retorna o stop_reason |
| Saída de tamanho fixo | Um orçamento de evidência compartilhado limita os tokens da resposta; texto compacto mantém a proveniência |
| Um adaptador conta como uma fonte | O mesmo upstream por vários adaptadores nunca infla source_count |
A demonstração offline de um minuto reproduz essas diferenças por meio do avaliador e formatador de evidências de produção:
Inspecione a evidência de busca
Cada resposta JSON inclui um Pacote de Evidência de Busca. Ele responde às perguntas de roteamento que um agente precisa antes de usar um resultado:
| Pergunta | Campo da resposta |
|---|---|
| Quais adaptadores foram executados? | meta.execution.searched_engines |
| Por que o roteador parou? | meta.execution.stop_reason e meta.execution.quality_gate |
| A solicitação atingiu um limite de trabalho? | meta.execution.budget |
| A evidência foi truncada? | meta.evidence_budget |
| Um provedor upstream falhou? | partialFailures |
| Vários adaptadores representam fontes independentes? | results[].source_count conta famílias de provedores, não nomes de adaptadores |
Execute a demonstração offline de contrato de um minuto:
npm run demo:evidence
npm run demo:evidence -- --json
Ela reproduz três cenários sintéticos por meio do avaliador de evidências, formatador e auxiliar de saída MCP de produção: sobreposição de adaptadores da mesma família, falha de fallback visível e parada limitada por portão de qualidade. Ela não faz nenhuma afirmação de disponibilidade ou qualidade de busca em tempo real e não realiza nenhuma solicitação de rede.
A política padrão free_first nunca gasta uma credencial de API configurada. free_only bloqueia provedores pagos. quality_escalation pode chamar um provedor pago configurado depois que a evidência gratuita não atinge o portão de qualidade, enquanto paid_first tenta esse provedor antes do fallback gratuito.
Os orçamentos de solicitação limitam as tentativas de adaptadores, o tempo decorrido e os resultados admitidos. O orçamento de evidência limita as passagens relevantes à consulta em toda a resposta completa. O modo compacto mantém detalhes completos para os primeiros resultados e reduz as entradas posteriores a referências que preservam a fonte.
Redução de tokens medida
O fixture bilíngue versionado mede a formatação com um tokenizador fixo:
| Saída | Média de tokens por consulta | Economia vs. normal |
|---|---|---|
| Normal | 2396.0 | |
| Compact | 1650.1 | 31.1% |
| Compact+ | 1633.0 | 31.8% |
Este fixture verifica a formatação da saída e o comportamento do pacote de evidências. Ele não mede a disponibilidade dos mecanismos em tempo real nem a qualidade da busca. Consulte o método e as limitações do benchmark.
Como funciona o roteador de busca
flowchart LR
A["AI agent"] --> M["MCP search tools"]
M --> P["Provider and request policy"]
P --> F["Zero-key sources"]
P --> O["Optional paid provider"]
F --> E["Deduplicate, rank, and preserve failures"]
O --> E
E --> B["Evidence and token budget"]
B --> R["Compact multi-source result"]
O roteador avalia cada lote de busca contra portões separados de resultado, relevância, confiança e família de provedores. Ele para depois que a evidência passa por esses portões e expõe a decisão em meta.execution. As falhas de provedores permanecem visíveis em partialFailures, para que um resultado vazio não possa ocultar um erro upstream.
O panorama competitivo (2026-08-07) mapeia a linha de base concorrida e as lacunas do produto. Ele registra datas de fontes e commits fixos para fatos que podem mudar. A atualização de 2026-08-10 adiciona a atividade dos concorrentes desde então: concorrentes locais diretos estão inativos, e evidências eficientes em tokens estão se tornando uma alavanca explícita do setor. A comparação de produtos em nível de fonte anterior contém as evidências específicas da arquitetura.
Mecanismos
O runtime registra 16 adaptadores: 9 adaptadores sem chave e 7 adaptadores opcionais de API.
| Mecanismo | Acesso | Idiomas | Função |
|---|---|---|---|
| DuckDuckGo | Sem chave | en | Busca web geral |
| Sogou Search | Sem chave | zh | Busca web em chinês |
| Bing | Sem chave | en, zh | Busca web multilíngue |
| Baidu | Sem chave | zh | Busca web em chinês |
| Wikipedia | Sem chave | en, zh, ja, de, fr, es, auto | Referências enciclopédicas |
| Startpage | Sem chave | en, auto | Busca web focada em privacidade |
| Yandex | Sem chave | ru, en, auto | Busca web russa e internacional |
| Mojeek | Sem chave | en, auto | Índice independente focado em privacidade |
| Wiby | Sem chave | en | Índice independente da web pequena |
| Brave Search | BRAVE_API_KEY | en, zh | Busca web comercial opcional |
| Tavily Search | TAVILY_API_KEY | en, zh | Busca opcional orientada a agentes |
| Exa Search | EXA_API_KEY | en, zh | Busca neural opcional |
| You.com Search | YDC_API_KEY | en, zh | Busca web comercial opcional |
| Tencent Web Search API | TENCENT_WSA_API_KEY | zh | Busca web chinesa oficial opcional |
| Bocha Web Search | BOCHA_API_KEY | zh, en | Busca de IA opcional com foco em chinês |
| Serper Google Search | SERPER_API_KEY | en, zh, auto | Busca SERP do Google opcional |
Ferramentas
| Ferramenta | Descrição | Melhor para |
|---|---|---|
free_search | Busca web multi-mecanismo com fallback limitado | Fatos rápidos e descoberta geral |
free_search_advanced | Busca em cascata filtrada e enriquecimento opcional | Política de domínio e verificação progressiva |
free_extract | Extrai uma URL como Markdown limpo | Leitura de páginas de origem completas |
fetch_github_readme | Busca o README de um repositório público do GitHub | Documentação de projetos |
fetch_csdn_article | Busca um artigo do CSDN | Artigos técnicos em chinês |
fetch_juejin_article | Busca um artigo do Juejin | Artigos de desenvolvedores chineses |
search_with_synthesis | Evidência de busca com dica de síntese de LLM | Respostas escritas por agentes a partir de evidências citadas |
Controles de capacidade
| Ambiente | Padrão | Finalidade |
|---|---|---|
ENABLED_TOOLS / DISABLED_TOOLS | all / none | Lista de permissão e bloqueio de registro de ferramentas; bloqueio vence |
ALLOWED_ENGINES / DENIED_ENGINES | all / none | Lista de permissão e bloqueio de execução de mecanismos; bloqueio vence |
SEARCH_PROVIDER_MODE | free_first | Roteamento padrão: free_first, quality_escalation, paid_first ou free_only |
PAID_ENGINE_ORDER | brave,exa,tavily,youcom,tencent_wsa,bocha,serper | Seleciona o primeiro provedor opcional configurado; não é uma afirmação de qualidade |
SEARCH_BUDGET_MAX_CALLS | 16 | Orçamento de tentativas de adaptadores |
SEARCH_BUDGET_MAX_ELAPSED_MS | 30000 | Orçamento de tempo decorrido de ponta a ponta |
SEARCH_BUDGET_MAX_RESULTS | 100 | Orçamento de resultados brutos admitidos |
EVIDENCE_BUDGET_CHARS | 1200 | Orçamento de caracteres de evidência |
search_with_synthesis usa o mesmo pacote de evidências canônico structuredContent das ferramentas de busca primárias e adiciona prompt_hint; seu conteúdo de texto é apenas uma visão compacta de compatibilidade. Os metadados de execução distinguem adaptadores agendados de tentativas de adaptadores com repetição. http_requests é null até que todos os transportes de adaptadores possam relatá-lo sem precisão falsa.
O Wiby é uma fonte genuína sem chave apoiada por sua API JSON oficial e é usado no final da cascata gratuita como um suplemento independente da web pequena. Provedores opcionais exigem credenciais do usuário; qualquer crédito de inscrição ou cota de teste é controlado pelo provedor e não é tratado como acesso gratuito permanente.
Todas as ferramentas são somente leitura e idempotentes. O cancelamento da busca alcança esperas de limite de taxa, repetições, solicitações de provedores e enriquecimento opcional. O enriquecimento pode melhorar um trecho, mas não pode aumentar a confiança da fonte nem a contagem de fontes independentes.
free_search_advanced.time_range permanece no esquema de compatibilidade. O servidor retorna UNSUPPORTED_FILTER antes de buscar porque os provedores web gerais não compartilham um contrato de atualidade aplicável.
Configuração
A tabela de capacidades gerada acima lista os orçamentos de solicitação padrão. Essas configurações cobrem as escolhas comuns de implantação:
| Objetivo | Variáveis de ambiente |
|---|---|
| Adicionar um provedor opcional | BRAVE_API_KEY, TAVILY_API_KEY, EXA_API_KEY, YDC_API_KEY, TENCENT_WSA_API_KEY, BOCHA_API_KEY ou SERPER_API_KEY |
| Escolher política de gastos | SEARCH_PROVIDER_MODE, PAID_ENGINE_ORDER |
| Reduzir tokens de resposta | OUTPUT_STYLE=compact, MAX_FULL_RESULTS, SNIPPET_LENGTH, EVIDENCE_BUDGET_CHARS |
| Restringir ferramentas ou mecanismos | ENABLED_TOOLS, DISABLED_TOOLS, ALLOWED_ENGINES, DENIED_ENGINES |
| Usar um proxy explícito | DUCKDUCKGO_PROXY_URL, SOGOU_PROXY_URL, MOJEEK_PROXY_URL, WIBY_PROXY_URL ou USE_PROXY=true com PROXY_URL |
| Usar um pool de proxies de propriedade do usuário | DUCKDUCKGO_PROXY_URLS, SOGOU_PROXY_URLS, MOJEEK_PROXY_URLS ou WIBY_PROXY_URLS como uma matriz JSON de 2 a 16 URLs de proxy HTTP(S) |
| Persistir o cache de resultados exatos | SEARCH_CACHE_DIRECTORY, SEARCH_CACHE_TTL_MS, SEARCH_CACHE_MAX_ENTRIES |
| Habilitar processamento semântico opcional | SEMANTIC_DEDUP, SEMANTIC_RERANK, DEDUP_THRESHOLD, RERANK_TOP_K |
Adicionar uma chave de API não autoriza tráfego pago. A política de roteamento controla o uso de provedores. O cache de resultados exatos padrão permanece em memória; definir SEARCH_CACHE_DIRECTORY opta pela persistência local. O processamento semântico é o único recurso opcional que usa Python e Model2Vec.
Os pools de proxy selecionam uma primeira saída determinística da consulta lógica e mantêm as solicitações de várias etapas do provedor fixas. Somente uma falha de transporte pode mover para a próxima saída configurada; um transporte com falha é resfriado por 60 segundos. Respostas HTTP, incluindo 403, 429 e páginas de desafio, nunca acionam a troca de proxy e continuam pelo contrato de resfriamento existente do provedor. Variáveis de proxy único específicas do mecanismo têm precedência sobre o pool. Credenciais de proxy nunca são impressas por fasm doctor.
Implantação HTTP
O modo HTTP requer HTTP_AUTH_TOKEN a menos que você defina HTTP_ALLOW_UNAUTHENTICATED=true. Solicitações de navegador com um cabeçalho Origin devem corresponder a ALLOWED_ORIGINS. Consulte o guia de implantação HTTP para terminação TLS, rotação de tokens e exemplos de proxy reverso.
CLI
O pacote inclui o CLI fasm:
fasm search "TypeScript MCP server"
fasm search "query" --count 5 --engines bing,baidu,youcom --json
fasm extract "https://example.com"
fasm extract "https://example.com" --json
fasm doctor
fasm doctor --json
HTTP_AUTH_TOKEN=change-me MODE=http npx agent-search-mcp
fasm doctor lê a configuração local sem sondagens de rede e nunca imprime valores de credenciais ou proxy.
Documentação e evidências
| Documento | Conteúdo |
|---|---|
| Arquitetura do sistema | Roteamento, evidências, famílias de provedores e configuração |
| Panorama competitivo (2026-08-10) | Atividade de concorrentes até 2026-08-10, posicionamento e prioridades de melhoria |
| Panorama competitivo (2026-08-07) | Concorrentes de base, expectativas e instantâneo de lacunas de produto |
| Comparação de produtos | Revisão em nível de código-fonte dos produtos Agent Search |
| Benchmarks | Fixture de tokens, escopo de execução ao vivo e método de avaliação de qualidade |
| Notas de versão v3.2.0 | Política de provedores, orçamentos e notas de migração |
| Evidências anteriores de candidato a versão | Matriz de instalação empacotada pré-expansão e limitações |
| Prontidão MCP 2026 | Experimento de protocolo isolado e portões restantes |
Complemento: Slim Guard
O Agent Search controla o trabalho de recuperação e comprime as evidências de busca. O mcp-slim-guard fica entre um agente e os servidores MCP para lidar com a compressão de esquemas de ferramentas e a política de segurança.
npm install -g mcp-slim-guard
Desenvolvimento
git clone https://github.com/lennney/agent-search-mcp.git
cd agent-search-mcp
npm install
npm run build
npm test
npm run dev # stdio mode
npm run dev:http # HTTP mode (port 3000)
O pacote estável suporta Node.js 18, 20 e 22. O experimento isolado MCP 2026 requer Node.js 20 ou mais recente.
Licença
Baseado em open-websearch por Aas-ee.
Se o Agent Search MCP ajuda o seu agente, marque o repositório com estrela para que outros desenvolvedores possam encontrar o projeto.