SearXNG MCP Server
SearXNG - A2A | AG-UI | MCP
Versión: 0.1.56
Descripción general
Servidor MCP de SearXNG + Servidor A2A
Incluye un servidor del Protocolo de Contexto de Modelo (MCP) y un agente Agent2Agent (A2A) listo para usar.
¡Realice búsquedas web respetuosas con la privacidad utilizando SearXNG a través de un servidor MCP!
Este repositorio se mantiene activamente. ¡Las contribuciones son bienvenidas!
Soporta:
Metabúsqueda respetuosa con la privacidad
Parámetros de búsqueda personalizables (idioma, rango de tiempo, categorías, motores)
Niveles de búsqueda segura
Control de paginación
Soporte de autenticación básica
Selección aleatoria de instancias
MCP
Herramientas MCP
Nombre de la función | Descripción | Etiqueta(s) |
| Realiza búsquedas web utilizando SearXNG, un motor de metabúsqueda respetuoso con la privacidad. Devuelve contenido web relevante con parámetros personalizables. |
|
Uso como servidor MCP
El servidor MCP se puede ejecutar en dos modos: stdio (para pruebas locales) o http (para acceso en red). Para iniciar el servidor, utilice los siguientes comandos:
Ejecutar en modo stdio (predeterminado):
searxng-mcp --transport "stdio"Ejecutar en modo HTTP:
searxng-mcp --transport "http" --host "0.0.0.0" --port "8000"Prompt de IA:
Search for information about artificial intelligenceRespuesta de IA:
Search completed successfully. Found 10 results for "artificial intelligence":
1. **What is Artificial Intelligence?**
URL: https://example.com/ai
Content: Artificial intelligence (AI) refers to the simulation of human intelligence in machines...
2. **AI Overview**
URL: https://example.org/ai-overview
Content: AI encompasses machine learning, deep learning, and more...Agente A2A
Este paquete también incluye un servidor de agente A2A que se puede utilizar para interactuar con el servidor MCP de SearXNG.
Arquitectura:
---
config:
layout: dagre
---
flowchart TB
subgraph subGraph0["Agent Capabilities"]
C["Agent"]
B["A2A Server - Uvicorn/FastAPI"]
D["MCP Tools"]
F["Agent Skills"]
end
C --> D & F
A["User Query"] --> B
B --> C
D --> E["Platform API"]
C:::agent
B:::server
A:::server
classDef server fill:#f9f,stroke:#333
classDef agent fill:#bbf,stroke:#333,stroke-width:2px
style B stroke:#000000,fill:#FFD600
style D stroke:#000000,fill:#BBDEFB
style F fill:#BBDEFB
style A fill:#C8E6C9
style subGraph0 fill:#FFF9C4Diagrama de interacción de componentes
sequenceDiagram
participant User
participant Server as A2A Server
participant Agent as Agent
participant Skill as Agent Skills
participant MCP as MCP Tools
User->>Server: Send Query
Server->>Agent: Invoke Agent
Agent->>Skill: Analyze Skills Available
Skill->>Agent: Provide Guidance on Next Steps
Agent->>MCP: Invoke Tool
MCP-->>Agent: Tool Response Returned
Agent-->>Agent: Return Results Summarized
Agent-->>Server: Final Response
Server-->>User: OutputUso
CLI de MCP
Flag corto | Flag largo | Descripción |
-h | --help | Mostrar información de ayuda |
-t | --transport | Método de transporte: 'stdio', 'http' o 'sse' [legado] (predeterminado: stdio) |
-s | --host | Dirección de host para transporte HTTP (predeterminado: 0.0.0.0) |
-p | --port | Número de puerto para transporte HTTP (predeterminado: 8000) |
--auth-type | Tipo de autenticación: 'none', 'static', 'jwt', 'oauth-proxy', 'oidc-proxy', 'remote-oauth' (predeterminado: none) | |
--token-jwks-uri | URI de JWKS para verificación JWT | |
--token-issuer | Emisor para verificación JWT | |
--token-audience | Audiencia para verificación JWT | |
--oauth-upstream-auth-endpoint | Endpoint de autorización ascendente para OAuth Proxy | |
--oauth-upstream-token-endpoint | Endpoint de token ascendente para OAuth Proxy | |
--oauth-upstream-client-id | ID de cliente ascendente para OAuth Proxy | |
--oauth-upstream-client-secret | Secreto de cliente ascendente para OAuth Proxy | |
--oauth-base-url | URL base para OAuth Proxy | |
--oidc-config-url | URL de configuración OIDC | |
--oidc-client-id | ID de cliente OIDC | |
--oidc-client-secret | Secreto de cliente OIDC | |
--oidc-base-url | URL base para OIDC Proxy | |
--remote-auth-servers | Lista separada por comas de servidores de autorización para OAuth remoto | |
--remote-base-url | URL base para OAuth remoto | |
--allowed-client-redirect-uris | Lista separada por comas de URIs de redirección de cliente permitidas | |
--eunomia-type | Tipo de autorización Eunomia: 'none', 'embedded', 'remote' (predeterminado: none) | |
--eunomia-policy-file | Archivo de política para Eunomia embebido (predeterminado: mcp_policies.json) | |
--eunomia-remote-url | URL para servidor Eunomia remoto |
CLI de A2A
Endpoints
Web UI:
http://localhost:8000/(si está habilitado)A2A:
http://localhost:8000/a2a(Descubrimiento:/a2a/.well-known/agent.json)AG-UI:
http://localhost:8000/ag-ui(POST)
Flag corto | Flag largo | Descripción | |
-h | --help | Mostrar información de ayuda | |
--host | Host al que vincular el servidor (predeterminado: 0.0.0.0) | ||
--port | Puerto al que vincular el servidor (predeterminado: 9000) | ||
--reload | Habilitar recarga automática | ||
--provider | Proveedor de LLM: 'openai', 'anthropic', 'google', 'huggingface' | ||
--model-id | ID del modelo LLM (predeterminado: nvidia/nemotron-3-super) | ||
--base-url | URL base de LLM (para proveedores compatibles con OpenAI) | ||
--api-key | Clave API de LLM | ||
--mcp-url | URL del servidor MCP (predeterminado: http://localhost:8000/mcp) | ||
--web | Habilitar Pydantic AI Web UI | False (Env: ENABLE_WEB_UI) |
Uso como servidor MCP
El servidor MCP se puede ejecutar en dos modos: stdio (para pruebas locales) o http (para acceso en red). Para iniciar el servidor, utilice los siguientes comandos:
Ejecutar en modo stdio (predeterminado):
searxng-mcp --transport "stdio"Ejecutar en modo HTTP:
searxng-mcp --transport "http" --host "0.0.0.0" --port "8000"Prompt de IA:
Search for information about artificial intelligenceRespuesta de IA:
Search completed successfully. Found 10 results for "artificial intelligence":
1. **What is Artificial Intelligence?**
URL: https://example.com/ai
Content: Artificial intelligence (AI) refers to the simulation of human intelligence in machines...
2. **AI Overview**
URL: https://example.org/ai-overview
Content: AI encompasses machine learning, deep learning, and more...IA Agéntica
searxng-mcp está diseñado para ser utilizado por sistemas de IA agéntica. Proporciona un conjunto de herramientas que permiten a los agentes buscar en la web utilizando SearXNG.
Agente a Agente (A2A)
Este paquete también incluye un servidor de agente A2A que se puede utilizar para interactuar con el servidor MCP de SearXNG.
CLI
Argumento | Descripción | Predeterminado |
| Host al que vincular el servidor |
|
| Puerto al que vincular el servidor |
|
| Habilitar recarga automática |
|
| Proveedor de LLM (openai, anthropic, google, huggingface) |
|
| ID del modelo LLM |
|
| URL base de LLM (para proveedores compatibles con OpenAI) |
|
| Clave API de LLM |
|
| URL del servidor MCP |
|
| Lista de herramientas MCP permitidas |
|
Ejemplos
Ejecutar servidor A2A
searxng-agent --provider openai --model-id gpt-4 --api-key sk-... --mcp-url http://localhost:8000/mcpEjecutar con Docker
docker run -e CMD=searxng-agent -p 8000:8000 searxng-mcpDocker
Construir
docker build -t searxng-mcp .Ejecutar servidor MCP
docker run -p 8000:8000 searxng-mcpEjecutar servidor A2A
docker run -e CMD=searxng-agent -p 8001:8001 searxng-mcpDesplegar servidor MCP como servicio
El servidor MCP de ServiceNow se puede desplegar utilizando Docker, con autenticación, middleware y autorización Eunomia configurables.
Usando Docker Run
docker pull knucklessg1/searxng-mcp:latest
docker run -d \
--name searxng-mcp \
-p 8004:8004 \
-e HOST=0.0.0.0 \
-e PORT=8004 \
-e TRANSPORT=http \
-e AUTH_TYPE=none \
-e EUNOMIA_TYPE=none \
-e SEARXNG_URL=https://searxng.example.com \
-e SEARXNG_USERNAME=user \
-e SEARXNG_PASSWORD=pass \
-e USE_RANDOM_INSTANCE=false \
knucklessg1/searxng-mcp:latestPara autenticación avanzada (p. ej., JWT, OAuth Proxy, OIDC Proxy, Remote OAuth) o Eunomia, añada las variables de entorno relevantes:
docker run -d \
--name searxng-mcp \
-p 8004:8004 \
-e HOST=0.0.0.0 \
-e PORT=8004 \
-e TRANSPORT=http \
-e AUTH_TYPE=oidc-proxy \
-e OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration \
-e OIDC_CLIENT_ID=your-client-id \
-e OIDC_CLIENT_SECRET=your-client-secret \
-e OIDC_BASE_URL=https://your-server.com \
-e ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/* \
-e EUNOMIA_TYPE=embedded \
-e EUNOMIA_POLICY_FILE=/app/mcp_policies.json \
-e SEARXNG_URL=https://searxng.example.com \
-e SEARXNG_USERNAME=user \
-e SEARXNG_PASSWORD=pass \
-e USE_RANDOM_INSTANCE=false \
knucklessg1/searxng-mcp:latestUsando Docker Compose
Cree un archivo docker-compose.yml:
services:
searxng-mcp:
image: knucklessg1/searxng-mcp:latest
environment:
- HOST=0.0.0.0
- PORT=8004
- TRANSPORT=http
- AUTH_TYPE=none
- EUNOMIA_TYPE=none
- SEARXNG_URL=https://searxng.example.com
- SEARXNG_USERNAME=user
- SEARXNG_PASSWORD=pass
- USE_RANDOM_INSTANCE=false
ports:
- 8004:8004Para configuraciones avanzadas con autenticación y Eunomia:
services:
searxng-mcp:
image: knucklessg1/searxng-mcp:latest
environment:
- HOST=0.0.0.0
- PORT=8004
- TRANSPORT=http
- AUTH_TYPE=oidc-proxy
- OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration
- OIDC_CLIENT_ID=your-client-id
- OIDC_CLIENT_SECRET=your-client-secret
- OIDC_BASE_URL=https://your-server.com
- ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/*
- EUNOMIA_TYPE=embedded
- EUNOMIA_POLICY_FILE=/app/mcp_policies.json
- SEARXNG_URL=https://searxng.example.com
- SEARXNG_USERNAME=user
- SEARXNG_PASSWORD=pass
- USE_RANDOM_INSTANCE=false
ports:
- 8004:8004
volumes:
- ./mcp_policies.json:/app/mcp_policies.jsonEjecute el servicio:
docker-compose up -dConfigurar mcp.json para integración con IA
{
"mcpServers": {
"searxng": {
"command": "uv",
"args": [
"run",
"--with",
"searxng-mcp",
"searxng-mcp"
],
"env": {
"SEARXNG_URL": "https://searxng.example.com",
"SEARXNG_USERNAME": "user",
"SEARXNG_PASSWORD": "pass",
"USE_RANDOM_INSTANCE": "false"
},
"timeout": 300000
}
}
}Instalar paquete de Python
python -m pip install searxng-mcpuv pip install searxng-mcpPropietarios del repositorio
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Knuckles-Team/searxng-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server