Skip to main content
Glama
badchars
by badchars

The Problem

Vulnerability intelligence is scattered across multiple databases. NVD has CVE details. EPSS tells you exploitation probability. CISA KEV tracks actively exploited vulns. GitHub Advisory covers open source packages. OSV maps vulnerabilities to specific package versions. Shodan tracks internet exposure. Nuclei and Metasploit tell you if there's a working exploit. No single tool aggregates them, and none work with AI agents.

Traditional workflow:
  search NVD for CVE details          →  navigate a clunky web UI
  check EPSS for exploitation risk    →  separate API, separate format
  look up CISA KEV status             →  download a JSON feed manually
  search GitHub advisories            →  yet another interface
  query OSV for package impact        →  different API, different schema
  check Shodan for exposure           →  separate subscription
  look for Nuclei/MSF exploits        →  manual GitHub search
  map to ATT&CK techniques            →  separate MITRE lookup
  correlate everything                →  copy-paste into a spreadsheet
  ──────────────────────────────────
  Total: 30+ minutes per CVE, longer for bulk triage

cve-mcp gives your AI agent 41 tools via the Model Context Protocol. The agent queries 11 sources in parallel, correlates data, detects weaponization signals, calculates risk scores, and tells you exactly what matters.

With cve-mcp:
  You: "Prioritize these 10 CVEs by actual exploitation risk"

  Agent: → fetches CVSS scores from NVD
         → gets EPSS exploitation probability for each
         → checks CISA KEV for actively exploited
         → cross-references GitHub advisories for patches
         → "3 are critical: CVE-2024-3400 (EPSS 97%, in KEV),
            CVE-2023-44487 (HTTP/2 rapid reset, EPSS 96%),
            CVE-2021-44228 (Log4Shell, EPSS 97%, in KEV).
            Here are patches and affected versions..."

Related MCP server: CVE MCP Server

How It's Different

Existing tools give you raw data. cve-mcp gives your AI agent the ability to reason about vulnerabilities.


Quick Start

Option 1: npx (no install)

npx cve-mcp

Option 2: Clone

git clone https://github.com/badchars/cve-mcp.git
cd cve-mcp
bun install

Environment variables (all optional)

# Increases NVD rate limit from 5 to 50 requests per 30 seconds
export NVD_API_KEY=your-nvd-api-key

# Enables GitHub Advisory search (60 → 5000 requests/hour)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# VulnCheck extended KEV, CPE, PURL search
export VULNCHECK_API_KEY=your-vulncheck-key

# Vulners vulnerability search across 200+ sources
export VULNERS_API_KEY=your-vulners-key

# AttackerKB community assessments
export ATTACKERKB_API_KEY=your-attackerkb-key

All are optional. The server works without them — some tools just have lower rate limits or reduced data.

Connect to your AI agent

# With npx
claude mcp add cve-mcp -- npx cve-mcp

# With local clone
claude mcp add cve-mcp -- bun run /path/to/cve-mcp/src/index.ts

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "cve-mcp": {
      "command": "npx",
      "args": ["cve-mcp"],
      "env": {
        "NVD_API_KEY": "optional-key",
        "GITHUB_TOKEN": "optional-token",
        "VULNCHECK_API_KEY": "optional-key",
        "VULNERS_API_KEY": "optional-key",
        "ATTACKERKB_API_KEY": "optional-key"
      }
    }
  }
}

Same JSON config format. Point the command to npx cve-mcp or your installation path.

Start querying

You: "What do you know about CVE-2024-3400?"

That's it. The agent handles the rest.


What The AI Can Do

Incident Response

You: "We got hit by CVE-2024-3400. Give me everything."

Agent: → cve_enrich {cveId: "CVE-2024-3400"}
       → NVD: PAN-OS command injection, CVSS 10.0
       → EPSS: 97.2% exploitation probability
       → KEV: Added 2024-04-12, due 2024-05-01
       → Shodan: 4 CPEs, internet-exposed
       → Nuclei: Detection template exists (critical)
       → Metasploit: Exploit module available (excellent rank)
       → "Critical. Weaponized — both Nuclei and MSF modules exist.
          PAN-OS GlobalProtect, versions < 10.2.9-h1.
          Patch immediately. CISA deadline: May 1."

Vulnerability Prioritization

You: "Prioritize these CVEs from our scan: CVE-2021-44228, CVE-2024-3400,
      CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

Agent: → cve_prioritize {cves: [...]}
       → Ranks by CVSS × EPSS × KEV multiplier
       → "#1: CVE-2024-3400 (risk: 19.44, CVSS 10.0, EPSS 97%, KEV)
          #2: CVE-2021-44228 (risk: 19.40, CVSS 10.0, EPSS 97%, KEV)
          #3: CVE-2023-4966 (risk: 19.10, CVSS 9.4, EPSS 97%, KEV)
          All 5 are in CISA KEV — patch all immediately."

Dependency Audit

You: "Check if lodash 4.17.20 and django 3.2.0 have known vulnerabilities"

Agent: → osv_batch {queries: [
          {package: "lodash", version: "4.17.20", ecosystem: "npm"},
          {package: "django", version: "3.2.0", ecosystem: "PyPI"}
       ]}
       → "lodash 4.17.20: 3 vulnerabilities (prototype pollution)
          django 3.2.0: 12 vulnerabilities (SQL injection, XSS)
          Upgrade lodash to 4.17.21+, django to 4.2+"

Threat Monitoring

You: "What are the most likely to be exploited CVEs right now?"

Agent: → cve_trending {limit: 10, minEpss: 0.9}
       → "Top 10 by exploitation probability:
          1. CVE-2024-3400 — PAN-OS (EPSS 97.2%, CVSS 10.0, KEV)
          2. CVE-2023-44487 — HTTP/2 Rapid Reset (EPSS 96.5%, CVSS 7.5, KEV)
          ..."

CVSS Deep Dive (v3.1 & v4.0)

You: "Break down this CVSS v4.0 vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"

