Skip to main content
Glama
MRFrazer25

vulnerability-exposure-mcp

Key facts

get_key_facts
Read-onlyIdempotent

Fetch deterministic investigation facts—open ports, network, reputation, version checks, upgrade target, and CISA KEV matches—to base vulnerability reports on consistent, model-free results.

Instructions

Facts computed directly from this investigation's tool results, with no model involved, so they are the same on every run: open ports, network, reputation, version check results, upgrade target, and the CISA KEV split into "confirmed for this target" (NVD version match, or the CVE being analysed) and "related" (product family or vendor). Base the report's claims on these. Values contain third-party text.

Input Schema

NameRequiredDescriptionDefault
investigation_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only/idempotent, but the description adds real value beyond them: results are computed without a model so they are stable across runs, and values contain third-party text (an implicit prompt-injection caution). It also explains the KEV 'confirmed' vs 'related' split logic, which the agent could not otherwise know. It doesn't cover error behavior for an unknown or incomplete investigation.

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?

Front-loaded with the key differentiator (deterministic, model-free) before the enumeration of contents. Dense but every clause carries information; the nested quoted terms make it slightly harder to scan, and the field list could be tightened.

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 does the work of telling the agent what the return payload contains and how to interpret the KEV categories. What's missing is lifecycle context — prerequisites tying it to investigate_target and behavior when the investigation is absent or partial.

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?

There is one required parameter, investigation_id, and schema description coverage is 0%, so the description must compensate — but it never explains what an investigation_id is, where it comes from, or what happens with a stale/unknown id. Baseline is lowered from 4 (zero-param case) only slightly because the single parameter is self-evidently an identifier.

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?

States a specific resource and scope: facts computed deterministically from this investigation's tool results, enumerating what is included (ports, network, reputation, version check, upgrade target, KEV split). This distinguishes it from live-lookup siblings like shodan_search or cisa_kev_check, which it aggregates. The only weakness is that the verb is a generic 'get' and the description doesn't state upfront that it is a post-investigation aggregation step.

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?

'Base the report's claims on these' implies the tool is for consolidating results before writing a report, but it never says when to call it instead of check_report or re-running individual checks. No prerequisite (e.g., that investigate_target must have run first) or exclusion is stated. Usage is inferable but not explicit.

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