MCP Cybersecurity Server

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.

Category
访问服务器

README

MCP Cybersecurity Server

Servidor MCP para análisis de vulnerabilidades CVE, integrado con la API de CIRCL Vulnerability Lookup

Python MCP License


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)

  1. search_cve_by_id

    • Busca información detallada de un CVE específico
    • Retorna: descripción, CVSS, severidad, referencias, fechas, CWEs
  2. search_cves_by_keyword

    • Busca CVEs por producto, vendor o palabra clave
    • Ideal para descubrir vulnerabilidades de tecnologías específicas
  3. 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)

  1. 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
  2. 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 Anthropic
  • httpx>=0.24.0 - Cliente HTTP async
  • pydantic>=2.0.0 - Validación de datos
  • python-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

  1. 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
    
  2. 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"
        }
      }
    }
    
  3. Reiniciar Claude Desktop

  4. 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_keyword con 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_risk con 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_id para cada CVE
    • summarize_cve_risk para análisis de riesgo
  • Lee resources:
    • risk_matrix.json para clasificación
    • playbook_high_risk.md si 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

  1. Verificar servidor se inicia correctamente:

    python -m src.server
    # Debe mostrar logs sin errores
    # Ctrl+C para detener
    
  2. 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:
    1. Verificar claude_desktop_config.json
    2. Asegurar que las rutas son absolutas
    3. Reiniciar Claude Desktop

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:
    1. Verificar que el archivo de configuración está en la ubicación correcta
    2. Verificar sintaxis JSON (usar validador online)
    3. Verificar permisos de ejecución: chmod +x venv/bin/python
    4. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选