Skip to main content
Glama
kush-coder

io.github.OpenOSINT/openosint

by kush-coder

search_shodan

Query Shodan for host intelligence or service-banner search by IP or keyword to reveal open ports, organization details, and CVEs.

Instructions

Query Shodan for host intelligence or banner search. IP address → host lookup (open ports, org, CVEs). Any other string → keyword/service search. Uses SHODAN_API_KEY env var. [passive] Shodan API; reads Shodan's existing index, requests no new scan.

Input Schema

NameRequiredDescriptionDefault
queryYes
json_outputNoReturn result as structured JSON.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.36.1

TDQS

A3.9/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 does unusually well: it discloses the required SHODAN_API_KEY env var and, importantly, that it is [passive] — reading Shodan's existing index and requesting no new scan, which matters for operational security. It stops short of covering rate limits, quota consumption, or what happens on an invalid/empty query, so it is strong but not complete.

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?

Four compact fragments, front-loaded with the core purpose and then the routing rule, credential requirement, and passivity note. Every clause adds information; there is no filler or restatement of the tool name.

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 two-parameter, annotation-free, output-schema-free tool, the description supplies the essentials an agent needs: what it queries, how the input maps to behavior, the auth requirement, and the non-intrusive nature. The main remaining gap is the shape of the returned data (host fields vs. banner results), which is only sketched rather than described.

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 only 50%, but the description compensates well for the undocumented 'query' parameter by explaining its two input-dependent semantics (IP → host lookup, other string → keyword/service search), which is meaning the schema does not provide. json_output is already documented in the schema, so no extra credit is needed there.

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 verb (Query) and resource (Shodan) and immediately explains two distinct modes: IP address triggers a host lookup, any other string triggers keyword/service search. It is clear what the tool does, though it never explicitly contrasts itself with the closely related sibling search_censys, so sibling differentiation is left implicit in the product name.

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 gives useful routing guidance (use an IP for host lookup, use anything else for banner/keyword search), so the agent knows how to shape the query. However, it offers no guidance on when to pick this tool over overlapping siblings such as search_censys, search_dns, or search_ip2location, and no exclusions or prerequisites are stated.

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