Exploit Intel Platform MCP Server
Provides access to exploit intelligence from GitHub repositories, including exploit source code and metadata.
Provides access to Metasploit module intelligence, including exploit analysis and framework integration.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Exploit Intel Platform MCP ServerGet vulnerability brief for CVE-2024-6387"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Exploit Intel Platform MCP Server
Package/command: eip-mcp
An MCP (Model Context Protocol) server that gives AI assistants access to the Exploit Intelligence Platform — vulnerability and exploit intelligence from NVD, CISA KEV, VulnCheck KEV, InTheWild.io, ENISA EUVD, OSV.dev, EPSS, ExploitDB, Metasploit, GitHub, and more. Supports both stdio and Streamable HTTP transport.
Part of the same project family:
eip-search— terminal clienteip-mcp— MCP server for AI assistants
Overview
Highlights
Give AI assistants real-time vulnerability and exploit intelligence
Query CVEs with rich filters and ranked exploit context
Include AI exploit analysis, MITRE ATT&CK mapping, and trojan indicators
Generate pentest findings directly from CVE data
Every exploit includes a clickable source URL (GitHub, ExploitDB, Metasploit)
Nuclei templates include description, impact, and remediation text
Run over stdio for desktop clients or Streamable HTTP for hosted deployments
What This Enables
With this MCP server, your AI assistant can:
Search vulnerabilities with 15+ filters (severity, vendor, product, EPSS, KEV, Nuclei, year, date range)
Choose score semantics explicitly when needed:
legacy
min_cvssstays CVSS v3-onlymin_score+score_version=v3|v4|effectivesort=score_desc
Search exploits by source, language, author, GitHub stars, or LLM classification
Get full CVE intelligence briefs with ranked exploits and trojan warnings
Find all exploits for a specific CVE, vendor, or product
Resolve alternate IDs (EDB-XXXXX, GHSA-XXXXX) to their CVE
Discover exact product names for any vendor (CPE product name lookup)
Look up exploit authors and their work
Browse CWE categories and vendor threat landscapes
Audit a tech stack for exploitable vulnerabilities
Generate pentest report findings from real CVE data (all sections present with N/A when data is absent)
Retrieve exploit source code for analysis
See MITRE ATT&CK techniques and deception indicators for trojans
Related MCP server: Threat Intel MCP Server
Tools (17)
Tool | Description |
| Search CVEs with full-text |
| Full intelligence brief for a CVE or EIP-ID. Includes ranked exploits (AI analysis, MITRE techniques, source URLs), products, Nuclei templates (with description/impact/remediation), references. |
| Browse exploits with structured filters only (no free-text query): source, language, LLM classification, author, stars, CVE, vendor, product, attack_type, complexity, reliability, requires_auth. |
| Retrieve exploit source code by platform ID (auto-selects main file) |
| Full AI analysis for a single exploit: classification, attack type, complexity, reliability, MITRE ATT&CK, summary, and trojan/deception indicators |
| Nuclei scanner templates with description, impact, remediation, and Shodan/FOFA/Google dork queries |
| Top exploit researchers ranked by exploit count |
| Author profile with all their exploits and CVE context |
| CWE categories ranked by vulnerability count |
| CWE detail with description, exploit likelihood, parent hierarchy |
| Software vendors ranked by vulnerability count |
| Discover exact product names for a vendor (CPE name lookup with vuln counts) |
| Resolve alternate IDs (EDB-XXXXX, GHSA-XXXXX) to their CVE |
| Audit a tech stack for critical/high severity CVEs with exploits, sorted by EPSS risk |
| Generate a Markdown pentest report finding — all sections present with N/A when data is absent |
| Platform-wide counts and data freshness |
| API health and ingestion source timestamps |
Prompts (6)
Built-in MCP prompts are also exported for clients that support prompts/skills:
Prompt | Description |
| Deep-dive workflow for a specific CVE or EIP-ID |
| Prioritized stack audit workflow for up to 5 technologies |
| Pentest finding workflow with optional target and notes |
| Vendor/product threat landscape workflow |
| Safety-first exploit review workflow |
| Recent threat briefing focused on KEV, ransomware, or in-the-wild exploitation |
Installation
Requirements
Python 3.10 or newer (check with
python3 --versionorpython --version)pip (comes with Python on most systems)
An MCP-compatible AI client (Cursor IDE, Claude Desktop, etc.)
Base installation is enough for stdio clients. If you want to run the standalone Streamable HTTP server, install the optional HTTP extra:
pip install "eip-mcp[http]"
# or
pipx install 'eip-mcp[http]'macOS
# Install Python 3 via Homebrew if needed
brew install python3
# Recommended: pipx (isolated install, eip-mcp command available globally)
brew install pipx
pipx install eip-mcp
# Alternative: virtual environment
python3 -m venv ~/.venvs/eip-mcp
source ~/.venvs/eip-mcp/bin/activate
pip install eip-mcpKali Linux / Debian / Ubuntu
# Option 1: Native APT repo (recommended on Kali/Debian/Ubuntu)
curl -fsSL https://repo.exploit-intel.com/setup.sh | sudo bash
sudo apt install -y eip-mcp
# Option 2: pipx (isolated install, eip-mcp command available globally)
sudo apt install -y pipx
pipx install eip-mcp
# Option 3: virtual environment
sudo apt update && sudo apt install -y python3-pip python3-venv
python3 -m venv ~/.venvs/eip-mcp
source ~/.venvs/eip-mcp/bin/activate
pip install eip-mcpKali users: If you see
error: externally-managed-environment, use APT,pipx, or a virtual environment. Kali 2024+ enforces PEP 668 and blocks global pip installs.
Windows
# Install Python 3 from https://python.org (check "Add to PATH" during install)
# Option 1: pipx
pip install pipx
pipx install eip-mcp
# Option 2: virtual environment
python -m venv %USERPROFILE%\.venvs\eip-mcp
%USERPROFILE%\.venvs\eip-mcp\Scripts\activate
pip install eip-mcpArch Linux / Manjaro
sudo pacman -S python python-pip python-pipx
pipx install eip-mcpFrom Source (all platforms)
git clone https://github.com/exploitintel/eip-mcp.git
cd eip-mcp
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -e .
# Optional: include HTTP transport dependencies
pip install -e '.[http]'Running the Server Directly
stdio (default)
eip-mcpStreamable HTTP
Install the HTTP extra first, then run:
eip-mcp --transport streamable-httpUseful flags:
--host 127.0.0.1and--port 8080control the bind address--statelessdisables session tracking. Recommended for any HTTP deployment ofeip-mcp: every tool is a read-only call, the server doesn't use server-initiated notifications, and stateless mode means a service restart no longer drops live client sessions (in stateful mode, restart causes connected clients to hit404 "Session not found"until they re-initialize). The hosted endpoint athttps://mcp.exploit-intel.com/mcpruns with--statelessfor this reason.
Equivalent environment variables:
EIP_MCP_TRANSPORTEIP_MCP_HOSTEIP_MCP_PORTEIP_MCP_STATELESSEIP_API_KEYto forward an optionalX-API-Keyheader for custom deployments that expect it
If you bind HTTP to 0.0.0.0 or ::, set EIP_MCP_ALLOWED_HOSTS to the hostname or IP your clients will use. For browser-based access, also set EIP_MCP_ALLOWED_ORIGINS.
Connecting to Your AI Client
Cursor IDE
Add to .cursor/mcp.json in your workspace (or globally at ~/.cursor/mcp.json):
If installed with pipx (recommended):
{
"mcpServers": {
"eip": {
"command": "eip-mcp",
"args": [],
"env": {}
}
}
}If installed in a virtual environment:
{
"mcpServers": {
"eip": {
"command": "/absolute/path/to/.venvs/eip-mcp/bin/eip-mcp",
"args": [],
"env": {}
}
}
}Note: When using a virtual environment, use the absolute path to the
eip-mcpbinary inside it. On macOS/Linux:~/.venvs/eip-mcp/bin/eip-mcp. On Windows:%USERPROFILE%\.venvs\eip-mcp\Scripts\eip-mcp.exe.
Claude Desktop
macOS — add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"eip": {
"command": "eip-mcp",
"args": [],
"env": {}
}
}
}Windows — add to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"eip": {
"command": "eip-mcp",
"args": [],
"env": {}
}
}
}If your AI client can't find
eip-mcp, use the full path to the binary (see virtual environment note above).
Verify
After restarting your AI client, you should see 17 tools available. In clients that surface prompts, you should also see 6 prompts. Try asking:
"Show me all trojan exploits"
Troubleshooting
Problem | Solution |
MCP server not showing up | If using a venv, use the full absolute path to the |
| Make sure your venv is activated, or use |
| Use |
| Install the optional HTTP dependencies with |
Connection timeout errors | Check that you can reach |
0 tools showing | Restart Cursor/Claude Desktop after editing the MCP config |
Demo
What Questions Can You Ask?
Below are representative example prompts with sample output from the live platform. Exact counts and rankings will change over time.
"Show me all the backdoored/trojan exploits"
Uses search_exploits with llm_classification=trojan:
Found 38 exploits (page 1/13):
★0 nomisec vatslaaeytoygag/CVE-2025-59287
CVE-2025-59287 CRITICAL CVSS:9.8 [] trojan
AI: other | moderate | theoretical
!! Obfuscated hex strings in `encrypt.py`
!! Subprocess calls to execute remote payloads
writeup exploit-116218
CVE-2026-2641 LOW CVSS:3.3 [] trojan
AI: other | complex | theoretical
!! obfuscated garbage characters
!! no functional exploit logic38 exploits flagged as trojans by AI analysis. Each shows deception indicators explaining exactly how the trojan deceives users.
"Find all reliable RCE exploits"
Uses search_exploits with attack_type=RCE, reliability=reliable, sort=stars_desc:
Found 24,204 exploits (page 1/4841):
★4275 nomisec zhzyker/exphub
CVE-2020-14882 CRITICAL CVSS:9.8 [] working_poc
AI: RCE | moderate | reliable
★3436 nomisec fullhunt/log4j-scan
CVE-2021-44228 CRITICAL CVSS:10.0 [] scanner
AI: RCE | moderate | reliable
★1848 nomisec kozmer/log4j-shell-poc
CVE-2021-44228 CRITICAL CVSS:10.0 [] working_poc
AI: RCE | moderate | reliable
★1835 github neex/phuip-fpizdam
CVE-2019-11043 HIGH CVSS:8.7 [] working_poc
AI: RCE | moderate | reliable24,204 reliable RCE exploits. Filter further with complexity=trivial for easy wins or requires_auth=false for unauthenticated attacks.
"Show me trivial SQL injection exploits that don't require auth"
Uses search_exploits with attack_type=SQLi, complexity=trivial, requires_auth=false:
Found 6,979 exploits (page 1/1396):
★0 github pwnpwnpur1n/CVE-2024-22983
CVE-2024-22983 HIGH CVSS:8.1 [php] writeup
AI: SQLi | trivial | reliable
★0 github security-n/CVE-2021-39379
CVE-2021-39379 CRITICAL CVSS:9.8 [] writeup
AI: SQLi | trivial | reliable
..."Give me all exploits for CVE-2024-3400"
Uses search_exploits with cve=CVE-2024-3400, sort=stars_desc:
Found 43 exploits (page 1/9):
★161 github h4x0r-dz/CVE-2024-3400
CVE-2024-3400 CRITICAL CVSS:10.0 [http] working_poc
★90 github W01fh4cker/CVE-2024-3400-RCE-Scan
CVE-2024-3400 CRITICAL CVSS:10.0 [python] working_poc
★72 github 0x0d3ad/CVE-2024-3400
CVE-2024-3400 CRITICAL CVSS:10.0 [python] working_poc
★30 github ihebski/CVE-2024-3400
CVE-2024-3400 CRITICAL CVSS:10.0 [http/network] working_poc
★14 github Chocapikk/CVE-2024-3400
CVE-2024-3400 CRITICAL CVSS:10.0 [python] working_poc43 exploits, ranked by GitHub stars, with LLM quality classification.
"How many Mitel exploits are there?"
Uses search_exploits with vendor=mitel, has_code=true:
Found 100 exploits (page 1/34):
exploitdb EDB-46666
CVE-2019-9591 MEDIUM CVSS:6.1 []
exploitdb EDB-32745
CVE-2014-0160 HIGH CVSS:7.5 [python]
★0 github lu4m575/CVE-2024-35286_scan.nse
CVE-2024-35286 CRITICAL CVSS:9.8 []
★17 github Chocapikk/CVE-2024-41713
CVE-2024-41713 CRITICAL CVSS:9.1 [python] working_poc
...100 Mitel exploits with downloadable code, across all affected CVEs.
"Who are the top exploit authors?"
Uses list_authors:
Exploit Authors (40,931 total):
Metasploit 1875 exploits
Google Security Research 1214 exploits
Ihsan Sencan 970 exploits
LiquidWorm 780 exploits
Gjoko 'LiquidWorm' Krstic 674 exploits"Show me all exploits by Chocapikk"
Uses get_author with author_name=Chocapikk:
Author: Chocapikk
Exploits: 91 | Active since: 2017-04-25
Exploits:
★244 CVE-2026-21858 Chocapikk/CVE-2026-21858 working_poc
★235 CVE-2023-29357 Chocapikk/CVE-2023-29357 working_poc
★179 CVE-2024-25600 Chocapikk/CVE-2024-25600 working_poc
★148 CVE-2023-22515 Chocapikk/CVE-2023-22515 working_poc
★134 CVE-2024-45519 Chocapikk/CVE-2024-45519 working_poc
★99 CVE-2024-3273 Chocapikk/CVE-2024-3273 working_poc
...91 exploits by Chocapikk, ranked by GitHub stars, all classified as working PoCs.
"What are the most common vulnerability types?"
Uses list_cwes:
CWE Categories (200 with vulnerabilities):
CWE-79 41774 vulns XSS
CWE-89 17788 vulns SQL Injection
CWE-787 13374 vulns Out-of-Bounds Write
CWE-119 13344 vulns Memory Corruption
CWE-20 11770 vulns Improper Input Validation
CWE-200 9555 vulns Information Disclosure
CWE-352 8710 vulns CSRF
CWE-125 8163 vulns Out-of-Bounds Read
CWE-22 8141 vulns Path Traversal
CWE-862 6683 vulns Missing Authorization
..."Tell me about SQL Injection (CWE-89)"
Uses get_cwe with cwe_id=CWE-89:
CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Short label: SQL Injection
Exploit likelihood: High
Vulnerabilities: 17,788
Parent: CWE-943 (Improper Neutralization of Special Elements in Data Query Logic)
Description:
The product constructs all or part of an SQL command using externally-influenced
input from an upstream component, but it does not neutralize or incorrectly
neutralizes special elements that could modify the intended SQL command when it
is sent to a downstream component..."Which vendors have the most vulnerabilities?"
Uses list_vendors:
Top Vendors (200 total):
microsoft 13697 vulns
google 12451 vulns
linux 12096 vulns
oracle 10107 vulns
debian 10072 vulns
apple 8426 vulns
ibm 7981 vulns
adobe 6960 vulns
cisco 6526 vulns
redhat 5505 vulns
..."What critical Fortinet vulns are being actively exploited?"
Uses search_vulnerabilities with vendor=fortinet, severity=critical, is_kev=true, sort=epss_desc:
Found 16 vulnerabilities (page 1/6):
CVE-2018-13379 CRITICAL CVSS:9.1 EPSS:94.5% Exploits:14 [KEV] [NUCLEI]
Fortinet Fortiproxy < 1.2.9 - Path Traversal
CVE-2022-40684 CRITICAL CVSS:9.8 EPSS:94.4% Exploits:31 [KEV] [NUCLEI]
Fortinet Fortiproxy < 7.0.7 - Authentication Bypass
CVE-2024-55591 CRITICAL CVSS:9.8 EPSS:94.2% Exploits:9 [KEV] [NUCLEI]
Fortinet Fortiproxy < 7.0.20 - Authentication Bypass"Tell me about CVE-2019-0708 (BlueKeep)"
Uses get_vulnerability with cve_id=CVE-2019-0708:
============================================================
CVE-2019-0708 [CRITICAL] [KEV]
============================================================
Title: BlueKeep RDP Remote Windows Kernel Use After Free
CVSS: 9.8 EPSS: 94.5% (100.0th percentile)
Attack Vector: NETWORK | CWE: CWE-416 | Published: 2019-05-16 | KEV Added: 2021-11-03
EXPLOITS (127 total):
METASPLOIT MODULES:
- cve_2019_0708_bluekeep_rce.rb [ruby] Rank: manual
AI: RCE | complexity:complex | reliability:racy | target:Microsoft Windows 7 SP1
MITRE: T1059 - Command and Scripting Interpreter, T1068 - Exploitation for Privilege Escalation
VERIFIED (ExploitDB):
- EDB-47416 [ruby] verified
AI: RCE | complexity:complex | reliability:racy | target:Microsoft Windows RDP (7 SP1 / 2008 R2)
MITRE: T1068, T1210 - Exploitation of Remote Services
PROOF OF CONCEPT:
- ★1187 nomisec Ekultek/BlueKeep working_poc
AI: RCE | complexity:moderate | reliability:reliable | target:Windows RDP
MITRE: T1189 - Drive-by Compromise, T1068
- ★914 nomisec robertdavidgraham/rdpscan scanner
AI: info_leak | complexity:moderate | reliability:reliable
MITRE: T1046 - Network Service Scanning
...and 113 more PoCs
*** SUSPICIOUS / TROJAN ***:
- WARNING: ttsite/CVE-2019-0708- [TROJAN] — flagged by AI analysis
Summary: The repository is a scam and does not contain any exploit code.
Deception indicators:
- False claims about exploit availability
- Deceptive contact information
- No actual exploit code or technical detailsEvery exploit now shows AI analysis: attack type, complexity, reliability, target software, and MITRE ATT&CK techniques. Trojans show deception indicators explaining exactly how they deceive users.
"Audit our stack: nginx, postgresql, redis"
Uses audit_stack with technologies=nginx, postgresql, redis:
STACK AUDIT RESULTS
========================================
--- NGINX (66 exploitable CVEs) ---
CVE-2023-44487 HIGH CVSS:7.5 EPSS:94.4% Exploits:22 [KEV]
HTTP/2 Rapid Reset DoS
CVE-2013-2028 CVSS:-- EPSS:92.8% Exploits:25
Nginx < 1.4.0 - Out-of-Bounds Write
CVE-2017-7529 HIGH CVSS:7.5 EPSS:91.9% Exploits:54
Nginx <1.14 - Info Disclosure
...and 56 more
--- POSTGRESQL (56 exploitable CVEs) ---
CVE-2019-9193 HIGH CVSS:7.2 EPSS:93.4% Exploits:41
PostgreSQL < 11.2 - OS Command Injection
CVE-2018-1058 HIGH CVSS:8.8 EPSS:82.7% Exploits:13
PostgreSQL < 9.3.22 - Improper Input Validation
...and 46 more
--- REDIS (39 exploitable CVEs) ---
CVE-2022-0543 CRITICAL CVSS:10.0 EPSS:94.4% Exploits:32 [KEV]
Redis Lua Sandbox Escape
CVE-2018-11218 CRITICAL CVSS:9.8 EPSS:80.3% Exploits:3
Redis < 3.2.12 - Out-of-Bounds Write
...and 29 more
Total: 30 findings shown across 3 technologies"Get me the Nuclei dorks for TeamCity"
Uses get_nuclei_templates with cve_id=CVE-2024-27198:
NUCLEI TEMPLATES (1):
Template: CVE-2024-27198 [critical] [verified]
Name: TeamCity < 2023.11.4 - Authentication Bypass
Author: DhiyaneshDk
Tags: cve, cve2024, teamcity, jetbrains, auth-bypass, kev
Recon Queries:
Shodan: http.component:"TeamCity" || http.title:teamcity
FOFA: title=teamcity
Google: intitle:teamcity
Run: nuclei -t CVE-2024-27198 -u https://target.com"Write a pentest finding for CVE-2024-3400"
Uses generate_finding with cve_id=CVE-2024-3400, target=fw.corp.example.com, notes=Confirmed RCE via GlobalProtect:
# CVE-2024-3400: Palo Alto Networks PAN-OS Unauthenticated Remote Code Execution
**Severity:** CRITICAL
**CVSS v3 Score:** 10.0 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
**EPSS Score:** 94.3% probability of exploitation
**Exploited in the Wild:** Yes (CISA KEV) (VulnCheck KEV) (InTheWild.io) — **ransomware campaigns confirmed**
**CWE:** CWE-77, CWE-20
**Affected Target:** fw.corp.example.com
## Description
A command injection vulnerability in the GlobalProtect feature of PAN-OS...
## Exploit Availability (43 public exploits)
- **Metasploit:** panos_telemetry_cmd_exec.rb (rank: excellent)
## References
- https://security.paloaltonetworks.com/CVE-2024-3400
## Tester Notes
Confirmed RCE via GlobalProtect"List all Metasploit modules"
Uses search_exploits with source=metasploit:
Found 2,993 exploits (page 1/599):
metasploit modules/exploits/linux/http/beyondtrust_pra_rs_unauth_rce.rb
CVE-2024-12356 CRITICAL CVSS:9.8 [ruby] working_poc
AI: RCE | moderate | reliable
metasploit modules/exploits/multi/http/log4shell_header_injection.rb
CVE-2021-44228 CRITICAL CVSS:10.0 [ruby] working_poc
AI: RCE | moderate | reliable
...~3,000 Metasploit modules indexed.
Architecture
Tools (17)
Tool | Description |
| Search CVEs with full-text |
| Full intelligence brief for a CVE or EIP-ID. Includes ranked exploits (AI analysis, MITRE techniques, source URLs), products, Nuclei templates (with description/impact/remediation), references. |
| Browse exploits with structured filters only (no free-text query): source, language, LLM classification, author, stars, CVE, vendor, product, attack_type, complexity, reliability, requires_auth. |
| Retrieve exploit source code by platform ID (auto-selects main file) |
| Full AI analysis for a single exploit: classification, attack type, complexity, reliability, MITRE ATT&CK, summary, and trojan/deception indicators |
| Nuclei scanner templates with description, impact, remediation, and Shodan/FOFA/Google dork queries |
| Top exploit researchers ranked by exploit count |
| Author profile with all their exploits and CVE context |
| CWE categories ranked by vulnerability count |
| CWE detail with description, exploit likelihood, parent hierarchy |
| Software vendors ranked by vulnerability count |
| Discover exact product names for a vendor (CPE name lookup with vuln counts) |
| Resolve alternate IDs (EDB-XXXXX, GHSA-XXXXX) to their CVE |
| Audit a tech stack for critical/high severity CVEs with exploits, sorted by EPSS risk |
| Generate a Markdown pentest report finding — all sections present with N/A when data is absent |
| Platform-wide counts and data freshness |
| API health and ingestion source timestamps |
Security Model
This MCP server runs locally and proxies requests to the public EIP API over HTTPS.
Input Validation
Every parameter passes through strict validation:
CVE/EIP IDs: Regex
^(CVE|EIP)-\d{4}-\d{4,7}$Exploit IDs: Positive integers, capped at 2^31
Strings: Max 200 chars, null bytes rejected, control characters stripped
Numerics: CVSS 0-10, EPSS 0-1, per_page 1-25
Enums: Severity, sort, ecosystem validated against allowlists
File paths:
.., absolute paths, null bytes all blockedTechnology names: Alphanumeric + dots/hyphens/spaces, max 5 items
Response Safety
Exploit code capped at 50KB
All responses are plain text (no executable content)
Error messages are generic (no internal API leakage)
Trojan exploits are explicitly flagged
Network Safety
API base URL hardcoded to
https://exploit-intel.comTLS verification enabled
30-second timeout on all calls
Optional
X-API-Keyheader forwarding viaEIP_API_KEYfor custom deployments; the public EIP API does not require it
Dependencies
mcp>=1.23.0— Official MCP Python SDKhttpx>=0.27.0— HTTP clientPython 3.10+
Testing
Run the default regression suite:
PYTHONPATH=. pytest testsLive MCP integration tests are opt-in under pytest. Start the HTTP transport first:
eip-mcp --transport streamable-http --port 8080Then run:
PYTHONPATH=. pytest tests/test_mcp_tools.py --base-url http://127.0.0.1:8080/mcp/The script entrypoints still work if you prefer them:
python3 tests/test_mcp_tools.py --base-url http://127.0.0.1:8080/mcp/
python3 tests/test_mcp_timing.py --base-url http://127.0.0.1:8080/mcp/Deploy
Optional X-API-Key Forwarding
The public EIP API does not require an API key. If you are routing through your own frontend or deployment that expects X-API-Key, eip-mcp will forward EIP_API_KEY when it is set:
{
"mcpServers": {
"eip": {
"command": "eip-mcp",
"args": [],
"env": {
"EIP_API_KEY": "your-key-here"
}
}
}
}If EIP_API_KEY is unset, requests are still sent normally to the public API. Public rate limiting is currently documented as 60 requests/minute.
Distribution
PyPI —
pip install eip-mcp/pipx install eip-mcpAPT repo —
repo.exploit-intel.com(Kali/Debian/Ubuntu native packages)Remote MCP —
https://mcp.exploit-intel.com/mcp(Streamable HTTP, runs--stateless; no local install needed)
Git Workflow
Never push directly to main. All changes go through a branch and PR.
git checkout -b <branch-name>
# make changes
git push origin <branch-name>
gh pr createPRs require review before merge.
License
MIT
Available Tools
17 toolsaudit_stackARead-onlyIdempotent
Audit a technology stack for exploitable vulnerabilities. Accepts a comma-separated list of technologies (max 5) and searches for critical/ high severity CVEs with public exploits for each one, sorted by EPSS exploitation probability. Use this when a user describes their infrastructure and wants to know what to patch first. Example: technologies='nginx, postgresql, node.js' returns a risk-sorted list of exploitable CVEs grouped by technology. Rate-limit cost: each technology requires up to 2 API calls; 5 technologies counts as up to 10 calls toward your rate limit.
| Name | Required | Description | Default |
|---|---|---|---|
| technologies | Yes | Comma-separated list of technologies (e.g. 'nginx, postgresql, node.js'). Max 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent. Description adds valuable behavioral context: rate-limit cost (up to 2 calls per technology), filtering for critical/high severity CVEs with public exploits, sorting by EPSS probability. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, usage guidance, and example with rate-limit detail. Front-loaded with key action. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, no output schema, and strong annotations, the description fully covers purpose, usage, output nature, and a critical behavioral detail (rate limit). Complete for an audit tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (parameter has description). Tool description repeats constraints and adds example, but does not provide additional semantic depth beyond the schema. Adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool audits a technology stack for exploitable vulnerabilities, specifies the action (audit), resource (stack), and output (risk-sorted CVEs). It distinguishes from siblings like search_exploits by focusing on a limited set of technologies and prioritization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance: 'Use this when a user describes their infrastructure and wants to know what to patch first.' Also warns about rate-limit cost. Does not mention alternatives or when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_healthARead-onlyIdempotent
Check the EIP API health and data freshness. Returns database status and timestamps for each of the 10 ingestion sources (NVD, KEV, EPSS, ExploitDB, GitHub, Metasploit, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint; description adds a list of 10 ingestion sources and mentions timestamps, providing concrete return context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words; front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a health-check tool with no output schema, the description covers what is returned (database status and timestamps per source) adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%; baseline score is 4, and description adds nothing about params, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks EIP API health and data freshness, and lists specific ingestion sources, distinguishing it from sibling tools that handle vulnerabilities, exploits, or authors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before other API calls to verify operational status, but lacks explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_findingARead-onlyIdempotent
Generate a pentest report finding in Markdown format for a specific vulnerability. Fetches full detail and formats it as a professional finding with severity, CVSS, description, affected products, exploit availability, and references. Accepts both CVE-IDs and EIP-IDs. Optionally include the target system tested and tester notes. The output is ready to paste into a pentest report. Example: cve_id='CVE-2024-3400', target='fw.corp.example.com', notes='Confirmed RCE via GlobalProtect gateway'.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE or EIP identifier (e.g. 'CVE-2024-3400') | |
| target | No | Target system tested (e.g. 'fw.corp.example.com'). Optional. | |
| notes | No | Tester notes to include in the finding. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds that the tool fetches details and formats a professional finding with severity, CVSS, description, etc. This provides meaningful context beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a concrete example, efficiently conveying all necessary information. The main action, input, output format, and optional fields are front-loaded, with no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool without an output schema, the description sufficiently outlines the output (Markdown finding with severity, CVSS, description, etc.). It covers input, processing, and output fields. However, it does not specify the exact structure or confirm whether the output is always a string, but the example bridges this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are documented in the schema with types and descriptions. The tool description adds context by stating optionality and providing an example that illustrates realistic usage. This adds value beyond the schema, though the schema already covers the basics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a pentest report finding in Markdown format, specifying the input types (CVE/EIP IDs) and optional fields. The example solidifies the use case. It differentiates from siblings like get_vulnerability by focusing on formatted report output rather than raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description describes what the tool does and includes an example, but does not explicitly advise when to use this tool versus alternatives like get_vulnerability or get_exploit_analysis. The guidance is implied but not explicit, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_authorARead-onlyIdempotent
Get an exploit author's profile with all their exploits. Returns author name, handle, total exploit count, activity start date, and a paginated list of their exploits with CVE context. Use this when asked about a specific researcher like 'show me all exploits by Chocapikk'.
| Name | Required | Description | Default |
|---|---|---|---|
| author_name | Yes | Author name (e.g. 'Chocapikk') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, safe, idempotent operation. Description adds return details (author name, handle, count, start date, paginated exploit list with CVE context) without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load purpose and usage, with no redundant information. Every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description fully explains return values and pagination, meeting completeness for a simple tool with one parameter and good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameter with description (100% coverage). Description adds no new meaning beyond example usage, warranting baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets an author's profile with all their exploits, listing return fields. It distinguishes from siblings like list_authors and search_exploits by focusing on a specific researcher.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises use when asked about a specific researcher, with an example ('show me all exploits by Chocapikk'), leaving no doubt about when to apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cweARead-onlyIdempotent
Get details for a specific CWE including full name, description, exploit likelihood, parent CWE, and total vulnerability count. Example: cwe_id='CWE-79' returns details about Cross-Site Scripting.
| Name | Required | Description | Default |
|---|---|---|---|
| cwe_id | Yes | CWE identifier (e.g. 'CWE-79' or '79') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint, destructiveHint, idempotentHint, openWorldHint, covering safety and idempotency. The description adds which data fields are returned but not additional behavioral context like rate limits or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: purpose and example. No filler. Could be slightly more structured (e.g., list fields in a bullet), but very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with full annotations and no output schema, the description adequately covers what the tool does and what it returns. The list of returned fields is helpful. Minor omission: no mention of response format or potential missing fields if CWE not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description for 'cwe_id'. The tool description does not add new information beyond the schema; the example echoes the schema's pattern. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get details) and the resource (specific CWE), listing the exact fields returned (full name, description, exploit likelihood, parent CWE, total vulnerability count). The example reinforces understanding. This distinguishes it from sibling 'list_cwes' which returns a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching a single CWE's details but does not explicitly state when to prefer this over alternatives like 'list_cwes' or 'search_vulnerabilities'. No 'when not to use' or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exploit_analysisARead-onlyIdempotent
Get the full AI analysis for a single exploit by its platform ID. Returns classification (working_poc, trojan, suspicious, scanner, stub, writeup), attack type, complexity, reliability, confidence score, authentication requirements, target software, a summary of what the exploit does, prerequisites, MITRE ATT&CK techniques, deception indicators for trojans, and the standalone backdoor-review verdict with operator-risk notes when available. Use this to check if an exploit is safe before reviewing its code. Example: exploit_id=61514 returns a TROJAN warning with deception indicators.
| Name | Required | Description | Default |
|---|---|---|---|
| exploit_id | Yes | Platform exploit ID (the [id=XXXXX] number from results — NOT the EDB number) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the rich output (deception indicators, backdoor-review verdict, operator-risk notes) and confirming it's a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently conveys purpose, output fields, usage guidance, and an example. It is front-loaded with the main purpose and remains compact without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description enumerates the return fields comprehensively, including classification, attack type, complexity, etc. It also explains the typical use case and provides an example, making it complete for a single-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with a description for exploit_id. The description adds clarity by noting it's not the EDB number and providing an example (exploit_id=61514), which helps the agent understand the exact value to use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool gets the full AI analysis for a single exploit by platform ID, listing all returned fields. It distinguishes from siblings like get_exploit_code (code retrieval) and search_exploits (listing) by specifying the unique output and use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly advises using this tool to check if an exploit is safe before reviewing its code, with an example. While it doesn't explicitly state when not to use it, the context implies it's for a single exploit by ID, and the alternative sibling tools cover other needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exploit_codeARead-onlyIdempotent
Retrieve the source code of a specific exploit by its platform ID. IMPORTANT: Use the platform's internal ID shown as [id=XXXXX] in results, NOT the ExploitDB number (EDB-XXXXX). These are different numbering systems. Returns code from the exploit archive. If no file_path is specified, auto-selects the most relevant code file. Use this to analyze exploit mechanics, understand attack techniques, or review PoC code.
| Name | Required | Description | Default |
|---|---|---|---|
| exploit_id | Yes | Platform exploit ID (the [id=XXXXX] number from results — NOT the EDB number) | |
| file_path | No | Relative path inside the exploit archive (optional — auto-selects if omitted). Absolute paths and traversal patterns are rejected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds the important behavior that if file_path is omitted, it auto-selects the most relevant code file. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: front-loaded with core action, followed by crucial ID clarification, then optional parameter behavior and use cases. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description adequately covers purpose, ID distinction, parameter behavior, and use cases. It explains the return type ('code from the exploit archive') and auto-selection. No gaps for an agent to misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description reinforces the critical distinction for 'exploit_id' (platform vs EDB) and explains the auto-selection behavior for 'file_path', adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves exploit source code by platform ID, and distinguishes the ID type (platform ID vs EDB number). The verb 'Retrieve' and resource 'source code of a specific exploit' are specific and unambiguous. No sibling tool performs this function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns about using the correct internal platform ID (shown as [id=XXXXX]) rather than the EDB number, which is crucial for correct invocation. It also states the tool's purpose (analyze mechanics, understand attacks, review PoC). It does not explicitly list when not to use or alternatives, but the context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nuclei_templatesARead-onlyIdempotent
Get Nuclei scanner templates and recon dorks for a vulnerability. Returns template metadata, severity, verification status, tags, and ready-to-use Shodan, FOFA, and Google dork queries for target identification. Accepts both CVE-IDs and EIP-IDs. Use this to plan scanning or reconnaissance.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE or EIP identifier (e.g. 'CVE-2024-27198') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by detailing the return content (metadata, severity, tags, dorks) and confirming acceptance of both CVE and EIP IDs, which goes beyond the schema. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action. Every sentence provides essential information with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description is complete. It explains what the tool returns and its intended use case, leaving no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a detailed description for the single parameter. The description reiterates the acceptable formats ('Accepts both CVE-IDs and EIP-IDs'), but this adds minimal additional meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'Nuclei scanner templates and recon dorks', specifying the purpose for a given vulnerability. It distinguishes from sibling tools like get_vulnerability or search_exploits by mentioning specific outputs like templates and dorks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit usage guidance: 'Use this to plan scanning or reconnaissance.' It does not mention when not to use or alternatives, but the context is clear and appropriate for a read-only lookup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_platform_statsARead-onlyIdempotent
Get platform-wide statistics from the Exploit Intelligence Platform. Returns total counts of vulnerabilities, exploits, KEV entries, Nuclei templates, vendors, and authors, plus the last data update timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that returns counts and timestamp, providing behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states purpose, second enumerates return content. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains what the tool returns (counts and timestamp) for a no-parameter stats endpoint. No output schema, but enumeration suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline 4 is appropriate. The description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get platform-wide statistics' and lists specific items returned, distinguishing it from sibling tools like get_author or list_vendors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for a broad overview but does not explicitly state when to use this tool over siblings or any when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vulnerabilityARead-onlyIdempotent
Get a full intelligence brief for a specific vulnerability. Accepts both CVE-IDs (e.g. CVE-2024-3400) and EIP-IDs (e.g. EIP-2026-12345 for pre-CVE entries). Returns detailed information including CVSS score and vector, EPSS exploitation probability, CISA KEV status, description, affected products, ranked exploits (grouped by Metasploit modules, verified ExploitDB, GitHub PoCs, and trojans), Nuclei scanner templates with recon dorks, alternate identifiers, and references. Exploits are ranked by quality: Metasploit modules first (peer-reviewed), then verified ExploitDB, then GitHub by stars. Trojans are flagged at the bottom.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE or EIP identifier (e.g. 'CVE-2024-3400' or 'EIP-2026-12345') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds significant context: return of CVSS, EPSS, exploit ranking order (Metasploit > ExploitDB > GitHub), and flagged trojans. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that effectively conveys all necessary information without redundancy. Could be slightly more structured (e.g., bullet points) but every sentence is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description thoroughly explains the returned data: CVSS, EPSS, CISA KEV, affected products, exploit ranking, Nuclei templates, references. It covers the essential aspects for a single-item lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter cve_id with pattern and description (100% coverage). The description adds examples and clarifies acceptance of both CVE and EIP IDs, providing slight additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a full intelligence brief for a specific vulnerability, specifies accepted identifiers (CVE/EIP), and lists extensive return fields. This distinguishes it from siblings like search_vulnerabilities and get_exploit_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific vulnerability ID and need comprehensive details, but it does not explicitly state when not to use it or provide direct comparisons to sibling tools. Clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_authorsARead-onlyIdempotent
List exploit authors/researchers ranked by exploit count. Returns the top security researchers with their exploit counts and handles. Use this when asked 'who are the top exploit authors?' or 'who writes the most exploits?'
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| per_page | No | Results per page (1-50, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds minimal behavioral detail beyond what is already in structured data, such as the rank and return fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource. Each sentence provides distinct value: first defines the operation, second gives usage examples. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (list with pagination), annotations cover safety and idempotency. The description covers purpose, ranking, and expected output fields. It could mention default sort order or pagination behavior, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for page and per_page. The description does not add meaning beyond the schema; it only summarizes the results. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists exploit authors/researchers ranked by exploit count, with a specific format: returns top researchers with counts and handles. It distinguishes from siblings like get_author (specific author) and search_exploits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides example queries ('who are the top exploit authors?', 'who writes the most exploits?'), indicating when to use. It does not mention exclusions or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cwesARead-onlyIdempotent
List CWE (Common Weakness Enumeration) categories ranked by vulnerability count. Returns CWE IDs, names, short labels, exploit likelihood, and how many CVEs have that weakness. Use this when asked 'what are the most common vulnerability types?'
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, idempotent, and open-world behaviors. Description adds what fields are returned (CWE IDs, names, etc.), which is useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff; first sentence describes purpose, second gives usage guidance. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, rich annotations, and no output schema, the description is complete enough. It explains return values and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so no parameter documentation is needed. Per guidelines, baseline is 4 for zero params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states that the tool lists CWE categories ranked by vulnerability count, with specific fields returned. It distinguishes from sibling 'get_cwe' by being a listing tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance with a sample query, but does not mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_productsARead-onlyIdempotent
List products for a specific vendor with vulnerability counts. Use this to discover exact product names for filtering. Product names in the database use CPE conventions (e.g. 'exchange_server' not 'exchange', 'windows_10' not 'windows 10'). Example: vendor='microsoft' returns products like exchange_server, windows_10, office, edge_chromium.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor | Yes | Vendor name (e.g. 'microsoft', 'apache', 'fortinet') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds that results include vulnerability counts and CPE naming conventions, which are useful behavioral details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an example, front-loading the purpose and usage. Every sentence adds value, with no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, full schema coverage, and no output schema, the description adequately explains what is returned (products with vulnerability counts) and naming conventions. It lacks pagination details, but for a list tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the vendor parameter with 100% coverage. The description adds context about CPE conventions and examples (e.g., 'exchange_server' vs 'exchange'), which helps the agent use correct naming.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists products for a specific vendor with vulnerability counts, and highlights its use for discovering exact product names. It distinguishes from siblings like list_vendors by specifying the filter parameter and output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to discover exact product names for filtering' and provides an example with CPE naming conventions. However, it doesn't mention when not to use it or alternative tools for broader searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vendorsARead-onlyIdempotent
List software vendors ranked by vulnerability count. Returns the top 200 vendors with their total CVE counts. Use this when asked 'which vendors have the most vulnerabilities?' or to understand the threat landscape by vendor.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, non-destructive). Description adds output details: top 200 vendors with total CVE counts, providing context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. Every word adds value, front-loaded with core action and result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description fully covers purpose, usage, and output. No gaps for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so the description has nothing to add. Baseline 4 per rubric for 0 params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists vendors ranked by vulnerability count, returns top 200 with CVE counts, and differentiates from siblings like list_authors or list_products by focusing on vendors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions when to use: for questions about most vulnerable vendors or threat landscape. Does not mention when not to use, but its specificity suffices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_alt_idARead-onlyIdempotent
Look up a vulnerability by an alternate identifier such as an ExploitDB ID (EDB-XXXXX) or GitHub Security Advisory ID (GHSA-XXXXX). Returns the matching CVE-ID with basic severity info. Use this when you have an EDB number or GHSA ID and need to find the corresponding CVE.
| Name | Required | Description | Default |
|---|---|---|---|
| alt_id | Yes | Alternate ID (e.g. 'EDB-48537', 'GHSA-jfh8-c2jp-5v3q') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds that the tool returns a CVE-ID and basic severity info, which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the action and immediately followed by usage guidance. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description fully covers purpose, input format, output, and when to use it. Annotations provide safety and idempotency context. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for alt_id. The description reiterates the examples but does not add significant new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up a vulnerability by an alternate identifier (EDB, GHSA) and returns the corresponding CVE-ID with severity. It distinguishes itself from sibling tools like search_exploits and search_vulnerabilities by focusing on converting specific alt IDs to CVEs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states to use this when you have an EDB or GHSA ID and need the corresponding CVE, providing clear context. It does not explicitly state when not to use it, but the specificity implies other tools are for different lookup needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_exploitsARead-onlyIdempotent
Browse and filter exploits using STRUCTURED FILTERS ONLY (no free-text query). Use this to filter by source (github, metasploit, exploitdb, nomisec, gitlab, inthewild, vulncheck_xdb, patchapalooza), language (python, ruby, etc.), LLM classification (working_poc, trojan, suspicious, scanner, stub, writeup, tool, no_code), author, min stars, code availability, CVE ID, vendor, or product. Also filter by AI analysis: attack_type (RCE, SQLi, XSS, DoS, LPE, auth_bypass, info_leak), complexity (trivial/simple/moderate/complex), reliability (reliable/unreliable/untested/theoretical), requires_auth. NOTE: To search by product name (e.g. 'OpenSSH', 'Apache'), use search_vulnerabilities instead — it has free-text query and get_vulnerability already includes exploits in the response. Examples: source='metasploit' for all Metasploit modules; attack_type='RCE' with reliability='reliable' for weaponizable RCE exploits; cve='CVE-2024-3400' for all exploits targeting a specific CVE; vendor='mitel' for all Mitel exploits.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Filter by source | |
| language | No | Filter by language: python, ruby, go, c, etc. | |
| llm_classification | No | Filter by LLM classification | |
| attack_type | No | Filter by attack type from AI analysis (case-insensitive on input; canonical casing returned) | |
| complexity | No | Filter by exploit complexity | |
| reliability | No | Filter by exploit reliability | |
| requires_auth | No | Filter by whether exploit requires authentication | |
| author | No | Filter by author name | |
| min_stars | No | Minimum GitHub stars | |
| has_code | No | Only exploits with downloadable code | |
| cve | No | Filter by CVE ID (e.g. 'CVE-2024-3400') — returns all exploits for that CVE | |
| vendor | No | Filter by vendor name (e.g. 'mitel', 'fortinet') — returns exploits for all CVEs affecting that vendor | |
| product | No | Filter by product name (e.g. 'micollab', 'pan-os') | |
| sort | No | Sort order | |
| page | No | Page number (default: 1) | |
| per_page | No | Results per page (1-25, default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint; description adds details about structured-only filtering and no free-text query, but does not mention pagination or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points and examples, but somewhat lengthy; front-loaded with main purpose, but could be slightly more succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters and no output schema, description effectively covers usage scenarios, provides examples, and directs to sibling tool; missing return value explanation but mitigated by high schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions; description adds value by grouping parameters and providing example usage (e.g., source='metasploit', attack_type='RCE'), enhancing practical understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it filters exploits using structured filters only, explicitly distinguishes from sibling search_vulnerabilities, and includes specific filtering examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (filtering by structured criteria) and when not to (product name search calls search_vulnerabilities), with multiple examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_vulnerabilitiesARead-onlyIdempotent
Search the Exploit Intelligence Platform for vulnerabilities (CVEs). Returns a list of matching CVEs with CVSS scores, EPSS exploitation probability, exploit counts, CISA KEV status, VulnCheck KEV, InTheWild.io exploitation signals, and ransomware attribution. Supports full-text search, severity/vendor/product/ecosystem/CWE filters, CVSS/EPSS thresholds, plus any_exploited and ransomware filters. When sort is omitted, the API may automatically prefer newest exploitation, exploit, or nuclei-template activity based on the filters you set. Examples: query='apache httpd' with has_exploits=true; vendor='fortinet' with severity='critical' and is_kev=true sorted by epss_desc; any_exploited=true with ransomware=true for ransomware-linked CVEs; cwe='89' with min_cvss=9 for critical SQL injection CVEs.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search keywords (e.g. 'apache httpd', 'log4j'). Optional if filters are provided. | |
| severity | No | Filter by severity level | |
| has_exploits | No | Only return CVEs with public exploit code | |
| is_kev | No | Only return CISA Known Exploited Vulnerabilities | |
| any_exploited | No | Only return CVEs exploited in the wild (CISA KEV + VulnCheck KEV + InTheWild.io) | |
| ransomware | No | Only return CVEs with confirmed ransomware campaign use | |
| has_nuclei | No | Only return CVEs with Nuclei scanner templates | |
| vendor | No | Filter by vendor name (e.g. 'microsoft', 'fortinet') | |
| product | No | Filter by product name (e.g. 'exchange', 'pan-os') | |
| ecosystem | No | Filter by package ecosystem | |
| cwe | No | Filter by CWE ID (e.g. '79' or 'CWE-79') | |
| min_cvss | No | Minimum CVSS v3 score (0-10) | |
| min_score | No | Minimum score for the selected score_version (0-10) | |
| score_version | No | Score family for min_score / score_desc | |
| min_epss | No | Minimum EPSS score (0-1) | |
| year | No | Filter by CVE year (e.g. 2024) | |
| date_from | No | Start date for CVE publication (YYYY-MM-DD) | |
| date_to | No | End date for CVE publication (YYYY-MM-DD) | |
| sort | No | Sort order. Aliases are normalized to the current server schema. | |
| page | No | Page number (default: 1) | |
| per_page | No | Results per page (1-25, default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations by detailing the return format, default sort logic, and filter capabilities. Annotations already indicate read-only and idempotent nature, and the description does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise for a tool with 21 parameters. It is front-loaded with the main purpose and includes examples. Every sentence adds value, though it could be slightly more streamlined without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (21 parameters, no output schema), the description provides sufficient context about the return values, filter options, and sort behavior. It covers most needed information, though pagination details are not expanded beyond the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter is well-documented in the schema. The description adds usage context and examples but does not provide additional parameter-level semantics beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for vulnerabilities (CVEs) and lists the specific attributes returned (CVSS, EPSS, exploit counts, etc.). It distinguishes from sibling tools like search_exploits by focusing on vulnerabilities. The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage, including filter options and examples. It explains the automatic sort behavior when omitted. However, it does not explicitly state when not to use this tool versus alternatives, which would be helpful for differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose, from searching vulnerabilities and exploits to retrieving author profiles and generating reports. The overlap between search_exploits and search_vulnerabilities is clarified by their different filtering capabilities.
All tools follow a consistent verb_noun pattern (e.g., get_vulnerability, list_authors, search_exploits). A few like audit_stack and check_health differ but still adhere to the same style.
With 17 tools, the server provides a thorough coverage of exploit intelligence workflows without being overwhelming. The number is well-scoped for the domain.
The tool set covers core operations: searching, detailed retrieval, listing, health checks, and report generation. There are no obvious gaps for an intelligence platform of this nature.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Real-time CVE, exploit, and vulnerability intelligence for AI assistants (350K+ CVEs, 115K+ PoCs)
CVE lookup via NIST NVD, CISA KEV, EPSS, and MITRE ATT&CK. 7 tools.
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
CVE intelligence: exploitation (KEV/EPSS), detection coverage, fixed versions. All tools keyless.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables comprehensive cybersecurity vulnerability assessment by searching GitHub repositories for exploits, querying NIST NVD for CVE details, and accessing CISA's Known Exploited Vulnerabilities catalog. Supports complete vulnerability research workflows from threat intelligence gathering to proof-of-concept discovery.4
- FlicenseNot gradedqualityDmaintenanceProvides threat intelligence and vulnerability research tools by integrating with NVD, VirusTotal, AbuseIPDB, Shodan, and MITRE ATT\&CK. It enables users to perform CVE lookups, analyze IP reputation, and retrieve detailed MITRE ATT\&CK technique information.1
- AlicenseAqualityAmaintenanceGives AI assistants access to the Exploit Intelligence Platform for vulnerability and exploit intelligence. Supports searching CVEs, exploits, and generating pentest findings.17MIT
- AlicenseAqualityCmaintenanceProvides live CVE data from NVD and EPSS without API key, enabling AI assistants to look up CVSS scores, search vulnerabilities, and check product CVEs.3MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/OyaAIProd/eip-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server