# 中文名：Shodan查询
## 基本信息
- Slug: `burtthecoder-mcp-shodan`
- Source: modelscope
- Publisher: @BurtTheCoder/mcp-shodan
- Categories: security-and-iam / search / databases
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@BurtTheCoder/mcp-shodan
## 简介
用于查询Shodan API和Shodan CVEDB的MCP服务器。该服务器提供了IP查询、设备搜索、DNS查询、漏洞查询、CPE查询等工具。
## 安装提示

```bash
npx -y @smithery/cli install @burtthecoder/mcp-shodan --client claude
```

## MCP Server 详情

# Shodan MCP 服务器

[![smithery 徽章](https://smithery.ai/badge/@burtthecoder/mcp-shodan)](https://smithery.ai/server/@burtthecoder/mcp-shodan)

这是一个用于查询 [Shodan API](https://shodan.io) 和 [Shodan CVEDB](https://cvedb.shodan.io) 的 Model Context Protocol (MCP) 服务器。该服务器提供了对 Shodan 网络情报和安全服务的全面访问，包括 IP 侦察、DNS 操作、漏洞跟踪和设备发现。所有工具都提供结构化、格式化的输出，以便于分析和集成。

<a href="https://glama.ai/mcp/servers/79uakvikcj"><img width="380" height="200" src="https://glama.ai/mcp/servers/79uakvikcj/badge" /></a>

## 快速开始（推荐）

### 通过 Smithery 安装

要通过 [Smithery](https://smithery.ai/server/@burtthecoder/mcp-shodan) 自动安装适用于 Claude Desktop 的 Shodan 服务器：

```bash
npx -y @smithery/cli install @burtthecoder/mcp-shodan --client claude
```


### 手动安装
1. 通过 npm 全局安装服务器：
```bash
npm install -g @burtthecoder/mcp-shodan
```


2. 添加到你的 Claude Desktop 配置文件中：
```json
{
  "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`

3. 重启 Claude Desktop

## 替代设置（从源代码）

如果你更喜欢从源代码运行或需要修改代码：

1. 克隆并构建：
```bash
git clone https://github.com/BurtTheCoder/mcp-shodan.git
cd mcp-shodan
npm install
npm run build
```


2. 添加到你的 Claude Desktop 配置中：
```json
{
  "mcpServers": {
    "shodan": {
      "command": "node",
      "args": ["/absolute/path/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 状态
    - 建议的缓解措施
    - 勒索软件关联
  * 受影响的产品 (CPEs)
  * 参考资料

### 4. DNS 查找工具
- 名称: `dns_lookup`
- 描述: 使用 Shodan 的 DNS 服务将域名解析为 IP 地址
- 参数:
  * `hostnames` (必填): 需要解析的主机名数组
- 返回:
  * 将主机名映射到 IP 的 DNS 解析结果
  * 总查找次数和查询主机名的摘要

### 5. 反向 DNS 查找工具
- 名称: `reverse_dns_lookup`
- 描述: 执行反向 DNS 查找以找到与 IP 地址关联的主机名
- 参数:
  * `ips` (必填): 需要查找的 IP 地址数组
- 返回:
  * 将 IP 映射到主机名的反向 DNS 解析结果
  * 总查找次数和结果的摘要

### 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 标志的 CVE
  * `sort_by_epss` (可选，默认值: false): 如果为 true，则按 EPSS 分数对 CVE 进行排序
  * `skip` (可选，默认值: 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 Key](https://account.shodan.io/)

## 故障排除

### API 密钥问题

如果您看到与 API 密钥相关的错误（例如，“请求失败，状态码 401”）：

1. 验证您的 API 密钥：
   - 必须是来自您的 [账户设置](https://account.shodan.io/) 的有效 Shodan API 密钥
   - 确保密钥有足够的积分/权限来执行该操作
   - 检查配置中密钥周围是否有额外的空格或引号
   - 确认 SHODAN_API_KEY 环境变量正确设置了密钥

2. 常见错误代码：
   - 401 未授权：无效的 API 密钥或缺少身份验证
   - 402 需要支付：查询积分用尽
   - 429 请求过多：超出速率限制

3. 配置步骤：
   a. 从 [Shodan 账户](https://account.shodan.io/) 获取您的 API 密钥
   b. 将其添加到您的配置文件中：
      ```json
      {
        "mcpServers": {
          "shodan": {
            "command": "mcp-shodan",
            "env": {
              "SHODAN_API_KEY": "your-actual-api-key-here"
            }
          }
        }
      }
      ```
   c. 保存配置文件
   d. 重启 Claude Desktop

4. 测试您的密钥：
   - 先尝试一个简单的查询（例如，对 "google.com" 进行 dns_lookup）
   - 在 [Shodan 账户仪表板](https://account.shodan.io/) 上检查积分状态
   - 使用 curl 直接验证密钥是否有效：
     ```bash
     curl "https://api.shodan.io/dns/resolve?hostnames=google.com&key=your-api-key"
     ```

### 模块加载问题

如果您遇到模块加载错误：
1. 对于全局安装：使用快速入门中显示的简单配置
2. 对于源码安装：确保您正在使用 Node.js v18 或更高版本

## 开发

要在开发模式下运行并启用热重载：
```bash
npm run dev
```


## 错误处理

服务器包括全面的错误处理功能，针对以下情况：
- 无效的 API 密钥
- 速率限制
- 网络错误
- 无效的输入参数
- 无效的 CVE 格式
- 无效的 CPE 查找参数
- 无效的日期格式
- 互斥参数验证

## 版本历史

- v1.0.12: 添加了反向 DNS 查找并改进了输出格式
- v1.0.7: 添加了按产品搜索 CVE 功能并将漏洞工具重命名为 cve_lookup
- v1.0.6: 添加了 CVEDB 集成以增强 CVE 查找和 CPE 搜索功能
- v1.0.0: 初始发布，包含核心功能

## 贡献

1. 分叉仓库
2. 创建一个特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request

## 许可证

此项目根据 MIT 许可证发布 - 详情请参阅 [LICENSE](LICENSE) 文件。

