Content
# ExploitDB MCP Server
A Model Context Protocol server that provides access to ExploitDB functionality, developed by [Cyreslab.ai](https://cyreslab.ai). This server enables AI assistants like Claude to query information about security exploits and vulnerabilities, enhancing cybersecurity research and threat intelligence capabilities.
**GitHub Repository**: [https://github.com/Cyreslab-AI/exploitdb-mcp-server](https://github.com/Cyreslab-AI/exploitdb-mcp-server)
**Contact**: [contact@cyreslab.ai](mailto:contact@cyreslab.ai)
## Features
- **Exploit Search**: Search for exploits by keywords, CVE IDs, platforms, and more
- **Exploit Details**: Get comprehensive information about specific exploits, including code
- **CVE Lookup**: Find all exploits related to specific CVE IDs
- **Recent Exploits**: Track newly added exploits
- **Statistics**: Get insights into exploit distribution by platform, type, and year
- **Automatic Updates**: Keep the database up-to-date with scheduled updates
## Installation
### Prerequisites
- Node.js (v16 or higher)
- npm (v7 or higher)
### Installation Steps
1. Clone the repository:
```bash
git clone https://github.com/Cyreslab-AI/exploitdb-mcp-server.git
cd exploitdb-mcp-server
```
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
4. Configure the server:
- Create a `.env` file in the root directory based on `.env.example`
- Adjust settings as needed (data directory, update frequency, etc.)
5. Initialize the database:
```bash
npm run update-db
```
**Note**: The initial database update may take several minutes as it processes ~47,000 exploits from the ExploitDB CSV file. The script handles missing or malformed data gracefully by using fallback values for required fields.
6. Run the server:
```bash
node build/index.js
```
### MCP Configuration
To use this server with Claude or other MCP-compatible assistants, add it to your MCP configuration:
```json
{
"mcpServers": {
"mcp-exploitdb-server": {
"command": "node",
"args": ["/path/to/exploitdb-mcp-server/build/index.js"]
}
}
}
```
## Available Tools
The ExploitDB MCP server provides 18 comprehensive tools for querying and analyzing exploit data:
### Core Search Tools
1. **search_exploits** - General search with multiple filters
2. **get_exploit** - Get detailed information about a specific exploit
3. **find_by_cve** - Find exploits by CVE ID
4. **get_recent_exploits** - Get recently added exploits
5. **get_statistics** - Get database statistics
### Advanced Search Tools
6. **search_by_platform** - Search exploits for a specific platform with filters
7. **search_by_type** - Search by exploit type (webapps, remote, local, dos, hardware)
8. **search_by_author** - Find all exploits by a specific author
9. **search_by_date_range** - Find exploits within a date range
10. **search_by_tags** - Search by generated tags (sql injection, xss, etc.)
### Analysis & Intelligence Tools
11. **get_platform_statistics** - Get detailed statistics for a specific platform
12. **get_trending_exploits** - Find recently added exploits (configurable time period)
13. **compare_exploits** - Compare multiple exploits side-by-side
14. **get_exploit_timeline** - Get chronological timeline of exploits
### Utility Tools
15. **batch_get_exploits** - Retrieve multiple exploits efficiently (up to 50)
16. **get_related_exploits** - Find related exploits by platform, author, CVE, or tags
17. **validate_exploit_id** - Check if an exploit ID exists
18. **export_search_results** - Export search results in JSON or CSV format
## Usage Examples
### Search Exploits
Use the `search_exploits` tool to search for exploits in the database:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_exploits</tool_name>
<arguments>
{
"query": "wordpress plugin",
"platform": "php",
"limit": 5
}
</arguments>
</use_mcp_tool>
```
Additional search parameters:
- `type`: Filter by exploit type (e.g., webapps, remote, local)
- `cve`: Filter by CVE ID
- `author`: Filter by author name
- `start_date`/`end_date`: Filter by date range (YYYY-MM-DD)
- `verified`: Filter by verified status (true/false)
- `offset`: For pagination
### Get Exploit Details
Use the `get_exploit` tool to retrieve detailed information about a specific exploit:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_exploit</tool_name>
<arguments>
{
"id": 12345,
"include_code": true
}
</arguments>
</use_mcp_tool>
```
### Find Exploits by CVE
Use the `find_by_cve` tool to find all exploits related to a specific CVE:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>find_by_cve</tool_name>
<arguments>
{
"cve": "CVE-2021-44228",
"limit": 10
}
</arguments>
</use_mcp_tool>
```
### Get Recent Exploits
Use the `get_recent_exploits` tool to retrieve recently added exploits:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_recent_exploits</tool_name>
<arguments>
{
"limit": 10
}
</arguments>
</use_mcp_tool>
```
### Get Statistics
Use the `get_statistics` tool to get insights about the exploits in the database:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_statistics</tool_name>
<arguments>
{}
</arguments>
</use_mcp_tool>
```
### Search by Platform
Search exploits for a specific platform with advanced filters:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_platform</tool_name>
<arguments>
{
"platform": "php",
"type": "webapps",
"verified": true,
"limit": 10
}
</arguments>
</use_mcp_tool>
```
### Search by Author
Find all exploits by a specific author:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_author</tool_name>
<arguments>
{
"author": "Offensive Security",
"limit": 10
}
</arguments>
</use_mcp_tool>
```
### Search by Date Range
Find exploits within a specific date range:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_date_range</tool_name>
<arguments>
{
"start_date": "2024-01-01",
"end_date": "2024-12-31",
"platform": "windows",
"limit": 20
}
</arguments>
</use_mcp_tool>
```
### Search by Tags
Search exploits by generated tags:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_tags</tool_name>
<arguments>
{
"tags": ["sql injection", "rce"],
"match_all": false,
"limit": 10
}
</arguments>
</use_mcp_tool>
```
### Get Trending Exploits
Find recently added exploits:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_trending_exploits</tool_name>
<arguments>
{
"days": 30,
"limit": 10
}
</arguments>
</use_mcp_tool>
```
### Compare Exploits
Compare multiple exploits side-by-side:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>compare_exploits</tool_name>
<arguments>
{
"ids": [12345, 12346, 12347]
}
</arguments>
</use_mcp_tool>
```
### Get Related Exploits
Find exploits related to a specific exploit:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_related_exploits</tool_name>
<arguments>
{
"id": 12345,
"relation_type": "platform",
"limit": 10
}
</arguments>
</use_mcp_tool>
```
### Batch Get Exploits
Retrieve multiple exploits efficiently:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>batch_get_exploits</tool_name>
<arguments>
{
"ids": [12345, 12346, 12347, 12348],
"include_code": false
}
</arguments>
</use_mcp_tool>
```
### Export Search Results
Export search results in CSV or JSON format:
```
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>export_search_results</tool_name>
<arguments>
{
"query": "wordpress",
"format": "csv",
"platform": "php",
"limit": 100
}
</arguments>
</use_mcp_tool>
```
## Configuration Options
The server can be configured using environment variables or a `.env` file:
| Variable | Description | Default |
| ------------------ | --------------------------------------------- | ----------------------------------------------------------------------------- |
| `CLONE_REPOSITORY` | Whether to clone the ExploitDB repository | `false` |
| `REPOSITORY_URL` | URL of the ExploitDB repository | `https://gitlab.com/exploit-database/exploitdb.git` |
| `CSV_URL` | URL of the ExploitDB CSV file | `https://gitlab.com/exploit-database/exploitdb/-/raw/main/files_exploits.csv` |
| `DATA_DIR` | Directory to store data | `./data` |
| `DB_PATH` | Path to the SQLite database | `./data/exploitdb.sqlite` |
| `UPDATE_INTERVAL` | Update frequency in hours (0 to disable) | `24` |
| `MAX_RESULTS` | Maximum number of results to return per query | `10` |
## Data Sources
This server uses data from the [Exploit Database](https://www.exploit-db.com/), maintained by [Offensive Security](https://www.offensive-security.com/). The data is either downloaded directly from the CSV file or cloned from the [ExploitDB GitLab repository](https://gitlab.com/exploit-database/exploitdb).
### Data Processing
The server automatically handles various data quality issues:
- **Date handling**: Uses `date_published` from the CSV, with fallbacks to `date_added`, `date_updated`, or a default date if all are missing
- **Missing fields**: Provides sensible defaults for required fields (author, type, platform) when data is incomplete
- **CVE extraction**: Automatically extracts CVE identifiers from exploit descriptions
- **Tag generation**: Generates relevant tags based on exploit descriptions for improved searchability
The database typically contains:
- **46,000+** exploits spanning from 1988 to present
- **33,000+** verified exploits
- Coverage across **60+** platforms (PHP, Windows, Linux, etc.)
- **27,000+** web application exploits
- Comprehensive metadata including authors, dates, platforms, and CVE references
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgements
- [Offensive Security](https://www.offensive-security.com/) for maintaining the Exploit Database
- [Model Context Protocol](https://github.com/anthropics/model-context-protocol) for enabling AI assistants to access external tools
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Have feature suggestions or found a bug? Please open an issue on our [GitHub repository](https://github.com/Cyreslab-AI/exploitdb-mcp-server) or contact us directly at [contact@cyreslab.ai](mailto:contact@cyreslab.ai).
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
markitdown
Python tool for converting files and office documents to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
Sequential Thinking
A structured MCP server for dynamic problem-solving and reflective thinking.
Fetch
Retrieve and process content from web pages by converting HTML into markdown format.
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.