Shodan MCP 服务器
一个用于查询 Shodan API 和 Shodan CVEDB 的模型上下文协议 (MCP) 服务器。该服务器提供对 Shodan 网络智能和安全服务的全面访问,包括 IP 侦察、DNS 操作、漏洞跟踪和设备发现。所有工具都提供结构化、格式化的输出,便于分析和集成。
快速入门(推荐)
通过 Smithery 安装
要自动通过 Smithery 安装 Shodan 服务器:
npx -y @smithery/cli install @burtthecoder/mcp-shodan --client claude
手动安装
- 通过 npm 全局安装服务器:
npm install -g @burtthecoder/mcp-shodan
- 添加到您的 Claude Desktop 配置文件:
{
"mcpServers": {
"shodan": {
"command": "mcp-shodan",
"env": {
"SHODAN_API_KEY": "your-shodan-api-key"
}
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 重新启动 Claude Desktop
替代设置(从源代码)
如果您希望从源代码运行或需要修改代码:
- 克隆和构建:
git clone https://github.com/BurtTheCoder/mcp-shodan.git
cd mcp-shodan
npm install
npm run build
- 添加到您的 Claude Desktop 配置:
{
"mcpServers": {
"shodan": {
"command": "node",
"args": ["/绝对路径/to/mcp-shodan/build/index.js"],
"env": {
"SHODAN_API_KEY": "your-shodan-api-key"
}
}
}
}
功能
- 网络侦察:查询 IP 地址的详细信息,包括开放端口、服务和漏洞
- DNS 操作:对域名和 IP 地址进行正向和反向 DNS 查询
- 漏洞情报:访问 Shodan 的 CVEDB 获取详细的漏洞信息、CPE 查询和产品特定 CVE 跟踪
- 设备发现:搜索 Shodan 的互联网连接设备数据库,支持高级过滤
工具
1. IP 查询工具
- 名称:
ip_lookup - 描述:获取 IP 地址的全面信息,包括地理位置、开放端口、运行服务、SSL 证书、主机名和云提供商详细信息(如果可用)
- 参数:
ip(必需):要查询的 IP 地址
- 返回:
- IP 信息(地址、组织、ISP、ASN)
- 位置(国家、城市、坐标)
- 服务(端口、协议、横幅)
- 云提供商详细信息(如果可用)
- 关联主机名和域名
- 标签
2. Shodan 搜索工具
- 名称:
shodan_search - 描述:搜索 Shodan 的互联网连接设备数据库
- 参数:
query(必需):Shodan 搜索查询max_results(可选,默认:10):要返回的结果数量
- 返回:
- 搜索摘要,包括总结果数
- 基于国家的分布统计
- 详细设备信息,包括:
- 基本信息(IP、组织、ISP)
- 位置数据
- 服务详细信息
- Web 服务器信息
- 关联主机名和域名
3. CVE 查询工具
- 名称:
cve_lookup - 描述:从 Shodan 的 CVEDB 查询详细的漏洞信息
- 参数:
cve(必需):CVE 标识符,格式为 CVE-YYYY-NNNNN(例如,CVE-2021-44228)
- 返回:
- 基本信息(ID、发布日期、摘要)
- 严重性评分:
- CVSS v2 和 v3 评分及严重性级别
- EPSS 概率和排名
- 影响评估:
- KEV 状态
- 建议的缓解措施
- 勒索软件关联
- 受影响的产品(CPE)
- 参考文献
4. DNS 查询工具
- 名称:
dns_lookup - 描述:使用 Shodan 的 DNS 服务解析域名到 IP 地址
- 参数:
hostnames(必需):要解析的主机名数组
- 返回:
- DNS 解析结果,映射主机名到 IP
- 总查询数和查询主机名的摘要
5. 反向 DNS 查询工具
- 名称:
reverse_dns_lookup - 描述:执行反向 DNS 查询,查找与 IP 地址关联的主机名
- 参数:
ips(必需):要查询的 IP 地址数组
- 返回:
- 反向 DNS 解析结果,映射 IP 到主机名
- 总查询数和结果摘要
6. CPE 查询工具
- 名称:
cpe_lookup - 描述:通过产品名称搜索通用平台枚举 (CPE) 条目
- 参数:
product(必需):要搜索的产品名称count(可选,默认:false):如果为 true,则只返回匹配 CPE 的数量skip(可选,默认:0):要跳过的 CPE 数量(用于分页)limit(可选,默认:1000):要返回的最大 CPE 数量
- 返回:
- 当 count 为 true 时:匹配 CPE 的总数
- 当 count 为 false 时:带分页详情的 CPE 列表
7. 产品 CVE 查询工具
- 名称:
cves_by_product - 描述:搜索影响特定产品或 CPE 的漏洞
- 参数:
cpe23(可选):CPE 2.3 标识符(格式:cpe:2.3:part:vendor:product:version)product(可选):要搜索 CVE 的产品名称count(可选,默认:false):如果为 true,则只返回匹配 CVE 的数量is_kev(可选,默认:false):如果为 true,则只返回带有 KEV 标记的 CVEsort_by_epss(可选,默认:false):如果为 true,则按 EPSS 分数排序 CVEskip(可选,默认:0):要跳过的 CVE 数量(用于分页)limit(可选,默认:1000):要返回的最大 CVE 数量start_date(可选):过滤 CVE 的起始日期(格式:YYYY-MM-DDTHH:MM:SS)end_date(可选):过滤 CVE 的结束日期(格式:YYYY-MM-DDTHH:MM:SS)
- 注意:
- 必须提供 cpe23 或 product,但不能同时提供
- 日期过滤使用 CVE 的发布时间
- 返回:
- 查询信息
- 结果摘要及分页详情
- 详细漏洞信息,包括:
- 基本信息
- 严重性评分
- 影响评估
- 参考文献
要求
- Node.js (v18 或更高版本)
- 一个有效的 Shodan API 密钥
故障排除
API 密钥问题
如果您看到与 API 密钥相关的错误(例如,“请求失败,状态码 401”):
-
验证您的 API 密钥:
- 必须是您 账户设置 中的有效 Shodan API 密钥
- 确保密钥具有足够的查询信用/权限
- 检查配置中密钥周围的额外空格或引号
- 验证 SHODAN_API_KEY 环境变量是否正确设置
-
常见错误代码:
- 401 未授权:无效的 API 密钥或缺少认证
- 402 需要付费:超出查询信用
- 429 请求过多:超出速率限制
-
配置步骤: a. 从 Shodan 账户 获取您的 API 密钥 b. 将其添加到您的配置文件:
{ "mcpServers": { "shodan": { "command": "mcp-shodan", "env": { "SHODAN_API_KEY": "your-actual-api-key-here" } } } }c. 保存配置文件 d. 重新启动 Claude Desktop
-
测试您的密钥:
- 先尝试简单的查询(例如,dns_lookup for "google.com")
- 检查您的 Shodan 账户仪表板 中的信用状态
- 验证密钥是否可以直接使用 curl 测试:
curl "https://api.shodan.io/dns/resolve?hostnames=google.com&key=your-api-key"
模块加载问题
如果您看到模块加载错误:
- 对于全局安装:使用快速入门中显示的简单配置
- 对于源代码安装:确保您使用的是 Node.js v18 或更高版本
开发
要在开发模式下启用热重载运行:
npm run dev
错误处理
服务器包含全面的错误处理,用于:
- 无效的 API 密钥
- 速率限制
- 网络错误
- 无效的输入参数
- 无效的 CVE 格式
- 无效的 CPE 查询参数
- 无效的日期格式
- 互斥参数验证
版本历史
- v1.0.12:添加反向 DNS 查询并改进输出格式
- v1.0.7:添加 CVEs by Product 搜索功能,并将漏洞工具重命名为 cve_lookup
- v1.0.6:添加 CVEDB 集成以增强 CVE 查询和 CPE 搜索功能
- v1.0.0:初始发布,包含核心功能
贡献
- 分叉仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开 Pull Request
许可证
本项目根据 MIT 许可证授权 - 详细内容请参阅 LICENSE 文件。