Agent: → cvss_parse {vector: "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}
       → "CVSS v4.0 — Score: 9.3 (CRITICAL)
          Network attack, low complexity, no attack requirements.
          No privileges, no user interaction.
          Vulnerable system: full C/I/A impact.
          Subsequent systems: no impact."

ATT&CK Mapping

You: "Map CVE-2024-3400 to MITRE ATT&CK techniques"

Agent: → cve_to_attack {cweIds: ["CWE-77"]}
       → "CWE-77 (Command Injection) maps to:
          T1059 — Command and Scripting Interpreter (Execution)
          T1190 — Exploit Public-Facing Application (Initial Access)"

Tools Reference (41 tools)

Tool

Description

nvd_search

Search CVEs by keyword, severity, CWE, date range

nvd_get

Get full CVE details (CVSS, CWE, CPE, references)

nvd_recent

Recently published/modified CVEs

cve_by_product

Search CVEs by product name (CPE keyword match)

Tool

Description

epss_score

EPSS exploitation probability for one or more CVEs

epss_top

Top CVEs by exploitation probability

Tool

Description

kev_check

Check if CVE(s) are in CISA Known Exploited Vulnerabilities catalog

kev_search

Search KEV by vendor, product, or keyword

kev_recent

Recently added KEV entries

Tool

Description

ghsa_search

Search GitHub security advisories by keyword, ecosystem, severity

ghsa_get

Get advisory details by GHSA ID or CVE ID

Tool

Description

osv_query

Query vulnerabilities for a specific package version

osv_get

Get vulnerability details by OSV/GHSA/CVE ID

osv_batch

Batch query multiple packages at once

Tool

Description

exploit_search

Search for public PoC exploits (GitHub repositories)

Tool

Description

shodan_cve

CVE lookup via Shodan CVEDB (EPSS, KEV, CPE integrated, zero-auth)

shodan_product

Find CVEs by product/vendor name via Shodan

shodan_ip_vulns

Get known vulnerabilities for an IP address (InternetDB)

Tool

Description

vulncheck_kev

Extended KEV catalog (~80% more entries than CISA)

vulncheck_cpe

CVE search by CPE string

vulncheck_purl

CVE search by Package URL (purl)

Tool

Description

vulners_lookup

CVE details from Vulners (200+ sources, exploit refs)

vulners_search

Full-text vulnerability search across Vulners database

Tool

Description

nuclei_check

Check if a Nuclei detection template exists for a CVE

msf_check

Check if a Metasploit exploit module exists for a CVE

Tool

Description

cpe_search

Search NVD CPE dictionary by keyword

cpe_match

Get CPE matches for a specific CVE

Tool

Description

circl_cve

CIRCL CVE enrichment (CAPEC, alt references, impact vectors)

Tool

Description

attackerkb_assess

Community assessments from AttackerKB (attacker value, exploitability)

Tool

Description

cve_to_attack

Map CVE CWE IDs to MITRE ATT&CK techniques and tactics

Tool

Description

cwe_lookup

Look up CWE weakness by ID or search by keyword (static DB)

cwe_get

Full CWE details from MITRE API (1000+ CWEs, mitigations, examples)

cwe_hierarchy

CWE parent/child hierarchy from MITRE API

cwe_top25

MITRE CWE Top 25 Most Dangerous Software Weaknesses

Tool

Description

cvss_parse

Parse and explain CVSS v3.1 or v4.0 vector string with score calculation

Tool

Description

cve_enrich

Full enrichment: NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF in parallel

cve_prioritize

Rank CVEs by risk (CVSS &times; EPSS &times; KEV &times; Exploit multiplier)

cve_trending

Currently trending CVEs by exploitation probability

cve_compare

Side-by-side comparison of two CVEs

cve_list_sources

List all 11 data sources and their availability

cve_report

Generate a markdown vulnerability report


Data Sources

Source

Auth

What it provides

NVD

Optional NVD_API_KEY

CVE details, CVSS scores, CWE mappings, CPE affected products, references

EPSS

None

Exploitation probability score (0-1) and percentile ranking

CISA KEV

None

Known exploited vulnerabilities with remediation deadlines

GitHub Advisory

Optional GITHUB_TOKEN

Open source security advisories, affected packages, severity

OSV

None

Package-level vulnerability data across 16+ ecosystems

Shodan CVEDB

None

CVE lookup with integrated EPSS/KEV/CPE, IP vulnerability scan

VulnCheck

Optional VULNCHECK_API_KEY

Extended KEV (~80% more entries), CPE/PURL vulnerability search

Vulners

Optional VULNERS_API_KEY

Vulnerability search across 200+ sources, exploit references

Nuclei Templates

None

CVE detection template existence check (severity, tags)

Metasploit

None

Exploit module existence check (type, rank, path)

CIRCL

None

CVE enrichment with CAPEC mapping, alt references, impact vectors

AttackerKB

Optional ATTACKERKB_API_KEY

Community assessments (attacker value, exploitability ratings)

MITRE ATT&CK

None

CWE-to-ATT&CK technique mapping (tactics, techniques)

MITRE CWE

None

Full CWE database (1000+ weaknesses, hierarchy, mitigations)

Risk Score Formula

Risk Score = CVSS Base Score × EPSS Score × KEV Multiplier × Exploit Multiplier

Where:
  CVSS Base Score     = 0-10 (severity from NVD)
  EPSS Score          = 0-1 (exploitation probability from FIRST)
  KEV Multiplier      = 2 if in CISA KEV, 1 otherwise
  Exploit Multiplier  = 1.5 if Nuclei template OR Metasploit module exists, 1 otherwise

This gives a practical risk score that balances severity (CVSS) with real-world exploitation likelihood (EPSS), known active exploitation (KEV), and weaponization signals (public exploit tooling).


Architecture

src/
├── index.ts                    Entry point + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, API types
├── protocol/
│   ├── tools.ts                41 tool definitions (Zod schemas)
│   └── mcp-server.ts           MCP server + stdio transport
├── nvd/
│   ├── index.ts                NVD API v2 — search, get, recent
│   └── cpe.ts                  Product/CPE search
├── epss/
│   └── index.ts                EPSS — score, top
├── kev/
│   └── index.ts                KEV — check, search, recent (cached)
├── ghsa/
│   └── index.ts                GitHub Advisory — search, get
├── osv/
│   └── index.ts                OSV — query, get, batch
├── exploit/
│   └── index.ts                PoC search via GitHub repos
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (zero-auth)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners search + lookup
├── nuclei/
│   └── index.ts                Nuclei template existence check
├── metasploit/
│   └── index.ts                MSF module check (cached metadata)
├── cpe/
│   └── index.ts                NVD CPE dictionary API
├── circl/
│   └── index.ts                CIRCL CVE enrichment
├── attackerkb/
│   └── index.ts                AttackerKB assessments
├── attack/
│   └── index.ts                CWE → MITRE ATT&CK mapping
├── cwe/
│   └── index.ts                CWE API (MITRE) + static fallback
├── cvss/
│   └── index.ts                CVSS v3.1 + v4.0 parser + calculator
├── meta/
│   ├── enrich.ts               Full CVE enrichment (8 sources parallel)
│   ├── prioritize.ts           Risk-based CVE ranking
│   ├── trending.ts             Trending CVEs by EPSS
│   ├── compare.ts              Side-by-side CVE comparison
│   └── sources.ts              11 source health checks
└── utils/
    ├── rate-limiter.ts          Queue-based rate limiter
    └── cache.ts                 TTL cache

Design decisions:

  • Intelligence, not audit &mdash; Unlike cloud-audit-mcp and github-security-mcp, this is a data tool. No CheckResult, no findings accumulation. Each query is independent and stateless.

  • Parallel enrichment &mdash; cve_enrich calls 8 sources via Promise.allSettled. If one source is down, the rest still return data.

  • Weaponization detection &mdash; Checks Nuclei template and Metasploit module existence to flag CVEs with public exploit tooling.

  • Shared rate limiter &mdash; All NVD modules share a single RateLimiter instance (6s between requests) to avoid 429 errors.

  • KEV + MSF caching &mdash; KEV catalog (~1200 entries) and MSF module metadata (~15MB) loaded once, cached with 1-hour TTL.

  • CWE dual-mode &mdash; MITRE CWE REST API for full detail (1000+ CWEs), with 40+ entry static fallback when API is unreachable.

  • CVSS v3.1 + v4.0 &mdash; Auto-detects version from vector prefix. V4.0 uses MacroVector scoring approach.

  • ATT&CK mapping &mdash; Static CWE-to-technique table (33 CWE entries → ATT&CK techniques). No API calls.

  • 2 dependencies &mdash; @modelcontextprotocol/sdk and zod. Nothing else.


Limitations

  • NVD API without NVD_API_KEY is limited to 5 requests per 30 seconds. Set the key for production use

  • GitHub Advisory search without GITHUB_TOKEN is limited to 60 requests per hour

  • VulnCheck, Vulners, and AttackerKB require API keys for full functionality

  • Exploit search uses GitHub repository search which has its own rate limits

  • MSF module metadata (~15MB) is loaded on first use — initial msf_check call is slower

  • CVSS v4.0 scoring uses MacroVector approximation (exact specification is very complex)

  • ATT&CK mapping covers 33 CWE entries — uncommon CWEs may not map

  • macOS / Linux (Windows not tested)


Part of the MCP Security Suite

Project

Domain

Tools

hackbrowser-mcp

Browser-based security testing

39 tools, Firefox, injection testing

cloud-audit-mcp

Cloud security (AWS/Azure/GCP)

38 tools, 60+ checks

github-security-mcp

GitHub security posture

39 tools, 45 checks

cve-mcp

Vulnerability intelligence

41 tools, 11 sources


Available Tools

41 tools
attackerkb_assessA

Get community assessments for a CVE from AttackerKB. Shows attacker value, exploitability ratings, and Rapid7 analysis from security researchers.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID (e.g., 'CVE-2024-3400')

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden of behavioral disclosure. It states the tool retrieves data and specifies the nature of the output (ratings, analysis), which implies a read-only operation. However, it does not disclose potential limitations like API key requirements, rate limits, or data freshness, leaving some behavioral traits unclear.

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 long, immediately stating the tool's purpose and the specific type of data it returns. Every word is informative with no redundancy or fluff. The structure is front-loaded with the verb 'Get' and a clear resource.

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 tool with one required parameter and no output schema, the description sufficiently explains what the tool does and the kind of information it provides. It could hint at how the ratings are represented or any constraints, but overall it is complete enough for an agent to understand its capability.

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 single parameter cveId described as 'CVE ID (e.g., 'CVE-2024-3400')'. The tool description reiterates that the tool works for CVEs but adds no semantic detail beyond the schema. Baseline score of 3 is appropriate since the schema already provides adequate description.

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 identifies the tool as retrieving community assessments for a CVE from AttackerKB, specifying the data includes attacker value, exploitability ratings, and Rapid7 analysis. This distinctively sets it apart from sibling tools that query other CVE databases or provide different types of CVE data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus sibling tools like nvd_get or circl_cve. It does not mention contexts or prerequisites for using AttackerKB assessments, nor does it warn against misuse. Users must infer usage from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

circl_cveA

Get CVE details from CIRCL (Computer Incident Response Center Luxembourg). Returns CAPEC attack patterns, vulnerable products, and access/impact vectors. No API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID (e.g., 'CVE-2024-3400')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It mentions no API key required, which is helpful, but omits rate limits, data freshness, or response size. For a simple read-only tool, this is adequate but not thorough.

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, front-loaded with the purpose, and contains no wasted words. Every sentence earns its place.

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 single required parameter, no output schema, and no annotations, the description covers essential context: data returned and authentication requirement. It lacks details on response format or pagination, but for a simple lookup tool, it is sufficiently complete.

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?

Parameter coverage is 100% via schema, and the description adds an example format ('CVE-2024-3400'). This provides minimal added value beyond the schema, warranting the 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 verb 'Get' and the resource 'CVE details from CIRCL'. It lists specific data returned (CAPEC attack patterns, vulnerable products, access/impact vectors), which distinguishes it from siblings like nvd_get or osv_get that provide different details.

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 when you need CIRCL-specific CVE details and notes 'No API key required.' However, it does not explicitly state when to use this tool over alternatives like cve_enrich or nvd_get, nor does it provide when-not-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cpe_matchB

Get CPE match criteria for a specific CVE from NVD. Shows exactly which product versions are affected, including version ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID (e.g., 'CVE-2024-3400')
limitNoMax results (default 50)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions that the tool 'shows exactly which product versions are affected, including version ranges', it does not disclose key behavioral traits such as data source behavior, response format, limitations, error handling, or whether it might return partial results. The description is too vague to fully prepare an agent for invocation.

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 two sentences with no extraneous words. It is front-loaded: the first sentence immediately states the tool's purpose. Every word contributes to understanding. It could potentially be slightly more concise by combining sentences, but overall it is efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 required params, no output schema), the description provides a basic idea of what the tool returns ('product versions, including version ranges'). However, it lacks details about pagination (limit parameter behavior), error handling for invalid CVE IDs, and the exact structure of the output. It is minimally adequate but not fully complete.

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% description coverage, with both parameters (cveId, limit) adequately described in the schema. The description adds no additional semantic detail beyond what the schema already provides. Baseline score of 3 is appropriate since the description does not degrade but also does not enhance parameter 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?

The description uses the specific verb 'Get' and clearly identifies the resource as 'CPE match criteria for a specific CVE from NVD'. It distinguishes itself from sibling tools like cpe_search (which is for general CPE search) and cve_by_product (which lists CVEs by product) by focusing on a single CVE and showing affected product versions with ranges.

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 the tool is used when you have a specific CVE and want to know which product versions are affected. However, it does not explicitly state when to use it versus alternatives like cve_enrich or nvd_get, nor does it provide any exclusions or prerequisites. The context is clear but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_by_productA

Search CVEs by vendor or product name. Uses NVD keyword exact match to find all vulnerabilities for a specific technology (e.g., 'Apache Log4j', 'Microsoft Exchange').

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20, max 100)
keywordYesProduct or vendor name (e.g., 'Apache Log4j', 'OpenSSL')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It reveals the data source (NVD) and search method (exact match). However, it does not disclose rate limits, authentication needs, or behavior when no results are found. The safety profile (read-only) is implied but not explicit.

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 short sentences with a clear example, front-loading the core action and search method. Every word is necessary, and there is no verbose or redundant information.

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 search tool with 2 parameters and no output schema, the description covers the key aspects: what, how, and examples. It could mention the typical return format (list of CVEs with metadata) but is largely complete.

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 100% of parameters, but the description adds context: 'exact match' clarifies the search mode and examples illustrate usage. This adds value beyond the schema's descriptions without redundancy.

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 (Search), resource (CVEs), and method (by vendor or product name, NVD keyword exact match). Examples ('Apache Log4j', 'Microsoft Exchange') solidify understanding. No sibling tool duplicates this exact purpose, so it is well-distinguished.

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 finding vulnerabilities by product/vendor but does not explicitly state when to use it versus alternatives like cve_compare, cve_enrich, or cve_trending. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_compareA

