MCP Cybersecurity Server
Enables vulnerability analysis by querying CVE data through the CIRCL API and provides professional security risk assessments for SOC and Blue Team operations. It integrates tools for searching vulnerabilities with resources like risk matrices and operational playbooks to help remediate security threats.
README
MCP Cybersecurity Server
Servidor MCP para análisis de vulnerabilidades CVE, integrado con la API de CIRCL Vulnerability Lookup
Descripción
Este proyecto implementa un servidor MCP (Model Context Protocol) especializado en análisis de vulnerabilidades de ciberseguridad. Permite a modelos de lenguaje (LLMs) consultar información de CVEs, analizar riesgos y proporcionar recomendaciones de seguridad basadas en playbooks profesionales y matrices de riesgo.
Desarrollado para: Máster en IA Aplicada a Ciberseguridad - Módulo 8 - Tarea 2 Autor: José Miguel Teba Luque Fecha: Diciembre 2025
Características Principales
🔧 3 Herramientas (Tools)
-
search_cve_by_id- Busca información detallada de un CVE específico
- Retorna: descripción, CVSS, severidad, referencias, fechas, CWEs
-
search_cves_by_keyword- Busca CVEs por producto, vendor o palabra clave
- Ideal para descubrir vulnerabilidades de tecnologías específicas
-
summarize_cve_risk- Análisis de riesgo orientado a equipos SOC/Blue Team
- Incluye EPSS score, nivel de urgencia, SLAs y recomendaciones
📚 2 Recursos (Resources)
-
playbook_high_risk.md- Playbook operativo para gestión de vulnerabilidades críticas
- 4 fases: Detección, Mitigación, Parcheo, Cierre
- SLA de 4 horas, procedimientos de escalación
-
risk_matrix.json- Matriz de priorización de riesgos
- 5 niveles: CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL
- Criterios basados en CVSS, EPSS y contexto del activo
🤖 1 Prompt Preconfigurado
analyze_asset_vulnerabilities- Análisis completo de un activo con múltiples CVEs
- Genera reporte ejecutivo con timeline de remediación
- Combina tools + resources para análisis integral
Requisitos Previos
- Python: 3.10 o superior (recomendado 3.12+)
- Sistema Operativo: macOS, Linux, o Windows
- MCP Host: Claude Desktop, VS Code con extensión MCP, o cliente MCP compatible
- Conexión a Internet: Para consultas a la API de CIRCL
Instalación
1. Clonar o Descargar el Proyecto
# Navegar al directorio del proyecto
cd "/path/to/mcp-cybersecurity-server"
2. Crear Entorno Virtual
# Crear entorno virtual con Python 3.12+
python3.12 -m venv venv
# Activar entorno virtual
# En macOS/Linux:
source venv/bin/activate
# En Windows:
venv\Scripts\activate
3. Instalar Dependencias
# Actualizar pip
pip install --upgrade pip
# Instalar dependencias del proyecto
pip install -r requirements.txt
Dependencias principales:
mcp>=1.0.0- Framework MCP oficial de Anthropichttpx>=0.24.0- Cliente HTTP asyncpydantic>=2.0.0- Validación de datospython-dotenv>=1.0.0- Gestión de variables de entorno
4. Verificar Instalación
# Verificar que MCP se instaló correctamente
python -c "import mcp; print(f'MCP version: {mcp.__version__}')"
Configuración
Configurar Variables de Entorno (Opcional)
# Copiar archivo de ejemplo
cp .env.example .env
# Editar .env si necesitas personalizar:
# CIRCL_API_BASE_URL=https://vulnerability.circl.lu/api
# LOG_LEVEL=INFO
Configurar Claude Desktop
-
Ubicar archivo de configuración:
# En macOS: ~/Library/Application Support/Claude/claude_desktop_config.json # En Windows: %APPDATA%\Claude\claude_desktop_config.json # En Linux: ~/.config/Claude/claude_desktop_config.json -
Editar el archivo y añadir la configuración del servidor:
{ "mcpServers": { "cybersecurity-server": { "command": "/RUTA_COMPLETA/mcp-cybersecurity-server/venv/bin/python", "args": [ "-m", "src.server" ], "cwd": "/RUTA_COMPLETA/mcp-cybersecurity-server", "env": { "CIRCL_API_BASE_URL": "https://vulnerability.circl.lu/api" } } } }IMPORTANTE: Reemplaza
/RUTA_COMPLETA/con la ruta absoluta al directorio del proyecto.Ejemplo para macOS:
{ "mcpServers": { "cybersecurity-server": { "command": "/Users/jmteba/Library/Mobile Documents/com~apple~CloudDocs/Máster IA Ciberseguridad /Módulo 8/TAREA 2/mcp-cybersecurity-server/venv/bin/python", "args": ["-m", "src.server"], "cwd": "/Users/jmteba/Library/Mobile Documents/com~apple~CloudDocs/Máster IA Ciberseguridad /Módulo 8/TAREA 2/mcp-cybersecurity-server" } } } -
Reiniciar Claude Desktop
-
Verificar: En Claude Desktop, deberías ver el servidor "cybersecurity-server" en la lista de servidores MCP disponibles.
Uso
Test 1: Búsqueda de CVE por ID
Prompt en Claude Desktop:
Busca información detallada del CVE-2024-3094
Resultado Esperado:
- Claude invoca la tool
search_cve_by_id - Retorna información completa: descripción, CVSS, severidad, referencias
- Para CVE-2024-3094 (XZ backdoor): CVSS 10.0, CRITICAL
Test 2: Búsqueda por Producto/Keyword
Prompt en Claude Desktop:
Busca las 5 vulnerabilidades más recientes de Apache HTTP Server
Resultado Esperado:
- Claude invoca
search_cves_by_keywordcon keyword="apache" y limit=5 - Retorna tabla con CVE IDs, severidad, CVSS, fechas y resúmenes
Test 3: Análisis de Riesgo
Prompt en Claude Desktop:
Analiza el riesgo del CVE-2024-3094 para un servidor web público de producción
Resultado Esperado:
- Claude invoca
summarize_cve_riskcon contexto="servidor web público" - Retorna análisis detallado con:
- Nivel de urgencia (CRÍTICA)
- EPSS score y probabilidad de explotación
- SLA de respuesta (4 horas)
- Recomendaciones de mitigación
Test 4: Consultar Resource
Prompt en Claude Desktop:
Muéstrame el playbook de respuesta para vulnerabilidades críticas
Resultado Esperado:
- Claude lee el resource
playbook://high_risk - Presenta el contenido del playbook con las 4 fases
Test 5: Usar Prompt Preconfigurado
Prompt en Claude Desktop:
Analiza las vulnerabilidades del servidor web de producción con estos CVEs:
CVE-2024-3094, CVE-2023-44487, CVE-2023-38545
El servidor está expuesto a Internet y es de criticidad alta.
Resultado Esperado:
- Claude ejecuta el prompt
analyze_asset_vulnerabilities - Invoca múltiples tools:
search_cve_by_idpara cada CVEsummarize_cve_riskpara análisis de riesgo
- Lee resources:
risk_matrix.jsonpara clasificaciónplaybook_high_risk.mdsi hay CVEs críticos
- Genera reporte completo con:
- Resumen ejecutivo
- Tabla priorizada de vulnerabilidades
- Timeline de remediación
- Recomendaciones específicas
Estructura del Proyecto
mcp-cybersecurity-server/
├── src/
│ ├── __init__.py
│ ├── server.py # Servidor MCP principal
│ ├── tools/
│ │ ├── __init__.py
│ │ ├── cve_search.py # Tool: search_cve_by_id
│ │ ├── cve_keyword.py # Tool: search_cves_by_keyword
│ │ └── cve_risk.py # Tool: summarize_cve_risk
│ ├── api/
│ │ ├── __init__.py
│ │ └── circl_client.py # Cliente para API CIRCL
│ └── utils/
│ ├── __init__.py
│ └── formatters.py # Utilidades de formato
├── resources/
│ ├── playbook_high_risk.md # Resource: Playbook crítico
│ └── risk_matrix.json # Resource: Matriz de riesgos
├── tests/ # Tests unitarios (opcional)
│ ├── test_tools.py
│ └── test_api.py
├── config/
│ └── mcp_config.json # Configuración del servidor
├── docs/
│ └── memoria.md # Documentación de la práctica
├── venv/ # Entorno virtual (no incluir en git)
├── pyproject.toml # Metadata y dependencias
├── requirements.txt # Dependencias pip
├── README.md # Este archivo
├── .gitignore
└── .env.example
Testing
Tests Unitarios (Opcional)
# Activar entorno virtual
source venv/bin/activate
# Ejecutar tests
pytest tests/ -v
# Con cobertura
pytest tests/ --cov=src --cov-report=html
Tests de Integración
-
Verificar servidor se inicia correctamente:
python -m src.server # Debe mostrar logs sin errores # Ctrl+C para detener -
Test desde Claude Desktop:
- Reiniciar Claude Desktop
- Verificar que "cybersecurity-server" aparece en la lista de servidores
- Ejecutar los 5 tests de uso descritos arriba
Solución de Problemas
Error: "CVE not found"
- Causa: El CVE no existe en la base de datos de CIRCL
- Solución: Verificar el formato (CVE-YYYY-NNNN) y que el CVE está publicado
Error: "Timeout al consultar API"
- Causa: La API de CIRCL está lenta o no responde
- Solución: Reintentar después de unos segundos, verificar conexión a Internet
Error: "Tool not found" en Claude Desktop
- Causa: El servidor no está correctamente registrado
- Solución:
- Verificar
claude_desktop_config.json - Asegurar que las rutas son absolutas
- Reiniciar Claude Desktop
- Verificar
Error: "Module not found: mcp"
- Causa: Dependencias no instaladas o entorno virtual no activado
- Solución:
source venv/bin/activate pip install -r requirements.txt
El servidor no aparece en Claude Desktop
- Solución:
- Verificar que el archivo de configuración está en la ubicación correcta
- Verificar sintaxis JSON (usar validador online)
- Verificar permisos de ejecución:
chmod +x venv/bin/python - Revisar logs de Claude Desktop (Menu > View > Toggle Developer Tools > Console)
Funcionalidades Avanzadas (Opcionales)
Caché de Respuestas
Para mejorar el rendimiento, puedes implementar un caché local:
# En src/api/circl_client.py
from functools import lru_cache
@lru_cache(maxsize=100)
async def cached_get_cve(cve_id: str):
# Implementación con caché
pass
Logging Personalizado
# En .env
LOG_LEVEL=DEBUG
LOG_FORMAT=json
Integración con SIEM
El servidor puede integrarse con sistemas SIEM para análisis automatizado de vulnerabilidades.
Contribuciones y Mejoras Futuras
Este proyecto es parte de un trabajo académico, pero las siguientes mejoras podrían implementarse:
- [ ] Integración con NVD (National Vulnerability Database) de NIST
- [ ] Exportación de reportes a PDF
- [ ] Tool adicional para comparar múltiples CVEs
- [ ] Resource adicional con CWEs comunes y recomendaciones
- [ ] Soporte para múltiples idiomas
- [ ] Dashboard web para visualización
- [ ] Integración con Slack/Teams para notificaciones
Referencias y Recursos
API Utilizada
- CIRCL Vulnerability Lookup: https://vulnerability.circl.lu/api/
- Documentación de la API: https://vulnerability.circl.lu/
Estándares de Seguridad
- CVSS v3.1: https://www.first.org/cvss/
- EPSS: https://www.first.org/epss/
- CWE Top 25: https://cwe.mitre.org/top25/
- OWASP Top 10: https://owasp.org/www-project-top-ten/
Documentación Técnica
- MCP SDK: https://github.com/anthropics/mcp
- Claude Desktop: https://claude.ai/download
- Model Context Protocol: https://modelcontextprotocol.io/
Licencia
Este proyecto es un trabajo académico desarrollado para el Máster en IA Aplicada a Ciberseguridad de la Universidad Católica de Murcia (UCAM) en colaboración con ENIIT y Campus Internacional de Ciberseguridad.
Uso Académico y Educativo.
Autor
José Miguel Teba Luque
- Máster en IA Aplicada a Ciberseguridad
- Módulo 8: Diseño y Publicación de Interfaces para Herramientas IA
- Fecha de entrega: Diciembre 2025
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。