Skip to main content
Glama
OyaAIProd

Exploit Intel Platform MCP Server

by OyaAIProd

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:

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_cvss stays CVSS v3-only

    • min_score + score_version=v3|v4|effective

    • sort=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_vulnerabilities

Search CVEs with full-text query and filters: severity, vendor, product, ecosystem, CWE, CVSS/EPSS thresholds, KEV, Nuclei, year, date range. Supports explicit score mode via score_version + min_score + sort=score_desc. Start here for product research.

get_vulnerability

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.

search_exploits

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.

get_exploit_code

Retrieve exploit source code by platform ID (auto-selects main file)

get_exploit_analysis

Full AI analysis for a single exploit: classification, attack type, complexity, reliability, MITRE ATT&CK, summary, and trojan/deception indicators

get_nuclei_templates

Nuclei scanner templates with description, impact, remediation, and Shodan/FOFA/Google dork queries

list_authors

Top exploit researchers ranked by exploit count

get_author

Author profile with all their exploits and CVE context

list_cwes

CWE categories ranked by vulnerability count

get_cwe

CWE detail with description, exploit likelihood, parent hierarchy

list_vendors

Software vendors ranked by vulnerability count

list_products

Discover exact product names for a vendor (CPE name lookup with vuln counts)

lookup_alt_id

Resolve alternate IDs (EDB-XXXXX, GHSA-XXXXX) to their CVE

audit_stack

Audit a tech stack for critical/high severity CVEs with exploits, sorted by EPSS risk

generate_finding

Generate a Markdown pentest report finding — all sections present with N/A when data is absent

get_platform_stats

Platform-wide counts and data freshness

check_health

API health and ingestion source timestamps

Prompts (6)

Built-in MCP prompts are also exported for clients that support prompts/skills:

Prompt

Description

investigate-cve

Deep-dive workflow for a specific CVE or EIP-ID

audit-stack

Prioritized stack audit workflow for up to 5 technologies

pentest-finding

Pentest finding workflow with optional target and notes

threat-landscape

Vendor/product threat landscape workflow

exploit-analysis

Safety-first exploit review workflow

trending-threats

Recent threat briefing focused on KEV, ransomware, or in-the-wild exploitation

Installation

Requirements

  • Python 3.10 or newer (check with python3 --version or python --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-mcp

Kali 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-mcp

Kali 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-mcp

Arch Linux / Manjaro

sudo pacman -S python python-pip python-pipx
pipx install eip-mcp

From 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-mcp

Streamable HTTP

Install the HTTP extra first, then run:

eip-mcp --transport streamable-http

Useful flags:

  • --host 127.0.0.1 and --port 8080 control the bind address

  • --stateless disables session tracking. Recommended for any HTTP deployment of eip-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 hit 404 "Session not found" until they re-initialize). The hosted endpoint at https://mcp.exploit-intel.com/mcp runs with --stateless for this reason.

Equivalent environment variables:

  • EIP_MCP_TRANSPORT

  • EIP_MCP_HOST

  • EIP_MCP_PORT

  • EIP_MCP_STATELESS

  • EIP_API_KEY to forward an optional X-API-Key header 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-mcp binary 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 eip-mcp binary

command not found: eip-mcp

Make sure your venv is activated, or use pipx which manages PATH automatically

externally-managed-environment

Use pipx or a virtual environment (see install instructions above)

Streamable HTTP transport requires additional packages

Install the optional HTTP dependencies with pip install "eip-mcp[http]" or pip install -e '.[http]'

Connection timeout errors

Check that you can reach https://exploit-intel.com from your machine

0 tools showing

Restart Cursor/Claude Desktop after editing the MCP config

Demo

asciicast

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 logic

38 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 | reliable

24,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_poc

43 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 details

Every 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_vulnerabilities

Search CVEs with full-text query and filters: severity, vendor, product, ecosystem, CWE, CVSS/EPSS thresholds, KEV, Nuclei, year, date range. Start here for product research.

get_vulnerability

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.

search_exploits

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.

get_exploit_code

Retrieve exploit source code by platform ID (auto-selects main file)

get_exploit_analysis

Full AI analysis for a single exploit: classification, attack type, complexity, reliability, MITRE ATT&CK, summary, and trojan/deception indicators

get_nuclei_templates

Nuclei scanner templates with description, impact, remediation, and Shodan/FOFA/Google dork queries

list_authors

Top exploit researchers ranked by exploit count

get_author

Author profile with all their exploits and CVE context

list_cwes

CWE categories ranked by vulnerability count

get_cwe

CWE detail with description, exploit likelihood, parent hierarchy

list_vendors

Software vendors ranked by vulnerability count

list_products

Discover exact product names for a vendor (CPE name lookup with vuln counts)

lookup_alt_id

Resolve alternate IDs (EDB-XXXXX, GHSA-XXXXX) to their CVE

audit_stack

Audit a tech stack for critical/high severity CVEs with exploits, sorted by EPSS risk

generate_finding

Generate a Markdown pentest report finding — all sections present with N/A when data is absent

get_platform_stats

Platform-wide counts and data freshness

check_health

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 blocked

  • Technology 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.com

  • TLS verification enabled

  • 30-second timeout on all calls

  • Optional X-API-Key header forwarding via EIP_API_KEY for custom deployments; the public EIP API does not require it

Dependencies

  • mcp>=1.23.0 — Official MCP Python SDK

  • httpx>=0.27.0 — HTTP client

  • Python 3.10+

Testing

Run the default regression suite:

PYTHONPATH=. pytest tests

Live MCP integration tests are opt-in under pytest. Start the HTTP transport first:

eip-mcp --transport streamable-http --port 8080

Then 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

  • PyPIpip install eip-mcp / pipx install eip-mcp

  • APT reporepo.exploit-intel.com (Kali/Debian/Ubuntu native packages)

  • Remote MCPhttps://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 create

PRs require review before merge.

License

MIT


MCP Badge

Available Tools

17 tools
audit_stackA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
technologiesYesComma-separated list of technologies (e.g. 'nginx, postgresql, node.js'). Max 5.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_healthA
Read-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.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_findingA
Read-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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE or EIP identifier (e.g. 'CVE-2024-3400')
targetNoTarget system tested (e.g. 'fw.corp.example.com'). Optional.
notesNoTester notes to include in the finding. Optional.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_authorA
Read-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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
author_nameYesAuthor name (e.g. 'Chocapikk')

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_cweA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwe_idYesCWE identifier (e.g. 'CWE-79' or '79')

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_analysisA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
exploit_idYesPlatform exploit ID (the [id=XXXXX] number from results — NOT the EDB number)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_codeA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
exploit_idYesPlatform exploit ID (the [id=XXXXX] number from results — NOT the EDB number)
file_pathNoRelative path inside the exploit archive (optional — auto-selects if omitted). Absolute paths and traversal patterns are rejected.

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_templatesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE or EIP identifier (e.g. 'CVE-2024-27198')

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_statsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_vulnerabilityA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE or EIP identifier (e.g. 'CVE-2024-3400' or 'EIP-2026-12345')

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_authorsA
Read-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?'

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
per_pageNoResults per page (1-50, default: 25)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_cwesA
Read-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?'

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_productsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
vendorYesVendor name (e.g. 'microsoft', 'apache', 'fortinet')

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_vendorsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_idA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
alt_idYesAlternate ID (e.g. 'EDB-48537', 'GHSA-jfh8-c2jp-5v3q')

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_exploitsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoFilter by source
languageNoFilter by language: python, ruby, go, c, etc.
llm_classificationNoFilter by LLM classification
attack_typeNoFilter by attack type from AI analysis (case-insensitive on input; canonical casing returned)
complexityNoFilter by exploit complexity
reliabilityNoFilter by exploit reliability
requires_authNoFilter by whether exploit requires authentication
authorNoFilter by author name
min_starsNoMinimum GitHub stars
has_codeNoOnly exploits with downloadable code
cveNoFilter by CVE ID (e.g. 'CVE-2024-3400') — returns all exploits for that CVE
vendorNoFilter by vendor name (e.g. 'mitel', 'fortinet') — returns exploits for all CVEs affecting that vendor
productNoFilter by product name (e.g. 'micollab', 'pan-os')
sortNoSort order
pageNoPage number (default: 1)
per_pageNoResults per page (1-25, default: 10)

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_vulnerabilitiesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch keywords (e.g. 'apache httpd', 'log4j'). Optional if filters are provided.
severityNoFilter by severity level
has_exploitsNoOnly return CVEs with public exploit code
is_kevNoOnly return CISA Known Exploited Vulnerabilities
any_exploitedNoOnly return CVEs exploited in the wild (CISA KEV + VulnCheck KEV + InTheWild.io)
ransomwareNoOnly return CVEs with confirmed ransomware campaign use
has_nucleiNoOnly return CVEs with Nuclei scanner templates
vendorNoFilter by vendor name (e.g. 'microsoft', 'fortinet')
productNoFilter by product name (e.g. 'exchange', 'pan-os')
ecosystemNoFilter by package ecosystem
cweNoFilter by CWE ID (e.g. '79' or 'CWE-79')
min_cvssNoMinimum CVSS v3 score (0-10)
min_scoreNoMinimum score for the selected score_version (0-10)
score_versionNoScore family for min_score / score_desc
min_epssNoMinimum EPSS score (0-1)
yearNoFilter by CVE year (e.g. 2024)
date_fromNoStart date for CVE publication (YYYY-MM-DD)
date_toNoEnd date for CVE publication (YYYY-MM-DD)
sortNoSort order. Aliases are normalized to the current server schema.
pageNoPage number (default: 1)
per_pageNoResults per page (1-25, default: 10)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

A4.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

With 17 tools, the server provides a thorough coverage of exploit intelligence workflows without being overwhelming. The number is well-scoped for the domain.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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
  • A
    license
    A
    quality
    A
    maintenance
    Gives AI assistants access to the Exploit Intelligence Platform for vulnerability and exploit intelligence. Supports searching CVEs, exploits, and generating pentest findings.
    17
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides live CVE data from NVD and EPSS without API key, enabling AI assistants to look up CVSS scores, search vulnerabilities, and check product CVEs.
    3
    MIT

Latest Blog Posts

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