NVD CVE MCP Server
by SOCTeam-ai
README.md
# NVD CVE MCP Server
[](https://www.npmjs.com/package/nvd-cve-mcp-server)
[](https://opensource.org/licenses/MIT)
A Model Context Protocol (MCP) server for retrieving and displaying CVE vulnerability information from the National Vulnerability Database (NVD). Features dual data sources with NVD API and web scraping fallback.
## ⨠Features
- š **CVE Details Lookup**: Retrieve complete vulnerability information by CVE ID
- š **Keyword Search**: Search for CVE vulnerabilities by keywords
- š **Formatted Output**: Display vulnerability information in elegant Markdown format
- š **Dual Data Sources**: API-first approach with web scraping as fallback
- š **Multi-language Support**: Full support for both English and Chinese
## š¦ Installation
### Prerequisites
- Node.js >= 18.0.0
- npm or yarn
### Quick Start with npx (Recommended)
No installation required! Use directly with npx:
```json
{
"mcpServers": {
"nvd-cve": {
"command": "npx",
"args": ["-y", "nvd-cve-mcp-server"]
}
}
}
```
### Global Installation
```bash
npm install -g nvd-cve-mcp-server
```
### Local Installation
```bash
npm install nvd-cve-mcp-server
```
## š Usage
### 1. Configure as MCP Server
Configure in Claude Desktop or other MCP-compatible applications:
**macOS/Linux** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"nvd-cve": {
"command": "npx",
"args": ["-y", "nvd-cve-mcp-server"]
}
}
}
```
**Windows** (`%APPDATA%\Claude\claude_desktop_config.json`):
```json
{
"mcpServers": {
"nvd-cve": {
"command": "npx",
"args": ["-y", "nvd-cve-mcp-server"]
}
}
}
```
### 2. Direct Execution
```bash
npm start
```
## š ļø Available Tools
### 1. get_cve_details
Retrieve detailed information for a specific CVE.
**Parameters:**
- `cve_id` (required): CVE ID in format CVE-YYYY-NNNNN
**Example:**
```
Get details for CVE-2025-13583
```
**Output Format:**
```markdown
# CVE-2025-13583
## š Basic Information
- **CVE ID**: CVE-2025-13583
- **CVSS Score**: 9.8
- **Severity**: CRITICAL
- **Published**: 2025-11-23
- **Last Modified**: 2025-11-26
- **CWE Type**: CWE-89
## š Description
[Detailed vulnerability description]
## š References
1. [VulDB](https://vuldb.com/?id.333344)
2. [GitHub Issue](https://github.com/rassec2/dbcve/issues/6)
## š Official Links
- [NVD Details](https://nvd.nist.gov/vuln/detail/CVE-2025-13583)
- [CVE Record](https://cve.org/CVERecord?id=CVE-2025-13583)
```
### 2. search_cves
Search for CVE vulnerabilities by keyword.
**Parameters:**
- `keyword` (required): Search keyword
- `limit` (optional): Number of results to return (default: 10, max: 20)
**Example:**
```
Search for CVEs related to "SQL injection"
Search for "WordPress" vulnerabilities, limit to 5 results
```
**Output Format:**
```markdown
# CVE Search Results: "SQL injection"
Found 10 related vulnerabilities
| CVE ID | Severity | CVSS | Published | Description |
|--------|----------|------|-----------|-------------|
| CVE-2025-13583 | CRITICAL | 9.8 | 2025-11-23 | A vulnerability has been found in code-projects... |
| CVE-2025-13582 | HIGH | 7.3 | 2025-11-23 | A vulnerability was found in code-projects... |
```
## š Usage Examples
### Using with Claude
1. **Query Specific CVE:**
```
Please help me query CVE-2025-13583 details
```
2. **Search Vulnerabilities:**
```
Search for recent SQL injection vulnerabilities
```
3. **Search by Product:**
```
Find WordPress-related CVE vulnerabilities
```
## š§ Technical Architecture
### Data Sources
1. **NVD API** (Primary)
- Official REST API: `https://services.nvd.nist.gov/rest/json/cves/2.0`
- Provides structured JSON data
- Includes complete CVSS scores, CWE classifications, etc.
2. **NVD Web** (Fallback)
- Web scraping when API is unavailable
- Uses Cheerio for HTML parsing
- Extracts key vulnerability information
### Core Dependencies
- `@modelcontextprotocol/sdk`: MCP protocol implementation
- `axios`: HTTP client
- `cheerio`: HTML parser
## š Data Format
### CVE Details Object
```javascript
{
id: "CVE-2025-13583",
description: "Vulnerability description...",
cvssScore: 9.8,
severity: "CRITICAL",
published: "2025-11-23T10:15:03.000",
lastModified: "2025-11-26T12:39:31.000",
references: [
{
url: "https://example.com",
source: "VulDB"
}
],
cweId: "CWE-89",
source: "api" // or "web"
}
```
## ā ļø Important Notes
1. **API Rate Limits**: NVD API has rate limits, please use responsibly
2. **Network Requirements**: Requires access to nvd.nist.gov
3. **Data Freshness**: CVE information is updated regularly, check for latest data
4. **Format Validation**: CVE ID must follow CVE-YYYY-NNNNN format
## š Troubleshooting
### Common Issues
1. **API Timeout**
- Check network connection
- System will automatically switch to web scraping mode
2. **CVE Not Found**
- Verify CVE ID format is correct
- Check if CVE has been published to NVD
3. **No Search Results**
- Try using more general keywords
- Check spelling
## š Development
### Project Structure
```
nvd-cve-mcp-server/
āāā src/
ā āāā index.js # Main server code
āāā package.json # Project configuration
āāā README.md # Documentation
```
### Local Development
```bash
# Development mode (auto-restart)
npm run dev
# Production mode
npm start
```
## š¤ Contributing
Issues and Pull Requests are welcome!
## š License
MIT License
## š„ Author
SOCTeam.AI
## š Related Links
- [NPM Package](https://www.npmjs.com/package/nvd-cve-mcp-server)
- [GitHub Repository](https://github.com/SOCTeam-ai/nvd-cve-mcp-server)
- [NVD Official Website](https://nvd.nist.gov/)
- [NVD API Documentation](https://nvd.nist.gov/developers/vulnerabilities)
- [MCP Protocol](https://modelcontextprotocol.io/)
- [CVE Official Website](https://cve.org/)
---
**Note**: This tool is for security research and educational purposes only. Please comply with relevant laws, regulations, and ethical standards.
TDQS
A3.9/5.0
Scored across 2 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: one retrieves details by specific CVE ID, the other searches by keywords. No overlap or ambiguity.
Naming Consistency5/5
Both tools follow a consistent verb_noun pattern (get_cve_details, search_cves), making them predictable and easy to understand.
Tool Count3/5
With only 2 tools, the set is minimal but covers basic discovery and retrieval. For a narrow CVE lookup server, it is justifiable, but feels thin for broader use.
Completeness2/5
Missing essential operations like listing recent CVEs or filtering by severity/date. Search covers some discovery but lacks a way to browse all entries, creating notable gaps.