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.
中文文档 · 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
| Necesidad | Comportamiento del producto |
|---|---|
| Búsqueda web gratuita | Las fuentes sin clave funcionan sin una cuenta de API |
| Control de costos del proveedor | Los proveedores de pago se ejecutan solo bajo una política de enrutamiento explícita |
| Control de costos de tokens | Salida compacta y un presupuesto de evidencia limitan el tamaño de la respuesta |
| Evidencia de múltiples fuentes | Los resultados conservan procedencia, relevancia, recuento de familias de proveedores y fallos parciales |
| Búsqueda web en chino | Sogou y Baidu manejan consultas en chino sin capa de traducción |
| Autohospedaje ligero | Tiempo 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 simple | Agent Search MCP |
|---|---|
| Devuelve N resultados deduplicados | Devuelve resultados más el número de fuentes independientes (familias de proveedores, no nombres de adaptadores) |
| Un fallo de proveedor elimina silenciosamente algunos resultados | Cada fallo permanece en partialFailures (tiempo de espera, límite de tasa, desafío, permiso, presupuesto) |
| Se detiene cuando el recuento de resultados parece suficiente | Se detiene solo después de una puerta de calidad (recuento, relevancia, confianza, cobertura de fuentes) y devuelve el stop_reason |
| Salida de tamaño fijo | Un presupuesto de evidencia compartido limita los tokens de respuesta; el texto compacto conserva la procedencia |
| Un adaptador cuenta como una fuente | El 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:
| Pregunta | Campo 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:
| Salida | Tokens promedio por consulta | Ahorro vs normal |
|---|---|---|
| Normal | 2396.0 | |
| Compacto | 1650.1 | 31.1% |
| Compacto+ | 1633.0 | 31.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.
| Motor | Acceso | Idiomas | Rol |
|---|---|---|---|
| DuckDuckGo | Sin clave | en | Búsqueda web general |
| Sogou Search | Sin clave | zh | Búsqueda web en chino |
| Bing | Sin clave | en, zh | Búsqueda web multilingüe |
| Baidu | Sin clave | zh | Búsqueda web en chino |
| Wikipedia | Sin clave | en, zh, ja, de, fr, es, auto | Referencias enciclopédicas |
| Startpage | Sin clave | en, auto | Búsqueda web orientada a la privacidad |
| Yandex | Sin clave | ru, en, auto | Búsqueda web rusa e internacional |
| Mojeek | Sin clave | en, auto | Índice independiente orientado a la privacidad |
| Wiby | Sin clave | en | Índice independiente de la web pequeña |
| Brave Search | BRAVE_API_KEY | en, zh | Búsqueda web comercial opcional |
| Tavily Search | TAVILY_API_KEY | en, zh | Búsqueda opcional orientada a agentes |
| Exa Search | EXA_API_KEY | en, zh | Búsqueda neuronal opcional |
| You.com Search | YDC_API_KEY | en, zh | Búsqueda web comercial opcional |
| Tencent Web Search API | TENCENT_WSA_API_KEY | zh | Búsqueda web china oficial opcional |
| Bocha Web Search | BOCHA_API_KEY | zh, en | Búsqueda de IA china opcional |
| Serper Google Search | SERPER_API_KEY | en, zh, auto | Búsqueda SERP de Google opcional |
Herramientas
| Herramienta | Descripción | Mejor para |
|---|---|---|
free_search | Búsqueda web multi-motor con respaldo limitado | Datos rápidos y descubrimiento general |
free_search_advanced | Búsqueda en cascada filtrada y enriquecimiento opcional | Política de dominio y verificación progresiva |
free_extract | Extraer una URL como Markdown limpio | Leer páginas fuente completas |
fetch_github_readme | Obtener el README de un repositorio público de GitHub | Documentación de proyectos |
fetch_csdn_article | Obtener un artículo de CSDN | Artículos técnicos en chino |
fetch_juejin_article | Obtener un artículo de Juejin | Artículos de desarrolladores chinos |
search_with_synthesis | Evidencia de búsqueda con una pista de síntesis LLM | Respuestas redactadas por agentes a partir de evidencia citada |
Controles de capacidades
| Entorno | Predeterminado | Propósito |
|---|---|---|
ENABLED_TOOLS / DISABLED_TOOLS | all / none | Lista de permitidos y denegados de registro de herramientas; la denegación gana |
ALLOWED_ENGINES / DENIED_ENGINES | all / none | Lista de permitidos y denegados de ejecución de motores; la denegación gana |
SEARCH_PROVIDER_MODE | free_first | Enrutamiento predeterminado: free_first, quality_escalation, paid_first o free_only |
PAID_ENGINE_ORDER | brave,exa,tavily,youcom,tencent_wsa,bocha,serper | Selecciona el primer proveedor opcional configurado; no es una afirmación de calidad |
SEARCH_BUDGET_MAX_CALLS | 16 | Presupuesto de intentos de adaptadores |
SEARCH_BUDGET_MAX_ELAPSED_MS | 30000 | Presupuesto de tiempo transcurrido de extremo a extremo |
SEARCH_BUDGET_MAX_RESULTS | 100 | Presupuesto de resultados brutos admitidos |
EVIDENCE_BUDGET_CHARS | 1200 | Presupuesto 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:
| Objetivo | Variables de entorno |
|---|---|
| Agregar un proveedor opcional | BRAVE_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 gasto | SEARCH_PROVIDER_MODE, PAID_ENGINE_ORDER |
| Reducir tokens de respuesta | OUTPUT_STYLE=compact, MAX_FULL_RESULTS, SNIPPET_LENGTH, EVIDENCE_BUDGET_CHARS |
| Restringir herramientas o motores | ENABLED_TOOLS, DISABLED_TOOLS, ALLOWED_ENGINES, DENIED_ENGINES |
| Usar un proxy explícito | DUCKDUCKGO_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 usuario | DUCKDUCKGO_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 exactos | SEARCH_CACHE_DIRECTORY, SEARCH_CACHE_TTL_MS, SEARCH_CACHE_MAX_ENTRIES |
| Habilitar procesamiento semántico opcional | SEMANTIC_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
| Documento | Contenido |
|---|---|
| Arquitectura del sistema | Enrutamiento, 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 productos | Revisión a nivel de fuente de productos de Agent Search |
| Benchmarks | Fixture de tokens, alcance de ejecución en vivo y método de evaluación de calidad |
| Notas de la versión v3.2.0 | Política de proveedores, presupuestos y notas de migración |
| Evidencia de candidatos de versión anteriores | Matriz de instalación empaquetada previa a la expansión y limitaciones |
| Preparación MCP 2026 | Experimento 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
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.