Compare two CVEs side by side. Shows CVSS, EPSS, KEV status, affected products, and risk scores with a comparison summary highlighting which is more dangerous.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve1YesFirst CVE ID (e.g., 'CVE-2024-3400')
cve2YesSecond CVE ID (e.g., 'CVE-2021-44228')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It lists the output fields (CVSS, EPSS, KEV, etc.) but does not disclose behavioral traits like whether it fetches live data, any prerequisites (both CVEs must exist), or error handling. The description is adequate but lacks depth in behavioral transparency.

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 concise, consisting of two sentences that front-load the action ('Compare two CVEs') and then enumerate the output elements. No redundant or unnecessary information. Every sentence earns its place.

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?

With no output schema, the description adequately covers what the tool returns (CVSS, EPSS, KEV, affected products, risk scores, comparison summary). However, it could be more complete by mentioning prerequisites (e.g., both CVEs must exist) or error handling. Still, it provides sufficient context for a comparison tool among many siblings.

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 already provides clear descriptions for both parameters ('First CVE ID' and 'Second CVE ID') with 100% coverage. The tool description does not add further parameter-specific meaning beyond repeating the purpose. Baseline of 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 tool's purpose: 'Compare two CVEs side by side.' It lists specific elements shown (CVSS, EPSS, KEV status, affected products, risk scores) and mentions a comparison summary. This distinguishes it from sibling tools that focus on single CVEs or lists.

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 when you need to compare two CVEs, but it does not explicitly state when not to use it or suggest alternatives. For example, it does not mention that for a single CVE, one should use enrichment tools like cve_enrich. The usage context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_enrichA

