Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Español
Obtén una clave API

Docs · MCP · claude mcp add comprobado el 22 de octubre de 2026

Servidor MCP de búsqueda web para Claude Code, Claude Desktop, Cursor y otros clientes MCP

Dale a cualquier cliente MCP dos herramientas: search_web, que devuelve fuentes clasificadas con las páginas principales ya leídas, y read_urls, que lee enlaces que el modelo ya tiene. El servidor es un archivo Python que se ejecuta en tu máquina, con tu clave en su entorno.

Última actualización: · 6 min de lectura

Respuesta rápida

¿Cómo añado un servidor MCP de búsqueda web a Claude Code o Claude Desktop?

Guarda el breve servidor Python de esta página, que expone las herramientas search_web y read_urls que llaman a LLMWebSearch, y luego regístralo con claude mcp add o en claude_desktop_config.json, con tu clave en env. El modelo puede entonces buscar en la web en vivo y leer las páginas principales como Markdown. Una búsqueda cuesta 1 crédito, desde 1,20 US$/1K búsquedas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas.

El servidor MCP de un vistazo

LenguajePython 3.10+, con los paquetes mcp y httpx
Transportestdio: el cliente inicia el servidor como un proceso local
Herramienta 1search_web(query, max_results=5, read=3) → fuentes numeradas con URLs y texto de la página
Herramienta 2read_urls(urls) → el contenido principal de 1 a 20 páginas conocidas
NombresNo web_search ni web_fetch: Claude Code y OpenClaw ya incluyen herramientas con esos nombres
ClaveLee de LLMWEBSEARCH_API_KEY en el entorno del servidor
FacturaciónUn crédito paga una búsqueda: hasta 20 resultados clasificados, con las páginas de los 3 primeros leídas y devueltas como Markdown. Leer de 4 a 10 páginas pasa a 2 créditos. Una llamada que termina en error no cuesta nada. Leer páginas cuyas URL ya tienes cuesta 1 crédito por cada grupo iniciado de 3 páginas devueltas con contenido, hasta 20 URL por llamada; las URL rechazadas o fallidas no se cuentan

¿Por qué las herramientas se llaman search_web y read_urls?

Porque dos herramientas con el mismo nombre confunden al cliente y al modelo. Claude Code y OpenClaw incluyen cada uno herramientas integradas llamadas web_search y web_fetch. Nombres distintos, con descripciones claras, permiten al modelo elegir las nuestras a propósito y a ti distinguir las llamadas en los logs.

Ambas herramientas devuelven texto, no JSON en bruto. Cada fuente empieza con un número, un título y su URL, así el modelo puede citar [1] o [2] y el lector puede comprobar la página.

llmwebsearch_mcp.py
import os

import httpx
from mcp.server.fastmcp import FastMCP

BASE = "https://llmwebsearch.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}
mcp = FastMCP("llmwebsearch")


def _call(path: str, body: dict) -> dict:
    resp = httpx.post(BASE + path, json=body, headers=HEADERS, timeout=90)
    data = resp.json()
    if resp.status_code != 200:
        err = data.get("error", {})
        raise RuntimeError(err.get("code", str(resp.status_code)) + ": " + err.get("message", ""))
    return data


def _page(n: int, item: dict) -> str:
    head = f"[{n}] {item.get('title') or item['url']}\n{item['url']}\n"
    if item.get("content_status") == "ok":
        return head + item["content"]
    return head + "(not read: " + item.get("content_status", "unknown") + ") " + item.get("snippet", "")


@mcp.tool()
def search_web(query: str, max_results: int = 5, read: int = 3) -> str:
    """Search the live web and return numbered sources; the first `read` pages include their text.

    Use it for current facts, documentation and news. Cite sources by their number.
    """
    body = {"q": query, "max_results": max(1, min(max_results, 20)), "read": max(0, min(read, 10)), "max_chars": 5000}
    data = _call("/search", body)
    return "\n\n".join(_page(i, r) for i, r in enumerate(data["results"], start=1))


@mcp.tool()
def read_urls(urls: list[str]) -> str:
    """Read 1 to 20 public web pages whose URLs you already have and return their main text."""
    data = _call("/extract", {"urls": urls[:20], "max_chars": 12000})
    return "\n\n".join(_page(i, r) for i, r in enumerate(data["results"], start=1))


if __name__ == "__main__":
    mcp.run()

¿Cómo instalo y pruebo el servidor?

Crea un entorno virtual, instala mcp y httpx, y guarda el archivo de arriba. mcp es el SDK oficial de Python del Model Context Protocol; su clase FastMCP convierte funciones Python tipadas en herramientas y usa cada docstring como descripción de la herramienta.

Inicia el archivo una vez desde un terminal con tu clave configurada. Luego espera en silencio a un cliente por la entrada estándar, lo que significa que funciona; deténlo con Ctrl+C. Los errores de la API se lanzan como errores de herramienta con su código, así el modelo ve rate_limited o insufficient_credits en palabras claras.

Instalar e iniciar una vez
python -m venv .venv
. .venv/bin/activate
pip install "mcp[cli]" httpx
LLMWEBSEARCH_API_KEY="your-key" python llmwebsearch_mcp.py

¿Cómo lo añado a Claude Code?

Usa claude mcp add. La documentación de Claude Code da la forma claude mcp add [options] <name> -- <command> [args...]: primero sus propias opciones, luego un doble guion, y después el comando que inicia el servidor. Las variables de entorno van en --env KEY=value, y al menos otra opción, como --transport stdio, debe ir entre --env y el nombre del servidor.

Añade --scope user para que el servidor esté disponible en todos tus proyectos; el ámbito predeterminado, local, cubre solo el proyecto actual. Usa rutas absolutas para el Python de tu entorno virtual y para el archivo del servidor.

Registrar el servidor en Claude Code
claude mcp add --env LLMWEBSEARCH_API_KEY=your-key --transport stdio --scope user llmwebsearch \
  -- /home/you/llmwebsearch/.venv/bin/python /home/you/llmwebsearch/llmwebsearch_mcp.py

¿Cómo lo añado a Claude Desktop y a otros clientes?

Claude Desktop lee los servidores desde claude_desktop_config.json, en mcpServers. Dale un nombre al servidor, el comando, sus argumentos y un objeto env que contenga la clave, y luego reinicia la aplicación; search_web y read_urls aparecen en la lista de herramientas.

Otros clientes MCP, como Cursor, piden esas mismas tres cosas en sus propios ajustes MCP: un comando, sus argumentos y variables de entorno. La clave nunca aparece en un argumento de herramienta ni en la conversación.

claude_desktop_config.json
{
  "mcpServers": {
    "llmwebsearch": {
      "command": "/home/you/llmwebsearch/.venv/bin/python",
      "args": ["/home/you/llmwebsearch/llmwebsearch_mcp.py"],
      "env": { "LLMWEBSEARCH_API_KEY": "your-key" }
    }
  }
}

¿Cómo mantengo las búsquedas económicas y breves?

Dile al modelo cómo buscar en tus instrucciones: una o dos búsquedas por pregunta y luego lee más solo si las fuentes no coinciden. El servidor ya limita cada página a 5.000 caracteres en search_web y 12.000 en read_urls; baja esos números para modelos pequeños.

Cada llamada a search_web con read hasta 3 es un crédito. Un asistente que hace 40 búsquedas al día usa unos 1.200 créditos al mes, así que 5.000 búsquedas (9,25 US$) dura alrededor de cuatro meses. Los créditos de búsqueda no caducan: lo que no uses este mes seguirá ahí el año que viene.

¿Qué ve el modelo cuando no se puede leer una página?

La fuente sigue apareciendo, con su número, título y URL, seguida del motivo entre corchetes y el fragmento de la búsqueda. Nuestro lector respeta robots.txt: se identifica como LLMWebSearch, sigue las reglas que un sitio escribe para él o para todos los robots, y deja fuera el contenido de cualquier página que no tenga permitido leer. Cuando un sitio rechaza a nuestro lector, el resultado vuelve sin contenido y con el estado del sitio: nunca resolvemos CAPTCHAs, iniciamos sesión en cuentas ni sorteamos un bloqueo o un paywall. El modelo puede entonces apoyarse en las otras fuentes o decir que una página no estaba disponible.

Servidor MCP: preguntas frecuentes

¿Existe un paquete MCP oficial de LLMWebSearch o un endpoint alojado?

No. El archivo de esta página es la integración: unas 50 líneas que puedes leer y modificar. Se ejecuta en tu máquina y tu clave solo viaja a nuestra API.

¿Debo desactivar la búsqueda web integrada de Claude Code?

No hace falta. Pueden convivir ambas; las descripciones le dicen al modelo qué hace cada una. Mantén la nuestra cuando quieras el texto de la página en los resultados, un precio fijo por búsqueda o un único lugar para tus registros de búsqueda.

¿Puedo usarlo con OpenClaw?

Sí, como un servidor MCP registrado con openclaw mcp add. La página de OpenClaw da el comando y explica cómo convive con los proveedores de búsqueda integrados de OpenClaw.

¿El servidor guarda mis búsquedas?

No. No conserva nada entre llamadas. Por nuestra parte, No entrenamos ningún modelo con tus consultas ni con lo que devuelve la API, y no añadimos ninguna regla propia contra almacenar resultados; los derechos de los sitios cuyas páginas lees siguen aplicándose.

Fuentes (1)
  1. Conectar Claude Code a herramientas mediante MCP — Claude Code docs (read 2026-10-22)

Desde 1,20 US$/1K búsquedas · sin KYC

Obtén una clave API