SearXNG HTTP MCP
Servidor MCP SearXNG autónomo en Docker con más de 200 motores de búsqueda, transporte dual (HTTP + stdio), autenticación por clave API e interfaz web integrada.
Documentación
中文 · Inicio rápido · Características · Arquitectura · Comparación · Uso · Herramientas MCP · Configuración del cliente · Plugin · Contribuciones
Un servidor MCP autónomo que envuelve SearXNG, un metabuscador gratuito y respetuoso con la privacidad que agrega resultados de más de 200 motores de búsqueda.
🚀 Inicio rápido
Modo servidor — implementa una vez, conéctate desde cualquier cliente:
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
ghcr.io/whw23/searxng-http-mcp:latest
Luego conecta tu cliente a http://YOUR_HOST:YOUR_PORT/mcp/. Para habilitar la autenticación por clave API, consulta Autenticación.
Modo local — no se necesita servidor, se ejecuta directamente en tu cliente:
docker run --rm -i --memory=512m --cpus=1 ghcr.io/whw23/searxng-http-mcp:latest --stdio
Agrégalo como servidor MCP stdio en tu cliente — consulta Configuración del cliente para más detalles.
Modo uvx — si ya tienes SearXNG en ejecución (guía de instalación):
uvx searxng-http-mcp
Establece SEARXNG_URL para apuntar a tu instancia de SearXNG (por defecto: http://127.0.0.1:8080).
✨ Características
Búsqueda
- 🔍 Más de 200 motores de búsqueda — Google, Bing, DuckDuckGo, Brave y más a través de SearXNG
- 📂 Más de 30 categorías — noticias, imágenes, videos, ciencia, TI y más
- 📄 Expansión multipágina — hasta 5 páginas por llamada
- 💡 Sugerencias de autocompletado — descubre términos de búsqueda relevantes
- 🗂 Descubrimiento de motores — consulta los motores disponibles agrupados por categoría
- 🎯 Eficiente en tokens — resultados recortados a lo esencial
Infraestructura
- 📦 Autónomo — SearXNG integrado en la imagen Docker
- 🔄 Triple transporte — servidor HTTP, Docker stdio y uvx independiente
- 🔐 Autenticación —
x-api-key+ Autenticación básica HTTP - 🌐 Proxy inverso — Interfaz web de SearXNG en el mismo puerto
- ⚡ Descripciones dinámicas de herramientas — listas de categorías en vivo inyectadas al inicio
- 📐 Rich JSON Schema — restricciones enum, límites de rango y descripciones en cada parámetro
🏛 Arquitectura
graph LR
Client(["client:YOUR_PORT"]) --> Expose(":8888")
subgraph Container["🐳 Docker Container"]
direction LR
Expose --> Auth{Auth}
Auth -->|/mcp| MCP[FastMCP Server]
Auth -->|/*| Proxy[Reverse Proxy]
MCP --> SearXNG[SearXNG :8080]
Proxy --> SearXNG
end
style Expose fill:none,stroke:#2496ed,stroke-dasharray:5 5,color:#2496ed
style Client fill:#4a90d9,color:#fff,stroke:#3a7bc8
style Container fill:#f0f4f8,stroke:#2496ed,stroke-width:2px,color:#2496ed
style Auth fill:#f5a623,color:#fff,stroke:#d4900e
style MCP fill:#50c878,color:#fff,stroke:#3da85e
style Proxy fill:#9b59b6,color:#fff,stroke:#8344a5
style SearXNG fill:#e74c3c,color:#fff,stroke:#c0392b
📊 Comparación con alternativas
¿Por qué estos cinco?
Hay más de 20 servidores MCP de SearXNG y muchos más MCP de búsqueda de propósito general. La mayoría de los envoltorios de SearXNG solo exponen una herramienta de búsqueda básica, dejando sin usar las categorías, el autocompletado y los metadatos de motores de SearXNG. Elegimos cinco alternativas que cada una representa una categoría distinta:
- 88plug/searxng-mcp — la superficie de herramientas más rica entre los MCP de SearXNG (7 herramientas: fetch renderizado, modo investigación, consultas paralelas)
- ihor/mcp-searxng — la mayor cantidad de estrellas en GitHub entre los MCP de SearXNG
- open-webSearch — la mejor alternativa gratuita de múltiples motores fuera del ecosistema SearXNG (Bing, Baidu, DuckDuckGo, Brave, etc.)
- exa-mcp-server — el MCP de API de búsqueda comercial más popular
- Perplexity MCP — búsqueda comercial impulsada por IA, la mayor cantidad de estrellas en el espacio de MCP de búsqueda
| Característica | ✨ Este proyecto | 88plug/searxng-mcp | ihor/mcp-searxng | open-webSearch | exa-mcp-server | Perplexity MCP |
|---|---|---|---|---|---|---|
| Búsqueda | ||||||
| Más de 200 motores vía SearXNG | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Más de 30 categorías de búsqueda | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Expansión multipágina | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Sugerencias de autocompletado | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Herramienta de descubrimiento de motores | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Descripciones dinámicas de herramientas | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Infraestructura | ||||||
| Autónomo (búsqueda integrada) | ✅ | ❌ | ❌ | ✅ | N/A | N/A |
| Implementación Docker sin instalación | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
| Transporte HTTP + stdio | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Autenticación | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Proxy inverso de interfaz web | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Plugin de agente de codificación IA | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| General | ||||||
| Gratis y de código abierto | ✅ | ✅ | ✅ | ✅ | ❌ (API de pago) | ❌ (API de pago) |
| Privacidad (autohospedado) | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Lenguaje | Python | Python | Node.js | TypeScript | TypeScript | TypeScript |
| Estrellas de GitHub | ||||||
¿Por qué menos herramientas?
MCP está diseñado para composición: los clientes conectan múltiples servidores especializados, cada uno haciendo bien una sola cosa. Algunas alternativas incluyen la obtención de URLs, extracción de páginas renderizadas, expansión de múltiples consultas o modos de investigación dentro del servidor de búsqueda. Mantenemos la superficie de herramientas en tres (búsqueda, autocompletado, descubrimiento de motores) por diseño:
- La obtención de URLs es una preocupación separada. Los clientes MCP ya incluyen herramientas dedicadas (WebFetch, Playwright MCP, Jina Reader). Incluir fetch en un servidor de búsqueda mezcla responsabilidades y duplica el ecosistema del cliente.
- La búsqueda paralela con múltiples consultas es orquestación del lado del cliente. Los clientes LLM pueden lanzar múltiples llamadas
searchen paralelo: una herramientasearch_manysolo añade sobrecarga de tokens para la selección de herramientas sin beneficio real. - La investigación/síntesis pertenece a la capa LLM. El modelo es el mejor sintetizador. Empujar la lógica de investigación de múltiples pasos hacia el servidor MCP acopla preocupaciones de aplicación a la infraestructura.
En su lugar, invertimos en lo que a las alternativas anteriores les falta: cobertura completa de la API de SearXNG (categorías, autocompletado, metadatos de motores — capacidades que la mayoría de los envoltorios dejan sobre la mesa), implementación autónoma, autenticación, proxy inverso de interfaz web e integración de plugin para agentes de codificación IA (Claude Code / Copilot CLI / Codex CLI).
📖 Uso
🌐 Modo HTTP (predeterminado)
# Without authentication
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
ghcr.io/whw23/searxng-http-mcp:latest
# With authentication
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
-e API_KEY=your-secret-key \
ghcr.io/whw23/searxng-http-mcp:latest
| 🔗 Endpoint MCP | http://YOUR_HOST:YOUR_PORT/mcp/ |
| 🖥 Interfaz Web de SearXNG | http://YOUR_HOST:YOUR_PORT/ |
📡 Modo stdio
docker run --rm -i --memory=512m --cpus=1 \
ghcr.io/whw23/searxng-http-mcp:latest --stdio
Sin puertos expuestos. Comunicación mediante stdin/stdout. SearXNG se ejecuta internamente para las herramientas MCP.
🐍 Modo uvx
# Connect to a local SearXNG instance (default: http://127.0.0.1:8080)
uvx searxng-http-mcp
# Connect to a remote SearXNG instance
SEARXNG_URL=http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT uvx searxng-http-mcp
Requiere Python 3.14+ y una instancia SearXNG existente. No se necesita Docker.
⚙️ Variables de Entorno
| Variable | Predeterminado | Descripción |
|---|---|---|
API_KEY | (vacío, sin autenticación) | Clave API para autenticación |
SEARXNG_URL | http://127.0.0.1:8080 | SearXNG URL de la instancia (para modo uvx/standalone) |
🔐 Autenticación
Cuando API_KEY está configurado, todas las solicitudes requieren una de las siguientes opciones:
- Encabezado
x-api-key— para clientes MCP:x-api-key: your-key - Autenticación Básica HTTP — para navegadores
[!TIP] Inicio de sesión en navegador: Al acceder a la interfaz web con
API_KEYhabilitado, el navegador mostrará un diálogo de inicio de sesión. Deje el nombre de usuario vacío e introduzca su clave API como contraseña.![]()
Cuando API_KEY no está configurado, todas las solicitudes están abiertas.
🔧 Referencia de Herramientas MCP
🔍 search — Buscar en la web usando SearXNG
Agrega resultados de más de 200 motores de búsqueda con privacidad.
| Parámetro | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
query | string | sí | — | La consulta de búsqueda a utilizar |
categories | string | no | "" | Nombres de categorías separados por comas (p. ej., general,news,science) |
engines | string | no | "" | Nombres de motores separados por comas (p. ej., google,arxiv,wikipedia) |
language | string | no | "" | Código de idioma de búsqueda (p. ej., en, zh, ja) |
time_range | enum | no | null | day, week, month, year |
safesearch | enum | no | 0 | 0=desactivado, 1=moderado, 2=estricto |
pageno | int ≥1 | no | 1 | Número de página inicial |
pages | int 1–5 | no | 1 | Número de páginas a obtener en paralelo |
max_results | int 1–100 | no | 10 | Número máximo de resultados a devolver |
format | enum | no | compact | compact (título/url/contenido) o full (+ motores/puntuación/categoría/fecha) |
Devuelve: resultados, respuestas, sugerencias, correcciones, infoboxes.
💡 autocomplete — Obtener sugerencias de consultas de búsqueda
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
query | string | sí | Cadena de consulta parcial para obtener sugerencias |
🗂 engine_info — Descubrir motores y categorías disponibles
Sin parámetros. Devuelve la lista de motores habilitados agrupados por categoría.
Devuelve:
{
"categories": ["general", "images", "videos", "news", ...],
"engines": ["google", "bing", "duckduckgo", ...],
"category_engines": {
"general": ["google", "bing", "duckduckgo", "brave", ...],
"science": ["arxiv", "google scholar", "pubmed", ...],
...
}
}
Use esto para descubrir qué motores están disponibles antes de llamar a search con filtros específicos de engines o categories.
🔌 Configuración del Cliente
Lo siguiente es un ejemplo base en modo servidor (HTTP remoto) usando la estructura JSON estándar de mcpServers. Muchos clientes aceptan esta estructura, pero los nombres de campos y los valores requeridos de type difieren — consulte la NOTA a continuación y ajuste según su cliente:
{
"mcpServers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
[!NOTE] Diferencias en nombres de campos: ZCode usa
mcp.servers; Kilo Code usa una clave de nivel superiormcpcon"type": "remote"; Windsurf usaserverUrlen lugar deurl; VS Code Copilot usa una clave de nivel superiorservers; OpenCode anida bajomcpcon"type": "remote"; Codex y Hermes usanmcp_servers(TOML/YAML). Para Claude Code,"type": "http"es obligatorio — sin él, la entrada se lee como un servidor stdio y se omite. Para Cline, establezca"type": "streamableHttp"en servidores HTTP remotos.
Claude Desktop
Modo servidor — edite ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"searxng": {
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
Modo uvx:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
Claude Code
Modo servidor (CLI):
claude mcp add --transport http searxng http://YOUR_HOST:YOUR_PORT/mcp/ \
--header "x-api-key: your-secret-key"
Modo servidor (JSON) — la misma estructura mcpServers funciona en un proyecto .mcp.json compartido por equipo o en un ~/.claude.json global para todo el usuario:
{
"mcpServers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
claude mcp add --transport stdio searxng -- docker run --rm -i --memory=512m --cpus=1 ghcr.io/whw23/searxng-http-mcp:latest --stdio
Modo uvx:
claude mcp add --transport stdio searxng -- uvx searxng-http-mcp
Codex
Modo servidor — agregue a ~/.codex/config.toml:
[mcp_servers.searxng]
url = "http://YOUR_HOST:YOUR_PORT/mcp/"
http_headers = { "x-api-key" = "your-secret-key" }
Modo local:
[mcp_servers.searxng]
command = "docker"
args = ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
Modo uvx:
[mcp_servers.searxng]
command = "uvx"
args = ["searxng-http-mcp"]
Cursor
Modo servidor — edite .cursor/mcp.json:
{
"mcpServers": {
"searxng": {
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
Modo uvx:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
VS Code Copilot
Modo servidor — agregue a .vscode/mcp.json:
{
"servers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
{
"servers": {
"searxng": {
"type": "stdio",
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
Modo uvx:
{
"servers": {
"searxng": {
"type": "stdio",
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
Windsurf
Modo servidor — agregue a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"searxng": {
"serverUrl": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
Modo uvx:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
Cline
Configure a través del panel de configuración MCP de Cline en VS Code (Cline > MCP Servers > Add).
Modo servidor:
{
"mcpServers": {
"searxng": {
"type": "streamableHttp",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
Modo uvx:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
OpenCode
Modo servidor — edite opencode.json:
{
"mcp": {
"searxng": {
"type": "remote",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["docker", "run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
Modo uvx:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["uvx", "searxng-http-mcp"]
}
}
}
Hermes Agent
Modo servidor — edite ~/.hermes/config.yaml:
mcp_servers:
searxng:
url: "http://YOUR_HOST:YOUR_PORT/mcp/"
headers:
x-api-key: "your-secret-key"
Modo local:
mcp_servers:
searxng:
command: "docker"
args: ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
Modo uvx:
mcp_servers:
searxng:
command: "uvx"
args: ["searxng-http-mcp"]
🟦 ZCode (Zhipu AI · GLM)
Modo servidor — edite ~/.zcode/cli/config.json (para todo el usuario) o .zcode/config.json (proyecto):
{
"mcp": {
"servers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
}
Modo local:
{
"mcp": {
"servers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
}
Modo uvx:
{
"mcp": {
"servers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
}
ZCode también acepta la estructura estándar mcpServers (p. ej., en .agents/mcp.json). Alternativamente, agregue servidores mediante Settings → MCP Servers → New MCP Server.
⚡ Kilo Code
Modo servidor — edite ~/.config/kilo/kilo.jsonc (global) o .kilo/kilo.jsonc (proyecto):
{
"mcp": {
"searxng": {
"type": "remote",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
},
"enabled": true
}
}
}
Modo local:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["docker", "run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"],
"enabled": true
}
}
}
Modo uvx:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["uvx", "searxng-http-mcp"],
"environment": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" },
"enabled": true
}
}
}
🥧 Pi
Instale el adaptador MCP una vez, luego agregue un bloque estándar mcpServers — p. ej., en ~/.pi/agent/mcp.json (todos los proyectos) o .pi/mcp.json (proyecto):
pi install npm:pi-mcp-adapter
Reinicie Pi después de la instalación.
Modo servidor:
{
"mcpServers": {
"searxng": {
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
Modo local:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
Modo uvx:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
🧩 Complemento para Agentes de Codificación IA
Compatible con Claude Code, GitHub Copilot CLI y OpenAI Codex CLI. Agregue el marketplace, luego instale el complemento que se ajuste a su configuración:
/plugin marketplace add whw23/searxng_http_mcp
Todos los complementos incluyen:
- 🔍
/web-search-via-searxnghabilidad — busca en la web con guía de selección de categorías y reglas de uso - 🤖
web-searcheragente — subagente de investigación con:- 🌐 Búsqueda paralela multilingüe — detecta automáticamente el idioma de la consulta, busca en varios idiomas para una cobertura más amplia
- 🛡 Niveles de credibilidad de fuentes — clasificación de Nivel 1/2/3 con defensa contra envenenamiento de IA
- ✅ Validación cruzada — los datos clave requieren 2+ fuentes independientes
- 🔍 Lectura profunda WebFetch — lee páginas completas de fuentes creíbles, no solo fragmentos
- 🔄 Búsqueda iterativa de múltiples rondas — hasta 3 rondas con profundización automática en vacíos
- ⏱ Evaluación de actualidad — marca contenido desactualizado, indica rangos de fechas de las fuentes
- 📝 Referencias estilo nota al pie — salida estructurada con citas de fuentes en línea
🐍 Modo independiente — uvx, sin Docker, trae tu propio SearXNG
/plugin install searxng-http-mcp-standalone@searxng-http-mcp
Se ejecuta mediante uvx. Requiere Python 3.14+ y una instancia SearXNG existente. Establece SEARXNG_URL en ~/.claude/settings.json:
{
"env": {
"SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT"
}
}
🐳 Modo local — Docker stdio, configuración cero
/plugin install searxng-http-mcp@searxng-http-mcp
Ejecuta SearXNG en un contenedor Docker local mediante stdio. Requiere Docker instalado.
🌐 Modo remoto — conéctate a un servidor desplegado mediante HTTP
/plugin install searxng-http-mcp-remote@searxng-http-mcp
Se conecta a un servidor MCP SearXNG desplegado. Requiere las variables de entorno SEARXNG_MCP_URL y SEARXNG_API_KEY.
Añade a ~/.claude/settings.json bajo el campo env:
{
"env": {
"SEARXNG_MCP_URL": "http://YOUR_HOST:YOUR_PORT/mcp/",
"SEARXNG_API_KEY": "your-api-key"
}
}
Luego reinicia Claude Code.
🛠 Configuración de SearXNG
🖥 Mediante interfaz web
Accede a la interfaz web de SearXNG en http://YOUR_HOST:YOUR_PORT/ para configurar motores de búsqueda, idiomas y otros ajustes. Los cambios persisten durante la vida del contenedor.
💾 Mediante montaje de volumen — configuración persistente
Monta el directorio de configuración de SearXNG para configuración persistente:
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
-v /path/to/searxng-config:/etc/searxng \
ghcr.io/whw23/searxng-http-mcp:latest
SearXNG genera settings.yml en el primer inicio. El contenedor habilita automáticamente la salida en formato JSON requerida por las herramientas MCP.
🏗 Compilar desde el código fuente
git clone https://github.com/whw23/searxng_http_mcp.git
cd searxng_http_mcp
docker build -t searxng-http-mcp:local .
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
searxng-http-mcp:local
🤝 Contribuciones
Consulta CONTRIBUTING.md para conocer el flujo de trabajo completo, los requisitos de CI y la configuración de desarrollo.
- 🍴 Haz un fork del repositorio y habilita GitHub Actions en tu fork
- 🌿 Crea una rama de características desde
dev - ✍️ Haz tus cambios
- ✅ Ejecuta las pruebas:
pytest tests/ -v— el CI debe pasar en tu fork antes de abrir un PR - 📬 Envía un PR a
dev
El desarrollo ocurre en la rama dev. Las fusiones a main activan las compilaciones de imágenes.
📄 Licencia
MIT — código del servidor MCP.
SearXNG en sí está licenciado bajo AGPL-3.0-or-later.