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
Visit Server

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured