Wazuh MCP Server
Operaciones de seguridad impulsadas por IA con Wazuh SIEM + Claude Desktop. Detección de amenazas en lenguaje natural, respuesta automatizada a incidentes y cumplimiento normativo.
Documentación
Servidor MCP de Wazuh
Un servidor de Protocolo de Contexto de Modelo (MCP) para el SIEM de Wazuh.
Permite que un cliente MCP — Claude, Open WebUI respaldado por un modelo local, o cualquier cliente que hable Streamable HTTP — consulte alertas, agentes, vulnerabilidades y datos de cumplimiento, y envíe respuestas activas, con control de acceso basado en alcances y registro de auditoría.
Inicio rápido · Clientes · Herramientas · Seguridad · Configuración · Documentación · Registro de cambios · Actualización
Descripción general
- 55 herramientas en 8 conjuntos de herramientas: alertas, agentes, vulnerabilidades, análisis de amenazas, cumplimiento (PCI-DSS, HIPAA, SOX, GDPR, NIST, ISO 27001:2022), salud del administrador/clúster, y respuesta activa con verificación y reversión. También 5 indicaciones guiadas, 6 recursos y 3 plantillas de recursos.
- Solo lectura por defecto. Las 14 herramientas que cambian estado requieren el alcance
wazuh:write, que nunca se otorga implícitamente. - Transporte MCP: Streamable HTTP en
/mcp. Sirve la revisión de protocolo 2026-07-28 (solicitudes sin estado) y el protocolo de enlaceinitializepara 2025-11-25, 2025-06-18, 2025-03-26 y 2024-11-05. El endpoint heredado HTTP+SSE/ssedevuelve410 Gone. - Autenticación: tokens de portador emitidos desde una clave API; OAuth 2.0 (código de autorización + PKCE) con inicio de sesión mediante clave API o en un proveedor OpenID Connect (Entra ID, Google Workspace, Okta, Keycloak); o sin autenticación para desarrollo local.
- Despliegue: Docker Compose o una imagen multiarquitectura publicada; Redis opcional para sesiones multiinstancia; enrutamiento multiclúster opcional.
- Modelos locales: una pila vLLM + Open WebUI (
compose.local-llm.yml) y filtrado de conjuntos de herramientas para modelos pequeños. La única herramienta que llama a un servicio fuera de su despliegue de Wazuh es la opcionalsearch_external_context(You.com), que se puede deshabilitar por sí sola.
Versiones de Wazuh compatibles: 4.8.0 hasta 4.14.7. Las herramientas de alertas, vulnerabilidades y cumplimiento respaldadas por alertas necesitan el Wazuh Indexer. Consulte WAZUH_COMPATIBILITY.md.
Inicio rápido
Requiere Docker con Compose v2 y un usuario de la API del Wazuh Manager.
git clone https://github.com/gensecaihq/Wazuh-MCP-Server.git
cd Wazuh-MCP-Server
cp .env.example .env
Establezca la conexión de Wazuh en .env:
WAZUH_HOST=your-wazuh-manager
WAZUH_USER=your-api-user
WAZUH_PASS=your-api-password
# Needed for alert, vulnerability and alert-backed compliance tools
WAZUH_INDEXER_HOST=your-wazuh-indexer
WAZUH_INDEXER_USER=your-indexer-user
WAZUH_INDEXER_PASS=your-indexer-password
El certificado TLS del Manager se verifica. Una instalación estándar de Wazuh usa un certificado API autofirmado que no puede pasar la verificación, así que o bien lo reemite para su host y establece WAZUH_CA_BUNDLE, o, para una primera prueba, agregue WAZUH_ALLOW_SELF_SIGNED=true (se conecta sin verificación; se registra al inicio). Detalles: TLS del Manager.
Genere el secreto de firma y una clave API. compose.yml ejecuta el servidor con ENVIRONMENT=production, que se niega a iniciar sin AUTH_SECRET_KEY:
echo "AUTH_SECRET_KEY=$(openssl rand -hex 32)" >> .env
echo "MCP_API_KEY=wazuh_$(openssl rand -base64 32 | tr '+/' '-_' | tr -d '=')" >> .env
Inicie el servidor y verifíquelo:
docker compose up -d
curl http://localhost:3000/health # liveness
curl http://localhost:3000/ready # checks Manager/Indexer reachability
Intercambie la clave API por un token de portador (válido por TOKEN_LIFETIME_HOURS, por defecto 24):
curl -s -X POST http://localhost:3000/auth/token -H 'Content-Type: application/json' \
-d "{\"api_key\": \"$(grep ^MCP_API_KEY= .env | cut -d= -f2)\"}"
La clave es de solo lectura. Para permitir herramientas de respuesta activa, agregue MCP_API_KEY_SCOPES="wazuh:read wazuh:write" a .env, recree el contenedor con docker compose up -d (restart conserva el entorno anterior) y emita un nuevo token.
Compose publica el puerto solo en 127.0.0.1. El servidor habla HTTP simple; coloque un proxy inverso con terminación TLS al frente antes de exponerlo (establezca MCP_BIND para cambiar la dirección de enlace del host).
python3 deploy.py (o deploy.bat en Windows) realiza los mismos pasos, generando AUTH_SECRET_KEY y MCP_API_KEY si faltan.
Imagen precompilada
Las imágenes multiarquitectura (amd64, arm64) se publican en GitHub Container Registry y se pueden extraer sin iniciar sesión:
docker pull ghcr.io/gensecaihq/wazuh-mcp-server:latest # tracks main
docker pull ghcr.io/gensecaihq/wazuh-mcp-server:5.0.0 # latest tagged release
latest se compila desde main y puede incluir cambios enumerados bajo Unreleased en el registro de cambios. Las imágenes de lanzamiento están etiquetadas 5.0.0, 5.0 y v5.0.0 (4.3.0 y anteriores no tienen etiqueta con prefijo v). Actualización desde 4.x: lea UPGRADING.md primero.
docker run -d --name wazuh-mcp-server --env-file .env -e MCP_HOST=0.0.0.0 -e ENVIRONMENT=production \
-p 127.0.0.1:3000:3000 ghcr.io/gensecaihq/wazuh-mcp-server:latest
MCP_HOST=0.0.0.0 es necesario dentro de un contenedor porque .env.example establece MCP_HOST=127.0.0.1 para instalaciones en metal desnudo. -e tiene prioridad sobre --env-file, por lo que ENVIRONMENT=production se mantiene incluso si su .env establece otro valor.
Conexión de clientes
Todos los clientes usan el endpoint Streamable HTTP https://<your-host>/mcp.
| Cliente | Modo de autenticación | Cómo se autentica |
|---|---|---|
| Conectores personalizados de Claude (claude.ai, Claude Desktop) | oauth | Código de autorización OAuth con PKCE. El servidor pre-registra un cliente público, claude-desktop, para las URL de devolución de llamada de Claude. Los usuarios inician sesión en la página /oauth/authorize del servidor con una clave API wazuh_ (la concesión está limitada a los alcances de esa clave), o en su proveedor OpenID Connect cuando OAUTH_IDP_ISSUER está establecido. |
| Open WebUI, LibreChat, scripts y otros clientes MCP | bearer (por defecto) | Authorization: Bearer <token> usando un token de POST /auth/token. |
En modo OAuth, establezca OAUTH_ISSUER_URL a la URL HTTPS pública del servidor (de lo contrario, se deriva de cada solicitud, que detrás de un proxy puede no ser la URL pública). El Registro Dinámico de Clientes (/oauth/register) está desactivado a menos que OAUTH_ENABLE_DCR=true, y no se puede combinar con OAUTH_IDP_ISSUER.
Guías: Integración con Claude · LLMs locales
LLMs locales
El servidor no llama a un modelo; solo ejecuta herramientas. Para mantener los datos del SIEM en las instalaciones, combínelo con un modelo local:
cat >> .env <<EOF
VLLM_API_KEY=$(openssl rand -hex 32)
WEBUI_SECRET_KEY=$(openssl rand -hex 32)
EOF
docker compose -f compose.yml -f compose.local-llm.yml up -d
Esto agrega vLLM (modelo por defecto Qwen3.6-35B-A3B FP8, aproximadamente 42 GB de VRAM en una GPU NVIDIA; no publicado en un puerto del host) y Open WebUI en 127.0.0.1:8080. En la configuración de administrador de Open WebUI, agregue un servidor de herramientas MCP (Streamable HTTP) en http://wazuh-main-server:3000/mcp con un token de portador.
Para modelos más pequeños, exponga menos herramientas con WAZUH_TOOLSETS / WAZUH_DISABLED_TOOLS, y verifique la selección de herramientas antes del despliegue con evals/tool_selection.py (25 escenarios de SOC, incluidos dos casos de inyección de indicaciones, contra cualquier endpoint compatible con OpenAI; no se ejecutan herramientas). El dimensionamiento de modelos, Ollama y LiteLLM se cubren en la Guía de LLM local.
Herramientas
55 herramientas, agrupadas en conjuntos que se pueden habilitar con WAZUH_TOOLSETS (separadas por comas; por defecto todas). R = wazuh:read, W = wazuh:write.
| Conjunto de herramientas | Cantidad | Herramientas |
|---|---|---|
alerts | 5 R | get_wazuh_alerts, get_wazuh_alert_summary, get_alerts_aggregated, analyze_alert_patterns, search_security_events |
agents | 6 R | get_wazuh_agents, get_wazuh_running_agents, check_agent_health, get_agent_processes, get_agent_ports, get_agent_configuration |
vulnerabilities | 3 R | get_wazuh_vulnerabilities, get_wazuh_critical_vulnerabilities, get_wazuh_vulnerability_summary |
analysis | 5 R | analyze_security_threat, check_ioc_reputation, perform_risk_assessment, get_top_security_threats, generate_security_report |
web_search | 1 R | search_external_context — búsqueda web de You.com; devuelve un resultado "no habilitado" a menos que YDC_API_KEY esté establecido |
compliance | 6 R | run_compliance_check (PCI-DSS, HIPAA, SOX, GDPR, NIST, ISO27001), get_iso27001_dashboard, get_iso27001_control_detail, get_iso27001_gap_analysis, get_iso27001_alerts, get_sca_policy_checks |
system | 10 R | get_wazuh_statistics, get_wazuh_weekly_stats, get_wazuh_cluster_health, get_wazuh_cluster_nodes, get_wazuh_rules_summary, get_wazuh_remoted_stats, get_wazuh_log_collector_stats, search_wazuh_manager_logs, get_wazuh_manager_error_logs, validate_wazuh_connection |
response — contención | 9 W | wazuh_block_ip, wazuh_isolate_host, wazuh_kill_process, wazuh_disable_user, wazuh_quarantine_file, wazuh_firewall_drop, wazuh_host_deny, wazuh_active_response, wazuh_restart |
response — reversión | 5 W | wazuh_unisolate_host, wazuh_enable_user, wazuh_restore_file, wazuh_firewall_allow, wazuh_host_allow |
response — verificación | 5 R | wazuh_check_blocked_ip, wazuh_check_agent_isolation, wazuh_check_process, wazuh_check_user_status, wazuh_check_file_quarantine |
- Totales: 41 herramientas de lectura, 14 herramientas de escritura. Los tokens sin
wazuh:writeno ven las herramientas de escritura entools/list. - En modo multiclúster, se agrega una 56.ª herramienta,
list_wazuh_clusters(system, lectura), y cada herramienta acepta uncluster_idopcional. WAZUH_DISABLED_TOOLSoculta herramientas individuales. Las herramientas ocultas se eliminan detools/listy son rechazadas portools/call; los nombres de conjuntos o herramientas desconocidos detienen el servidor al inicio.- Cada herramienta lleva anotaciones MCP derivadas de su alcance: las herramientas de lectura son
readOnlyHint: true; las herramientas de contención sondestructiveHint: true; las herramientas de reversión sondestructiveHint: false; solosearch_external_contextesopenWorldHint: true. - Los esquemas de entrada están cerrados (
additionalProperties: false); los argumentos no declarados son rechazados. - Los filtros de marca de tiempo aceptan ISO 8601 o matemática de fechas de OpenSearch (
now-24h). - Indicaciones:
security_investigation,threat_hunt,compliance_audit,vulnerability_assessment,iso27001_assessment.
Parámetros por herramienta: documentación de la API.
Comportamiento de la respuesta activa
- Los resultados informan
execution_status: "dispatched": Wazuh confirma que el comando se entregó al agente, no que se ejecutó. Confirme el efecto con la herramientawazuh_check_*correspondiente. - Los bloqueos son permanentes hasta que se eliminan. Wazuh ignora el tiempo de espera para comandos activados por API, por lo que un
durationpositivo es rechazado. wazuh_firewall_allowywazuh_host_allowrequieren un comando de deshacer implementado por el operador (WAZUH_AR_FIREWALL_UNDO_COMMAND,WAZUH_AR_HOSTDENY_UNDO_COMMAND); sin uno, se niegan.
Modelo de seguridad
| Control | Comportamiento |
|---|---|
| Scopes (RBAC) | Cada herramienta requiere wazuh:read o wazuh:write. Un token sin una declaración de scope es de solo lectura. MCP_API_KEY es de solo lectura a menos que MCP_API_KEY_SCOPES incluya wazuh:write. Con AUTH_MODE=none, las herramientas de escritura están deshabilitadas a menos que AUTHLESS_ALLOW_WRITE=true. |
| Tokens Bearer | JWTs firmados con AUTH_SECRET_KEY, deben llevar exp, y están vinculados a la clave API de la que fueron emitidos: revocar o rotar la clave invalida sus tokens. Los tokens de actualización no se aceptan como tokens de acceso. |
| OAuth | Flujo de código de autorización con PKCE S256 obligatorio, códigos de un solo uso, rotación de tokens de actualización con detección de reproducción y revocación. Los usuarios inician sesión con una clave API de wazuh_ (la concesión está limitada a los scopes de esa clave, y sus tokens terminan cuando la clave se revoca) o en un proveedor OpenID Connect (firma del token ID, emisor, audiencia, caducidad y nonce verificados; listas de permitidos de tenant, dominio y usuario; mapeo de grupo a scope), por lo que los scopes, límites de tasa y entradas de auditoría son por usuario. |
| Guardarraíles de acciones | Las herramientas de bloqueo de IP rechazan loopback, la dirección del Manager (cuando WAZUH_HOST es una IP) y cualquier cosa en WAZUH_PROTECTED_IPS; la herramienta genérica de respuesta activa no despacha bloqueos de IP, cuarentenas, terminaciones de procesos ni deshabilitaciones de cuentas. Las acciones y reinicios dirigidos al agente 000 (el Manager) requieren WAZUH_ALLOW_MANAGER_AR=true; los bloqueos de toda la flota requieren WAZUH_ALLOW_FLEET_AR=true; la cuarentena rechaza directorios de sistema y de agentes. En producción, las herramientas de escritura requieren confirm=true (WAZUH_REQUIRE_ACTION_CONFIRMATION). |
| Wazuh TLS | Los certificados del Manager y del Indexer se verifican por defecto, contra el almacén del sistema o WAZUH_CA_BUNDLE. Deshabilitar la verificación del Manager (WAZUH_ALLOW_SELF_SIGNED=true) se registra al inicio, como un error en producción. |
| Registro de auditoría | Cada llamada a una herramienta de escritura que supera las comprobaciones de scope y confirmación se registra antes y después de la ejecución (logger wazuh_mcp_server.audit) con el principal, la sesión, los argumentos y el resultado. |
| Redacción | Las credenciales y los tokens se redactan de la salida de las herramientas en todos los formatos de respuesta, y de los registros del servidor. |
| Validación de entrada | Validación tipada de IDs de agente, IPs, rutas y nombres de comandos; las consultas al Indexer se construyen como Query DSL, no mediante interpolación de cadenas. |
| Límite de tasa | Ventana deslizante, por defecto 100 solicitudes por 60 s (RATE_LIMIT_REQUESTS, RATE_LIMIT_WINDOW): por principal y IP de cliente en /mcp y /, por IP de cliente en otros endpoints excepto los endpoints de sonda (/health, /ready, /metrics y sus alias /healthz, /readyz, /live, /livez). La autenticación fallida tiene límite de tasa por IP de cliente. Establezca TRUSTED_PROXIES cuando se ejecute detrás de un proxy. |
| Límites de recursos | Disyuntor en llamadas a Wazuh: se abre después de 5 fallos consecutivos, reintenta después de 60 s. Los resultados de herramientas sobredimensionados se truncan con una nota (MAX_TOOL_RESPONSE_CHARS). limit en get_wazuh_alerts y search_security_events está limitado a MAX_ALERTS_PER_QUERY (por defecto 1000). El almacén de sesiones en memoria está limitado a MAX_SESSIONS (1000) y MAX_SESSIONS_PER_PRINCIPAL (100), y los metadatos de cliente almacenados se truncan. |
| Contenedor | Se ejecuta como UID 1000; compose.yml establece un sistema de archivos raíz de solo lectura, cap_drop: ALL y no-new-privileges. La imagen de runtime no incluye pip. |
No hay listener TLS integrado; termine TLS en un proxy inverso o balanceador de carga. Reporte vulnerabilidades como se describe en SECURITY.md.
Configuración
Todos los ajustes son variables de entorno (generalmente mediante .env). Los que la mayoría de despliegues tocan:
| Variable | Predeterminado | Propósito |
|---|---|---|
WAZUH_HOST, WAZUH_USER, WAZUH_PASS | — | Conexión API del Manager (requerida) |
WAZUH_PORT | 55000 | Puerto API del Manager |
WAZUH_CA_BUNDLE | — | PEM de CA usado en lugar del almacén del sistema para verificar el Manager y el Indexer; ver Manager TLS |
WAZUH_ALLOW_SELF_SIGNED | false | true se conecta al Manager sin verificación de certificado (registrado al inicio) |
WAZUH_INDEXER_HOST, WAZUH_INDEXER_USER, WAZUH_INDEXER_PASS | — | Conexión al Indexer; un prefijo de host http:// selecciona HTTP plano |
WAZUH_INDEXER_PORT | 9200 | Puerto del Indexer |
ENVIRONMENT | development | production requiere un AUTH_SECRET_KEY fuerte (a menos que AUTH_MODE=none) |
AUTH_MODE | bearer | bearer, oauth o none |
AUTH_SECRET_KEY | generado por proceso fuera de producción | Clave de firma de tokens; use el mismo valor en cada instancia |
MCP_API_KEY / API_KEYS | generado por proceso si no se establece (impreso solo en desarrollo) | Una sola clave wazuh_, o una lista JSON de claves con hash con scopes por clave |
MCP_API_KEY_SCOPES | wazuh:read | Scopes separados por espacios para MCP_API_KEY |
OAUTH_ISSUER_URL | derivado de la solicitud | URL HTTPS pública del servidor, para AUTH_MODE=oauth |
OAUTH_IDP_ISSUER | — | Proveedor OpenID Connect para inicio de sesión OAuth (con OAUTH_IDP_CLIENT_ID); inicio de sesión con clave API cuando no se establece |
WAZUH_REQUIRE_ACTION_CONFIRMATION | true en producción, si no false | Las herramientas de escritura requieren confirm=true |
MCP_HOST, MCP_PORT | 127.0.0.1 (0.0.0.0 en la imagen Docker), 3000 | Dirección de enlace y puerto |
ALLOWED_ORIGINS | https://claude.ai,http://localhost:3000 | Lista de permitidos CORS (coincidencia exacta) |
WAZUH_TOOLSETS, WAZUH_DISABLED_TOOLS | todos habilitados | Limitar las herramientas expuestas |
REDIS_URL | — | Almacén de sesiones compartido para despliegues multi-instancia |
WAZUH_CLUSTERS_FILE | ./config/clusters.json | Topología multi-clúster; modo de clúster único cuando está ausente |
RESPONSE_FORMAT | json | gcf codifica colecciones de alertas, eventos y vulnerabilidades en el formato compacto GCF (sin pérdida; vuelve a JSON si el codificador no está disponible) |
YDC_API_KEY | — | Habilita search_external_context |
Referencia completa, incluidos TTLs de OAuth, límites de tasa, sesiones y ajustes de respuesta activa: Guía de Configuración. Configuración multi-clúster: Guía Multi-Clúster y config/clusters.json.example.
Ejecución desde el código fuente
python -m venv .venv && source .venv/bin/activate
pip install -e ".[redis,gcf]" # extras are optional
set -a; . ./.env; set +a # the server reads the environment, not .env
python -m wazuh_mcp_server
Requiere Python 3.11 o posterior.
Endpoints HTTP
| Endpoint | Método | Descripción |
|---|---|---|
/mcp | POST, GET, DELETE | MCP Streamable HTTP |
/ | POST, GET | Mismo handler que /mcp |
/sse | GET, POST | Devuelve 410 Gone; use /mcp |
/health | GET | Liveness; sin comprobaciones de dependencias |
/ready | GET | Readiness; 503 cuando falla la comprobación del Manager, Indexer o margen de memoria |
/metrics | GET | Métricas Prometheus |
/auth/token | POST | Intercambia una clave API por un JWT bearer |
/.well-known/oauth-authorization-server | GET | Metadatos OAuth (RFC 8414), solo AUTH_MODE=oauth |
/.well-known/oauth-protected-resource | GET | Metadatos de recurso protegido (RFC 9728), solo AUTH_MODE=oauth |
/oauth/authorize, /oauth/token, /oauth/revoke, /oauth/register, /oauth/callback | GET/POST | Endpoints OAuth, solo AUTH_MODE=oauth (/oauth/register requiere OAUTH_ENABLE_DCR=true y no OAUTH_IDP_ISSUER; /oauth/callback es el URI de redirección de OpenID Connect y necesita OAUTH_IDP_ISSUER) |
/docs, /redoc, /openapi.json | GET | Documentación OpenAPI |
Estructura del Proyecto
src/wazuh_mcp_server/
├── server.py # FastAPI app, MCP protocol handling, CORS/Origin checks, tool definitions and dispatch
├── toolsets.py # Toolset membership, WAZUH_TOOLSETS resolution, tool annotations
├── auth.py # API keys and bearer JWTs
├── oauth.py # OAuth 2.0 authorization server (PKCE, API-key sign-in)
├── oidc.py # OpenID Connect sign-in at an external identity provider
├── config.py # Environment configuration and startup validation
├── security.py # Rate limiting, request and input validation, log redaction
├── clusters.py # Multi-cluster registry and Cross-Cluster Search routing
├── session_store.py # In-memory and Redis session storage
├── resilience.py # Circuit breakers, retries, graceful shutdown
├── monitoring.py # Prometheus metrics, structured logging
├── gcf_format.py # Optional GCF response encoding
└── api/
├── wazuh_client.py # Wazuh Manager REST API client
└── wazuh_indexer.py # Wazuh Indexer (OpenSearch) client
Documentación
| Documento | Contenido |
|---|---|
| Guía de Configuración | Cada variable de entorno, modos de autenticación, RBAC |
| Integración con Claude | Conexión de conectores personalizados de Claude |
| Guía de LLM Local | vLLM, Open WebUI, Ollama, LiteLLM, evaluación de selección de herramientas |
| Multi-Clúster | Clústeres nombrados y búsqueda entre clústeres |
| Operaciones | Despliegue, monitoreo, mantenimiento |
| Funciones Avanzadas | Despliegue multi-instancia, salida compacta |
| Solución de Problemas | Problemas comunes y soluciones |
| Referencia de API | Parámetros por herramienta |
| Endurecimiento de Seguridad | Guía de endurecimiento |
| Cumplimiento MCP | Notas de conformidad con el protocolo |
| Compatibilidad con Wazuh | Versiones de Wazuh compatibles |
| Actualización · Registro de Cambios · Política de Seguridad | Notas de versión y políticas |
Proyecto relacionado: Wazuh Autopilot construye flujos de trabajo SOC automatizados sobre este servidor.
Contribuciones
Ver CONTRIBUTING.md. Errores, solicitudes de funciones y preguntas van a Issues, y los informes de seguridad a un aviso de seguridad privado.
Licencia
Agradecimientos
Gracias a todos los que han contribuido con código, revisiones, informes de errores y comentarios de diseño. Ver también ACKNOWLEDGMENTS.md.
Código y solicitudes de extracción
- @alokemajumder — mantenedor; arquitectura, transporte MCP, endurecimiento de seguridad, versiones
- @gensecai-dev — las 19 herramientas de acción, verificación y reversión, correcciones de endpoints rotos, endurecimiento de producción
- @andrzej-piotrowski-pl — herramientas de cumplimiento ISO 27001:2022: mapeo de controles del Anexo A, puntuación de dominios, análisis de brechas (#74)
- @blackwell-systems — codificación de respuesta GCF opt-in para herramientas de registro (#102, #104)
- @lucascruzb — agregación de alertas por período mediante scroll, la base de
get_alerts_aggregated(#79) - @kanylbullen — modo de salida compacta para respuestas eficientes en tokens (#65)
- @mouse-value-add — contexto opcional de búsqueda web You.com (#85)
- @DrRSatzteil — corrección de paginación de
tools/list(#70) - @SiM22 — soporte MCP 2025-06-18 para compatibilidad con Windsurf (#66)
- @aiunmukto —
.env.example(#12), un flujo de trabajo CI temprano y el listado del registro Glama - @Karibusan — correcciones de dependencias (#38)
- @lwsinclair — listado MseeP.ai (#9)
- @markeclaudio — inicio de sesión OpenID Connect (#123), guardarraíles de respuesta activa (#124, #125), límites del almacén de sesiones (#126), verificación TLS del Manager por defecto (#127)
- @MilkyWay88 y @taylorwalton — solicitudes de extracción tempranas sobre configuración, registro y empaquetado
Informes de errores y discusiones
@cbassonbgroup, @cybersentinel-06, @daod-arshad, @mamema, @marcolinux46, @matveevandrey, @punkpeye, @tonyliu9189, @Uberkarhu, @bl4ck5w4n07, @gnix45, @hackdefendr, @melmasry1987, @Vasanth120v, @wqfh
Construido sobre y funciona con
- Wazuh — plataforma de seguridad de código abierto
- Model Context Protocol — el protocolo que este servidor implementa
- vLLM, Ollama y Open WebUI — servicio y chat de modelos locales, usados en la pila LLM local
Contribuidores
Contribuidores
| Avatar | Username | Contribuciones |
|---|---|---|
| @alokemajumder | 💻 Código, 🐛 Problemas, 🔀 PRs, 💬 Discusiones | |
| @Karibusan | 💻 Código, 🐛 Problemas, 🔀 PRs | |
| @gensecai-dev | 💻 Código, 🔀 PRs, 💬 Discusiones | |
| @aiunmukto | 💻 Código, 🔀 PRs | |
| @andrzej-piotrowski-pl | 💻 Código, 🔀 PRs | |
| @blackwell-systems | 💻 Código, 🔀 PRs | |
| @kanylbullen | 💻 Código, 🔀 PRs | |
| @lucascruzb | 💻 Código, 🔀 PRs | |
| @lwsinclair | 💻 Código, 🔀 PRs | |
| @mouse-value-add | 💻 Código, 🔀 PRs | |
| @SiM22 | 💻 Código, 🔀 PRs | |
| @DrRSatzteil | 🔀 PRs | |
| @MilkyWay88 | 🔀 PRs | |
| @taylorwalton | 🔀 PRs | |
| @cbassonbgroup | 🐛 Problemas | |
| @cybersentinel-06 | 🐛 Problemas | |
| @daod-arshad | 🐛 Problemas | |
| @mamema | 🐛 Problemas | |
| @marcolinux46 | 🐛 Problemas | |
| @matveevandrey | 🐛 Problemas | |
| @punkpeye | 🐛 Problemas | |
| @tonyliu9189 | 🐛 Problemas | |
| @Uberkarhu | 🐛 Problemas | |
| @bl4ck5w4n07 | 💬 Discusiones | |
| @gnix45 | 💬 Discusiones | |
| @hackdefendr | 💬 Discusiones | |
| @melmasry1987 | 💬 Discusiones | |
| @Vasanth120v | 💬 Discusiones | |
| @wqfh | 💬 Discusiones |
Leyenda: 💻 Código · 🐛 Problemas · 🔀 Pull Requests · 💬 Discusiones
Actualizado automáticamente por GitHub Actions