Skip to main content
Glama
MRFrazer25

vulnerability-exposure-mcp

Investigate target

investigate_target
Read-onlyIdempotent

Classifies a public IP, domain, URL, CVE ID, or software version and runs baseline exposure lookups, returning an investigation ID plus next steps for deeper checks.

Instructions

Start here. Classifies the target (public IP, domain or URL, CVE ID, or "software version" such as "nginx 1.20.1") and runs the baseline lookups in code: Shodan, VirusTotal, AbuseIPDB, the registry owner and the keyless threat lists for an IP; DNS, VirusTotal, and the same IP checks for a domain's primary IP. Returns an investigation_id to pass to every other tool, the baseline results and next_steps.

depth sets the tool-call budget and detail: "Quick Scan" (8 calls), "Standard Analysis" (15), "Comprehensive Investigation" (25), "Expert Deep Dive" (40). Private, reserved and cloud-metadata IPs are refused.

Input Schema

NameRequiredDescriptionDefault
depthNoStandard Analysis
targetYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld, and the description goes well beyond them: it names the upstream services actually queried per target type, discloses the call budget per depth level (8/15/25/40), and states the refusal rule for private/reserved/metadata IPs. It also previews the return payload (investigation_id, baseline results, next_steps).

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 imperative and the classification step, then the returns, then the depth semantics — a sensible priority order. The service enumeration is dense and the run-on sentence in the first paragraph could be tightened, but no sentence is filler.

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

Completeness5/5

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

For an orchestration entry point with only two parameters, no output schema, and 15 siblings, the description supplies everything needed: accepted inputs, downstream services, refusal rules, return handles, and the cost model that governs downstream call planning. No meaningful gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does: the 'target' parameter is defined by enumerated accepted formats (public IP, domain or URL, CVE ID, 'software version' such as 'nginx 1.20.1'), and 'depth' is mapped from each enum value to a concrete tool-call budget and detail level. This is meaning the schema alone does not convey.

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?

States a specific verb and resource ('Classifies the target ... and runs the baseline lookups') and enumerates exactly which target types it accepts. The opening 'Start here' plus the sibling list makes clear this is the entry point rather than one of the per-service checks like abuseipdb_check or virustotal_check.

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

Usage Guidelines5/5

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

Explicitly instructs when to use it ('Start here') and establishes the dependency for all siblings ('Returns an investigation_id to pass to every other tool'). It also names the condition under which the tool refuses work (private, reserved and cloud-metadata IPs), so an agent knows the boundary case.

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