agent search mcp

Servidor de búsqueda MCP gratuito de múltiples motores: 8 motores gratuitos (DDG, Sogou, Bing, Baidu, Wikipedia, Startpage, Yandex, Mojeek), búsqueda progresiva en cascada, verificación de múltiples fuentes, enriquecimiento de contenido, búsqueda de noticias, detección automática de idioma, exposición de límites de tasa. No se necesitan claves API. Autoalojable.

Documentación

Agent Search MCP: Búsqueda web gratuita con evidencia inspeccionable

Un servidor MCP y CLI de Node.js para búsqueda web en inglés y chino.

Agent Search MCP comienza sin clave de API. Devuelve evidencia compacta de múltiples fuentes, registra fallos de proveedores y limita el trabajo con presupuestos de solicitudes y evidencia. Los proveedores de pago se ejecutan solo cuando la política y las credenciales lo permiten.

npm version npm downloads GitHub stars CI License Glama

中文文档 · Página del producto · Benchmarks · Arquitectura · CHANGELOG


Instalación

npx -y agent-search-mcp

Requiere Node.js >= 18.17. El tiempo de ejecución predeterminado no requiere navegador, base de datos, Python ni una cuenta de API de búsqueda.

Conectar un cliente MCP

Use esta configuración stdio en clientes MCP que acepten JSON mcpServers, incluidos Claude Desktop, Cursor, VS Code y Windsurf:

{
  "mcpServers": {
    "agent-search": {
      "command": "npx",
      "args": ["-y", "agent-search-mcp"]
    }
  }
}

Claude Code y Codex pueden registrar el mismo comando stdio npx -y agent-search-mcp a través de su configuración de MCP.

Agregar la Skill de agente opcional

Después de conectar el servidor MCP, los clientes compatibles con Agent Skills pueden instalar la guía de enrutamiento propiedad del repositorio:

npx skills add lennney/agent-search-mcp --skill agent-search

Invóquela con una solicitud como Use $agent-search to verify this claim with official sources. La Agent Search Skill elige uno de cuatro caminos limitados: descubrimiento rápido, verificación más estricta, búsqueda en fuentes chinas o extracción de una URL seleccionada. Comprueba que la herramienta MCP necesaria exista y pregunta antes de cualquier cambio de instalación o configuración. Instalar la Skill no inicia ni configura el servidor MCP.

Ejemplo: inspeccionar un resultado de búsqueda limitado

Después de compilar el paquete local, ejecute una consulta CLI sin agregar una clave de proveedor:

npm run build
fasm search "MCP server without an API key" --json

El contrato de respuesta mantiene la evidencia del resultado, meta.execution y partialFailures separados. Un tiempo de espera o desafío del proveedor permanece visible para el agente en lugar de convertirse en un resultado vacío inexplicable. Este es un ejemplo de contrato, no un benchmark en vivo de disponibilidad o calidad de búsqueda.

Después de una instalación global, verifique el tiempo de ejecución local sin realizar una solicitud de búsqueda:

npm install -g agent-search-mcp
fasm doctor

Por qué Agent Search MCP

NecesidadComportamiento del producto
Búsqueda web gratuitaLas fuentes sin clave funcionan sin una cuenta de API
Control de costos del proveedorLos proveedores de pago se ejecutan solo bajo una política de enrutamiento explícita
Control de costos de tokensSalida compacta y un presupuesto de evidencia limitan el tamaño de la respuesta
Evidencia de múltiples fuentesLos resultados conservan procedencia, relevancia, recuento de familias de proveedores y fallos parciales
Búsqueda web en chinoSogou y Baidu manejan consultas en chino sin capa de traducción
Autohospedaje ligeroTiempo de ejecución puro de Node.js con acceso stdio, HTTP Streamable y CLI

La diferencia frente a un envoltorio multi-motor simple

Agregación multi-motor simpleAgent Search MCP
Devuelve N resultados deduplicadosDevuelve resultados más el número de fuentes independientes (familias de proveedores, no nombres de adaptadores)
Un fallo de proveedor elimina silenciosamente algunos resultadosCada fallo permanece en partialFailures (tiempo de espera, límite de tasa, desafío, permiso, presupuesto)
Se detiene cuando el recuento de resultados parece suficienteSe detiene solo después de una puerta de calidad (recuento, relevancia, confianza, cobertura de fuentes) y devuelve el stop_reason
Salida de tamaño fijoUn presupuesto de evidencia compartido limita los tokens de respuesta; el texto compacto conserva la procedencia
Un adaptador cuenta como una fuenteEl mismo proveedor ascendente a través de varios adaptadores nunca infla source_count

