Shodan

io.github.w0h1v由 GitHub 帳號 w0h1v 發布v1.0.37更新於 Nov 5, 2026

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

概覽

AI 產生的概覽

Shodan MCP 伺服器,讓助理查詢主機資訊、搜尋連網裝置、解析 DNS,並檢索 CVE/CPE 漏洞資料。

可以做什麼
  • 查詢單一 IP 的開放連接埠、服務、漏洞、TLS 憑證、地理位置與雲端供應商資訊
  • 以查詢語法搜尋 Shodan 裝置資料庫,支援分頁與分面統計,也可免費取得符合筆數
  • 列舉網域的子網域與 DNS 記錄,並批次進行正向與反向 DNS 解析
  • 查詢 CVEDB 取得 CVE 詳情(CVSS、EPSS、KEV 狀態),尋找 CPE 識別碼,依產品或 CPE 列出漏洞
  • 查看 API 方案與剩餘查詢、掃描額度,並列出可用的搜尋篩選器與分面
適用情境
適合資安與網路偵察工作:評估某個 IP 或網域的暴露面、確認某個 CVE 是否已遭實際利用、找出受影響的產品與版本。也適合在對話中進行資產盤點與漏洞研判。
執行需求
以 Node.js 套件形式在本機執行(需 Node.js 20 或更新版本),預設使用 stdio;設定 MCP_TRANSPORT 後可作為 HTTP 串流服務執行。需要 SHODAN_API_KEY 環境變數中的 Shodan API 金鑰,並能連線至 Shodan。帶篩選條件的搜尋需要會員或付費 API 方案。
安裝前請注意
Shodan API 金鑰是可計費憑證:帶篩選條件的 shodan_search 查詢與 domain_info 呼叫會消耗查詢額度,金鑰遭濫用會花掉方案額度。選用的 HTTP 傳輸沒有身分驗證,能連上該連接埠的人都能消耗額度,應只綁定本機或置於具驗證的反向代理之後。查詢內容會傳送給 Shodan,金鑰僅送至 api.shodan.io。工具皆為唯讀。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Shodan,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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]

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 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.

來源:README.md,提交 422483a

工具

11

ip_lookup

Retrieve comprehensive information about an IP address, including geolocation, operating system, open ports, running services (product, version, CPE), known vulnerabilities (CVEs), SSL certificates, hostnames, and cloud provider details if available. Returns service banners and HTTP server information when present. Optional history returns historical banners; minify omits banners.

輸入參數ip必填minifyhistory

cve_lookup

Query detailed vulnerability information from Shodan's CVEDB. Returns comprehensive CVE details including CVSS scores (v4/v3/v2), EPSS probability and ranking, KEV status, proposed mitigations, ransomware associations, and affected products (CPEs).

輸入參數cve必填

dns_lookup

Resolve domain names to IP addresses using Shodan's DNS service. Supports batch resolution of multiple hostnames in a single query. Returns IP addresses mapped to their corresponding hostnames.

輸入參數hostnames必填

reverse_dns_lookup

Perform reverse DNS lookups to find hostnames associated with IP addresses. Supports batch lookups of multiple IP addresses in a single query. Returns all known hostnames for each IP address, with clear indication when no hostnames are found.

輸入參數ips必填

cpe_lookup

Search for Common Platform Enumeration (CPE) entries by product name in Shodan's CVEDB. Supports pagination and can return either full CPE details or just the total count. Useful for identifying specific versions and configurations of software and hardware.

輸入參數skipcountlimitproduct必填

cves_by_product

Search for vulnerabilities affecting specific products or CPEs. Supports filtering by KEV status, sorting by EPSS score, date ranges, and pagination. Can search by product name or CPE 2.3 identifier. Returns detailed vulnerability information including severity scores and impact assessments.

輸入參數skipcountcpe23limitis_kevproductend_datestart_datesort_by_epss

shodan_count

Get the total number of Shodan results for a query, with optional facet breakdowns (e.g. by country, org, port). Free: does not consume query credits. Use search_filters to list valid filters and facets.

輸入參數query必填facets

domain_info

Get subdomains and DNS records for a domain from Shodan. Costs 1 query credit per lookup.

輸入參數pagetypedomain必填history

api_info

Show the Shodan API plan, remaining query and scan credits, monitored IPs, and usage limits for the configured API key. Free: does not consume credits.

無需輸入參數。

search_filters

List the search filters and facets Shodan supports. Use this to build valid shodan_search and shodan_count queries and facets. Free: does not consume credits.

無需輸入參數。

版本歷史

3
  1. v1.0.37最新Nov 5, 2026
  2. v1.0.34Oct 12, 2026
  3. v1.0.31Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分