你是否曾经需要快速了解某个互联网资产的情况?比如,你想知道有多少个开放的 Apache Tomcat 服务器暴露在公网上,或者想查找特定 IP 地址背后运行的服务。Shodan 是这类工具的先行者,但 ZoomEye 作为中国的网络安全搜索引擎,同样提供了强大的网络资产发现能力。

这就是 mcp_zoomeye 要解决的问题。它是一个基于模型上下文协议的服务器,让 AI 模型能够直接查询 ZoomEye 的网络空间搜索引擎,通过“网络空间测绘”语法来检索全球联网设备、网站和服务的详细信息。

项目基本信息

信息项详情
项目名称mcp_zoomeye
GitHub地址https://github.com/zoomeye-ai/mcp_zoomeye
项目描述A Model Context Protocol server that provides network asset information based on query conditions. This server allows LLMs to obtain network asset information and supports querying network asset information by zoomeye dork etc.
作者zoomeye-ai
开源协议Unknown(实际为 MIT)
开源状态公开状态
LanguagesPython, Dockerfile
支持平台Windows / macOS / Linux / Web
最后更新2026-04-13

一、项目介绍

mcp_zoomeye 是一个官方发布的 MCP 服务器,用于连接 ZoomEye 的 API。ZoomEye 是一个全球性的网络空间搜索引擎,它通过持续扫描 IPv4 和 IPv6 地址空间,收集设备 banner 信息、网站组件、协议特征等,形成了一个庞大的网络资产数据库。

该服务器提供了一个核心工具:zoomeye_search。通过这个工具,你可以:

  • 使用 Base64 编码的查询字符串进行搜索。
  • 控制返回结果的分页(页码和每页数量)。
  • 指定返回的字段范围,减少数据量。
  • 按 IPv4、IPv6 或网站数据分类查询。
  • 利用缓存机制提高重复查询的速度。

该项目特别适配了中国的安全研究人员和开发者,因为 ZoomEye 在中文网络安全社区中非常流行。

二、核心优势

聚焦网络资产与漏洞发现
ZoomEye 的数据侧重于网络设备、工业控制系统、物联网设备和网站组件。如果你需要查找特定型号的路由器、摄像头或某个 Web 服务器版本,ZoomEye 是非常有针对性的工具。

支持丰富的搜索语法
ZoomEye 有一套成熟的网络测绘语法,例如 app="Apache Tomcat" 搜索 Tomcat 应用,port:80 搜索开放 80 端口的设备。服务器要求查询字符串经过 Base64 编码,但 AI 可以轻松处理这个细节。

内置缓存和重试机制
服务器实现了缓存功能,相同查询在短时间内不会重复调用 API,节省配额。同时具备自动重试机制,提高稳定性。

多种部署方式
支持通过 pip、uv(Python 的现代包管理器)和 Docker 运行,并提供了与 Claude Desktop、Zed、Cursor 等多种客户端的配置示例。

官方开发和支持
该项目由 ZoomEye 官方团队维护,保证了 API 接口的兼容性和长期支持。项目方还提供了 7 天免费试用活动。

三、适用场景

网络安全研究
研究人员可以问:“查找所有暴露在公网上、使用默认密码的某品牌摄像头。” AI 会构建合适的 ZoomEye 语法并执行查询。

渗透测试
在获得授权的情况下,测试人员可以询问:“检索目标组织所有开放 22 端口的资产。” AI 可以使用 org:"目标组织名" port:22 语法。

企业资产监控
企业安全团队可以定期查询:“我的公司域名下关联的所有子域名和 IP 资产。” ZoomEye 可以提供作为外部视角的资产发现。

漏洞影响范围评估
当出现一个新的高危漏洞时,可以快速查询:“查找所有运行 Apache Log4j 版本 2.x 的中国境内服务器,”以评估潜在影响面。

威胁情报
当分析一个攻击者 IP 时,可以问:“这个 IP 地址上运行了什么服务?它过去关联过哪些域名?” ZoomEye 的历史数据可以帮助回答。

四、安装教程

安装 mcp_zoomeye 需要你有一个 ZoomEye API 密钥。请注意,该服务可能需要付费,但项目方在文档中提到了免费试用。

第一步:获取 ZoomEye API 密钥

  1. 访问 ZoomEye 官网
  2. 注册一个账号并登录。
  3. 点击头像,进入“个人资料”页面。
  4. 找到你的 API 密钥并复制。

第二步:安装 MCP 服务器

推荐使用 uvx(现代 Python 包管理工具)以获得最佳体验。

# 使用 uvx(无需显式安装,会自动获取)
uvx mcp-server-zoomeye

或使用 pip 安装:

pip install mcp-server-zoomeye

或使用 Docker:

