Skip to main content
Glama

ExploitDB MCP Server

README.md11.3 kB
# 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).

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cyreslab-AI/exploitdb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server