La demostración sin conexión de un minuto reproduce estas diferencias a través del evaluador y formateador de evidencia de producción:

Inspeccionar la evidencia de búsqueda

Cada respuesta JSON incluye un Paquete de Evidencia de Búsqueda. Responde las preguntas de enrutamiento que un agente necesita antes de usar un resultado:

PreguntaCampo de respuesta
¿Qué adaptadores se ejecutaron?meta.execution.searched_engines
¿Por qué se detuvo el enrutador?meta.execution.stop_reason y meta.execution.quality_gate
¿La solicitud alcanzó un límite de trabajo?meta.execution.budget
¿Se truncó la evidencia?meta.evidence_budget
¿Falló un proveedor ascendente?partialFailures
¿Representan varios adaptadores fuentes independientes?results[].source_count cuenta familias de proveedores, no nombres de adaptadores

Ejecute la demostración de contrato sin conexión de un minuto:

npm run demo:evidence
npm run demo:evidence -- --json

Reproduce tres escenarios sintéticos a través del evaluador de evidencia, formateador y asistente de salida MCP de producción: superposición de adaptadores de la misma familia, fallo de respaldo visible y una parada de puerta de calidad limitada. No hace ninguna afirmación en vivo de disponibilidad o calidad de búsqueda y no realiza ninguna solicitud de red.

La política free_first predeterminada nunca gasta una credencial de API configurada. free_only bloquea proveedores de pago. quality_escalation puede llamar a un proveedor de pago configurado después de que la evidencia gratuita no supere la puerta de calidad, mientras que paid_first prueba ese proveedor antes del respaldo gratuito.

Los presupuestos de solicitud limitan los intentos de adaptadores, el tiempo transcurrido y los resultados admitidos. El presupuesto de evidencia limita los pasajes relevantes a la consulta en toda la respuesta. El modo compacto mantiene detalles completos para los primeros resultados y reduce las entradas posteriores a referencias que conservan la fuente.

Reducción de tokens medida

El fixture bilingüe verificado mide el formato con un tokenizador bloqueado:

SalidaTokens promedio por consultaAhorro vs normal
Normal2396.0
Compacto1650.131.1%
Compacto+1633.031.8%

Este fixture verifica el formato de salida y el comportamiento del paquete de evidencia. No mide la disponibilidad en vivo del motor ni la calidad de búsqueda. Consulte el método de benchmark y limitaciones.

Cómo funciona el enrutador de búsqueda

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"]

El enrutador evalúa cada lote de búsqueda contra puertas separadas de resultados, relevancia, confianza y familias de proveedores. Se detiene después de que la evidencia supere esas puertas y expone la decisión en meta.execution. Los fallos de proveedores permanecen visibles en partialFailures, por lo que un resultado vacío no puede ocultar un error ascendente.

El panorama competitivo (2026-08-07) mapea la línea base saturada y las brechas del producto. Registra fechas de fuentes y commits fijos para hechos que pueden cambiar. La actualización del 2026-08-10 agrega actividad de competidores desde entonces: los competidores locales directos están inactivos y la evidencia eficiente en tokens se está convirtiendo en una palanca explícita de la industria. La comparación de productos a nivel de fuente anterior contiene la evidencia específica de la arquitectura.


Motores

El tiempo de ejecución registra 16 adaptadores: 9 adaptadores sin clave y 7 adaptadores de API opcionales.