Full CVE enrichment — queries NVD, EPSS, KEV, GitHub Advisory, OSV, Shodan CVEDB, VulnCheck, Nuclei Templates, and Metasploit in parallel for comprehensive vulnerability intelligence. Returns CVSS, exploitation probability, KEV status, affected packages, exploit availability, and a computed risk score.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID to enrich (e.g., 'CVE-2024-3400')

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It mentions parallel queries and the type of data returned, which is helpful. However, it does not disclose whether the tool is read-only, side effects, rate limits, or idempotency.

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 sentence that front-loads the purpose. While it packs a lot of information, it could be slightly more structured (e.g., splitting sources and outputs). Overall, it efficiently conveys the functionality.

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 single parameter and no output schema, the description covers the main sources and return elements. It is missing details on score computation, but still provides a good overview of what the tool does.

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% for the single parameter 'cveId', which already has a clear description. The tool description adds context about enrichment but does not enhance parameter-level semantics 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 performs 'Full CVE enrichment' by querying multiple sources in parallel, and the list of sources and outputs distinguishes it clearly from sibling tools that focus on individual sources (e.g., nvd_get, epss_score).

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 the tool is for comprehensive vulnerability intelligence, but does not explicitly state when to use it vs. alternatives or when not to use it. Context from sibling names suggests it aggregates, but no direct guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_list_sourcesA

List all vulnerability data sources and their current availability. Shows which APIs are reachable and whether optional API keys are configured. Covers 11 sources: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, CIRCL, AttackerKB, MITRE CWE.

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?

Without annotations, the description explains the tool's behavior well: it shows reachability and API key configuration for 11 sources, with no side effects mentioned.

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 main purpose and followed by details, 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 no parameters or output schema, the description fully covers what the tool does—listing sources, their availability, and API key status—without gaps.

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 tool has no parameters and schema coverage is 100%, so the description adds no param info, which is acceptable; baseline for 0 params is 4.

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 all vulnerability data sources and their availability, distinguishing it from sibling tools that query specific sources or perform other operations.

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 checking source availability but does not explicitly state when to use versus alternatives, nor does it provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_prioritizeA

Rank a list of CVEs by exploitation risk. Combines CVSS score, EPSS probability, KEV status, and weaponization signals (Nuclei/Metasploit modules) into a unified risk score. Higher score = patch first.

ParametersJSON Schema
NameRequiredDescriptionDefault
cvesYesList of CVE IDs to prioritize (e.g., ['CVE-2024-3400', 'CVE-2021-44228'])

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the input (list of CVEs) and the components of the risk score, but does not specify output format, how the score is computed, or whether the tool has side effects. It is reasonable but incomplete.

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 concise, consisting of two sentences that efficiently convey the tool's purpose and mechanism without unnecessary verbiage. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and annotations, the description should provide more detail on the return value (e.g., format of the ranked list) to be fully complete. It does specify that 'Higher score = patch first', which gives a hint, but lacks details on how the list is returned.

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 for the single parameter 'cves', and the description adds no additional semantics beyond what the schema already provides (list of CVE IDs). Baseline score of 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 tool's purpose: ranking CVEs by exploitation risk, and lists the specific signals combined (CVSS, EPSS, KEV, weaponization). This distinguishes it from sibling tools that focus on individual signals (e.g., epss_score, kev_check).

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 prioritization ('Rank a list... patch first') but does not explicitly state when to use this tool over alternatives like epss_score or exploit_search for individual CVEs. No exclusions or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_reportA

Generate a markdown vulnerability report for a list of CVEs. Includes NVD details, EPSS scores, KEV status, and remediation priority.

ParametersJSON Schema
NameRequiredDescriptionDefault
cvesYesList of CVE IDs to include in the report
titleNoReport title (default: 'Vulnerability Report')

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the output format (markdown) and data sources (NVD, EPSS, KEV, remediation priority). It does not mention idempotency or side effects, but the report generation nature implies a read-like operation.

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 a single sentence that is informative and front-loaded. Every word adds value, with no redundancy or irrelevant detail.

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's simplicity (2 params, no nested objects, no output schema), the description adequately covers its purpose and content. However, it lacks details like optionality of title, output format specifics, or limitations, preventing a perfect score.

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%, so the parameters are fully documented in the schema. The description adds no extra semantic detail beyond restating the schema descriptions, so baseline score of 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 tool generates a markdown vulnerability report for a list of CVEs, specifying included details (NVD, EPSS, KEV, remediation priority). This verb+resource combination distinguishes it from sibling tools like cve_enrich or cve_prioritize.

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 when a user has a list of CVEs and wants a report, but does not explicitly state when to use this tool over alternatives (e.g., cve_compare, cve_enrich). No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_to_attackA

Map CWE weakness IDs to MITRE ATT&CK techniques. Shows which attack techniques a vulnerability enables, useful for threat modeling and detection engineering.

ParametersJSON Schema
NameRequiredDescriptionDefault
cweIdsYesCWE IDs to map (e.g., ['CWE-79', 'CWE-89'])

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic mapping function. It does not disclose behavioral traits like data freshness, error handling, output format, or performance characteristics, leaving significant gaps.

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, front-loaded with the main purpose, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is adequate for a simple mapping tool but lacks details about return values, error handling, or limitations.

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 cweIds has description and example). The tool description adds no additional meaning beyond the schema, so baseline score of 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 'Map' and the resource 'CWE weakness IDs to MITRE ATT&CK techniques', distinguishing it from siblings that deal with CVEs, CVSS, or CWE lookups.

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 mentions it is 'useful for threat modeling and detection engineering', providing clear context for when to use, but does not explicitly state when not to use or compare with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cvss_parseA

