Wazuh MCP Server
Operações de segurança com inteligência artificial usando Wazuh SIEM + Claude Desktop. Detecção de ameaças em linguagem natural, resposta automatizada a incidentes e conformidade.
Documentação
Servidor MCP Wazuh
Um servidor Model Context Protocol (MCP) para o SIEM Wazuh.
Permite que um cliente MCP — Claude, Open WebUI com um modelo local, ou qualquer cliente que fale Streamable HTTP — consulte alertas, agentes, vulnerabilidades e dados de conformidade, e envie respostas ativas, com controle de acesso baseado em escopo e registro de auditoria.
Início Rápido · Clientes · Ferramentas · Segurança · Configuração · Documentação · Changelog · Atualização
Visão Geral
- 55 ferramentas em 8 conjuntos de ferramentas: alertas, agentes, vulnerabilidades, análise de ameaças, conformidade (PCI-DSS, HIPAA, SOX, GDPR, NIST, ISO 27001:2022), saúde do gerenciador/cluster e resposta ativa com verificação e reversão. Também 5 prompts guiados, 6 recursos e 3 modelos de recursos.
- Somente leitura por padrão. As 14 ferramentas que alteram estado exigem o escopo
wazuh:write, que nunca é concedido implicitamente. - Transporte MCP: Streamable HTTP em
/mcp. Atende à revisão de protocolo 2026-07-28 (solicitações sem estado) e ao handshakeinitializepara 2025-11-25, 2025-06-18, 2025-03-26 e 2024-11-05. O endpoint legado HTTP+SSE/sseretorna410 Gone. - Autenticação: tokens de portador gerados a partir de uma chave de API; OAuth 2.0 (código de autorização + PKCE) com login por chave de API ou em um provedor OpenID Connect (Entra ID, Google Workspace, Okta, Keycloak); ou sem autenticação para desenvolvimento local.
- Implantação: Docker Compose ou uma imagem multi-arquitetura publicada; Redis opcional para sessões multi-instância; roteamento multi-cluster opcional.
- Modelos locais: uma pilha vLLM + Open WebUI (
compose.local-llm.yml) e filtragem de conjuntos de ferramentas para modelos pequenos. A única ferramenta que chama um serviço fora da sua implantação Wazuh é o opcionalsearch_external_context(You.com), que pode ser desabilitado individualmente.
Versões Wazuh suportadas: 4.8.0 até 4.14.7. Ferramentas de alerta, vulnerabilidade e conformidade baseadas em alertas precisam do Wazuh Indexer. Consulte WAZUH_COMPATIBILITY.md.
Início Rápido
Requer Docker com Compose v2 e um usuário da API do Wazuh Manager.
git clone https://github.com/gensecaihq/Wazuh-MCP-Server.git
cd Wazuh-MCP-Server
cp .env.example .env
Defina a conexão Wazuh em .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
O certificado TLS do Manager é verificado. Uma instalação padrão do Wazuh usa um certificado de API autoassinado que não pode passar na verificação, então reemita-o para o seu host e defina WAZUH_CA_BUNDLE, ou, para um primeiro teste, adicione WAZUH_ALLOW_SELF_SIGNED=true (conecta sem verificação; registrado na inicialização). Detalhes: TLS do Manager.
Gere o segredo de assinatura e uma chave de API. compose.yml executa o servidor com ENVIRONMENT=production, que se recusa a iniciar sem 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 o servidor e verifique-o:
docker compose up -d
curl http://localhost:3000/health # liveness
curl http://localhost:3000/ready # checks Manager/Indexer reachability
Troque a chave de API por um token de portador (válido por TOKEN_LIFETIME_HOURS, padrão 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)\"}"
A chave é somente leitura. Para permitir ferramentas de resposta ativa, adicione MCP_API_KEY_SCOPES="wazuh:read wazuh:write" a .env, recrie o contêiner com docker compose up -d (restart mantém o ambiente antigo) e crie um novo token.
O Compose publica a porta em 127.0.0.1 apenas. O servidor fala HTTP simples; coloque um proxy reverso com terminação TLS na frente antes de expô-lo (defina MCP_BIND para alterar o endereço de bind do host).
python3 deploy.py (ou deploy.bat no Windows) executa as mesmas etapas, gerando AUTH_SECRET_KEY e MCP_API_KEY se estiverem ausentes.
Imagem pré-construída
Imagens multi-arquitetura (amd64, arm64) são publicadas no GitHub Container Registry e podem ser baixadas sem login:
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 é construída a partir de main e pode incluir alterações listadas sob Não lançado no changelog. Imagens de lançamento são marcadas com 5.0.0, 5.0 e v5.0.0 (4.3.0 e anteriores não têm tag com prefixo v). Atualizando da versão 4.x: leia UPGRADING.md primeiro.
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 é necessário dentro de um contêiner porque .env.example define MCP_HOST=127.0.0.1 para instalações bare-metal. -e tem precedência sobre --env-file, então ENVIRONMENT=production é mantido mesmo se o seu .env definir outro valor.
Conectando Clientes
Todos os clientes usam o endpoint Streamable HTTP https://<your-host>/mcp.
| Cliente | Modo de autenticação | Como autentica |
|---|---|---|
| Conectores personalizados Claude (claude.ai, Claude Desktop) | oauth | Código de autorização OAuth com PKCE. O servidor pré-registra um cliente público, claude-desktop, para as URLs de retorno de chamada do Claude. Os usuários entram na página /oauth/authorize do servidor com uma chave de API wazuh_ (a concessão é limitada aos escopos dessa chave), ou no seu provedor OpenID Connect quando OAUTH_IDP_ISSUER está definido. |
| Open WebUI, LibreChat, scripts e outros clientes MCP | bearer (padrão) | Authorization: Bearer <token> usando um token de POST /auth/token. |
No modo OAuth, defina OAUTH_ISSUER_URL para a URL HTTPS pública do servidor (caso contrário, é derivada de cada solicitação, o que atrás de um proxy pode não ser a URL pública). O Registro Dinâmico de Clientes (/oauth/register) está desativado, a menos que OAUTH_ENABLE_DCR=true, e não pode ser combinado com OAUTH_IDP_ISSUER.
Guias: Integração Claude · LLMs Locais
LLMs Locais
O servidor não chama um modelo; ele apenas executa ferramentas. Para manter os dados do SIEM no local, combine-o com um 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
Isso adiciona vLLM (modelo padrão Qwen3.6-35B-A3B FP8, cerca de 42 GB de VRAM em uma GPU NVIDIA; não publicado em uma porta do host) e Open WebUI em 127.0.0.1:8080. Nas configurações de administrador do Open WebUI, adicione um servidor de ferramentas MCP (Streamable HTTP) em http://wazuh-main-server:3000/mcp com um token de portador.
Para modelos menores, exponha menos ferramentas com WAZUH_TOOLSETS / WAZUH_DISABLED_TOOLS, e verifique a seleção de ferramentas antes da implantação com evals/tool_selection.py (25 cenários de SOC, incluindo dois casos de injeção de prompt, contra qualquer endpoint compatível com OpenAI; nenhuma ferramenta é executada). Dimensionamento de modelos, Ollama e LiteLLM são abordados no Guia de LLM Local.
Ferramentas
55 ferramentas, agrupadas em conjuntos de ferramentas que podem ser habilitados com WAZUH_TOOLSETS (separados por vírgula; padrão todos). R = wazuh:read, W = wazuh:write.
| Conjunto de ferramentas | Quantidade | Ferramentas |
|---|---|---|
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 — pesquisa web You.com; retorna um resultado "não habilitado" a menos que YDC_API_KEY esteja definido |
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 — contenção | 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 — reversão | 5 W | wazuh_unisolate_host, wazuh_enable_user, wazuh_restore_file, wazuh_firewall_allow, wazuh_host_allow |
response — verificação | 5 R | wazuh_check_blocked_ip, wazuh_check_agent_isolation, wazuh_check_process, wazuh_check_user_status, wazuh_check_file_quarantine |
- Totais: 41 ferramentas de leitura, 14 ferramentas de escrita. Tokens sem
wazuh:writenão veem as ferramentas de escrita emtools/list. - No modo multi-cluster, uma 56ª ferramenta,
list_wazuh_clusters(system, leitura), é adicionada e toda ferramenta aceita umcluster_idopcional. WAZUH_DISABLED_TOOLSoculta ferramentas individuais. Ferramentas ocultas são removidas detools/liste recusadas portools/call; nomes de conjuntos de ferramentas ou ferramentas desconhecidos param o servidor na inicialização.- Cada ferramenta carrega anotações MCP derivadas do seu escopo: ferramentas de leitura são
readOnlyHint: true; ferramentas de contenção sãodestructiveHint: true; ferramentas de reversão sãodestructiveHint: false; apenassearch_external_contextéopenWorldHint: true. - Esquemas de entrada são fechados (
additionalProperties: false); argumentos não declarados são recusados. - Filtros de timestamp aceitam ISO 8601 ou matemática de data OpenSearch (
now-24h). - Prompts:
security_investigation,threat_hunt,compliance_audit,vulnerability_assessment,iso27001_assessment.
Parâmetros por ferramenta: documentação da API.
Comportamento da resposta ativa
- Os resultados relatam
execution_status: "dispatched": o Wazuh confirma que o comando foi entregue ao agente, não que foi executado. Confirme o efeito com a ferramentawazuh_check_*correspondente. - Bloqueios são permanentes até serem removidos. O Wazuh ignora o tempo limite para comandos acionados por API, então um
durationpositivo é recusado. wazuh_firewall_allowewazuh_host_allowexigem um comando de desfazer implantado pelo operador (WAZUH_AR_FIREWALL_UNDO_COMMAND,WAZUH_AR_HOSTDENY_UNDO_COMMAND); sem um, eles recusam.
Modelo de Segurança
| Controle | Comportamento |
|---|---|
| Escopos (RBAC) | Cada ferramenta requer wazuh:read ou wazuh:write. Um token sem declaração de escopo é somente leitura. MCP_API_KEY é somente leitura, a menos que MCP_API_KEY_SCOPES inclua wazuh:write. Com AUTH_MODE=none, as ferramentas de escrita são desabilitadas, a menos que AUTHLESS_ALLOW_WRITE=true. |
| Tokens Bearer | JWTs assinados com AUTH_SECRET_KEY, devem conter exp e estão vinculados à chave de API da qual foram emitidos: revogar ou rotacionar a chave invalida seus tokens. Tokens de atualização não são aceitos como tokens de acesso. |
| OAuth | Fluxo de código de autorização com PKCE S256 obrigatório, códigos de uso único, rotação de token de atualização com detecção de repetição e revogação. Os usuários entram com uma chave de API wazuh_ (a concessão é limitada aos escopos dessa chave, e seus tokens expiram quando a chave é revogada) ou em um provedor OpenID Connect (assinatura do token de ID, emissor, público, expiração e nonce verificados; listas de permissão de locatário, domínio e usuário; mapeamento de grupo para escopo), portanto, escopos, limites de taxa e entradas de auditoria são por usuário. |
| Salvaguardas de ação | As ferramentas de bloqueio de IP recusam loopback, o endereço do Manager (quando WAZUH_HOST é um IP) e qualquer coisa em WAZUH_PROTECTED_IPS; a ferramenta genérica de resposta ativa não despacha bloqueios de IP, quarentena, encerramento de processos ou desativação de contas. Ações e reinicializações direcionadas ao agente 000 (o Manager) exigem WAZUH_ALLOW_MANAGER_AR=true; bloqueios em toda a frota exigem WAZUH_ALLOW_FLEET_AR=true; a quarentena recusa diretórios de sistema e de agente. Em produção, as ferramentas de escrita exigem confirm=true (WAZUH_REQUIRE_ACTION_CONFIRMATION). |
| Wazuh TLS | Os certificados do Manager e do Indexer são verificados por padrão, no armazenamento do sistema ou em WAZUH_CA_BUNDLE. Desabilitar a verificação do Manager (WAZUH_ALLOW_SELF_SIGNED=true) é registrado na inicialização, como um erro em produção. |
| Log de auditoria | Cada chamada de ferramenta de escrita que passa nas verificações de escopo e confirmação é registrada antes e depois da execução (logger wazuh_mcp_server.audit) com o principal, sessão, argumentos e resultado. |
| Redação | Credenciais e tokens são redigidos da saída da ferramenta em todos os formatos de resposta e dos logs do servidor. |
| Validação de entrada | Validação tipada de IDs de agente, IPs, caminhos e nomes de comandos; as consultas do Indexer são construídas como Query DSL, não por interpolação de strings. |
| Limite de taxa | Janela deslizante, padrão de 100 solicitações por 60 s (RATE_LIMIT_REQUESTS, RATE_LIMIT_WINDOW): por principal e IP do cliente em /mcp e /, por IP do cliente em outros endpoints, exceto os endpoints de sonda (/health, /ready, /metrics e seus aliases /healthz, /readyz, /live, /livez). A autenticação com falha é limitada por IP do cliente. Defina TRUSTED_PROXIES ao executar atrás de um proxy. |
| Limites de recursos | Disjuntor em chamadas Wazuh: abre após 5 falhas consecutivas, tenta novamente após 60 s. Resultados de ferramentas superdimensionados são truncados com uma nota (MAX_TOOL_RESPONSE_CHARS). limit em get_wazuh_alerts e search_security_events é limitado a MAX_ALERTS_PER_QUERY (padrão 1000). O armazenamento de sessão em memória é limitado a MAX_SESSIONS (1000) e MAX_SESSIONS_PER_PRINCIPAL (100), e os metadados do cliente armazenados são truncados. |
| Contêiner | Executa como UID 1000; compose.yml define um sistema de arquivos raiz somente leitura, cap_drop: ALL e no-new-privileges. A imagem de tempo de execução não inclui pip. |
Não há listener TLS integrado; encerre o TLS em um proxy reverso ou balanceador de carga. Relate vulnerabilidades conforme descrito em SECURITY.md.
Configuração
Todas as configurações são variáveis de ambiente (geralmente via .env). As que a maioria das implantações ajusta:
| Variável | Padrão | Finalidade |
|---|---|---|
WAZUH_HOST, WAZUH_USER, WAZUH_PASS | — | Conexão com a API do Manager (obrigatório) |
WAZUH_PORT | 55000 | Porta da API do Manager |
WAZUH_CA_BUNDLE | — | PEM da CA usado em vez do armazenamento do sistema para verificar o Manager e o Indexer; consulte Manager TLS |
WAZUH_ALLOW_SELF_SIGNED | false | true conecta-se ao Manager sem verificação de certificado (registrado na inicialização) |
WAZUH_INDEXER_HOST, WAZUH_INDEXER_USER, WAZUH_INDEXER_PASS | — | Conexão com o Indexer; um prefixo de host http:// seleciona HTTP simples |
WAZUH_INDEXER_PORT | 9200 | Porta do Indexer |
ENVIRONMENT | development | production exige um AUTH_SECRET_KEY forte (a menos que AUTH_MODE=none) |
AUTH_MODE | bearer | bearer, oauth ou none |
AUTH_SECRET_KEY | gerado por processo fora de produção | Chave de assinatura de token; use o mesmo valor em todas as instâncias |
MCP_API_KEY / API_KEYS | gerado por processo se não definido (impresso apenas em desenvolvimento) | Uma única chave wazuh_, ou uma lista JSON de chaves com hash com escopos por chave |
MCP_API_KEY_SCOPES | wazuh:read | Escopos separados por espaço para MCP_API_KEY |
OAUTH_ISSUER_URL | derivado da solicitação | URL HTTPS pública do servidor, para AUTH_MODE=oauth |
OAUTH_IDP_ISSUER | — | Provedor OpenID Connect para login OAuth (com OAUTH_IDP_CLIENT_ID); login com chave de API quando não definido |
WAZUH_REQUIRE_ACTION_CONFIRMATION | true em produção, caso contrário false | Ferramentas de escrita exigem confirm=true |
MCP_HOST, MCP_PORT | 127.0.0.1 (0.0.0.0 na imagem Docker), 3000 | Endereço de bind e porta |
ALLOWED_ORIGINS | https://claude.ai,http://localhost:3000 | Lista de permissões CORS (correspondência exata) |
WAZUH_TOOLSETS, WAZUH_DISABLED_TOOLS | todos habilitados | Limitar as ferramentas expostas |
REDIS_URL | — | Armazenamento de sessão compartilhado para implantações multi-instância |
WAZUH_CLUSTERS_FILE | ./config/clusters.json | Topologia multi-cluster; modo de cluster único quando ausente |
RESPONSE_FORMAT | json | gcf codifica coleções de alertas, eventos e vulnerabilidades no formato GCF compacto (sem perdas; volta para JSON se o codificador não estiver disponível) |
YDC_API_KEY | — | Habilita search_external_context |
Referência completa, incluindo TTLs OAuth, limites de taxa, sessões e configurações de resposta ativa: Guia de Configuração. Configuração multi-cluster: Guia Multi-Cluster e config/clusters.json.example.
Executando a partir do código-fonte
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
Requer Python 3.11 ou posterior.
Endpoints HTTP
| Endpoint | Método | Descrição |
|---|---|---|
/mcp | POST, GET, DELETE | MCP Streamable HTTP |
/ | POST, GET | Mesmo manipulador que /mcp |
/sse | GET, POST | Retorna 410 Gone; use /mcp |
/health | GET | Liveness; sem verificações de dependência |
/ready | GET | Readiness; 503 quando o Manager, Indexer ou a verificação de espaço de memória falha |
/metrics | GET | Métricas Prometheus |
/auth/token | POST | Troca uma chave de API por um JWT bearer |
/.well-known/oauth-authorization-server | GET | Metadados OAuth (RFC 8414), somente AUTH_MODE=oauth |
/.well-known/oauth-protected-resource | GET | Metadados de recurso protegido (RFC 9728), somente AUTH_MODE=oauth |
/oauth/authorize, /oauth/token, /oauth/revoke, /oauth/register, /oauth/callback | GET/POST | Endpoints OAuth, somente AUTH_MODE=oauth (/oauth/register requer OAUTH_ENABLE_DCR=true e sem OAUTH_IDP_ISSUER; /oauth/callback é o URI de redirecionamento OpenID Connect e precisa de OAUTH_IDP_ISSUER) |
/docs, /redoc, /openapi.json | GET | Documentação OpenAPI |
Estrutura do Projeto
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
Documentação
| Documento | Conteúdo |
|---|---|
| Guia de Configuração | Cada variável de ambiente, modos de autenticação, RBAC |
| Integração Claude | Conectando conectores personalizados Claude |
| Guia LLM Local | vLLM, Open WebUI, Ollama, LiteLLM, avaliação de seleção de ferramentas |
| Multi-Cluster | Clusters nomeados e pesquisa entre clusters |
| Operações | Implantação, monitoramento, manutenção |
| Recursos Avançados | Implantação multi-instância, saída compacta |
| Solução de Problemas | Problemas comuns e correções |
| Referência da API | Parâmetros por ferramenta |
| Endurecimento de Segurança | Orientação de endurecimento |
| Conformidade MCP | Notas de conformidade de protocolo |
| Compatibilidade Wazuh | Versões Wazuh suportadas |
| Atualização · Changelog · Política de Segurança | Notas de versão e políticas |
Projeto relacionado: Wazuh Autopilot constrói fluxos de trabalho SOC automatizados sobre este servidor.
Contribuindo
Consulte CONTRIBUTING.md. Bugs, solicitações de recursos e perguntas vão para Issues, e relatórios de segurança para um aviso de segurança privado.
Licença
Agradecimentos
Obrigado a todos que contribuíram com código, revisões, relatórios de bugs e feedback de design. Consulte também ACKNOWLEDGMENTS.md.
Código e pull requests
- @alokemajumder — mantenedor; arquitetura, transporte MCP, endurecimento de segurança, versões
- @gensecai-dev — as 19 ferramentas de ação, verificação e reversão, correções de endpoints quebrados, endurecimento de produção
- @andrzej-piotrowski-pl — ferramentas de conformidade ISO 27001:2022: mapeamento de controle do Anexo A, pontuação de domínio, análise de lacunas (#74)
- @blackwell-systems — codificação de resposta GCF opcional para ferramentas de registro (#102, #104)
- @lucascruzb — agregação de alertas por período via scroll, a base de
get_alerts_aggregated(#79) - @kanylbullen — modo de saída compacta para respostas eficientes em tokens (#65)
- @mouse-value-add — contexto opcional de pesquisa web You.com (#85)
- @DrRSatzteil — correção de paginação
tools/list(#70) - @SiM22 — suporte MCP 2025-06-18 para compatibilidade Windsurf (#66)
- @aiunmukto —
.env.example(#12), um fluxo de trabalho CI inicial e a listagem no registro Glama - @Karibusan — correções de dependência (#38)
- @lwsinclair — listagem MseeP.ai (#9)
- @markeclaudio — login OpenID Connect (#123), salvaguardas de resposta ativa (#124, #125), limites de armazenamento de sessão (#126), verificação TLS do Manager por padrão (#127)
- @MilkyWay88 e @taylorwalton — pull requests iniciais sobre configuração, registro e empacotamento
Relatórios de bugs e discussões
@cbassonbgroup, @cybersentinel-06, @daod-arshad, @mamema, @marcolinux46, @matveevandrey, @punkpeye, @tonyliu9189, @Uberkarhu, @bl4ck5w4n07, @gnix45, @hackdefendr, @melmasry1987, @Vasanth120v, @wqfh
Construído sobre e funciona com
- Wazuh — plataforma de segurança de código aberto
- Model Context Protocol — o protocolo que este servidor implementa
- vLLM, Ollama e Open WebUI — serviço e chat de modelos locais, usados na pilha LLM local
Contribuidores
Contribuidores
| Avatar | Username | Contribuições |
|---|---|---|
| @alokemajumder | 💻 Código, 🐛 Issues, 🔀 PRs, 💬 Discussões | |
| @Karibusan | 💻 Código, 🐛 Issues, 🔀 PRs | |
| @gensecai-dev | 💻 Código, 🔀 PRs, 💬 Discussões | |
| @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 | 🐛 Issues | |
| @cybersentinel-06 | 🐛 Issues | |
| @daod-arshad | 🐛 Issues | |
| @mamema | 🐛 Issues | |
| @marcolinux46 | 🐛 Issues | |
| @matveevandrey | 🐛 Issues | |
| @punkpeye | 🐛 Issues | |
| @tonyliu9189 | 🐛 Issues | |
| @Uberkarhu | 🐛 Issues | |
| @bl4ck5w4n07 | 💬 Discussões | |
| @gnix45 | 💬 Discussões | |
| @hackdefendr | 💬 Discussões | |
| @melmasry1987 | 💬 Discussões | |
| @Vasanth120v | 💬 Discussões | |
| @wqfh | 💬 Discussões |
Legenda: 💻 Código · 🐛 Issues · 🔀 Pull Requests · 💬 Discussões
Atualizado automaticamente por GitHub Actions