这是一个基于查询条件提供网络资产信息的模型上下文协议(MCP)服务器。该服务器允许大型语言模型(LLM)通过使用dork搜索语法等参数向ZoomEye发起查询,从而获取网络资产信息。
该MCP服务器已集成到Claude Desktop、Cursor、Windsurf、Cline、Continue和Zed等AI助手和开发环境中,使它们能够通过自然语言交互搜索和分析联网设备、服务和漏洞。
zoomeye_search
- 根据查询条件获取网络资产信息
qbase64
(字符串):ZoomEye搜索的Base64编码查询字符串page
(整数):查看资产页码,默认为1pagesize
(整数):每页记录数,默认为10,最大为1000fields
(字符串):要返回的字段,用逗号分隔sub_type
(字符串):数据类型,支持v4、v6和web,默认为v4facets
(字符串):统计项,如果有多个则用逗号分隔ignore_cache
(布尔值):是否忽略缓存服务器运行后,您可以通过AI助手或开发环境与之交互。使用方法如下:
您可以在prompts.py中查看更详细的搜索语法规则。
有关ZoomEye搜索API的更多信息,请参阅ZoomEye API v2文档。
ZoomEye API密钥
Python环境
您也可以通过pip安装mcp-server-zoomeye
:
pip install mcp-server-zoomeye
安装后,您可以使用以下命令作为脚本运行:
python -m mcp_server_zoomeye
您还可以使用Docker运行ZoomEye MCP服务器:
# 拉取最新镜像
docker pull zoomeyeteam/mcp-server-zoomeye:latest
# 使用您的API密钥运行容器
docker run -i --rm -e ZOOMEYE_API_KEY=your_api_key_here zoomeyeteam/mcp-server-zoomeye:latest

注意:我们提供支持
linux/amd64
和linux/arm64
平台的多架构Docker镜像,可在Intel/AMD和ARM(如Apple Silicon)处理器上运行。
或者,您可以从源代码构建Docker镜像:
# 克隆仓库
git clone https://github.com/zoomeye-ai/mcp_zoomeye.git
cd mcp_zoomeye
# 构建Docker镜像
docker build -t zoomeyeteam/mcp-server-zoomeye:local .
# 运行容器
docker run -i --rm -e ZOOMEYE_API_KEY=your_api_key_here zoomeyeteam/mcp-server-zoomeye:local

uv
是一个用Rust编写的快速Python包安装程序和解析器,是pip的现代替代品,提供显著的性能提升。
# 使用curl安装uv (macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 或者使用PowerShell安装 (Windows)
irm https://astral.sh/uv/install.ps1 | iex
# 或者使用Homebrew安装 (macOS)
brew install uv

使用uvx
时不需要特定安装,它允许您直接运行Python包:
或者,您可以使用uv安装该包:
# 在当前环境中安装
uv pip install mcp-server-zoomeye
# 或者创建并安装到新的虚拟环境
uv venv
uv pip install mcp-server-zoomeye

ZoomEye MCP服务器需要以下环境变量:
ZOOMEYE_API_KEY
:用于身份验证的ZoomEye API密钥您可以通过以下几种方式设置此环境变量:
在shell会话中导出:
export ZOOMEYE_API_KEY="your_api_key_here"

运行容器时直接传递(对于Docker):
docker run -i --rm -e ZOOMEYE_API_KEY=your_api_key_here zoomeyeteam/mcp-server-zoomeye:latest