Parse a CVSS v3.x or v4.0 vector string into a human-readable breakdown. Explains each metric, calculates the base score, and provides a plain-English summary. Supports both CVSS:3.1 and CVSS:4.0 format.

ParametersJSON Schema
NameRequiredDescriptionDefault
vectorYesCVSS vector string (e.g., 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It describes the parsing and calculation behavior adequately but does not disclose error handling (e.g., invalid vectors), authentication needs, or side effects. Since it's a parse tool, read-only nature is assumed but not stated.

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 with no redundancy. The first sentence states the main purpose, followed by specific outputs and version support. Every sentence adds value.

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 one-parameter parser, the description covers the core functionality well. However, it omits the output format (e.g., JSON structure), which would help the agent understand how to use the result. No output schema is provided, so description could compensate.

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 single parameter 'vector' is fully described in the schema (100% coverage) with an example. The description adds context about what the tool does with the vector but does not add new parameter-level semantics 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 verb 'Parse', the resource 'CVSS v3.x or v4.0 vector string', and the outcomes: 'human-readable breakdown', 'calculates the base score', and 'plain-English summary'. It is distinct from sibling tools which focus on CVE, CPE, and vulnerability 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 implies usage for interpreting CVSS vectors but does not explicitly state when to use it versus alternatives (e.g., for looking up CVSS in other tools). No exclusions or alternative tools are mentioned, leaving the agent to infer context from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_getB

Get full CWE details from the MITRE CWE REST API. Returns name, description, related weaknesses, applicable platforms, consequences, detection methods, and mitigations for any of the 1000+ CWEs.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCWE ID (e.g., 'CWE-79' or just '79')

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. It does not mention that this is a read-only operation, potential rate limits, or any prerequisites. It only describes the return data, leaving safety profile undocumented.

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 the purpose and list key return fields without fluff. Every sentence adds value.

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 single-parameter retrieval tool with no output schema, the description is largely complete. However, it omits behavioral context (e.g., that it's idempotent) and does not explain pagination or error cases, which are minor 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 clear parameter description. The description adds no additional semantic value beyond confirming the tool works for any CWE ID, which is already implied. 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?

Description clearly states verb 'Get' and resource 'full CWE details', listing specific fields returned. It distinguishes from sibling tools like cwe_lookup (which likely returns less detail) by emphasizing completeness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs siblings such as cwe_lookup, cwe_hierarchy, or cwe_top25. The description only mentions it works for 'any of the 1000+ CWEs' but does not specify conditions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_hierarchyA

Get CWE parent/child hierarchy. Shows which weaknesses are more general (parents) and more specific (children) variants of a given CWE.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCWE ID (e.g., 'CWE-79' or just '79')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It accurately describes the operation as read-only (hierarchy retrieval), but fails to disclose any other behavioral traits like authentication needs, rate limits, or if the output is a list or tree.

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, concise and front-loaded with the key action and resource. Every word adds value; no fluff.

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 tool with one required parameter and no output schema, the description adequately covers the purpose and parameter. However, it does not hint at the output format (e.g., list vs tree), which would be helpful for an agent.

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 one parameter described. The description adds meaning by explaining the hierarchy concept (parent/child, general/specific), which goes beyond the schema's simple type and example.

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?

Clearly states the action ('Get') and resource ('CWE parent/child hierarchy'), including the distinction between parents and children, which differentiates it from sibling tools like cwe_get or cwe_lookup.

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?

Implies usage with a given CWE ID, but does not explicitly state when to use this over alternatives such as cwe_lookup or cwe_top25, nor provides any when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_lookupA

Look up a CWE (Common Weakness Enumeration) by ID or search by keyword. Returns name, description, and category for the top 40+ most common CWEs.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoCWE ID (e.g., 'CWE-79' or just '79')
queryNoSearch keyword (e.g., 'injection', 'buffer overflow')

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions it returns results for 'top 40+ most common CWEs' but does not disclose what happens for unrecognized IDs, keyword matches with no results, or any other limitations. The phrase 'top 40+' is vague and may mislead users into thinking all CWEs are covered.

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 sentence that covers the essential elements: action, resource, parameters, and output. It is concise without being overly terse, though it could be slightly more organized with separate sentences for each mode.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the output (name, description, category) and covers the two main use cases. However, it lacks details about error handling (missing ID, no results), pagination, or whether results are limited to only the top 40+ CWEs. Given the low complexity of the tool, this is adequate but not complete.

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%, so baseline is 3. The description adds valuable context beyond schema: it specifies the format for the 'id' parameter ('CWE-79' or '79') and the purpose of 'query' (search keyword). This helps users correctly populate parameters.

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 ('Look up'), the resource ('CWE'), and the two modes of operation (by ID or by keyword). It distinguishes from siblings by being the only CWE-specific tool among many CVE-related ones.

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 explains when to use each parameter ('by ID' or 'by keyword'), implying the two use cases. It does not explicitly mention when not to use this tool or provide alternatives, but for a simple lookup this is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_top25B

Get the MITRE CWE Top 25 Most Dangerous Software Weaknesses for a given year. Shows the most impactful vulnerability classes ranked by frequency and severity.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoYear (default: current year, e.g., 2024)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as data recency, rate limits, error handling for invalid years, or whether the result is cached. This leaves gaps for the AI agent.

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 that efficiently convey the core function and the optional year parameter. No wasted words, but could be slightly more structured with bullet points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description does not explain the return format (e.g., list of CWE IDs, descriptions, scores). For a simple tool this may be acceptable, but it could be more comprehensive to aid the agent.

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 schema covers the one parameter (year) with 100% coverage, so baseline is 3. The description adds that it shows rankings by frequency and severity, which provides slight extra context beyond the schema's year description.

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 specifies the tool retrieves the MITRE CWE Top 25 for a given year, with a focus on ranking vulnerability classes by frequency and severity. It distinguishes from sibling tools like cwe_get or cwe_lookup, which provide individual CWE details or hierarchical relationships.

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 by saying 'for a given year' and provides default year guidance. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide conditions where it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

epss_scoreA

Get EPSS (Exploit Prediction Scoring System) score for one or more CVEs. Returns the probability of exploitation within 30 days and percentile ranking.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveYesCVE ID(s), comma-separated for multiple (e.g., 'CVE-2024-3400,CVE-2021-44228')

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It mentions return data but fails to disclose whether the operation is read-only, idempotent, or has rate limits. This leaves agents uncertain about side effects.

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, front-loaded with the main action, and provides essential details without redundancy. Every word contributes value.

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 tool with one parameter and no output schema, the description covers the main inputs and outputs. Minor omissions like maximum CVE count or error handling are acceptable given tool simplicity.

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 sole parameter 'cve' is fully described in the schema (100% coverage), including format and example. The description adds no new info beyond the schema, so 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's function: retrieving EPSS scores for one or more CVEs, specifying the return includes probability and percentile. It distinguishes itself from siblings like epss_top by focusing on individual CVEs.

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 when EPSS scores are needed but lacks explicit guidance on when to prefer this over alternatives like epss_top or exploit_search. No contrast with siblings is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

epss_topA

Get the top CVEs ranked by EPSS exploitation probability. Shows the most likely-to-be-exploited vulnerabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default 20)
minScoreNoMinimum EPSS score filter (0-1, e.g., 0.5 for 50%+)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior, but it omits details like default ordering, pagination, data freshness, and interaction with parameters such as minScore.

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 redundancy, efficient communication of the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool, but lacks description of output format and behavioral details, which would improve completeness given no output 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 coverage is 100%, so the description adds minimal extra meaning beyond the parameter descriptions; baseline score 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 retrieves top CVEs ranked by EPSS exploitation probability, differentiating it from sibling tools like epss_score which likely targets specific CVEs.

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?

No explicit usage guidelines or alternatives mentioned; the context of sibling tools implies its use for an overview, but lacks clear direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ghsa_getA

Get full details of a GitHub security advisory by GHSA ID or CVE ID. Includes affected packages, CVSS, and patch information.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesGHSA ID (e.g., 'GHSA-jfh8-c2jp-5v3q') or CVE ID (e.g., 'CVE-2021-44228')

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions included information (affected packages, CVSS, patch) but does not disclose rate limits, authentication needs, or any side effects. For a read operation, it is adequate but not rich.

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?

One sentence front-loads the purpose, then lists included details. No wasted words; every sentence earns its place.

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 tool with one parameter and no output schema, the description covers what it does, what inputs it accepts, and what outputs it returns. Nothing missing given the complexity.

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 single parameter described. The description repeats the ID types (GHSA or CVE) already in the schema, adding no new meaning beyond what is structured.

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 full details of a GitHub security advisory' with specific ID types (GHSA or CVE). It distinguishes from siblings like ghsa_search (search) and nvd_get (NVD 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 implies use when you have a specific ID and need full details, but does not explicitly state when to use this tool versus alternatives like ghsa_search or osv_get, nor when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kev_checkA

Check if CVE(s) are in CISA's Known Exploited Vulnerabilities (KEV) catalog. KEV entries are actively exploited in the wild and require urgent patching.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveYesCVE ID(s), comma-separated for multiple (e.g., 'CVE-2024-3400,CVE-2021-44228')

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Being a simple lookup without side effects, the description adequately conveys the tool's read-only behavior. No annotations are provided, so the description carries the full burden; it is sufficient for this simple operation.

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-load the purpose and add relevant context about urgency. Every word serves a purpose; no fluff. Ideal conciseness for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's input and purpose but does not specify the output format or error handling. Since there is no output schema, the agent might benefit from knowing whether it returns a boolean, list, or other structure. Adequate but incomplete.

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%, so the baseline is 3. The description adds context about the KEV catalog but does not add meaning beyond the schema for the parameter. It confirms the purpose but doesn't enhance parameter 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?

The description clearly states the tool checks if CVEs are in CISA's KEV catalog, using a specific verb and resource. It distinguishes from siblings like kev_search by focusing on membership checking.

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 context about KEV entries being actively exploited and requiring urgent patching, implying when this tool is useful. However, it lacks explicit guidance on when not to use it or mention of alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kev_recentA

Get recently added entries to CISA KEV catalog. Monitor for newly confirmed actively-exploited vulnerabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook back period in days (default 30)
limitNoMax results (default 20)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose rate limits, authentication needs, or edge cases like invalid days/limit values.

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 purpose, no wasted words. Highly concise and 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?

No output schema, but the tool is simple and schema covers inputs well. Description could mention return format (list of entries) but is adequate for agent invocation.

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% with both parameters described in detail. The description adds no extra meaning beyond defaults (30 days, 20 results).

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 uses specific verb 'Get' and resource 'recently added entries to CISA KEV catalog', clearly distinguishing from sibling tools like kev_search (search) and kev_check (check specific CVE).

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?

Stated purpose 'Monitor for newly confirmed actively-exploited vulnerabilities' implies when to use, but lacks explicit exclusions or alternative tool comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

msf_checkB

Check if a Metasploit exploit module exists for a CVE. If a module exists, the vulnerability is weaponized and should be prioritized for patching.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID (e.g., 'CVE-2024-3400')

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It fails to specify the return value format (e.g., boolean or module details), side effects, or any rate limits. The tool is a read operation but lacks clarity on output.

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 with no extraneous information. Every word serves a purpose: verb, resource, and contextual recommendation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is incomplete. It does not explain what the tool returns (e.g., a boolean, module name, or details), leaving the agent uncertain about how to interpret the result. This is a significant gap given the lack of output 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 coverage is 100% and the parameter description is adequate. The tool description ('Check if a Metasploit exploit module exists for a CVE') adds no new semantic detail beyond the schema's 'CVE ID' description. 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?

Description clearly states the tool checks for Metasploit exploit module existence for a given CVE, and adds interpretive value by noting weaponization and patching priority. Distinguishes from sibling tools like exploit_search by focusing specifically on Metasploit modules.

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?

Description implies usage for determining patching priority but does not explicitly state when to use this tool versus alternatives like exploit_search or nuclei_check. No when-not or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nuclei_checkA

Check if a Nuclei detection template exists for a CVE. Nuclei templates from ProjectDiscovery enable automated vulnerability scanning. Returns template URL, severity, and tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID (e.g., 'CVE-2024-3400')

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must fully disclose behavior. It states the tool returns 'template URL, severity, and tags', which is helpful. However, it does not specify what happens if no template exists (e.g., null or empty result) or any authentication requirements, but for a simple check tool this is acceptable.

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. The first states the core purpose, the second provides background and return summary. 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 required parameter, no output schema), the description fully covers what the tool does and what it returns. No missing critical information for an agent to decide to invoke it.

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 the parameter already well-described ('CVE ID (e.g., 'CVE-2024-3400')'). The description adds context about Nuclei and return fields but does not enhance parameter-specific semantics 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 verb 'check if exists' is precise and the resource 'Nuclei detection template' is specific. It clearly distinguishes from sibling tools that check other vulnerability databases (e.g., kev_check, msf_check).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention exclusions or comparisons to siblings like kev_check or cve_enrich, leaving the agent without decision-making context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nvd_getA

