Skip to main content
Glama
afukaya

NVD MCP Server

by afukaya
README.md
# NVD MCP Server

Servidor MCP em Python para consultar a API NVD Vulnerability API 2.0 (NIST).

## Funcionalidades

- Consulta detalhada por identificador CVE.
- Pesquisa por palavra-chave, CPE, CWE, severidade CVSS v3 e catálogo KEV da CISA.
- Consulta de vulnerabilidades por intervalo de data de publicação.
- Transporte MCP via SSE para uso remoto ou STDIO para execução local.
- Execução em contêiner Docker com usuário não-root.

## Requisitos

- Python 3.10 ou superior, ou Docker com Docker Compose.
- Opcionalmente, uma chave da API NVD na variável `NVD_API_KEY`.

## Execução com Docker Compose

```bash
docker compose up --build
```

Por padrão, o servidor fica disponível em `http://localhost:8000/sse`.

Para usar uma chave da API NVD, defina `NVD_API_KEY` no ambiente antes de iniciar o Compose:

```bash
NVD_API_KEY=sua-chave docker compose up --build
```

No PowerShell:

```powershell
$env:NVD_API_KEY = "sua-chave"
docker compose up --build
```

## Execução local

Instale as dependências e inicie o servidor SSE:

```bash
python -m pip install -r requirements.txt
python nvd_mcp_server.py
```

Para usar STDIO:

```bash
MCP_TRANSPORT=stdio python nvd_mcp_server.py
```

No PowerShell:

```powershell
$env:MCP_TRANSPORT = "stdio"
python nvd_mcp_server.py
```

As variáveis `MCP_HOST`, `MCP_PORT` e `MCP_TRANSPORT` permitem ajustar o transporte e o endereço de escuta.

## Ferramentas MCP

- `get_cve_details`: retorna os detalhes de um CVE.
- `search_vulnerabilities`: pesquisa vulnerabilidades com filtros.
- `get_recent_vulnerabilities_by_date`: consulta publicações em um intervalo de datas.

## Configuração do cliente

O arquivo `agent_config.json` contém um exemplo de configuração para um cliente MCP remoto. Altere a URL para o endereço real do servidor antes de usá-lo.

## Licença

Este projeto não define uma licença. Consulte o proprietário antes de reutilizar o código em outros projetos.