Servidor MCP de base de datos NVD
Una implementación de servidor de Protocolo de Contexto Modelo para consultar la Base de Datos Nacional de Vulnerabilidades (NVD) del NIST a través de su API. https://nvd.nist.gov/
Como requisito previo, se requiere una clave API NVD. ( Solicitar aquí ).
Estado
Funciona con la aplicación Claude Desktop y otros hosts y clientes compatibles con MCP utilizando los transportes stdio y sse .
Características
Consulta CVE específicos por ID con datos de vulnerabilidad detallados.
Busque en la base de datos NVD por palabra clave con opciones de resultados personalizables.
Admite el transporte de eventos enviados por el servidor (SSE) para la comunicación en tiempo real.
Compatible con clientes compatibles con MCP como Claude Desktop.
Herramientas
El servidor implementa las siguientes herramientas para consultar la base de datos NVD:
get_cve:Descripción : Recupera un registro CVE por su ID.
Parámetros :
cve_id(str): El ID de CVE (por ejemplo,CVE-2019-1010218).concise(bool, predeterminadoFalse): si esTrue, devuelve un formato más corto.
Devuelve : información CVE detallada que incluye puntuaciones, debilidades y referencias.
search_cve:Descripción : Busca en la base de datos NVD por palabra clave.
Parámetros :
keyword(str): término de búsqueda (por ejemplo,Red Hat).exact_match(bool, predeterminadoFalse): si esTrue, requiere una coincidencia de frase exacta.concise(bool, predeterminadoFalse): si esTrue, devuelve registros CVE más cortos.results(int, predeterminado10): número máximo de registros CVE (1-2000).
Devuelve : Lista de CVE coincidentes con recuento total.
Configuración
Cree o edite el archivo de configuración de Claude Desktop ubicado en:
En macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonEn Windows:
%APPDATA%/Claude/claude_desktop_config.json
Añade lo siguiente:
Reemplace
/path/to/uvxcon la ruta absoluta al ejecutableuvx. Busque la ruta conwhich uvxen una terminal. Esto garantiza que se use la versión correcta deuvxal iniciar el servidor.Reinicie Claude Desktop para aplicar los cambios.
Desarrollo
Configuración
Prerrequisitos :
Python 3.10 o superior.
Una clave API de NVD ( solicítela aquí ).
Gestor de paquetes
uv( instalación ).
Clonar el repositorio :
Establecer variables de entorno :
Cree un archivo
.enven la raíz del proyecto:NVD_API_KEY=your-api-keyReemplace
your-api-keycon su clave API de NVD.
Instalar dependencias :
Ejecutar con el inspector MCP
Luego abra el navegador en la URL indicada por el Inspector MCP, normalmente http://localhost:8077?proxyPort=8078
Cambie libremente entre los tipos de transporte
stdioysseen el inspector.
Pruebas con el cliente SSE
Ejecutar el servidor:
Se ejecuta con transporte SSE en el puerto
9090de forma predeterminada.
Ejecutar el cliente:
Prueba get_cve :
Prueba search_cve (10 resultados predeterminados):
Prueba search_cve (coincidencia exacta, 5 resultados):
Configuración de Docker
Construir
Correr
Con .env :
Con variable de entorno:
Puerto personalizado:
Verificar
Prueba:
Notas
Asegúrese de que
.envtengaNVD_API_KEY=your-keyo use-e.Puerto predeterminado:
9090.
Aquí está el resumen formateado como comentarios Markdown dentro de un bloque de código, adecuado para su inclusión en un archivo como docker-compose.yaml o README.md :
Uso de Docker Compose para pruebas
Este docker-compose.yaml , ubicado en el directorio tests/ , define un servicio para probar el servidor MCP-NVD mediante una imagen de Docker precompilada. Está diseñado para un caso de uso de prueba, similar a un servicio independiente como clickhouse , y asume que la imagen se compila previamente en lugar de reconstruirse cada vez.
Suposiciones
Imagen precompilada : El servicio utiliza una imagen precompilada etiquetada como
mcp-nvd:test, disponible localmente o en el registro. La imagen se basa en elDockerfiledel directorio principal, que configura el servidor MCP-NVD conuvy lo ejecuta en modo SSE en el puerto 9090.
Cómo construir la imagen
Para crear la imagen mcp-nvd:test :
Vaya a la raíz del proyecto:
cd ./mcp-nvdConstruya la imagen usando el Dockerfile:
docker build -t mcp-nvd:test .Esto crea la imagen con todas las dependencias de
pyproject.tomly el módulomcp_nvd/, configurando el comando predeterminado para ejecutar el servidor.
Ejecución del servicio
Desde el directorio tests/ :
Acceso : El servidor se ejecuta en
http://localhost:9090.Detener :
docker-compose down.Entorno : asegúrese de que
NVD_API_KEYesté en../.envo usedocker-compose --env-file ../.env up.
Ejecución test_tools.py en el escenario de Docker Compose
Para ejecutar las pruebas unitarias ( test_tools.py ) dentro del entorno Docker:
Iniciar el servicio : asegúrese de que el servicio
mcp-nvdse esté ejecutando mediantedocker-compose up.Ejecutar en el contenedor :
Identifique el nombre del contenedor (por ejemplo,
mcp-nvd-mcp-nvd-1) con:docker psEjecute las pruebas dentro del contenedor:
docker exec -it mcp-nvd-mcp-nvd-1 python /app/tests/test_tools.pyNota : Se asume que
test_tools.pyse copia en la imagen en/app/tests/. De lo contrario, modifique el Dockerfile para incluir:COPY tests/ ./tests/Luego reconstruya la imagen con
docker build -t mcp-nvd:test .desde la raíz.
Alternativa : ejecutar pruebas localmente contra el servicio en contenedor:
cd tests python test_tools.pyEsta prueba se realiza contra
http://localhost:9090mientras se ejecuta el servicio.
Detalles clave
Puerto : 9090 está expuesto para acceso SSE.
Registros : se almacenan en un volumen
log-data(opcional).Imagen : debe compilarse una vez y etiquetarse como
mcp-nvd:testantes de ejecutardocker-compose.
Créditos a @sidharthrajaram por su patrón de trabajo para clientes y servidores MCP basados en SSE: https://github.com/sidharthrajaram/mcp-sse
This server cannot be installed
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that enables AI assistants to search and retrieve information about security exploits and vulnerabilities from the Exploit Database, enhancing cybersecurity research capabilities.Last updated -14MIT License
- Asecurity-licenseAqualityA Model Context Protocol server designed for testing backend APIs for security vulnerabilities like authentication bypass, injection attacks, and data leakage.Last updated -1411MIT License
- Asecurity-licenseAqualityA Model Context Protocol server that enables AI-powered analysis of NPM packages through multiple tools for security vulnerability scanning, dependency analysis, package comparison, and quality assessment.Last updated -191838TypeScriptMIT License
- Asecurity-licenseAqualityA Model Context Protocol server that retrieves CVE information from the National Vulnerability Database, allowing AI models to access up-to-date vulnerability data.Last updated -17Apache 2.0