MotorAccesoIdiomasRol
DuckDuckGoSin claveenBúsqueda web general
Sogou SearchSin clavezhBúsqueda web en chino
BingSin claveen, zhBúsqueda web multilingüe
BaiduSin clavezhBúsqueda web en chino
WikipediaSin claveen, zh, ja, de, fr, es, autoReferencias enciclopédicas
StartpageSin claveen, autoBúsqueda web orientada a la privacidad
YandexSin claveru, en, autoBúsqueda web rusa e internacional
MojeekSin claveen, autoÍndice independiente orientado a la privacidad
WibySin claveenÍndice independiente de la web pequeña
Brave SearchBRAVE_API_KEYen, zhBúsqueda web comercial opcional
Tavily SearchTAVILY_API_KEYen, zhBúsqueda opcional orientada a agentes
Exa SearchEXA_API_KEYen, zhBúsqueda neuronal opcional
You.com SearchYDC_API_KEYen, zhBúsqueda web comercial opcional
Tencent Web Search APITENCENT_WSA_API_KEYzhBúsqueda web china oficial opcional
Bocha Web SearchBOCHA_API_KEYzh, enBúsqueda de IA china opcional
Serper Google SearchSERPER_API_KEYen, zh, autoBúsqueda SERP de Google opcional

Herramientas

HerramientaDescripciónMejor para
free_searchBúsqueda web multi-motor con respaldo limitadoDatos rápidos y descubrimiento general
free_search_advancedBúsqueda en cascada filtrada y enriquecimiento opcionalPolítica de dominio y verificación progresiva
free_extractExtraer una URL como Markdown limpioLeer páginas fuente completas
fetch_github_readmeObtener el README de un repositorio público de GitHubDocumentación de proyectos
fetch_csdn_articleObtener un artículo de CSDNArtículos técnicos en chino
fetch_juejin_articleObtener un artículo de JuejinArtículos de desarrolladores chinos
search_with_synthesisEvidencia de búsqueda con una pista de síntesis LLMRespuestas redactadas por agentes a partir de evidencia citada

Controles de capacidades

EntornoPredeterminadoPropósito
ENABLED_TOOLS / DISABLED_TOOLSall / noneLista de permitidos y denegados de registro de herramientas; la denegación gana
ALLOWED_ENGINES / DENIED_ENGINESall / noneLista de permitidos y denegados de ejecución de motores; la denegación gana
SEARCH_PROVIDER_MODEfree_firstEnrutamiento predeterminado: free_first, quality_escalation, paid_first o free_only
PAID_ENGINE_ORDERbrave,exa,tavily,youcom,tencent_wsa,bocha,serperSelecciona el primer proveedor opcional configurado; no es una afirmación de calidad
SEARCH_BUDGET_MAX_CALLS16Presupuesto de intentos de adaptadores
SEARCH_BUDGET_MAX_ELAPSED_MS30000Presupuesto de tiempo transcurrido de extremo a extremo
SEARCH_BUDGET_MAX_RESULTS100Presupuesto de resultados brutos admitidos
EVIDENCE_BUDGET_CHARS1200Presupuesto de caracteres de evidencia

search_with_synthesis usa el mismo paquete de evidencia canónico structuredContent que las herramientas de búsqueda principales y agrega prompt_hint; su contenido de texto es solo una vista de compatibilidad compacta. Los metadatos de ejecución distinguen adaptadores programados de intentos de adaptadores con reintentos. http_requests es null hasta que todos los transportes de adaptadores puedan informarlo sin precisión falsa.

Wiby es una fuente genuina sin clave respaldada por su API JSON oficial y se usa tarde en la cascada gratuita como un suplemento independiente de la web pequeña. Los proveedores opcionales requieren credenciales de usuario; cualquier crédito de registro o cuota de prueba está controlado por el proveedor y no se trata como acceso gratuito permanente.

Todas las herramientas son de solo lectura e idempotentes. La cancelación de búsqueda llega a esperas de límite de tasa, reintentos, solicitudes de proveedores y enriquecimiento opcional. El enriquecimiento puede mejorar un fragmento pero no puede aumentar la confianza de la fuente ni el recuento de fuentes independientes.

free_search_advanced.time_range permanece en el esquema de compatibilidad. El servidor devuelve UNSUPPORTED_FILTER antes de buscar porque los proveedores web generales no comparten un contrato de actualidad ejecutable.


Configuración

La tabla de capacidades generada anteriormente enumera los presupuestos de solicitud predeterminados. Estos ajustes cubren las opciones de implementación comunes:

ObjetivoVariables de entorno
Agregar un proveedor opcionalBRAVE_API_KEY, TAVILY_API_KEY, EXA_API_KEY, YDC_API_KEY, TENCENT_WSA_API_KEY, BOCHA_API_KEY o SERPER_API_KEY
Elegir política de gastoSEARCH_PROVIDER_MODE, PAID_ENGINE_ORDER
Reducir tokens de respuestaOUTPUT_STYLE=compact, MAX_FULL_RESULTS, SNIPPET_LENGTH, EVIDENCE_BUDGET_CHARS
Restringir herramientas o motoresENABLED_TOOLS, DISABLED_TOOLS, ALLOWED_ENGINES, DENIED_ENGINES
Usar un proxy explícitoDUCKDUCKGO_PROXY_URL, SOGOU_PROXY_URL, MOJEEK_PROXY_URL, WIBY_PROXY_URL o USE_PROXY=true con PROXY_URL
Usar un grupo de proxies propiedad del usuarioDUCKDUCKGO_PROXY_URLS, SOGOU_PROXY_URLS, MOJEEK_PROXY_URLS o WIBY_PROXY_URLS como una matriz JSON de 2-16 URL de proxy HTTP(S)
Persistir la caché de resultados exactosSEARCH_CACHE_DIRECTORY, SEARCH_CACHE_TTL_MS, SEARCH_CACHE_MAX_ENTRIES
Habilitar procesamiento semántico opcionalSEMANTIC_DEDUP, SEMANTIC_RERANK, DEDUP_THRESHOLD, RERANK_TOP_K

Agregar una clave de API no autoriza tráfico de pago. La política de enrutamiento controla el uso del proveedor. La caché de resultados exactos predeterminada permanece en memoria; configurar SEARCH_CACHE_DIRECTORY opta por la persistencia local. El procesamiento semántico es la única característica opcional que usa Python y Model2Vec. Los grupos de proxies seleccionan una primera salida determinista de la consulta lógica y mantienen las solicitudes de proveedor de múltiples pasos fijas. Solo una falla de transporte puede mover a la siguiente salida configurada; un transporte fallido se enfría durante 60 segundos. Las respuestas HTTP, incluyendo 403, 429 y páginas de desafío, nunca activan el cambio de proxy y continúan a través del contrato de enfriamiento existente del proveedor. Las variables de proxy único específicas del motor tienen prioridad sobre su grupo. Las credenciales de proxy nunca se imprimen por fasm doctor.

Implementación HTTP

El modo HTTP requiere HTTP_AUTH_TOKEN a menos que establezcas HTTP_ALLOW_UNAUTHENTICATED=true. Las solicitudes del navegador con un encabezado Origin deben coincidir con ALLOWED_ORIGINS. Consulta la guía de implementación HTTP para la terminación TLS, rotación de tokens y ejemplos de proxy inverso.


CLI

El paquete incluye la 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 lee la configuración local sin sondeos de red y nunca imprime valores de credenciales o proxies.


Documentación y evidencia

DocumentoContenido
Arquitectura del sistemaEnrutamiento, evidencia, familias de proveedores y configuración
Panorama competitivo (2026-08-10)Actividad de competidores hasta 2026-08-10, posicionamiento y prioridades de mejora
Panorama competitivo (2026-08-07)Competidores base, expectativas y instantánea de brechas de producto
Comparación de productosRevisión a nivel de fuente de productos de Agent Search
BenchmarksFixture de tokens, alcance de ejecución en vivo y método de evaluación de calidad
Notas de la versión v3.2.0Política de proveedores, presupuestos y notas de migración
Evidencia de candidatos de versión anterioresMatriz de instalación empaquetada previa a la expansión y limitaciones
Preparación MCP 2026Experimento de protocolo aislado y puertas restantes

Compañero: Slim Guard

Agent Search controla el trabajo de recuperación y comprime la evidencia de búsqueda. mcp-slim-guard se sitúa entre un agente y los servidores MCP para manejar la compresión de esquemas de herramientas y la política de seguridad.

npm install -g mcp-slim-guard

Desarrollo

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)

El paquete estable soporta Node.js 18, 20 y 22. El experimento aislado MCP 2026 requiere Node.js 20 o más reciente.


Licencia

Apache 2.0

Basado en open-websearch por Aas-ee.

Si Agent Search MCP ayuda a tu agente, marca el repositorio con una estrella para que otros desarrolladores puedan encontrar el proyecto.