Get full details for a specific CVE from NVD — CVSS score, severity, CWE, affected products (CPE), references, and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE identifier (e.g., 'CVE-2024-3400')

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description clearly discloses the output content (CVSS, severity, etc.), implying a read-only operation. However, it does not explicitly state that it is non-destructive, nor does it mention potential rate limits or authentication needs. The transparency is good but could be more thorough.

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 a single sentence that is concise, front-loaded with the purpose, and contains no unnecessary words. It efficiently conveys the tool's function.

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's simplicity (one parameter, no output schema, no annotations), the description covers the essential purpose and output. Minor gaps include lack of error handling or response format details, but it is largely complete for a straightforward retrieval 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 coverage is 100%, so the schema already documents the single parameter (cveId) with an example. The description does not add additional semantic meaning beyond what the schema provides, so the baseline score of 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 tool's purpose: 'Get full details for a specific CVE from NVD' and lists the specific details returned (CVSS, severity, CWE, affected products, references, status). This distinguishes it from sibling tools like nvd_search (searching) and cve_by_product (by product).

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 CVE by ID but does not explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance. The context of sibling tools makes the differentiation obvious, but explicit guidelines are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nvd_recentA

Get recently published or modified CVEs from NVD. Useful for monitoring new vulnerabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook back period in days (default 7, max 120)
limitNoMax results (default 20)
severityNoFilter by CVSS v3 severity

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description must disclose behavioral traits. It only mentions 'get' and 'recently published or modified' but does not specify read-only nature, data freshness, API limits, or pagination behavior.

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, front-loaded with core purpose. No wasted 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 simple optional parameters and no output schema, description is nearly complete. Lacks mention of return format but sufficient for a monitoring 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 coverage is 100%, so parameters are already documented. Description adds no extra meaning beyond the schema definitions.

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?

