Shodan

io.github.BurtTheCoderPublished by GitHub account BurtTheCoderv1.0.22Updated Oct 24, 2026

MCP server for Shodan API — device search, IP lookup, DNS, and CVE/CPE queries.

Overview

AI-generated overview

MCP server that gives an AI assistant read-only access to Shodan and Shodan CVEDB for host reconnaissance, device search, DNS and vulnerability lookups.

What you can do
Look up a single IPv4 or IPv6 host: open ports, products, CVEs, TLS certificates, location and cloud, optionally with banner history, and check remaining plan credits and valid search filters and facets. Search Shodan devices with query syntax, paging and facet breakdowns, or get match counts and facets only. Resolve DNS: subdomains and records for a domain, plus batch forward and reverse lookups. Query CVEDB: CVE details with CVSS, EPSS and KEV, CPE identifiers for a product, and CVEs by product or CPE sortable by EPSS.
When to use it
Useful when an assistant needs to assess what a host or domain exposes, size or run Shodan device searches, or pull vulnerability severity and exploitation context for a CVE or product during security research or triage.
Requirements
Runs locally over stdio via the npm package, needing Node.js 20 or newer. Requires your own Shodan API key supplied in the SHODAN_API_KEY environment variable, and network access to Shodan. An optional HTTP streaming mode is configured with MCP_TRANSPORT, MCP_HOST, MCP_PORT and MCP_ENDPOINT.
Before you install
SHODAN_API_KEY is a secret read from the environment and sent to Shodan; what you look up is sent to Shodan. Paid tools spend query credits: filtered shodan_search costs one credit plus one per extra page, and domain_info costs one per call. The optional HTTP transport has no authentication, so anyone who can reach the port can spend your credits; keep it on localhost or behind an authenticating proxy. Tools are read-only.

Installation

In SourceWeft

  1. Open Shodan in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[MCP Shodan: network intelligence for AI agents. Internet reconnaissance, DNS intelligence and CVE analysis over the Model Context Protocol.]

[npm version] [CI] [License: MIT] [Node 20 or newer] [MCP Registry] [Smithery]

Quickstart · Tools · HTTP · Security · Troubleshooting · Docs

mcp-shodan is an MCP server that gives AI agents access to the Shodan API and Shodan CVEDB. Hand your agent an IP, hostname, search query, product or CVE and get back what an analyst would look at: open ports and banners, TLS certificates, DNS, and vulnerability severity with EPSS and KEV status.

[!NOTE] Independent project, not affiliated with Shodan. You need your own Shodan API key.

Highlights

  • Host reconnaissance. Open ports, products and versions, known CVEs, TLS certificate details (fingerprint, JARM, JA3S), cloud provider and banner history for any IPv4 or IPv6 address.
  • Device search. Shodan query syntax with paging and facet breakdowns (country, org, port, vuln and more), plus a free count-only mode for sizing a query.
  • Vulnerability intelligence. CVE details with CVSS v4/v3/v2, EPSS and KEV; CVEs by product or CPE, sortable by EPSS. CVEDB is free and doesn't spend query credits.
  • DNS. Subdomains and DNS records for a domain, and forward and reverse lookups for many names or IPs in one call.
  • Credit-aware. Free tools are marked as free, and api_info shows the credits left on your plan.
  • Two transports. stdio for desktop clients, HTTP streaming for a shared service.
  • Tested. Unit tests with a mocked Shodan API run in CI on Node 20, 22 and 24.

How it works

mermaid
flowchart LR    A["AI agent<br/>(Claude, Codex, Gemini, VS Code)"] -->|"MCP over stdio or HTTP"| S["mcp-shodan"]    S -->|"validate input,<br/>HTTPS + API key"| SH["Shodan REST API"]    S -->|"HTTPS, no key"| C["Shodan CVEDB"]    SH -->|"JSON"| S    C -->|"JSON"| S    S -->|"structured JSON text"| A

Quickstart

Requirements: Node.js 20 or newer and a Shodan API key.