在Claude设置中添加以下内容:
"mcpServers": {
"zoomeye": {
"command": "uvx",
"args": ["mcp-server-zoomeye"],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
}

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

"mcpServers": {
"zoomeye": {
"command": "python",
"args": ["-m", "mcp_server_zoomeye"],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
}

在Zed的settings.json中添加以下内容:
"context_servers": [
"mcp-server-zoomeye": {
"command": "uvx",
"args": ["mcp-server-zoomeye"],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
],

"context_servers": {
"mcp-server-zoomeye": {
"command": "python",
"args": ["-m", "mcp_server_zoomeye"],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
},

{
"name": "zoomeye_search",
"arguments": {
"qbase64": "app=\"Apache Tomcat\""
}
}

响应:
{
"code": 60000,
"message": "success",
"total": 163139107,
"query": "title=\"cisco vpn\"",
"data": [
{
"url": "https://1.1.1.1:443",
"ssl.jarm": "29d29d15d29d29d00029d29d29d29dea0f89a2e5fb09e4d8e099befed92cfa",
"ssl.ja3s": "45094d08156d110d8ee97b204143db14",
"iconhash_md5": "f3418a443e7d841097c714d69ec4bcb8",
"robots_md5": "0b5ce08db7fb8fffe4e14d05588d49d9",
"security_md5": "0b5ce08db7fb8fffe4e14d05588d49d9",
"ip": "1.1.1.1",
"domain": "www.google.com",
"hostname": "SPACEX",
"os": "windows",
"port": 443,
"service": "https",
"title": ["GoogleGoogle appsGoogle Search"],
"version": "1.1.0",
"device": "webcam",
"rdns": "c01031-001.cust.wallcloud.ch",
"product": "OpenSSD",
"header": "HTTP/1.1 302 Found Location: https://www.google.com/?gws_rd=ssl Cache-Control: private...",
"header_hash": "27f9973fe57298c3b63919259877a84d",
"body": "HTTP/1.1 302 Found Location: https://www.google.com/?gws_rd=ssl Cache-Control: private...",
"body_hash": "84a18166fde3ee7e7c974b8d1e7e21b4",
"banner": "SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3",
"update_time": "2024-07-03T14:34:10",
"header.server.name": "nginx",
"header.server.version": "1.8.1",
"continent.name": "Europe",
"country.name": "Germany",
"province.name": "Hesse",
"city.name": "Frankfurt",
"lon": "118.753262",
"lat": "32.064838",
"isp.name": "aviel.ru",
"organization.name": "SERVISFIRST BANK",
"zipcode": "210003",
"idc": 0,
"honeypot": 0,
"asn": 4837,
"protocol": "tcp",
"ssl": "SSL Certificate Version: TLS 1.2 CipherSuit: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256...",
"primary_industry": "Finance",
"sub_industry": "bank",
"rank": 60
}
]
}

模型上下文协议检查器是一个通过模拟客户端交互来调试MCP服务器的工具。您可以使用它来测试您的ZoomEye MCP服务器:
# 对于uvx安装
npx @modelcontextprotocol/inspector uvx mcp-server-zoomeye
# 如果本地开发
cd path/to/servers/src/mcp_server_zoomeye
npx @modelcontextprotocol/inspector uv run mcp-server-zoomeye

身份验证错误
连接问题
无结果
速率限制
ZoomEye MCP服务器实现了缓存以提高性能并减少API调用:
ignore_cache
为true
来绕过缓存您可以在查询结果中请求特定字段,使用fields
参数:
{
"name": "zoomeye_search",
"arguments": {
"qbase64": "app=\"Apache\"",
"fields": "ip,port,domain,service,os,country,city"
}
}

对于返回大量结果的查询,您可以分页浏览:
{
"name": "zoomeye_search",
"arguments": {
"qbase64": "app=\"Apache\"",
"page": 2,
"pagesize": 20
}
}

我们鼓励为mcp-server-zoomeye做出贡献,以帮助扩展和改进其功能。无论是添加新的相关工具、增强现有功能还是改进文档,您的贡献都很有价值。
有关其他MCP服务器和实现模式的示例,请参阅:
https://github.com/modelcontextprotocol/servers
欢迎提交拉取请求!请随时贡献新想法、错误修复或增强功能,使mcp-server-zoomeye更加强大和实用。
mcp-server-zoomeye采用MIT许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守MIT许可证的条款和条件。有关更多信息,请参阅项目仓库中的LICENSE文件。