关于 Shodan MCP Server
Shodan MCP Server 是一个 MCP 服务,封装了 Shodan API 与 CVE 数据库功能,供 AI 助手查询联网设备、服务和漏洞信息。适合安全研究人员和需要做网络资产与漏洞分析的用户。它覆盖主机查询、漏洞情报和网络监控等多类工具。
主要功能
- 01主机与服务搜索
- 02CIDR 网段扫描
- 03CVE 查询与 KEV、EPSS 筛选
- 04InternetDB 免密钥主机查询
- 05网络告警与通知器管理
适用场景
- 01查询特定 IP 的开放端口与服务信息
- 02按产品筛选高风险 CVE 并排序
- 03监控一组 IP 或网段的变化并发送通知
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍

Shodan MCP Server
一个模型上下文协议(MCP)服务,可提供对 Shodan API 功能和 CVE 数据库的访问,让 AI 助手能够查询互联网连接设备、服务和漏洞的信息。
功能
网络情报
- 主机信息:获取特定 IP 地址的详细信息
- 搜索功能:在 Shodan 数据库中搜索设备和服务
- 网络扫描:扫描网段范围(CIDR 表示法)中的设备
- SSL 证书信息:获取域名的 SSL 证书详细信息
- IoT 设备搜索:查找特定类型的 IoT 设备
漏洞情报
- CVE 查询:获取特定漏洞的详细信息
- 漏洞搜索:使用高级筛选条件搜索 CVE(产品、KEV 状态、EPSS 分数)
- CPE 信息:获取产品的通用平台枚举数据
- 最新漏洞:查看最新的 CVE 和已知遭利用的漏洞
- 漏洞利用预测:根据 EPSS 漏洞利用预测分数获取排序后的 CVE
- 漏洞利用搜索:在 Shodan 的 Exploits 数据库中搜索与 CVE 关联的漏洞利用
- InternetDB 查询:无需 API 密钥即可免费查询主机(开放端口、主机名、CPE、漏洞、标签)
网络监控
- 网络警报:创建、列出、检查和删除持久警报,以监控 IP 地址或网段范围的变化
- 通知器:列出可用的通知器提供方,并管理警报可向其发送事件的通知器(Slack、电子邮件、webhook 等)
安装
-
克隆仓库:
git clone https://github.com/Cyreslab-AI/shodan-mcp-server.git cd shodan-mcp-server -
安装依赖项:
npm install -
构建服务:
npm run build -
设置 Shodan API 密钥:
export SHODAN_API_KEY="your-api-key-here" -
启动服务:
npm start
MCP 集成
此服务可与 Claude 或其他兼容 MCP 的 AI 助手集成。要将其添加到 Claude Desktop 或 Claude.app:
-
将服务添加到 MCP 设置:
{ "mcpServers": { "shodan": { "command": "node", "args": ["/path/to/shodan-mcp-server/build/index.js"], "env": { "SHODAN_API_KEY": "your-api-key-here" } } } } -
重启 Claude 以加载新的 MCP 服务。
可用工具
搜索和主机信息工具
get_host_info
获取特定 IP 地址的详细信息。
参数:
ip(必需):要查询的 IP 地址max_items(可选):数组中包含的最大项目数(默认值:5)fields(可选):结果中要包含的字段列表(例如,['ip_str', 'ports', 'location.country_name'])
search_shodan
在 Shodan 数据库中搜索设备和服务。
参数:
query(必需):Shodan 搜索查询(例如,'apache country:US')page(可选):结果分页的页码(默认值:1)facets(可选):搜索结果中要包含的分面列表(例如,['country', 'org'])max_items(可选):数组中包含的最大项目数(默认值:5)fields(可选):结果中要包含的字段列表(例如,['ip_str', 'ports', 'location.country_name'])summarize(可选):是否返回结果摘要而非完整数据(默认值:false)
get_host_count
获取与搜索查询匹配的主机数量,且不消耗查询额度。
参数:
query(必需):要统计主机数量的 Shodan 搜索查询facets(可选):计数结果中要包含的分面列表(例如,['country', 'org'])
scan_network_range
扫描网段范围(CIDR 表示法)中的设备。
参数:
cidr(必需):采用 CIDR 表示法的网段范围(例如,192.168.1.0/24)max_items(可选):结果中包含的最大项目数(默认值:5)fields(可选):结果中要包含的字段列表(例如,['ip_str', 'ports', 'location.country_name'])
search_iot_devices
搜索特定类型的 IoT 设备。
参数:
device_type(必需):要搜索的 IoT 设备类型(例如,'webcam'、'router'、'smart tv')country(可选):用于限制搜索范围的国家/地区代码(例如,'US'、'DE')max_items(可选):结果中包含的最大条目数(默认值:5)
SSL 与证书工具
get_ssl_info
获取域名的 SSL 证书信息。
参数:
domain(必需):要查询 SSL 证书的域名(例如,example.com)
DNS 工具
dns_lookup
使用 DNS 查询将主机名解析为 IP 地址。
参数:
hostnames(必需):要解析的主机名列表(例如,['google.com', 'facebook.com'])
reverse_dns_lookup
使用反向 DNS 查询获取 IP 地址对应的主机名。
参数:
ips(必需):要查询的 IP 地址列表(例如,['8.8.8.8', '1.1.1.1'])
get_domain_info
获取全面的域名信息,包括子域名和 DNS 记录。
参数:
domain(必需):要查询的域名(例如,'google.com')history(可选):是否包含历史 DNS 数据(默认值:false)type(可选):DNS 记录类型筛选条件(A、AAAA、CNAME、NS、SOA、MX、TXT)page(可选):分页页码(默认值:1)
搜索实用工具
list_search_facets
列出可用于 Shodan 查询的所有搜索分面。
参数: 无
list_search_filters
列出可用于 Shodan 查询的所有搜索筛选器。
参数: 无
parse_search_tokens
解析搜索查询,以了解其中使用的筛选器和参数。
参数:
query(必需):要解析和分析的 Shodan 搜索查询
基础设施工具
list_ports
列出 Shodan 在互联网上扫描的所有端口。
参数: 无
list_protocols
列出执行按需互联网扫描时可用的所有协议。
参数: 无
CVE 与漏洞工具
get_cve_info
获取特定 CVE 的详细信息。
参数:
cve_id(必需):要查询的 CVE ID(例如,'CVE-2021-44228')
search_cves
使用各种筛选条件搜索漏洞。
参数:
cpe23(可选):要搜索的 CPE 2.3 字符串(例如,'cpe:2.3:a:apache:log4j:*')product(可选):要搜索漏洞的产品名称(例如,'apache'、'windows')is_kev(可选):仅筛选已知遭利用的漏洞sort_by_epss(可选):按 EPSS 分数(漏洞利用预测评分系统)对结果排序start_date(可选):筛选 CVE 的起始日期(YYYY-MM-DD 格式)end_date(可选):筛选 CVE 的结束日期(YYYY-MM-DD 格式)limit(可选):返回的最大结果数(默认值:10)skip(可选):分页时跳过的结果数(默认值:0)
get_cpes
获取产品的通用平台枚举(CPE)信息。
参数:
product(可选):要搜索的产品名称(例如,'apache'、'windows')vendor(可选):用于筛选的供应商名称(例如,'microsoft'、'apache')version(可选):用于筛选的版本(例如,'2.4.1')limit(可选):返回的最大结果数(默认值:10)skip(可选):分页时跳过的结果数(默认值:0)
get_newest_cves
获取 CVE 数据库中的最新漏洞。
参数:
limit(可选):返回的最大结果数(默认值:10)
get_kev_cves
获取 CISA 收录的已知遭利用漏洞(KEV)。
参数:
limit(可选):返回的最大结果数(默认值:10)
get_cves_by_epss
按 EPSS 分数(漏洞利用预测评分系统)排序获取 CVE。
参数:
limit(可选):返回的最大结果数(默认值:10)
get_internetdb_host
使用 Shodan 的 InternetDB 免费、轻量地查询 IP 地址(开放端口、主机名、CPE、漏洞、标签)。无需 API 密钥。
参数:
ip(必需):要查询的 IP 地址(例如,'8.8.8.8')
search_exploits
在 Shodan 的 Exploits 数据库(Exploit-DB、Metasploit、关联 CVE 的漏洞利用程序)中搜索已知漏洞利用程序。
参数:
query(必需):漏洞利用程序搜索查询(例如,'apache cve:2021-44228')page(可选):结果分页的页码(默认值:1)facets(可选):要包含在结果中的分面列表(例如,['type', 'platform'])
注意: 截至本文撰写时,上游主机 exploits.shodan.io 会重定向到 cvedb.shodan.io,且不再提供此 API。该工具会检测到这种情况,并返回格式明确的 {"error": "Unexpected response from the Shodan Exploits API", ...} 对象,而不是崩溃,以防 Shodan 恢复此端点。
count_exploits
统计符合搜索查询的漏洞利用程序数量,但不返回完整的漏洞利用程序记录。
参数:
query(必需):要统计结果数量的漏洞利用程序搜索查询facets(可选):要包含在统计结果中的分面列表(例如,['type', 'platform'])
网络警报工具
create_alert
创建一个持久的 Shodan 网络警报,用于监控一个或多个 IP/范围并报告随时间发生的变化。此操作不是只读操作。
参数:
name(必需):警报的描述性名称ip(必需):要监控的 IP 地址或 CIDR 范围列表(例如,['1.2.3.4', '10.0.0.0/24'])expires(可选):警报自动过期前应保持活动状态的秒数(若不设过期时间,则省略)
list_alerts
列出账户中所有已配置的 Shodan 网络警报。
参数:
include_expired(可选):是否在结果中包含已过期的警报(默认值:true)
get_alert
按 ID 获取指定 Shodan 网络警报的详细信息。
参数:
alert_id(必需):要检索的警报 ID
delete_alert
按 ID 永久删除 Shodan 网络警报。此操作具有破坏性且无法撤销。
参数:
alert_id(必需):要删除的警报 ID
通知器工具
list_notifier_providers
列出可用的 Shodan 通知器提供方(例如 slack、email、webhook、telegram)及其各自所需的参数。
参数: 无
list_notifiers
列出账户中所有已配置的 Shodan 通知器。
参数: 无
create_notifier
创建新的 Shodan 通知器(例如 Slack、email、webhook),供网络警报向其发送事件。此操作不是只读操作。
参数:
provider(必需):通知器提供方名称(例如,'slack'、'email'、'webhook'、'telegram')。使用list_notifier_providers查看可用选项。args(必需):提供方专用参数(例如,为 slack 提供{"webhook_url": "https://..."})description(可选):通知器的易读描述
delete_notifier
按 ID 永久删除 Shodan 通知器。此操作具有破坏性且无法撤销。
参数:
notifier_id(必需):要删除的通知器 ID
账户与实用工具
get_api_info
获取 API 套餐信息,包括额度和限制。
参数: 无
get_account_profile
获取账户资料信息,包括会员状态和额度。
参数: 无
get_my_ip
获取互联网可见的当前 IP 地址。
参数: 无
可用资源
shodan://host/{ip}:有关指定 IP 地址的信息
API 限制
Shodan API 的部分端点需要付费会员资格。以下功能仅适用于使用付费 Shodan API 密钥的用户:
- 搜索功能(search_shodan、scan_network_range、get_ssl_info、search_iot_devices、get_host_count、get_domain_info)
- 网络扫描
- SSL 证书查询
- IoT 设备搜索
- 漏洞利用搜索(search_exploits、count_exploits)
- 网络警报和通知程序(create_alert、list_alerts、get_alert、delete_alert、list_notifier_providers、list_notifiers、create_notifier、delete_notifier)
注意:CVE 数据库功能(get_cve_info、search_cves、get_cpes、get_newest_cves、get_kev_cves、get_cves_by_epss)完全免费,无需付费 Shodan 订阅。
注意:get_internetdb_host 完全免费,无需 Shodan API 密钥,它会直接查询公共的 internetdb.shodan.io 服务。服务器启动时仍需要设置 SHODAN_API_KEY 环境变量(供其他工具使用)。
许可证
MIT
开发者
引用
如果您在研究或出版物中使用此项目,请按以下格式引用:
author = {Bassem Abidi and Moudather Chelbi},
title = {Shodan MCP Server},
year = {2025},
howpublished = {https://github.com/Cyreslab-AI/shodan-mcp-server},
note = {Accessed: 2025-06-29}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。