Clearly states 'Get recently published or modified CVEs from NVD' with a specific verb and resource. Differentiates from sibling tools like nvd_search by emphasizing recency and monitoring.

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?

States 'Useful for monitoring new vulnerabilities' which implies usage context but provides no exclusions or alternatives. Does not compare with similar sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

osv_batchA

Batch query OSV for vulnerabilities across multiple packages at once. Efficient for scanning a dependency list.

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYesArray of package queries

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the read-only nature ('query for vulnerabilities') but omits details on batch size limits, response format, or authentication needs. The transparency is adequate but not comprehensive.

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, zero wasted words. The purpose is front-loaded and 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?

Given the tool's simplicity (one parameter, no output schema), the description is mostly complete. It could mention potential batch size constraints, but overall it provides sufficient context for an agent to understand the tool's role.

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%, so the schema already fully documents the single parameter (queries) and its fields. The description adds no additional parameter meaning beyond what the schema provides, earning the baseline score.

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 performs batch queries for vulnerabilities across multiple packages, distinguishing it from sibling tools like osv_query or osv_get which handle single packages. The phrase 'Efficient for scanning a dependency list' reinforces the batch purpose.

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 for scanning a dependency list, which suggests multiple packages. However, it does not explicitly contrast with single-query tools or provide when-not-to-use guidance. The context is clear but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

osv_getA

Get full vulnerability details from OSV by ID. Accepts OSV IDs (OSV-xxx), GHSA IDs (GHSA-xxx), CVE IDs (CVE-xxx), or ecosystem-specific IDs (PYSEC-xxx, RUSTSEC-xxx).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesVulnerability ID (e.g., 'GHSA-jfh8-c2jp-5v3q', 'CVE-2021-44228')

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states 'full vulnerability details' without specifying what that includes, and lacks information on authentication, rate limits, or potential errors. This leaves significant gaps for an agent.

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 redundant information. The description is front-loaded with the core purpose, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should clarify return structure. 'Full vulnerability details' is vague. The tool is simple, but missing error handling info and a more precise output definition reduces completeness.

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 covers the single parameter 'id' with a basic description. The tool's description adds value by listing the accepted ID formats (e.g., 'GHSA-jfh8-c2jp-5v3q'), enhancing parameter understanding 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 the tool retrieves full vulnerability details from OSV by ID, listing specific ID formats (OSV, GHSA, CVE, ecosystem-specific). This sets it apart from sibling tools like osv_batch (batch) and osv_query (search).

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 specifies the accepted ID formats, indicating when to use the tool (when you have a specific vulnerability ID). It implicitly distinguishes from batch and query tools but does not explicitly state when not to use it or provide direct alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

osv_queryB

Query Google OSV for known vulnerabilities affecting a specific package version. Supports all major ecosystems (npm, PyPI, Maven, Go, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
packageYesPackage name (e.g., 'lodash', 'django', 'log4j-core')
versionYesPackage version (e.g., '4.17.20', '3.2.1')
ecosystemYesPackage ecosystem

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It does not state that the tool is read-only, safe, or idempotent, nor does it mention rate limits, pagination, or error handling. For a query tool, such disclosure is important.

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, front-loaded with the action and resource. Concise with no extraneous information, though a slightly more structured format could improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three required parameters fully described in the schema and no output schema, the description is adequate for a simple query tool. However, it lacks information on return format, error cases, and safety, which is needed given no 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 coverage is 100% with descriptions for all three parameters. The description adds that ecosystems are broadly supported but does not enhance understanding beyond the schema. Baseline 3 due to full schema coverage.

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 'Query', the resource 'Google OSV', and the scope 'known vulnerabilities affecting a specific package version'. It also mentions supported ecosystems, distinguishing it from sibling tools like osv_batch and osv_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like osv_batch (batch query) or osv_get (single vulnerability by ID). The description only states ecosystem support, not usage context or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shodan_cveA

Look up a CVE via Shodan CVEDB (zero-auth). Returns CVSS score, EPSS probability, KEV status, affected CPEs, and references — all in one call without any API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID (e.g., 'CVE-2024-3400')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses authentication requirements ('zero-auth') and what data is returned, but does not detail error handling or rate limits; adequate for a lookup tool without 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, front-loaded with purpose and returns, no 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?

Specifies return fields (CVSS, EPSS, KEV, CPEs, references) and positions as comprehensive, but omits error behavior or handling of missing CVEs; sufficient for a simple lookup 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 coverage is 100% with a clear description; the description does not add additional meaning beyond the schema, meeting baseline.

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?

Clearly states 'Look up a CVE via Shodan CVEDB', specifying verb, resource, and distinguishing source from siblings.

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?

Indicates zero-auth and no API key, implying easy access; lists returned data, suggesting scenario of comprehensive lookup, but lacks explicit alternatives or when-not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shodan_ip_vulnsA

Get known vulnerabilities for an IP address via Shodan InternetDB. Returns open ports, hostnames, CPEs, CVE IDs, and tags. No API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address (e.g., '8.8.8.8')

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the returned data (ports, hostnames, CPEs, CVE IDs, tags) and notes that no API key is required, which is a key behavioral trait. It does not mention side effects, rate limits, or data freshness, but the tool is read-only and low-risk.

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 zero waste. The purpose is front-loaded, and every sentence adds unique value (returns, no API key). Highly 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 tool with one parameter and no output schema, the description covers the essential context: what returns and that no authentication is needed. It could mention data source limitations or response format, but it is largely complete for an agent to select and invoke correctly.

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% (the 'ip' parameter has a clear example). The description adds no further meaning to the parameter beyond what the schema 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 tool's purpose: to get known vulnerabilities for an IP address via Shodan InternetDB. It specifies the action (Get), resource (vulnerabilities for an IP), and data source, distinguishing it from sibling tools that focus on CVE IDs or product lookups.

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 when one needs vulnerabilities for an IP, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it compare to siblings like shodan_cve or shodan_product. The lack of exclusions or alternatives leaves the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shodan_productA

Find CVEs affecting a specific product or vendor via Shodan CVEDB. No API key required. Returns CVEs with CVSS, EPSS, and KEV status.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoMax results (default 20)
is_kevNoFilter to only KEV entries
productYesProduct name (e.g., 'Apache HTTP Server', 'OpenSSL')

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discloses key traits: no API key needed, returns CVEs with CVSS, EPSS, and KEV status. No behavioral traits are hidden or misleading.

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. The first sentence states the purpose, the second adds key features. Every word earns its place.

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 list tool with no output schema, the description adequately explains return values (CVSS, EPSS, KEV status). Missing pagination or error details, but sufficient given low complexity.

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%, but the description adds context for the 'product' parameter with examples and hints at the 'is_kev' filter by mentioning KEV status. It enhances understanding 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 the tool finds CVEs for a product or vendor via Shodan CVEDB, with a specific verb and resource. It distinguishes from siblings by mentioning no API key and providing specific output fields.

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 ease of use ('No API key required') but does not explicitly state when to use this tool versus alternatives like shodan_cve or cve_by_product, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vulncheck_cpeB

Search for vulnerabilities by CPE (Common Platform Enumeration) string via VulnCheck. Useful for finding all CVEs affecting a specific software version.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpeYesCPE string (e.g., 'cpe:2.3:a:apache:http_server:2.4.49:*:*:*:*:*:*:*')

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for behavioral transparency. It only states the purpose and usefulness, with no disclosure of side effects, permissions, rate limits, or output format. For a search tool, basic read-only behavior can be inferred but is not explicitly stated.

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 short, front-loaded sentences with no redundant information. Every word serves a purpose. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter search tool without an output schema, the description covers the main purpose and use case. However, it does not describe the return format (e.g., list of CVE IDs or details), which would be helpful for an agent. It is minimally adequate but not fully complete.

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 and example for the single parameter 'cpe'. The tool description adds no additional meaning beyond what the schema already provides. According to guidelines, baseline is 3 when schema coverage is high, so this score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Search' and resource 'vulnerabilities by CPE string', and specifies the context 'via VulnCheck'. Does not explicitly differentiate from similar sibling tools like cpe_search or cpe_match, but the unique combination of CPE and VulnCheck implies a distinct focus.

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?

Implied usage is clear ('finding all CVEs affecting a specific software version'), but there is no guidance on when not to use this tool or explicit alternatives among the many sibling tools. No prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vulncheck_kevA

Check VulnCheck's extended KEV catalog for a CVE. Contains ~80% more entries than CISA KEV, including exploit maturity and ransomware association data.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveYesCVE ID (e.g., 'CVE-2024-3400')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It mentions the extended coverage and included data types (exploit maturity, ransomware) but omits behavioral details such as error handling, rate limits, or authentication requirements. The information provided is helpful but incomplete for a fully transparent description.

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 extremely concise—two sentences with no filler or redundancy. Every word contributes to the purpose and key differentiators.

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 lookup tool with one parameter and no output schema, the description covers the core functionality and data enhancements. However, the absence of an output schema means it could be improved by describing the return format or fields more explicitly.

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 sole parameter 'cve' has 100% schema description coverage with a clear example. The tool description does not add additional semantic meaning beyond what the schema already provides, so baseline score of 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 tool checks VulnCheck's extended KEV catalog for a given CVE, highlighting its differentiation from CISA KEV with 80% more entries and additional data (exploit maturity, ransomware association). This effectively distinguishes it from sibling tools like kev_check.

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 comprehensive KEV lookups but does not explicitly state when to use it versus alternatives like kev_check or kev_search. No when-not-to-use or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vulncheck_purlB

Search for vulnerabilities by Package URL (purl) via VulnCheck. Supports all major ecosystems (npm, PyPI, Maven, Go, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
purlYesPackage URL (e.g., 'pkg:npm/lodash@4.17.20')

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description does not disclose behavioral traits such as authentication, rate limits, output format, or error handling, which are needed given no annotation support.

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?

Extremely concise at two sentences, no fluff, and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a single parameter and no output schema, the description omits important details like return values, pagination, or limitations, leaving the agent underinformed.

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 and example. The description adds ecosystem support context but does not significantly enhance 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 the verb 'Search', the resource 'vulnerabilities by Package URL', and specifies the scope 'via VulnCheck' and supported ecosystems. It differentiates from sibling tools like vulncheck_cpe by the parameter type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives or prerequisites. It only states ecosystem support but lacks when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vulners_lookupA

Look up a CVE in Vulners database. Returns detailed vulnerability information including exploit references, CVSS scores, and related advisories from 200+ sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE ID (e.g., 'CVE-2024-3400')

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It discloses that the tool returns detailed vulnerability information, which is helpful, but lacks explicit read-only traits, rate limits, or authentication needs. Acceptable but not thorough.

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, front-loaded sentences. No wasted words, immediately states action and result.

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's simplicity (one param, no output schema), the description adequately explains purpose and return content. Could hint at response format, but overall sufficient.

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 single parameter. The description adds no additional meaning beyond the schema's own description of the CVE ID. Baseline score applied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it looks up a CVE in the Vulners database and lists return details (exploit references, CVSS scores, etc.). It distinguishes from other lookup tools by specifying the Vulners source, but doesn't explicitly differentiate from vulners_search or other Vulners tools.

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 when Vulners-specific detail is needed, but provides no explicit guidance on when to use this tool versus alternatives like nvd_get or circl_cve. No mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct data source or specific operation (e.g., cve_enrich vs. nvd_get, cve_compare vs. cve_prioritize). Descriptions clearly differentiate purposes, even for similar-looking tools.

Naming Consistency4/5

Most tools follow a consistent 'source_action' pattern with underscores (e.g., nvd_get, epss_score). Minor deviations like 'cve_by_product' and 'cve_to_attack' break the pattern but are still readable.

Tool Count4/5

41 tools is high but justified by the breadth of data sources (NVD, EPSS, KEV, etc.) and operations (get, search, compare, prioritize). Slightly over the typical sweet spot but still well-scoped.

Completeness5/5

Covers nearly every aspect of CVE handling: retrieval from multiple sources, enrichment, comparison, prioritization, reporting, exploit checks, CWE mapping, and trending. No obvious gaps for a vulnerability intelligence server.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

  • A
    license
    A
    quality
    B
    maintenance
    An MCP server for vulnerability management that provides tools for automated severity and CWE classification using NLP models. It enables AI agents to query the Vulnerability Lookup API for detailed CVE information and search for security vulnerabilities across various sources.
    16
    34
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    This MCP server transforms Claude into a comprehensive security analyst by providing access to 27 security tools across 21 APIs for vulnerability intelligence. It enables users to query multiple sources like NVD, EPSS, CISA KEV, and threat intelligence platforms in parallel to get correlated security insights and risk assessments for CVEs.
    28
    1,315
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for the NIST National Vulnerability Database — lets AI assistants search CVEs by keyword, severity, CPE, CWE, KEV status, and date range via natural language.
    2
    GPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to search, retrieve, and analyze vulnerability data from the NIST National Vulnerability Database through a comprehensive Model Context Protocol server.
    8
    8
    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/badchars/cve-mcp'

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