Skip to main content
Glama

Shodan MCP Server -- AI-Powered Internet Intelligence for Claude, Cursor & VS Code

shodan-mcp is a Model Context Protocol (MCP) server that gives AI agents like Claude, Cursor, and GitHub Copilot direct access to Shodan -- the world's search engine for internet-connected devices. Built by Vorota AI.

20 tools for passive reconnaissance, vulnerability intelligence, DNS analysis, and device search -- all from your IDE. No packets sent to any target.

License Python versions MCP Protocol Status Docker


Quick Start

docker build -t shodan-mcp https://github.com/vorotaai/shodan-mcp.git

Add to your MCP client (Claude Desktop, Cursor, VS Code, etc.):

{
  "mcpServers": {
    "shodan-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "SHODAN_API_KEY", "shodan-mcp"],
      "env": {
        "SHODAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

4 tools work immediately with no API key -- CVE lookup, CVE search, CPE search, and InternetDB. Get a Shodan API key at account.shodan.io to unlock all 20 tools.


Related MCP server: Shodan MCP Server

Available Tools

Free Tools (No API Key Required)

Tool

Description

shodan-cve-lookup

Look up any CVE -- CVSS v3 scores, EPSS exploit prediction, references, affected CPEs

shodan-search-cves

Search CVEs with filters -- CISA KEV catalog, EPSS sorting, date ranges

shodan-search-cpes

Search CPE identifiers by product name (e.g., "apache", "nginx")

shodan-internetdb-lookup

Fast free IP intelligence -- open ports, vulns, hostnames, CPEs, tags

Reconnaissance Tools (API Key Required)

Tool

Description

shodan-ip-lookup

Full IP reconnaissance -- ports, services, banners, geolocation, vulns, ISP/org, ASN

shodan-search

Search Shodan's database of billions of devices with powerful query syntax

shodan-search-count

Count search results without consuming query credits

shodan-dns-resolve

Resolve hostnames to IP addresses

shodan-dns-reverse

Reverse DNS lookup for IP addresses

shodan-domain-info

Domain reconnaissance -- subdomains, DNS records, tags

shodan-honeypot-score

Detect if an IP is a honeypot (0.0 = real, 1.0 = honeypot)

Utility Tools (API Key Required)

Tool

Description

shodan-api-info

Check API key usage -- plan type, remaining credits

shodan-my-ip

Get your external IP address as seen by Shodan

shodan-account-profile

Account membership, credits, display name

shodan-list-facets

List available search facets for query breakdowns

shodan-list-filters

List available search filters

shodan-parse-query

Analyze and debug search queries

shodan-list-ports

List port numbers Shodan crawlers scan

shodan-list-protocols

List protocols for on-demand scanning

shodan-http-headers

Show HTTP headers your client sends


Features

  • 20 tools covering IP recon, device search, CVE/CPE intelligence, DNS, domain analysis, and honeypot detection

  • 4 free tools that work with zero configuration -- no API key, no signup

  • Passive reconnaissance -- all queries hit Shodan's pre-indexed database, no packets touch any target

  • Structured Pydantic output -- every tool returns typed models, not raw JSON

  • Input validation -- IP addresses, domains, CVE IDs, and queries are validated before any API call

  • API key protection -- keys are never exposed in error messages or logs

  • Docker-first -- single command to build and run

  • Works with all MCP clients -- Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Cline


Example Prompts

Once connected, use natural language in your AI client:

  • "What's my external IP address?"

  • "What are the details of CVE-2021-44228?"

  • "Search for CVEs related to Apache HTTP Server sorted by EPSS score"

  • "Look up CPE identifiers for nginx"

  • "Do a quick InternetDB lookup on my server's IP"

  • "What DNS records exist for my company's domain?"

  • "Resolve the hostname myapp.example.com to an IP address"

  • "What search filters are available in Shodan?"

  • "Check my Shodan API plan and remaining query credits"


Installation

docker build -t shodan-mcp https://github.com/vorotaai/shodan-mcp.git

Using uv

git clone https://github.com/vorotaai/shodan-mcp.git
cd shodan-mcp
uv sync --all-groups
shodan-mcp

Using pip

git clone https://github.com/vorotaai/shodan-mcp.git
cd shodan-mcp
pip install .
shodan-mcp

Usage with MCP Clients

shodan-mcp works with all major MCP clients: Claude Desktop, Claude Code, Cursor, VS Code Copilot, Windsurf, and Cline.

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "shodan-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "SHODAN_API_KEY", "shodan-mcp"],
      "env": {
        "SHODAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Code

claude mcp add shodan-mcp -e SHODAN_API_KEY=your-api-key-here -- docker run --rm -i -e SHODAN_API_KEY shodan-mcp

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "shodan-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "SHODAN_API_KEY", "shodan-mcp"],
      "env": {
        "SHODAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

VS Code / VS Code Insiders

Add to .vscode/mcp.json:

{
  "servers": {
    "shodan-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "SHODAN_API_KEY", "shodan-mcp"],
      "env": {
        "SHODAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

Windsurf / Cline

Use the same configuration as Claude Desktop. Refer to your client's documentation for the config file location.


  1. Free quick scan -- Use shodan-internetdb-lookup for instant IP intelligence (no key needed)

  2. Vulnerability research -- Use shodan-cve-lookup and shodan-search-cves to research CVEs (free)

  3. Deep reconnaissance -- Use shodan-ip-lookup for full host details (API key)

  4. Discover exposed hosts -- Use shodan-search and shodan-search-count to find and quantify targets

  5. DNS intelligence -- Use shodan-dns-resolve, shodan-dns-reverse, and shodan-domain-info

  6. Filter honeypots -- Use shodan-honeypot-score to identify deceptive hosts


Configuration

Variable

Default

Description

SHODAN_API_KEY

(none)

Shodan API key. Required for 16 tools, not needed for 4 free tools. Get one at account.shodan.io.

FASTMCP_LOG_LEVEL

WARNING

Logging level (DEBUG, INFO, WARNING, ERROR)


Security

Authorization is required. While Shodan queries are passive, you must still ensure:

  • You have explicit authorization to investigate any target

  • You comply with all applicable laws and organizational policies

  • You use this tool only for legitimate security research, authorized assessments, or defensive operations

Safety Measures

  • Input validation -- IPs, domains, CVE IDs, hostnames, and queries are validated before any API call

  • Injection prevention -- Forbidden characters (;, |, &, $, `, etc.) are blocked

  • No shell execution -- All HTTP requests use httpx with structured parameters

  • API key protection -- Keys are passed via environment variables and stripped from error messages

  • Passive by design -- No packets are sent to any target


FAQ

Do I need a Shodan API key?

Not to get started. 4 tools work immediately with no key: shodan-cve-lookup, shodan-search-cves, shodan-search-cpes, and shodan-internetdb-lookup. A free Shodan API key unlocks the remaining 16 tools -- get one at account.shodan.io.

What MCP clients are supported?

Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline -- any client supporting MCP stdio transport.

Is it safe?

Yes. All queries are passive (no packets to targets), inputs are validated, and API keys are never exposed in error messages.

How is this different from the Shodan website?

shodan-mcp integrates Shodan directly into your AI workflow. Your AI agent queries Shodan, interprets results, correlates findings, and makes recommendations -- all in a single conversation from your IDE.


Contributing

git clone https://github.com/vorotaai/shodan-mcp.git
cd shodan-mcp
uv sync --all-groups
uv run pytest

Please open an issue or pull request on GitHub.


License

Apache License 2.0 -- Copyright (c) Vorota AI

Available Tools

20 tools
shodan-account-profileB

Get your Shodan account profile information.

Returns account membership status, credits, display name, and creation date. Requires a Shodan API key.

Returns: AccountProfileResult with account profile details.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
memberNoWhether the account is a member
createdNoAccount creation date
creditsNoRemaining query credits
display_nameNoAccount display name

TDQS

B3.2/5.0
Behavior3/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 authentication requirement and lists the returned fields, but does not mention potential failure modes, rate limits, or other behavioral aspects. It is adequate for a simple read-only profile endpoint 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.

Conciseness4/5

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

The description is short and front-loaded with the primary purpose. It includes a brief list of return fields and a note about the API key. The final 'Returns' line is slightly redundant with the previous sentence, but overall it is concise and well-structured.

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 low complexity, an output schema that likely covers return values, and full parameter documentation in the schema, the description provides sufficient context: purpose, key fields, and authentication requirement. It is complete enough for an agent to use it 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 only parameter 'timeout' is fully described in the schema. The description does not add any extra meaning to the parameter, so baseline 3 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?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('your Shodan account profile information'). It is distinct from most siblings, but does not explicitly differentiate from the similar 'shodan-api-info' tool, which might also relate to account or API details.

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 a prerequisite (API key) but does not explain when to use this tool versus alternatives. There is no explicit when-to-use or when-not-to-use guidance, and the presence of 'shodan-api-info' as a sibling creates potential ambiguity that is not addressed.

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

shodan-api-infoA

Check your Shodan API key usage — plan type, remaining credits, and limits.

Useful for monitoring API usage and checking remaining query/scan credits. Requires a Shodan API key.

Returns: ApiInfoResult with plan info and remaining credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
planNoAPI plan name (e.g., dev, oss, basic)
httpsNoWhether HTTPS access is enabled
telnetNoWhether telnet access is enabled
unlockedNoWhether the API key has been unlocked for paid features
scan_creditsNoRemaining scan credits for the current month
monitored_ipsNoNumber of IPs currently being monitored
query_creditsNoRemaining query credits for the current month

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the requirement for a Shodan API key and indicates a return type, which is important context. As a simple read-only info check, this is adequate 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 and front-loaded with the core purpose. It uses a clean structure with a Returns section, and every sentence contributes value without waste.

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?

The tool is simple with one optional parameter and an output schema. The description covers purpose, usage context, and expected result, making it complete for an agent to select and invoke the tool 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?

The only parameter (timeout) is fully described in the schema with default, range, and type. The description adds no additional parameter semantics. With 100% schema coverage, 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 checks Shodan API key usage, including plan type, remaining credits, and limits. This specific verb+resource combination distinguishes it from sibling tools that handle IP lookups or searches.

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 clear context by stating it is useful for monitoring API usage and checking remaining query/scan credits. It does not explicitly mention alternatives or when not to use, but the distinct purpose makes the usage scenario clear.

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

shodan-cve-lookupA

Look up CVE details from Shodan's vulnerability database.

Returns CVSS scores, EPSS exploit prediction scores, references, and affected CPE identifiers. This endpoint is FREE and does NOT require a paid Shodan API key.

Returns: CveResult with detailed vulnerability information.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE identifier to look up. Example: "CVE-2021-44228".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cpesNoAffected CPE identifiers
epssNoEPSS exploit prediction score
cve_idYesCVE identifier (e.g., CVE-2021-44228)
cvss_v3NoCVSS v3 scoring details
summaryNoCVE description/summary
publishedNoDate the CVE was published
referencesNoReference links for the CVE
last_modifiedNoDate the CVE was last modified

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the endpoint is free and does not require a paid API key, which is relevant behavioral info. It also lists the types of data returned. However, it does not mention rate limits, error handling, or any side effects, though for a read-only lookup this is less critical.

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 concise, approximately three sentences, and front-loads the purpose. The 'Returns: CveResult...' line is somewhat redundant given the output schema and the earlier mention of return fields, but the overall structure is efficient and readable.

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 an output schema and well-documented parameters, the description is adequately complete. It states the function, output contents, and cost/auth status. Missing details like rate limits are not critical for this tool, but their absence prevents 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 coverage is 100%, so the baseline is 3. The description does not explain parameters beyond the schema, but the schema already documents cve_id with an example and timeout with default and max. The description adds value by stating what the returned data contains, but not 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 description clearly states the tool's verb and resource: 'Look up CVE details from Shodan's vulnerability database.' It distinguishes itself from siblings like shodan-search-cves (which searches CVEs) by focusing on lookup of a specific CVE ID. The return fields (CVSS, EPSS, references, CPEs) further specify the purpose.

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 have a specific CVE identifier to look up, especially since the schema requires 'cve_id'. However, it does not explicitly mention when to avoid this tool or name alternatives from the sibling list. The note that it's free and does not require an API key is a useful context but not a direct usage guideline.

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

shodan-dns-resolveA

Resolve hostnames to IP addresses using Shodan's DNS service.

Useful for mapping domain names to IPs before performing IP lookups. Requires a Shodan API key.

Returns: DnsResolveResult with hostname-to-IP mappings.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.
hostnamesYesComma-separated hostnames to resolve. Example: "google.com,bing.com,github.com". Maximum 100 hostnames.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entriesNoHostname-to-IP resolution entries

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 adds the prerequisite of a Shodan API key and states the return type (DnsResolveResult). However, it does not disclose whether the operation is read-only, any rate limits, error behavior, or whether it consumes API quota. For a simple DNS lookup, some of this may be implicit, but the description lacks thorough behavioral context.

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, with four short sentences that front-load the purpose. Every sentence earns its place: purpose, use case, prerequisite, and return type. No redundancy or 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?

Given the tool's simplicity, the presence of an output schema, and full parameter descriptions, the description is largely complete. It adds the API key requirement and a workflow suggestion. It lacks edge-case behaviors like error handling or rate limits, but these are not critical for a basic DNS resolution 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?

The input schema has 100% coverage with descriptions for both 'hostnames' and 'timeout'. The tool description does not add any parameter-specific details beyond what the schema already provides, so it meets the baseline for high schema coverage. No additional meaning is supplied.

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 opens with a clear, specific verb and resource: 'Resolve hostnames to IP addresses using Shodan's DNS service.' This immediately distinguishes the tool from the sibling shodan-dns-reverse (which resolves IPs to hostnames) and other lookups. The additional context about mapping domain names before IP lookups reinforces its 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 provides a clear usage context: 'Useful for mapping domain names to IPs before performing IP lookups.' This tells the agent when to use it, but it does not explicitly mention when not to use it or name alternative tools. No exclusions, but the context is clear enough.

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

shodan-dns-reverseA

Reverse DNS lookup — find hostnames for IP addresses.

Useful for identifying what domains are hosted on specific IPs. Requires a Shodan API key.

Returns: DnsReverseResult with IP-to-hostnames mappings.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipsYesComma-separated IP addresses for reverse DNS lookup. Example: "8.8.8.8,1.1.1.1". Maximum 100 IPs.
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entriesNoIP-to-hostnames reverse DNS entries

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 the full burden of behavioral disclosure. It does mention the API key requirement and the return type, which are useful. However, it does not explicitly state that this is a read-only operation, nor does it mention rate limits, error conditions, or side effects. The safety profile is implied 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?

The description is compact and front-loaded: the first sentence states the core purpose, followed by a single use-case sentence, a prerequisite, and a returns line. No filler or redundant content; every line 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 simple tool and full schema coverage, the description is almost complete. It covers purpose, use case, API key requirement, and return type. The output schema already documents the result structure, so the 'Returns' line is a helpful confirmation rather than a necessity. Missing details like rate limits or error handling are minor for a DNS 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%, so the baseline is 3. The description adds no extra parameter-level context beyond the schema. The schema already explains the 'ips' format (comma-separated, maximum 100) and the 'timeout' default/maximum. The description's mention of 'IP-to-hostnames mappings' is a high-level outcome rather than parameter semantics.

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 opens with 'Reverse DNS lookup — find hostnames for IP addresses', a specific verb+resource statement that clearly defines the tool's function. It also distinguishes itself from the sibling 'shodan-dns-resolve' (likely forward DNS) by explicitly saying 'reverse' and explaining the IP-to-hostname direction.

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 a clear use case: 'Useful for identifying what domains are hosted on specific IPs.' This tells the agent when to apply the tool, though it does not explicitly name alternative tools or state when not to use it. The reverse DNS framing implicitly contrasts with forward DNS siblings.

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

shodan-domain-infoA

Get DNS information about a domain — subdomains, DNS records, and tags.

Powerful for domain reconnaissance and subdomain discovery. Requires a Shodan API key.

Returns: DomainResult with subdomains, DNS records, and domain tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to look up. Example: "example.com".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tagsNoTags associated with this domain (e.g., ipv6, dmarc)
domainYesThe domain that was queried
recordsNoDNS records for the domain
subdomainsNoDiscovered subdomain names

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description discloses the API key requirement and the return object, adding context beyond the schema. It does not cover rate limits or explicitly confirm read-only behavior, but for a simple DNS lookup the disclosure is reasonable.

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 tight and well-structured: a lead sentence, a value proposition, auth note, and a return summary. Every sentence earns its place with no fluff.

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 two-parameter domain lookup, the description covers purpose, use case, authentication, and return type. The output schema further covers return structure, making the description 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?

Schema description coverage is 100%, with both 'domain' and 'timeout' well-documented in the schema. The tool description adds no extra parameter semantics, so the baseline of 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?

Description clearly states the tool gets DNS information about a domain including subdomains, DNS records, and tags. It explicitly mentions domain reconnaissance and subdomain discovery, which distinguishes it from sibling DNS resolve/reverse and IP lookup tools.

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?

Provides a clear use case ('domain reconnaissance and subdomain discovery') but does not explicitly mention when not to use it or compare it to alternative tools. This is a clear context but lacks exclusions.

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

shodan-honeypot-scoreA

Check if an IP address is likely a honeypot.

Returns a probability score from 0.0 (not a honeypot) to 1.0 (definitely a honeypot). Useful for filtering scan results and identifying deceptive hosts. Requires a Shodan API key.

Returns: HoneypotResult with IP address and honeypot probability score.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to check. Example: "8.8.8.8".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipYesThe IP address that was scored
scoreYesHoneypot probability score (0.0 = not a honeypot, 1.0 = honeypot)

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 a prerequisite ('Requires a Shodan API key'), explains the output scale (0.0 to 1.0), and mentions the return type ('HoneypotResult'). This adds useful context beyond the tool name and schema, though it doesn't cover error cases or rate limits.

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

Conciseness3/5

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

The description is moderately concise but contains redundancy: the second sentence ('Returns a probability score...') and the final 'Returns:' section repeat the same information. The structure is logical but could be trimmed to a single return-statement without losing meaning.

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?

The description covers the tool's purpose, the meaning of the score range, a practical use case, the API key prerequisite, and the return type. For a simple single-IP lookup tool with a well-covered schema and output schema, this is complete enough. It lacks only minor details like error handling behavior.

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 has 100% coverage: ip is described as 'IP address to check' and timeout as 'HTTP request timeout in seconds.' The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline score of 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 opens with a specific verb and resource: 'Check if an IP address is likely a honeypot.' It clearly differentiates from all sibling tools by focusing on honeypot detection, which no other Shodan tool in the list covers. The scope (single IP) is explicit.

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 states a clear use case: 'Useful for filtering scan results and identifying deceptive hosts.' This provides contextual when-to-use guidance without explicit exclusions. It doesn't name alternative tools, but the uniqueness of the honeypot feature makes the intended usage obvious.

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

shodan-http-headersA

Show the HTTP headers your client sends when connecting to a web server.

Useful for debugging and seeing what information your client exposes. Requires a Shodan API key.

Returns: HttpHeadersResult with HTTP header name-value pairs.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
headersNoHTTP header name-value pairs sent by your client

TDQS

A4.3/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 read-only nature ('Show'), the auth requirement, and the return type (HttpHeadersResult). It does not mention rate limits or failure modes, but for a simple introspection endpoint 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?

The description is brief and front-loaded, with each sentence contributing useful information. The 'Returns:' block is clear and avoids redundancy.

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 low complexity (one optional parameter, simple output) and the presence of an output schema, the description covers the essential context: purpose, auth, use case, and return format. No significant gaps remain.

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 (timeout) has a complete schema description covering semantics, so the description adds no additional value. Baseline 3 is appropriate since schema coverage is 100%.

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 shows HTTP headers sent by the client, using a specific verb ('Show') and resource. The first sentence unambiguously distinguishes this from sibling tools like IP lookup or 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 gives clear context ('Useful for debugging') and a key prerequisite ('Requires a Shodan API key'). It does not explicitly mention alternatives, but the tool's niche is self-evident given the sibling list, so this is a minor gap.

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

shodan-internetdb-lookupA

Quick, free IP intelligence from Shodan's InternetDB.

Returns open ports, known vulnerabilities, hostnames, CPEs, and tags. This is FREE — no API key required. Faster but less detailed than shodan-ip-lookup.

Returns: InternetDbResult with quick IP intelligence data.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to look up (IPv4). Example: "8.8.8.8".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipYesThe IP address that was queried
cpesNoCPE identifiers for detected software
tagsNoTags (e.g., cloud, vpn, honeypot)
portsNoOpen ports
vulnsNoKnown CVE identifiers
hostnamesNoAssociated hostnames

TDQS

A4.4/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 of behavioral disclosure. It clearly describes what the tool returns, that it's free, and that it's faster but less detailed than the alternative. While it does not discuss error handling, rate limits, or explicit read-only nature, it provides substantial transparency for a simple lookup operation.

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 concise and front-loaded, with the key purpose in the first sentence. However, the final 'Returns: InternetDbResult with quick IP intelligence data' is somewhat redundant with the earlier 'Returns open ports...' sentence. It is still efficient overall, but could be tightened by removing repetition.

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 two-parameter lookup tool with an output schema, the description is complete. It covers purpose, return data, cost (free), speed tradeoff, alternative tool, and output type. The output schema handles return structure, so no additional explanation is needed. The description is fully adequate for an agent to select and invoke the 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 description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific details beyond the schema; it only mentions the output data. The schema already fully documents 'ip' and 'timeout', so the description adds no additional semantic value for 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 tool performs a quick IP intelligence lookup returning open ports, vulnerabilities, hostnames, CPEs, and tags. It also distinguishes itself from the sibling 'shodan-ip-lookup' by noting it's faster but less detailed. The verb 'Returns' and resource 'Shodan's InternetDB' make the purpose explicit.

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?

The description explicitly names an alternative tool ('shodan-ip-lookup') and provides a comparison ('Faster but less detailed'), giving clear guidance on when to use this tool versus the alternative. It also states it's free and requires no API key, which helps the agent decide based on constraints.

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

shodan-ip-lookupA

Look up detailed information about an IP address using Shodan.

Returns open ports, services, banners, SSL certificates, geolocation, hostnames, vulnerabilities, and last seen date. This is PASSIVE reconnaissance — no packets are sent to the target.

IMPORTANT: Only query targets you are authorized to assess.

Returns: ShodanHostResult with detailed host information from Shodan's database.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesIP address to look up (IPv4 or IPv6). Example: "8.8.8.8" or "2001:4860:4860::8888".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
osNoDetected operating system
asnNoAutonomous system number (e.g., AS15169)
ispNoInternet service provider
orgNoOrganization that owns the IP
portsNoList of open ports
vulnsNoKnown vulnerability identifiers (CVE IDs)
ip_strYesIP address of the host
locationNoGeolocation information
servicesNoServices detected on open ports
hostnamesNoHostnames associated with the IP
last_updateNoTimestamp of when the host was last seen by Shodan

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description discloses key behavioral traits: passive (no packets sent), returns a structured host result, and includes an authorization warning. However, it doesn't address potential API key requirements or rate limits, a minor gap.

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 sentences front-loaded with purpose, followed by a compact list of returned data and a behavioral note. No redundant phrases except slight repetition of 'Shodan.' 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 2-param tool with output schema and full schema param descriptions, this description is sufficiently complete. It covers what data is returned, passive behavior, and authorization. Missing rate-limit/API-key nuances but not critical.

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 covers both params (target and timeout) with 100% coverage. Description doesn't add detail beyond the schema, but none is needed given the schema's clarity. Baseline 3.

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 tool looks up IP info via Shodan, listing specific data types (ports, services, banners, etc.). However, it doesn't explicitly differentiate from sibling tools like shodan-internetdb-lookup, so it misses a chance to guide selection.

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?

Provides context that this is passive reconnaissance and only for authorized targets, which implies when to use (assessment). But doesn't name alternatives or exclusions, so it's clear context without explicit alternatives.

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

shodan-list-facetsA

List available search facets for Shodan queries.

Facets let you break down search results by property (e.g., country, org, port). Use these with shodan-search-count for result distribution analysis. Requires a Shodan API key.

Returns: SearchFacetsResult with list of available facet names.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
facetsNoAvailable search facet names

TDQS

A4.1/5.0
Behavior3/5

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

The description discloses the API key requirement and the return type (SearchFacetsResult), but doesn't elaborate on error handling, rate limits, or side effects—though none are apparent for a read-only list operation. With no annotations, there is some burden to explain behavior, but the simplicity of the operation keeps the score at a moderate level.

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 and well-structured: a clear one-line purpose, usage context, a requirement, and a return type. Every sentence earns its place with no fluff or redundancy.

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 tool with one optional parameter, an output schema, and low complexity, the description provides sufficient context: it names the tool's purpose, how it fits with sibling tools, the API key prerequisite, and the return type. It is complete for the tool's 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 input schema has 100% description coverage for the single optional parameter (timeout), including its default and range. The tool description adds no extra parameter semantics, so the baseline of 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: 'List available search facets for Shodan queries.' It uses a specific verb and resource, and distinguishes itself from sibling tools like shodan-list-filters and shodan-list-ports by focusing on facets with concrete examples (country, org, port).

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 explicitly suggests using facets with shodan-search-count for result distribution analysis, providing a clear context for use. It also notes the API key requirement, which is a useful prerequisite. It doesn't mention alternatives or exclusions, but the guidance is sufficient for a simple list tool.

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

shodan-list-filtersA

List available search filters for Shodan queries.

Filters let you narrow search results (e.g., port:, country:, org:, product:). Use these to discover all available filter options for shodan-search. Requires a Shodan API key.

Returns: SearchFiltersResult with list of available filter names.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
filtersNoAvailable search filter names

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full transparency burden. It discloses the API key requirement and indicates the return type (SearchFiltersResult). However, it offers no detail about error behavior, rate limits, or data freshness. For a simple read-only list operation, this 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?

The description is compact and well-organized: a clear one-line purpose, a brief explanatory sentence with examples, a usage hint, a prerequisite note, and a structured 'Returns:' section. Every sentence earns its place with no redundancy.

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 tool with one optional parameter and an output schema, the description is complete. It states what the tool returns, the prerequisite (API key), and the purpose. The presence of an output schema means the description doesn't need to detail return fields, and it doesn't over-explain.

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 'timeout' parameter, so the description does not need to repeat it. The description provides no additional semantic meaning beyond the schema, but the baseline of 3 is appropriate given 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 tool's purpose: 'List available search filters for Shodan queries.' It provides concrete examples (port:, country:, org:, product:) and explicitly ties it to shodan-search, distinguishing it from sibling tools that list facets, ports, or protocols.

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 says 'Use these to discover all available filter options for shodan-search,' which gives clear context for when to use this tool. It also notes the API key requirement as a prerequisite. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

shodan-list-portsA

List port numbers that Shodan crawlers are actively scanning.

Returns the list of ports that the Shodan crawlers are looking for on the Internet. Useful for understanding Shodan's scanning coverage. Requires a Shodan API key.

Returns: PortsResult with list of scanned port numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
portsNoPort numbers Shodan crawls

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It mentions the API key requirement and the return type ('PortsResult with list of scanned port numbers'), but it does not disclose potential errors, rate limits, or any other behavioral traits. This is adequate for a simple read-only list operation but lacks rich context.

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 appropriately short and front-loaded with the primary action. However, it contains slight redundancy—'List port numbers that Shodan crawlers are actively scanning' and 'Returns the list of ports that the Shodan crawlers are looking for on the Internet' convey similar information. Still, it is overall efficient and well-structured.

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 optional parameter) and the presence of an output schema, the description is relatively complete. It covers the purpose, the API key requirement, and the return type. It does not explain error handling or further details, but for a straightforward list operation, it provides sufficient context.

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 only parameter, 'timeout', is fully described in the input schema (100% coverage per context signals). The description adds no additional meaning to the parameter, so it falls at the baseline of 3 for high 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 tool's function: 'List port numbers that Shodan crawlers are actively scanning.' The verb 'List' plus the specific resource 'port numbers' and the scope 'actively scanning' make the purpose unambiguous. It also distinguishes itself from sibling tools that list other entities like facets, filters, or protocols.

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 a clear context for use: 'Useful for understanding Shodan's scanning coverage.' It also notes a prerequisite ('Requires a Shodan API key'). However, it does not explicitly compare against alternative tools or state when not to use it, so it falls short of the highest bar.

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

shodan-list-protocolsA

List protocols available for on-demand Shodan scanning.

Returns the protocols that can be used when launching an on-demand scan. Requires a Shodan API key.

Returns: ProtocolsResult with protocol names and descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
protocolsNoMapping of protocol names to their descriptions

TDQS

A4.3/5.0
Behavior4/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 discloses that an API key is required and describes the return value ('ProtocolsResult with protocol names and descriptions'). This is important behavioral context beyond the schema, though it does not discuss potential errors or rate limits.

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 and front-loaded: the first sentence states the core purpose, a second sentence elaborates on the return value, and a third notes the API key requirement. Every sentence earns its place, with no 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?

This is a simple list tool with a rich output schema and a fully documented input schema. The description adds the key prerequisite (API key) and specifies the return type, making it complete enough for an agent to select and invoke correctly without additional context.

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 `timeout` parameter, including its default and constraints. The description adds no extra parameter context, so the baseline score of 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 starts with a specific verb+resource: 'List protocols available for on-demand Shodan scanning.' It clearly identifies what the tool does and distinguishes it from sibling list tools like shodan-list-ports and shodan-list-facets by focusing on protocols for on-demand scanning.

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 clear context for use ('protocols that can be used when launching an on-demand scan') and states a prerequisite ('Requires a Shodan API key'). It does not explicitly mention alternatives or when not to use, but the context is unambiguous for a listing tool.

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

shodan-my-ipA

Get your current external IP address as seen by Shodan.

Useful for checking what IP address your requests are coming from. Requires a Shodan API key.

Returns: Your external IP address as a string.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the authentication requirement (Shodan API key) and the return format (string). It does not discuss potential errors or side effects, but for a simple read-only IP retrieval, this is adequate and adds value beyond the tool's name.

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 and well-structured: a one-line purpose, a one-line use case, a one-line requirement, and a clear return type. Every sentence serves a purpose and there is no redundancy or 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?

Given the tool's simplicity (one optional parameter, no required fields, and an output schema), the description covers all essential aspects: what it does, when to use it, what it requires, and what it returns. It is complete for an agent to select and invoke the tool 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% as the timeout parameter is fully described in the input schema. The description adds no additional parameter information, so it does not exceed the baseline for well-documented schemas.

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 the tool's function with a specific verb ('Get') and resource ('your current external IP address as seen by Shodan'). While it doesn't explicitly contrast with sibling tools, the name and description make it distinct from IP lookup or search tools, so it is clear but lacks explicit sibling differentiation.

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 a concrete use case ('checking what IP address your requests are coming from') and notes the requirement for an API key. It doesn't offer explicit alternatives or exclusions, but the context is sufficiently clear for when to use this tool.

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

shodan-parse-queryA

Parse and analyze a Shodan search query into its components.

Breaks down a query into attributes, filters, errors, and the remaining search string. Useful for debugging complex queries and understanding how Shodan interprets them. Requires a Shodan API key.

Returns: QueryTokensResult with parsed query components.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesShodan search query to analyze. Example: "apache port:8080 country:US".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsNoErrors found in the query
stringNoThe remaining unprocessed query string
filtersNoFilters used in the query
attributesNoParsed query attributes and their values

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 of behavioral disclosure. It discloses the API key requirement and mentions the return type (QueryTokensResult), but does not discuss rate limits, error behavior, or the fact that the operation is non-mutating. This is moderate disclosure 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 compact and front-loaded with the primary purpose. The 'Returns' line is clearly separated for readability. Every sentence adds value, with no redundant or wasted text.

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 an output schema present and only two simple parameters, the description adequately covers the tool's function and return type. It provides enough context for an agent to select and invoke it correctly, though it could be more explicit about how it differs from sibling search tools.

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 provides 100% coverage for both parameters: query has a description and example, timeout has a description and default. The description adds no additional parameter semantics beyond what the schema already documents, so the baseline score of 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 with a specific verb and resource: 'Parse and analyze a Shodan search query into its components.' It further enumerates component types (attributes, filters, errors, search string), making the purpose explicit and distinct from siblings like shodan-search or shodan-search-count.

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 states it is 'useful for debugging complex queries and understanding how Shodan interprets them,' providing clear context on when to use it. It does not explicitly mention alternatives or exclude other tools, but the context implies it is not for executing searches, and the API key requirement is noted.

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

shodan-search-countA

Count how many hosts match a Shodan query WITHOUT consuming query credits.

Use this to check result volume before running a full search. Requires a Shodan API key but does NOT consume query credits.

Returns: SearchCountResult with total count.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesShodan search query. Same syntax as shodan-search. Examples: "apache port:8080", "vuln:CVE-2021-44228 country:US".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYesThe search query that was executed
totalYesTotal number of matching results
facetsNoFacet breakdown if facets were requested

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the key behavioral trait (does NOT consume query credits), the requirement for an API key, and the return type. It does not mention rate limits or error conditions, but the most critical behavioral differentiator is clearly stated.

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 short and front-loaded, with a clear structure: purpose, usage, requirement, and return value. However, 'does NOT consume query credits' is repeated twice, adding minor redundancy without contributing new information.

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 low tool complexity, an output schema, and full parameter documentation, the description covers all essential context: what the tool does, when to use it, the API key requirement, the credit behavior, and the return type. It is complete enough for an agent to invoke it 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%, with both 'query' and 'timeout' well-described including syntax examples and defaults. The description adds no parameter-specific meaning beyond what the schema already provides, so the 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 opens with a specific verb and resource: 'Count how many hosts match a Shodan query'. It clearly distinguishes itself from sibling tools like shodan-search by highlighting that it does NOT consume query credits, making the tool's purpose unmistakable.

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 states when to use it: 'Use this to check result volume before running a full search.' This provides a direct use case and contrasts with the full-search alternative, giving the agent clear decision guidance. The schema further reinforces that the query syntax matches shodan-search.

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

shodan-search-cpesA

Search CPE (Common Platform Enumeration) identifiers by product name.

Useful for finding exact CPE strings to use in vulnerability lookups. This is FREE — no API key required.

Returns: CpeSearchResult with matching CPE identifiers and total count.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip (for pagination).
limitNoMaximum number of results.
productYesProduct name to search for. Examples: "apache", "nginx", "openssh".
timeoutNoHTTP request timeout in seconds. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cpesNoMatching CPE identifiers
totalNoTotal number of matching CPEs

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description discloses that the tool is free and requires no API key, which is a behavioral trait. It also indicates the return type (CpeSearchResult). However, it doesn't mention rate limits, data freshness, or any caveats about matching behavior. The non-destructive nature is implied by 'Search' but not explicitly stated. This 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?

The description is brief, front-loaded with the primary purpose, and every sentence earns its place: purpose, use case, free/no-key note, and return type. There's no redundancy or filler.

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?

The tool is relatively simple with 4 parameters, all covered by the schema, and an output schema explaining the return structure. The description adds context (free, use case) and is complete enough for an agent to decide to invoke. It doesn't need to explain return values because the output schema exists.

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 schema already documents all parameters with descriptions and examples. The description's phrase 'by product name' aligns with the 'product' parameter but adds no new semantic detail beyond the schema. According to the rubric, high schema coverage warrants a baseline of 3, and the description doesn't exceed that 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?

The description clearly states the tool's function: 'Search CPE (Common Platform Enumeration) identifiers by product name.' It specifies the resource (CPE identifiers) and the filter (product name), and distinguishes itself from sibling tools by noting it's for finding exact CPE strings for vulnerability 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 gives clear usage context: 'Useful for finding exact CPE strings to use in vulnerability lookups.' This implies when to use the tool, and the sibling comparison (e.g., shodan-search-cves) reinforces its niche for CPEs rather than CVEs. However, it doesn't explicitly state when not to use it or name alternatives, which would merit a 5.

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

shodan-search-cvesA

Search CVEs in Shodan's vulnerability database with powerful filters.

Filter by CISA KEV catalog, sort by EPSS exploit probability, and filter by date range. This is FREE — no API key required.

Returns: CveSearchResult with matching CVEs and total count.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip (for pagination).
limitNoMaximum number of results (1-100).
is_kevNoOnly return CVEs in CISA Known Exploited Vulnerabilities catalog.
timeoutNoHTTP request timeout in seconds. Default: 30.
end_dateNoFilter CVEs published before this date (YYYY-MM-DD). Leave empty for no filter.
start_dateNoFilter CVEs published after this date (YYYY-MM-DD). Leave empty for no filter.
sort_by_epssNoSort results by EPSS score (most likely to be exploited first).

Output Schema

ParametersJSON Schema
NameRequiredDescription
cvesNoMatching CVE entries
totalNoTotal number of matching CVEs

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 of behavioral disclosure. It effectively discloses that the tool is free, requires no API key, and returns a specific result type (CveSearchResult) with a total count. It does not mention rate limits or error handling, but for a read-only search tool this is a reasonable level of transparency.

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 concise and front-loaded, with the core purpose in the first sentence. It includes useful additional details like the cost/free note and a return type line, but the return line is somewhat redundant given the existence of an output schema, so it could be slightly tighter.

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 main functionality, key filter options, and the cost/auth status, which is adequate for a search-oriented tool. However, it lacks differentiation from sibling tools (e.g., when to use this versus shodan-search), and does not mention any usage limits or background behavior, leaving some gaps in contextual guidance.

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?

All 7 parameters have schema descriptions (100% coverage), so the baseline is 3. The description adds value by explicitly naming the key filters (CISA KEV, EPSS, date range) which map to is_kev, sort_by_epss, and start_date/end_date, thus reinforcing their semantic meaning beyond just the parameter names.

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 'Search CVEs in Shodan's vulnerability database with powerful filters' and mentions specific capabilities like filtering by CISA KEV, sorting by EPSS, and date ranges. This distinct verb+resource combination differentiates it from sibling tools such as shodan-cve-lookup, which likely focuses on individual CVE lookup.

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 clear context by highlighting the tool's filtering strengths and explicitly noting it is free with no API key, which helps agents decide when to use it. However, it does not explicitly compare to alternatives like shodan-search or shodan-cve-lookup, nor does it state when not to use the tool.

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

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct Shodan operation or resource. Even related tools like ip-lookup and internetdb-lookup are clearly differentiated by detail level and API requirements, and search vs search-count serve different purposes.

Naming Consistency3/5

All names share a shodan- prefix and kebab-case, but the internal structure is inconsistent: some are verb-first (shodan-search-cves, shodan-list-facets), others are object-first (shodan-ip-lookup, shodan-cve-lookup), and a few are noun phrases (shodan-domain-info, shodan-account-profile).

Tool Count4/5

With 20 tools, the server is slightly heavy but justified by the breadth of Shodan's API. Each tool covers a distinct capability, though a few utilities like my-ip and http-headers are peripheral.

Completeness4/5

The toolset covers core Shodan workflows: IP lookup, search, DNS, domain recon, CVE lookup, and account management. The main gap is the lack of a tool to trigger on-demand scans, despite listing available scan protocols.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    B
    quality
    D
    maintenance
    Provides access to Shodan API functionality, enabling AI assistants to query information about internet-connected devices for cybersecurity research and threat intelligence.
    23
    47
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Integrates Shodan search capabilities into MCP-compatible applications for discovering internet-connected devices. Enables domain searches, IP lookups, and advanced queries to identify exposed services, infrastructure mapping, and security analysis.
    3
  • A
    license
    A
    quality
    D
    maintenance
    Enables comprehensive security reconnaissance, vulnerability assessment, and threat intelligence gathering by integrating Shodan's API. It provides tools for searching internet-connected devices, performing DNS operations, and querying the Shodan exploit database.
    11
    Apache 2.0

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/Vorota-ai/shodan-mcp'

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