ZoomEye MCP Server provides network asset information to Large Language Models (LLMs) through the Model Context Protocol. This server enables AI assistants to query ZoomEye's extensive database of cyber assets using search parameters and dorks, delivering real-time intelligence about internet-connected devices and services.
pip install mcp-server-zoomeye
After installation, run the server with:
python -m mcp_server_zoomeye
You can run the server using Docker without installing Python:
# Pull the latest image
docker pull zoomeyeteam/mcp-server-zoomeye:latest
# Run the container with your API key
docker run -i --rm -e ZOOMEYE_API_KEY=your_api_key_here zoomeyeteam/mcp-server-zoomeye:latest
The Docker images support both linux/amd64
and linux/arm64
platforms.
You can use the uv
package manager for faster installation:
# Install uv first (if you don't have it)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install in the current environment
uv pip install mcp-server-zoomeye
# Or run directly without installation using uvx
uvx mcp-server-zoomeye
To use this MCP server, you'll need a ZoomEye API key:
export ZOOMEYE_API_KEY="your_api_key_here"
Add this to Claude settings:
Using uvx:
"mcpServers": {
"zoomeye": {
"command": "uvx",
"args": ["mcp-server-zoomeye"],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
}
Using Docker:
"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"
}
}
}
Using pip installation:
"mcpServers": {
"zoomeye": {
"command": "python",
"args": ["-m", "mcp_server_zoomeye"],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
}
Add to Zed's settings.json:
Using uvx:
"context_servers": [
"mcp-server-zoomeye": {
"command": "uvx",
"args": ["mcp-server-zoomeye"],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
],
The server provides one main tool:
zoomeye_search
- Get network asset information based on query conditions
qbase64
(string): Base64 encoded query string for ZoomEye searchpage
(integer): View asset page number, default is 1pagesize
(integer): Number of records per page, default is 10, max 1000fields
(string): The fields to return, separated by commassub_type
(string): Data type, supports v4, v6, and web. Default is v4facets
(string): Statistical items, separated by commasignore_cache
(boolean): Whether to ignore the cache{
"name": "zoomeye_search",
"arguments": {
"qbase64": "app=\"Apache Tomcat\""
}
}
Retrieving specific fields:
{
"name": "zoomeye_search",
"arguments": {
"qbase64": "app=\"Apache\"",
"fields": "ip,port,domain,service,os,country,city"
}
}
Pagination:
{
"name": "zoomeye_search",
"arguments": {
"qbase64": "app=\"Apache\"",
"page": 2,
"pagesize": 20
}
}
Bypass caching:
{
"name": "zoomeye_search",
"arguments": {
"qbase64": "app=\"Apache\"",
"ignore_cache": true
}
}
To debug the server, use the MCP Inspector:
# For uvx installation
npx @modelcontextprotocol/inspector uvx mcp-server-zoomeye
# If developing locally
cd path/to/servers/src/mcp_server_zoomeye
npx @modelcontextprotocol/inspector uv run mcp-server-zoomeye
Authentication Errors
Connection Issues
No Results
Rate Limiting
To add this MCP server to Claude Code, run this command in your terminal:
claude mcp add-json "zoomeye" '{"command":"python","args":["-m","mcp_server_zoomeye"],"env":{"ZOOMEYE_API_KEY":"your_api_key_here"}}'
See the official Claude Code MCP documentation for more details.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"zoomeye": {
"command": "python",
"args": [
"-m",
"mcp_server_zoomeye"
],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.
To add this MCP server to Claude Desktop:
1. Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
2. Add this to your configuration file:
{
"mcpServers": {
"zoomeye": {
"command": "python",
"args": [
"-m",
"mcp_server_zoomeye"
],
"env": {
"ZOOMEYE_API_KEY": "your_api_key_here"
}
}
}
}
3. Restart Claude Desktop for the changes to take effect