Vectra AI MCP Server
Servidor MCP de Vectra AI
Este proyecto implementa un servidor MCP para la Plataforma Vectra AI.
¿Qué es Vectra AI MCP?
Un servidor MCP que conecta asistentes de IA a su plataforma de seguridad Vectra AI, permitiendo el análisis inteligente de datos de detección de amenazas, información de seguridad y flujos de trabajo automatizados de respuesta a incidentes. Compatible con Claude, ChatGPT, Cursor, VS Code y otras herramientas de IA habilitadas para MCP.
¿Qué puede hacer con Vectra AI MCP?
Investigar amenazas en lenguaje natural
Tomar medidas de respuesta en Vectra directamente desde su agente de IA
Correlacionar y analizar datos de seguridad mediante prompts
Crear dinámicamente visualizaciones avanzadas para el análisis
Generar informes de investigación a partir de lenguaje natural
Configuración - Hospedaje local
Requisitos previos
Instalar Python Consulte el archivo .python-version para conocer la versión requerida
Instalar uv - Gestor de paquetes de Python
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Or via pip
pip install uvPasos de configuración
Clonar/Descargar el proyecto en su máquina local
Navegar al directorio del proyecto:
cd your-project-directoryConfigurar credenciales:
Opción A: Inquilino único (archivo .env)
# Copy the example environment file
cp .env.example .envLuego, edite el archivo .env con sus credenciales reales de la Plataforma Vectra AI.
Variables requeridas a actualizar:
VECTRA_BASE_URL: La URL de su portal de VectraVECTRA_CLIENT_ID: Su ID de cliente de VectraVECTRA_CLIENT_SECRET: Su secreto de cliente de Vectra
Opción B: Múltiples inquilinos (configuración YAML)
Si tiene varios inquilinos de Vectra, utilice un archivo de configuración YAML en su lugar:
cp tenants.yaml.example tenants.yamlLuego, edite tenants.yaml con los detalles de sus inquilinos:
tenants:
- name: prod
base_url: https://prod-tenant.uw2.portal.vectra.ai
client_id: "<prod-client-id>"
client_secret: "<prod-client-secret>"
- name: staging
base_url: https://staging-tenant.uw2.portal.vectra.ai
client_id: "<staging-client-id>"
client_secret: "<staging-client-secret>"Cada inquilino obtiene su propio conjunto de herramientas con el prefijo del nombre del inquilino (por ejemplo, prod_list_detections, staging_list_detections). También se añade una meta-herramienta list_tenants para descubrir los inquilinos disponibles.
Los valores por inquilino se pueden sobrescribir mediante variables de entorno utilizando el patrón VECTRA_TENANT_<NAME>_<FIELD> (por ejemplo, VECTRA_TENANT_PROD_CLIENT_SECRET). Esto es útil para Docker/Kubernetes donde los secretos no deben almacenarse en archivos.
Crear y activar un entorno virtual:
uv venv
# Activate it:
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activateInstalar dependencias:
uv syncEsto instalará todas las dependencias especificadas en pyproject.toml utilizando las versiones exactas de uv.lock.
Ejecutar la aplicación:
El servidor admite múltiples protocolos de transporte:
# Run with stdio transport (default, for Claude Desktop)
python server.py
python server.py --transport stdio
# Run with SSE transport (for HTTP-based MCP clients)
python server.py --transport sse --host 0.0.0.0 --port 8000
# Run with streamable-http transport (for production HTTP deployments)
python server.py --transport streamable-http --host 0.0.0.0 --port 8000
# Run with multi-tenant YAML config
python server.py --config tenants.yaml
python server.py -c tenants.yaml --transport sse
# Enable debug logging
python server.py --debugOpciones de transporte:
stdio: Comunicación de entrada/salida estándar (predeterminado, utilizado por Claude Desktop)
sse: Eventos enviados por el servidor (Server-Sent Events) sobre HTTP (bueno para clientes basados en web)
streamable-http: Transporte HTTP transmitible (recomendado para despliegues HTTP en producción)
Variables de entorno: También puede configurar el servidor utilizando variables de entorno:
export VECTRA_MCP_TRANSPORT=streamable-http
export VECTRA_MCP_HOST=0.0.0.0
export VECTRA_MCP_PORT=8000
export VECTRA_MCP_DEBUG=true
python server.pyConfiguración de MCP para Claude Desktop
Añadir el servidor MCP a Claude Desktop:
# On macOS:
# Open Claude Desktop configuration file
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# On Windows:
# Open Claude Desktop configuration file
notepad %APPDATA%/Claude/claude_desktop_config.jsonAñada la siguiente configuración a la sección mcpServers (actualice las rutas para que coincidan con su configuración):
Inquilino único:
{
"mcpServers": {
"vectra-ai-mcp": {
"command": "/path/to/your/uv/binary",
"args": [
"--directory",
"/path/to/your/project/directory",
"run",
"server.py"
]
}
}
}Multi-inquilino:
{
"mcpServers": {
"vectra-ai-mcp": {
"command": "/path/to/your/uv/binary",
"args": [
"--directory",
"/path/to/your/project/directory",
"run",
"server.py",
"--config",
"tenants.yaml"
]
}
}
}Depuración - Encontrar la ruta de instalación de uv:
# Find where uv is installed
which uv
# or
where uvDepuración - Obtener la ruta absoluta de su proyecto:
# From your project directory, run:
pwdReiniciar Claude Desktop para cargar la nueva configuración del servidor MCP.
Configuración de otros clientes MCP
Una vez configurado, debería poder utilizar las capacidades de la Plataforma Vectra AI directamente dentro de Claude Desktop u otros clientes MCP a través de este servidor MCP.
Para otros clientes MCP además de Claude Desktop, consulte los enlaces de documentación a continuación:
Cliente MCP | Enlace de documentación |
Configuración general de MCP | |
Cursor | |
VS Code | https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server |
Para otros clientes MCP, consulte su documentación respectiva. El patrón general es similar: deberá especificar el comando y los argumentos para ejecutar el servidor MCP con la misma estructura de configuración.
Configuración - Despliegue con Docker
Para despliegues en producción o una configuración más sencilla, puede ejecutar el servidor MCP de Vectra AI utilizando Docker. Ofrecemos dos opciones:
Opción 1: Uso de imágenes preconstruidas (Recomendado)
La forma más fácil de empezar es utilizar nuestras imágenes de Docker preconstruidas desde el Registro de Contenedores de GitHub.
Requisitos previos
Docker Desktop o Docker Engine
Pasos de inicio rápido
Configurar variables de entorno:
# Copy the example environment file
cp .env.example .envLuego, edite el archivo .env con sus credenciales reales de la Plataforma Vectra AI.
Ejecutar con la imagen preconstruida:
Transporte HTTP transmitible (Recomendado para producción)
docker run -d \
--name vectra-mcp-server-http \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=streamable-http \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestTransporte SSE (Eventos enviados por el servidor)
docker run -d \
--name vectra-mcp-server-sse \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=sse \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestTransporte Stdio (Para clientes MCP locales)
docker run -d \
--name vectra-mcp-server-stdio \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=stdio \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestO utilizar Docker Compose (Alternativa):
Cree un archivo docker-compose.yml:
version: '3.8'
services:
vectra-mcp-server:
image: ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latest
container_name: vectra-mcp-server
env_file: .env
environment:
- VECTRA_MCP_TRANSPORT=streamable-http
- VECTRA_MCP_HOST=0.0.0.0
- VECTRA_MCP_PORT=8000
ports:
- "8000:8000"
restart: unless-stoppedLuego ejecute:
docker-compose up -dEtiquetas disponibles:
latest: Última compilación estable de la rama principalmain: Última compilación de la rama principal (igual que latest)v*: Etiquetas de versión específica (por ejemplo, v1.0.0)
💡 Consejo: Las imágenes preconstruidas se compilan y publican automáticamente a través de GitHub Actions cada vez que se envía código a la rama principal o cuando se etiquetan versiones. Esto garantiza que siempre obtenga la última versión probada sin necesidad de compilar localmente.
Opción 2: Compilar desde el código fuente
Para desarrollo o personalización, puede compilar la imagen de Docker desde el código fuente.
Requisitos previos
Instalar Docker y Docker Compose
Docker Desktop (incluye Docker Compose)
O instale Docker Engine y Docker Compose por separado en Linux
Pasos para compilar desde el código fuente
Clonar/Descargar el proyecto en su máquina local
Navegar al directorio del proyecto:
cd your-project-directoryConfigurar variables de entorno:
# Copy the example environment file
cp .env.example .envLuego, edite el archivo .env con sus credenciales reales de la Plataforma Vectra AI.
Compilar y ejecutar con Docker:
# Build the image
docker build -t vectra-mcp-server .Ejecutar la imagen compilada localmente:
Elija su modo de transporte y ejecute con la imagen compilada localmente:
Transporte HTTP transmitible
docker run -d \
--name vectra-mcp-server-http \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=streamable-http \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
vectra-mcp-serverTransporte SSE
docker run -d \
--name vectra-mcp-server-sse \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=sse \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
vectra-mcp-serverTransporte Stdio
docker run -d \
--name vectra-mcp-server-stdio \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=stdio \
--restart unless-stopped \
vectra-mcp-serverConfiguración multi-inquilino en Docker
Para ejecutar el servidor en modo multi-inquilino con Docker:
Cree un archivo
tenants.yaml(consultetenants.yaml.example).Móntelo en el contenedor y establezca
VECTRA_CONFIG_FILE:
docker run -d \
--name vectra-mcp-server \
-e VECTRA_CONFIG_FILE=/app/tenants.yaml \
-e VECTRA_MCP_TRANSPORT=streamable-http \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-v ./tenants.yaml:/app/tenants.yaml:ro \
-p 8000:8000 \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestPuede inyectar secretos por inquilino a través de variables de entorno en lugar de almacenarlos en el archivo YAML:
docker run -d \
--name vectra-mcp-server \
-e VECTRA_CONFIG_FILE=/app/tenants.yaml \
-e VECTRA_TENANT_PROD_CLIENT_SECRET=<secret> \
-e VECTRA_TENANT_STAGING_CLIENT_SECRET=<secret> \
-v ./tenants.yaml:/app/tenants.yaml:ro \
-p 8000:8000 \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestVariables de entorno de Docker
El contenedor Docker admite todas las mismas variables de entorno que la configuración local, además de la configuración adicional del servidor MCP:
Configuración del servidor MCP
VECTRA_MCP_TRANSPORT: Protocolo de transporte (stdio,sseostreamable-http) - predeterminado:stdioVECTRA_MCP_HOST: Host al que vincularse para transportes HTTP - predeterminado:0.0.0.0VECTRA_MCP_PORT: Puerto para transportes HTTP - predeterminado:8000VECTRA_MCP_DEBUG: Habilitar registro de depuración - predeterminado:falseVECTRA_CONFIG_FILE: Ruta al archivo de configuración YAML para el modo multi-inquilino (opcional)
Variables de sobrescritura multi-inquilino
Al utilizar un archivo de configuración YAML, la configuración por inquilino se puede sobrescribir mediante variables de entorno:
VECTRA_TENANT_<NAME>_BASE_URLVECTRA_TENANT_<NAME>_CLIENT_IDVECTRA_TENANT_<NAME>_CLIENT_SECRETVECTRA_TENANT_<NAME>_API_VERSIONVECTRA_TENANT_<NAME>_REQUEST_TIMEOUT
Donde <NAME> es el nombre del inquilino en mayúsculas (por ejemplo, VECTRA_TENANT_PROD_CLIENT_SECRET).
Acceso al servidor HTTP
Al ejecutar con transportes HTTP (sse o streamable-http), el servidor MCP estará disponible en:
Streamable HTTP:
http://localhost:8000/mcpSSE:
http://localhost:8000/sse
Configuración del cliente MCP para Docker
Para clientes MCP basados en HTTP que se conectan al servidor Dockerizado, utilice el endpoint apropiado:
{
"mcpServers": {
"vectra-ai-mcp": {
"transport": {
"type": "http",
"url": "http://localhost:8000/"
}
}
}
}Comprobaciones de estado de Docker
El contenedor Docker incluye comprobaciones de estado que verificarán que el servidor se esté ejecutando correctamente:
Para transporte
stdio: Siempre informa como saludable (no hay endpoint HTTP para verificar)Para transportes HTTP: Verifica la disponibilidad del endpoint HTTP
Nota: MCP (Model Context Protocol) es una tecnología emergente y en rápida evolución. Tenga precaución al utilizar este servidor y siga las mejores prácticas de seguridad, incluida la gestión adecuada de credenciales y las medidas de seguridad de red.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/vectra-ai-research/vectra-ai-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server