Skip to main content
Glama
am24check

mcp-web-search-server

by am24check

mcp-web-search-server

Servidor MCP independiente que expone las herramientas web_search y web_fetch a través de HTTP. Cualquier cliente MCP (Claude Desktop, Cursor, etc.) puede conectarse a él para realizar búsquedas web y obtener páginas web.

Funciona de inmediato sin claves API: web_search/web_search_exa usan el endpoint público de MCP de Exa, que acepta solicitudes no autenticadas (con límite de velocidad). Establece EXA_API_KEY para límites más altos, o PARALLEL_API_KEY para habilitar también web_search_parallel.

Tools

Tool

Descripción

web_fetch

Obtiene y analiza una URL, devolviendo markdown o texto plano

web_search

Busca en la web usando Exa o Parallel AI (seleccionado automáticamente por sesión)

web_search_exa

Busca usando Exa AI específicamente

web_search_parallel

Busca usando Parallel AI específicamente

Cómo funciona:

┌──────────────┐     MCP HTTP      ┌──────────────────────────┐     HTTP      ┌──────────────┐
│  MCP Client   │ ◄───────────────► │  web-search-server        │ ◄──────────► │  Exa AI      │
│  (Claude,     │     Streamable    │  :9877/mcp               │               │  mcp.exa.ai  │
│   Cursor,     │                   │                          │               └──────────────┘
│   etc.)       │                   │  Tools:                  │
└──────────────┘                   │  • web_search (auto)     │ ── HTTP ──► ┌──────────────┐
                                   │  • web_search_exa        │               │  Parallel    │
                                   │  • web_search_parallel   │               │  search.     │
                                   │  • web_fetch             │               │  parallel.ai │
                                   └──────────────────────────┘               └──────────────┘

Decisiones clave de diseño:

  1. Async/await simple — sin framework, solo fetch nativo (el fetch de Bun)

  2. Transporte HTTP transmisible — usa WebStandardStreamableHTTPServerTransport de @modelcontextprotocol/sdk, con una sesión (transporte + instancia de servidor) por cliente conectado

  3. Selección de proveedor — el hash del ID de sesión elige exa/parallel para la herramienta genérica web_search, con anulaciones de variables de entorno

  4. HTML→Markdown — usa turndown para la extracción de markdown, y una pequeña máquina de estados para la extracción de texto plano

Related MCP server: free-web-mcp

Quick Start

# Install dependencies
bun install

# Run the server (default port 9877)
bun run src/index.ts

Configuración

Variables de entorno:

Variable

Default

Descripción

PORT

9877

Puerto HTTP para escuchar

HOSTNAME

0.0.0.0

Host al que vincularse

EXA_API_KEY

-

Clave API de Exa opcional, para límites de velocidad más altos

PARALLEL_API_KEY

-

Clave API de Parallel (habilita web_search_parallel)

ENABLE_EXA

1 (on by default)

Establece en 0 para deshabilitar web_search_exa

ENABLE_PARALLEL

inferred from PARALLEL_API_KEY

Forzar la habilitación de Parallel sin clave

WEBSEARCH_PROVIDER

hash-based

Forzar exa o parallel para web_search

Conectarse desde un cliente MCP

Apunta tu cliente MCP a: http://localhost:9877/mcp

Este es un servidor MCP estándar que usa el transporte HTTP transmisible.

Ejemplos de uso

Obtener una página web como markdown

{
  "name": "web_fetch",
  "arguments": {
    "url": "https://example.com",
    "format": "markdown"
  }
}

Buscar en la web

{
  "name": "web_search",
  "arguments": {
    "query": "latest JavaScript features 2026",
    "numResults": 5
  }
}

Desarrollo

# Type check
bunx tsc --noEmit

# Run in foreground
bun run src/index.ts

Arquitectura

  • web_search hace de proxy a los endpoints MCP de Exa y Parallel

  • web_fetch usa fetch nativo con conversión HTML→Markdown (turndown) y respaldo de Cloudflare

  • El servidor MCP usa @modelcontextprotocol/sdk con WebStandardStreamableHTTPServerTransport

  • Escucha en HTTP estándar (no requiere stdio)

Las implementaciones de las herramientas web_search/web_fetch se adaptaron originalmente de la herramienta de búsqueda web integrada de OpenCode, y luego se extrajeron a este servidor independiente.

Licencia

MIT

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers