remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Enables searching for vulnerabilities related to Red Hat products in the NVD database using keyword search functionality
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.json
- En Windows:
%APPDATA%/Claude/claude_desktop_config.json
- En macOS:
- Añade lo siguiente:
- Reemplace
/path/to/uvx
con la ruta absoluta al ejecutableuvx
. Busque la ruta conwhich uvx
en una terminal. Esto garantiza que se use la versión correcta deuvx
al 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
.env
en la raíz del proyecto:Copy - Reemplace
your-api-key
con su clave API de NVD.
- Cree un archivo
- 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
stdio
ysse
en el inspector.
Pruebas con el cliente SSE
Ejecutar el servidor:
- Se ejecuta con transporte SSE en el puerto
9090
de 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
.env
tengaNVD_API_KEY=your-key
o 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 elDockerfile
del directorio principal, que configura el servidor MCP-NVD conuv
y 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:Copy
- Construya la imagen usando el Dockerfile:Copy
- Esto crea la imagen con todas las dependencias de
pyproject.toml
y el módulomcp_nvd/
, configurando el comando predeterminado para ejecutar el servidor.
- Esto crea la imagen con todas las dependencias de
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_KEY
esté en../.env
o 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-nvd
se esté ejecutando mediantedocker-compose up
. - Ejecutar en el contenedor :
- Identifique el nombre del contenedor (por ejemplo,
mcp-nvd-mcp-nvd-1
) con:Copy - Ejecute las pruebas dentro del contenedor:Copy
- Nota : Se asume que
test_tools.py
se copia en la imagen en/app/tests/
. De lo contrario, modifique el Dockerfile para incluir:Luego reconstruya la imagen conCopydocker build -t mcp-nvd:test .
desde la raíz.
- Identifique el nombre del contenedor (por ejemplo,
- Alternativa : ejecutar pruebas localmente contra el servicio en contenedor:Copy
- Esta prueba se realiza contra
http://localhost:9090
mientras se ejecuta el servicio.
- Esta prueba se realiza contra
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:test
antes 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
Una implementación de servidor de Protocolo de Contexto Modelo para consultar la Base de Datos de Vulnerabilidad Nacional (NVD) del NIST a través de su API.