sh
# Claude Codeclaude mcp add --transport stdio --env SHODAN_API_KEY=your-key shodan -- npx -y @burtthecoder/mcp-shodan
# Codex CLIcodex mcp add shodan --env SHODAN_API_KEY=your-key -- npx -y @burtthecoder/mcp-shodan
# Gemini CLIgemini mcp add -e SHODAN_API_KEY=your-key shodan npx -y @burtthecoder/mcp-shodan

For Claude Desktop, VS Code, Smithery and running from source, see Connect a client.

Then ask your agent: "What is exposed on 8.8.8.8, and is CVE-2021-44228 in the KEV catalog?" More prompts are in example workflows.

Tools

Eleven read-only tools. Full parameters are in the tool reference.

GroupToolWhat it does
Networkip_lookupPorts, products, CVEs, TLS, location and cloud for one IP, optionally with banner history
shodan_searchSearch devices with Shodan query syntax, with paging and facet breakdowns
shodan_countTotal matches and facet breakdowns for a query, without results (free)
domain_infoSubdomains and DNS records for a domain
dns_lookupResolve hostnames to IPs, in batch
reverse_dns_lookupHostnames for IPs, in batch
Vulnerabilities (CVEDB)cve_lookupCVSS, EPSS, KEV, references and affected CPEs for one CVE
cpe_lookupCPE 2.3 identifiers for a product name
cves_by_productCVEs for a product or CPE, filterable by KEV and date, sortable by EPSS
Helperssearch_filtersValid search filter and facet names
api_infoYour plan and remaining query and scan credits

[!TIP] Credits: filtered shodan_search queries cost one query credit (plus one per extra page) and domain_info costs one per call. shodan_count, ip_lookup, dns_lookup, reverse_dns_lookup, search_filters, api_info and the CVEDB tools are free.

HTTP streaming transport

stdio is the default. Set MCP_TRANSPORT=httpStream to run a standalone HTTP service:

sh
MCP_TRANSPORT=httpStream MCP_PORT=3000 SHODAN_API_KEY=your-key node build/index.js
sh
docker build -t mcp-shodan .docker run -p 127.0.0.1:3000:3000 -e SHODAN_API_KEY=your-key -e MCP_TRANSPORT=httpStream mcp-shodan

A health check is served at /health.

Environment variables

VariableDefaultDescription
SHODAN_API_KEY(required)Your Shodan API key
MCP_TRANSPORTstdiostdio or httpStream
MCP_HOSTlocalhostBind address (httpStream only). The Docker image sets 0.0.0.0
MCP_PORT3000HTTP port (httpStream only)
MCP_ENDPOINT/mcpHTTP endpoint path (httpStream only)

Security

[!WARNING] The HTTP transport has no authentication. Keep the port on localhost or behind an authenticating reverse proxy, or anyone who can reach it can spend your query credits.

  • Tool arguments are validated with zod schemas before any request is built. IPs must be valid IPv4 or IPv6, domains valid hostnames, facets name[:count] lists, and CVE IDs must match CVE-YYYY-NNNN.
  • The API key is read from the environment and sent only to api.shodan.io. CVEDB calls carry no key.
  • What you look up is sent to Shodan.

Report vulnerabilities privately; see SECURITY.md.

Troubleshooting

  • 401 / invalid key: check for spaces or quotes around the key, then restart the client. curl "https://api.shodan.io/api-info?key=$SHODAN_API_KEY" shows your plan and credits.
  • 403 on shodan_search: search filters need a membership or paid API plan. Run api_info to see your plan and credits.
  • 429: Shodan allows about one request per second. Retry after a moment.

More in the troubleshooting guide.

Development

sh
git clone https://github.com/w0h1v/mcp-shodan && cd mcp-shodannpm cinpm test                          # build + unit tests, no key or networknpx fastmcp dev build/index.js    # try tools interactively (needs SHODAN_API_KEY)

See CONTRIBUTING.md and the changelog.

License

MIT. See LICENSE.

Source: README.md at commit 08bf8ee

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.22LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts