Skip to main content
Glama
MRFrazer25

vulnerability-exposure-mcp

Shodan host lookup

shodan_search
Read-onlyIdempotent

Look up open ports, services, product versions, and hosting details for a public IP or domain to assess exposure. Falls back to free InternetDB data when no API key is set.

Instructions

Shodan host lookup: open ports, services, product versions, hosting org/ASN. Accepts a public IP or a domain (its primary IP is used). Quota-limited: call once per distinct IP. Without SHODAN_API_KEY it falls back to Shodan's free InternetDB: open ports, software, OS and CVEs, but no banners or organisation.

Input Schema

NameRequiredDescriptionDefault
targetYes
investigation_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly/idempotent/openWorld are already given) by disclosing the quota constraint and, critically, the degraded fallback path when SHODAN_API_KEY is absent — the same call then returns only ports, software, OS and CVEs with no banners or organisation. That is exactly the kind of mode-dependent behavior an agent cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, zero filler, front-loaded with capability before the quota and fallback caveats. Every clause carries operational 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?

There is no output schema, and the description compensates by enumerating the returned fields and how the field set shrinks in fallback mode. The only real gap is the unexplained `investigation_id` parameter, which leaves a required piece of the calling contract ambiguous.

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 0%, so the description carries the burden. It does explain the required `target` (public IP or domain, resolved to primary IP) well, but `investigation_id` is never mentioned — the agent gets no idea what it links to or when to supply it.

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?

Specific verb+resource ('Shodan host lookup') immediately followed by the exact payload: open ports, services, product versions, hosting org/ASN. This clearly separates it from record-lookup siblings like virustotal_check, abuseipdb_check and ip_owner.

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?

States accepted input ('a public IP or a domain — its primary IP is used'), which implicitly excludes private IPs, and gives a hard usage rule: 'call once per distinct IP' due to quota. It does not name an alternative sibling for cases where the org/reputation angle is the real goal (e.g. ip_owner or virustotal_check), so it stops short of explicit routing.

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