Servidor MCP de OpenSearch
Un servidor de Protocolo de Contexto de Modelo (MCP) para consultar y analizar los registros de seguridad de Wazuh almacenados en OpenSearch.
Características
Búsqueda de alertas de seguridad con filtrado avanzado
Obtenga información detallada sobre alertas específicas
Generar estadísticas sobre eventos de seguridad
Visualizar tendencias de alertas a lo largo del tiempo
Informes de progreso para operaciones de larga duración
Manejo estructurado de errores
Related MCP server: OpenSearch MCP Server
Prerrequisitos
Node.js v16 o superior
Acceso a una instancia de OpenSearch que contiene registros de seguridad de Wazuh
Instalación
Opción 1: Usar con npx directamente desde GitHub (recomendado)
Puede ejecutar esta herramienta directamente usando npx sin clonar el repositorio:
# Run the latest version from GitHub
npx github:jetbalsa/mcp-opensearch-js
# Run with debug mode enabled
npx github:jetbalsa/mcp-opensearch-js --debug
# You can also specify a specific branch or commit
npx github:jetbalsa/mcp-opensearch-js#mainOpción 2: Instalación local
Clonar este repositorio:
git clone https://github.com/jetbalsa/mcp-opensearch-js.git
cd mcp-opensearch-jsInstalar dependencias:
npm installConfigure sus variables de entorno:
cp .env.example .envEdite el archivo
.envcon los detalles de su conexión de OpenSearch:
OPENSEARCH_URL=https://your-opensearch-endpoint:9200
OPENSEARCH_USERNAME=your-username
OPENSEARCH_PASSWORD=your-password
DEBUG=falseEjecución del servidor
Iniciar el servidor:
npm startEsto iniciará el servidor en modo stdio.
Habilitar el registro de depuración:
npm run stdio:debugPrueba con MCP CLI:
npm run devEsto ejecuta el servidor con la herramienta CLI FastMCP para pruebas interactivas.
Prueba con MCP Inspector:
npm run inspectEsto inicia el servidor y lo conecta al Inspector MCP para la depuración visual.
Herramientas de servidor
El servidor proporciona las siguientes herramientas:
1. Alertas de búsqueda
Busque alertas de seguridad en los datos de Wazuh.
Parámetros:
query: El texto de la consulta de búsquedatimeRange: rango de tiempo (por ejemplo, 1 h, 24 h, 7 d)maxResults: Número máximo de resultados a devolverindex: Patrón de índice para buscar
2. Obtener detalles de la alerta
Obtenga información detallada sobre una alerta específica por ID.
Parámetros:
idalertaindex: Patrón de índice
3. Estadísticas de alertas
Obtenga estadísticas sobre alertas de seguridad.
Parámetros:
timeRange: rango de tiempo (por ejemplo, 1 h, 24 h, 7 d)field: Campo por el cual se agregará (por ejemplo, rule.level, agent.name)index: Patrón de índice
4. Visualizar la tendencia de alerta
Visualice las tendencias de alerta a lo largo del tiempo.
Parámetros:
timeRange: rango de tiempo (por ejemplo, 1 h, 24 h, 7 d)interval: Intervalo de tiempo para agrupar (por ejemplo, 1 h, 1 d)query: Consulta para filtrar alertasindex: Patrón de índice
Ejemplo de uso
Usando la herramienta MCP CLI:
> tools
Available tools:
- searchAlerts: Search for security alerts in Wazuh data
- getAlertDetails: Get detailed information about a specific alert by ID
- alertStatistics: Get statistics about security alerts
- visualizeAlertTrend: Visualize alert trends over time
> tools.searchAlerts(query: "rule.level:>10", timeRange: "12h", maxResults: 5)Uso con un cliente
Para utilizar este servidor MCP con una implementación de cliente:
import { Client } from "@modelcontextprotocol/sdk";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const client = new Client(
{
name: "example-client",
version: "1.0.0",
},
{
capabilities: {},
},
);
const transport = new SSEClientTransport(new URL(`http://localhost:3000/sse`));
await client.connect(transport);
// Use tools
const result = await client.executeTool("searchAlerts", {
query: "rule.level:>10",
timeRange: "24h",
maxResults: 10
});
console.log(result);Licencia
Instituto Tecnológico de Massachusetts (MIT)