docker pull zoomeyeteam/mcp-server-zoomeye:latest

第三步:配置 MCP 客户端

对于 Claude Desktop,编辑配置文件(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json;Windows: %AppData%\Claude\claude_desktop_config.json),添加以下内容之一。

选项 A:使用 uvx

{
  "mcpServers": {
    "zoomeye": {
      "command": "uvx",
      "args": ["mcp-server-zoomeye"],
      "env": {
        "ZOOMEYE_API_KEY": "你的API密钥"
      }
    }
  }
}

选项 B:使用 Docker

{
  "mcpServers": {
    "zoomeye": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "ZOOMEYE_API_KEY=你的API密钥", "zoomeyeteam/mcp-server-zoomeye:latest"],
      "env": {
        "ZOOMEYE_API_KEY": "你的API密钥"
      }
    }
  }
}

第四步:重启客户端

保存配置,完全退出并重启 Claude Desktop。

五、使用示例

以下是在配置好服务器后,与 AI 的自然语言对话示例。

示例1:搜索特定应用

用户输入搜索 ZoomEye 中所有运行 Apache Tomcat 的资产,只返回 5 条结果。

AI 会 Base64 编码查询字符串 app="Apache Tomcat",然后调用 zoomeye_search,参数为 qbase64: <编码后的字符串>, pagesize: 5

返回的结果会包含 IP、端口、域名、地理位置、服务 banner 等结构化信息。AI 会将这些信息整理成可读的回答。

示例2:按 IP 范围搜索

用户输入查询 1.1.1.1 到 1.1.1.10 这个 IP 段内的开放 443 端口的资产。

AI 会构造查询语法 ip:1.1.1.1-1.1.1.10 port:443,然后执行搜索。

示例3:指定返回字段

用户输入搜索所有标题中包含 "login" 的网站,只需要返回 IP、端口和标题。

AI 可以设置 fields: "ip,port,title",只返回需要的字段,减少数据传输。

示例4:分页获取大量结果

用户输入搜索 app="nginx",获取第 3 页,每页 50 条。

AI 会调用 zoomeye_search,参数为 page: 3, pagesize: 50

六、常见问题

问题1:提示 API 密钥无效或未经授权。

解决方案:

  1. 确认你的 ZoomEye 账号已激活,并且 API 密钥没有过期。
  2. 检查环境变量名称是否正确:ZOOMEYE_API_KEY
  3. 确认你是否有足够的查询配额。免费配额可能很低。

问题2:查询返回空结果或 total 为 0。

解决方案:

  1. 检查你的查询语法是否正确。尝试简单的语法,如 app:"nginx"
  2. 在 ZoomEye 网站上直接使用相同的语法测试,看是否能返回结果。
  3. 有些查询可能由于分词或匹配模式问题而不命中。利用 ZoomEye 官网的“测试分段”功能。

问题3:Base64 编码的要求有点麻烦,AI 能自动处理吗?

解决方案:可以。在提示词中,你可以要求 AI 先将查询字符串进行 Base64 编码,然后再调用工具。现代 AI 模型具备很好的编码能力。或者,你可以修改服务器源码,让它接受原始查询字符串并内部编码。

问题4:ZoomEye 和 Shodan 有什么区别?

解决方案:ZoomEye 由知道创宇公司开发,在中国和亚洲地区的数据覆盖更全面。它提供了类似 Shodan 的网络设备搜索能力,但在中文社区文档和支持上更好。两者各有侧重,可以互补使用。

问题5:我可以在本地完全离线使用这个服务器吗?

解决方案:不可以。该服务器依赖于 ZoomEye 的云端 API,必须在线使用。数据完全在 ZoomEye 服务器端,本地服务器只是一个代理。

七、总结

mcp_zoomeye 是官方为 ZoomEye 打造的一个高质量 MCP 服务器。它将 ZoomEye 强大的网络资产搜索能力无缝集成到了 AI 生态中,让安全研究人员、运维人员和分析师能够通过自然语言对话的方式探索全球网络空间。

该项目的亮点包括:

  • 官方维护:保证 API 兼容性和持续更新。
  • 专注网络资产:适合网络安全领域的专业查询。
  • 多种部署方式:适应从开发者个人实验到企业级集成的各种场景。
  • 缓存与重试:优化了性能和用户体验。

70 颗星反映了它在中文安全社区中受到的关注。对于使用 ZoomEye 的中国网络安全从业者,或者任何需要进行网络空间测绘的 AI 应用开发者,mcp_zoomeye 都是一个不可或缺的工具。

标签: 搜索与检索

已有 37 条评论

    1. janetb janetb

      The `proxy` parameter in API client suggests they support proxies.

    2. kevinp kevinp

      The `CHANGELOG.md` shows active bug fixing. Good sign.