search-webauth-security

ZoomEye MCP Server

by zoomeye-ai

ZoomEye MCP Server — lightweight ZoomEye client to query the ZoomEye API for fast internet asset search and discovery.

MCP server for querying the ZoomEye API

github stars

66

7-day free trial availableGlobal internet asset databaseReal-time network intelligence

best for

  • / Security researchers conducting reconnaissance
  • / Network administrators monitoring infrastructure
  • / Bug bounty hunters finding attack surfaces
  • / Threat intelligence analysts

capabilities

  • / Query global network assets by IP, domain, or service
  • / Search for devices using specialized dorks and filters
  • / Discover open ports and running services
  • / Analyze network vulnerabilities and exposures
  • / Track real-time changes in network infrastructure

what it does

Provides network asset discovery and reconnaissance through ZoomEye's cyber asset intelligence API. Search and analyze internet-connected devices, services, and vulnerabilities globally.

about

ZoomEye MCP Server is an official MCP server published by zoomeye-ai that provides AI assistants with tools and capabilities via the Model Context Protocol. ZoomEye MCP Server — lightweight ZoomEye client to query the ZoomEye API for fast internet asset search and discovery. It is categorized under search web, auth security.

how to install

You can install ZoomEye MCP Server in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.

license

MIT

ZoomEye MCP Server is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.

readme

🚀 ZoomEye MCP Server

A Model Context Protocol (MCP) server that provides network asset information based on query conditions. This server allows Large Language Models (LLMs) to obtain network asset information by querying ZoomEye using dorks and other search parameters.

🔔 Announcement

🎉 We are excited to announce the official open-source release of ZoomEye MCP Server — a powerful Model Context Protocol (MCP) server that brings real-time cyber asset intelligence to AI assistants and development environments.

🚀 Free Trial: 7-Day FREE Access to ZoomEye MCP! Experience ZoomEye MCP — the AI-powered cyberspace asset search engine — absolutely free for 7 days!

🔍 Search global internet assets, track real-time changes, and unlock AI-driven insights — all in one place.

👉 How to claim:

  1. Follow us on Twitter: @zoomeye_team
  2. DM us "MCP" and your MCP setup screenshot
  3. Get instant access to your 7-day membership

🎁 Limited-time free trial — explore the power of AI asset search today!

💡 Provide insightful feedback that gets officially adopted, and you'll unlock even more rewards!

🔧 Fully compatible with leading MCP environments:

  • Claude Desktop
  • Cursor
  • Windsurf
  • Cline
  • Continue
  • Zed
  • Cherry Studio
  • Chatbox

🔗 Explore ZoomEye MCP Server on:

We welcome everyone to use, explore, and contribute!

🔑 How can I get a ZoomEye API key?

To use this MCP server, you’ll need a ZoomEye API key.

  1. Go to https://www.zoomeye.ai

  2. Register or log in

  3. Click your avatar → Profile

  4. Copy your API-KEY

  5. Set the environment variable:

    export ZOOMEYE_API_KEY="your_api_key_here"

zoomeye1

zoomeye2

Features

  • Query ZoomEye for network asset information using dorks
  • Caching mechanism to improve performance and reduce API calls
  • Automatic retry mechanism for failed API requests
  • Comprehensive error handling and logging

Available Tools

  • zoomeye_search - Get network asset information based on query conditions.
    • Required parameters:
      • qbase64 (string): Base64 encoded query string for ZoomEye search
    • Optional parameters:
      • page (integer): View asset page number, default is 1
      • pagesize (integer): Number of records per page, default is 10, maximum is 1000
      • fields (string): The fields to return, separated by commas
      • sub_type (string): Data type, supports v4, v6, and web. Default is v4
      • facets (string): Statistical items, separated by commas if there are multiple
      • ignore_cache (boolean): Whether to ignore the cache

Usage Guide

Basic Usage

Once the server is running, you can interact with it through your AI assistant or development environment. Here's how to use it:

  1. Start the server using one of the installation methods above
  2. Configure your AI assistant (Claude Desktop, Cursor, Windsurf, Cline, Continue, Zed, etc.) to use the server
  3. Query network information using natural language

searchexample

Search Syntax Guide

  • Search Scope covers devices (IPv4, IPv6) and websites (domains).
  • When entering a search string, the system will match keywords in "global" mode, including content from various protocols such as HTTP, SSH, FTP, etc. (e.g., HTTP/HTTPS protocol headers, body, SSL, title, and other protocol banners).
  • Search strings are case-insensitive and will be segmented for matching (the search results page provides a " segmentation" test feature). When using == for search, it enforces exact case-sensitive matching with strict syntax.
  • Please use quotes for search strings (e.g., "Cisco System" or 'Cisco System'). If the search string contains quotes, use the escape character, e.g.,"a"b". If the search string contains parentheses, use the escape character, e.g., portinfo().

You can see more detailed search syntax rules in prompts.py.

For more information on the ZoomEye Search API, refer to the ZoomEye API v2 documentation.

Getting Started

Prerequisites

  1. ZoomEye API Key

    • Register for an account at ZoomEye
    • Obtain your API key from your account settings
    • The API key will be used to authenticate your requests to the ZoomEye API
  2. Python Environment

    • Python 3.10 or higher is required
    • Alternatively, you can use Docker to run the server without installing Python

Installation

Using PIP

Alternatively, you can install mcp-server-zoomeye via pip:

pip install mcp-server-zoomeye

After installation, you can run it as a script using the following command:

python -m mcp_server_zoomeye

Using Docker

You can also run the ZoomEye MCP server using Docker:

Pull from Docker Hub

# 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

Note: We provide multi-architecture Docker images that support linux/amd64 and linux/arm64 platforms and can run on Intel/AMD and ARM (such as Apple Silicon) processors.

Build from Source

Alternatively, you can build the Docker image from source:

# Clone the repository
git clone https://github.com/zoomeye-ai/mcp_zoomeye.git
cd mcp_zoomeye

# Build the Docker image
docker build -t zoomeyeteam/mcp-server-zoomeye:local .

# Run the container
docker run -i --rm -e ZOOMEYE_API_KEY=your_api_key_here zoomeyeteam/mcp-server-zoomeye:local

Using uv

uv is a fast Python package installer and resolver written in Rust. It's a modern alternative to pip that offers significant performance improvements.

Installation of uv

# Install uv using curl (macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or using PowerShell (Windows)
irm https://astral.sh/uv/install.ps1 | iex

# Or using Homebrew (macOS)
brew install uv

Using uvx to run mcp-server-zoomeye

No specific installation is required when using uvx, which allows you to run Python packages directly:

Installing with uv

Alternatively, you can install the package using uv:

# Install in the current environment
uv pip install mcp-server-zoomeye

# Or create and install in a new virtual environment
uv venv
uv pip install mcp-server-zoomeye

Configuration

Environment Variables

The ZoomEye MCP server requires the following environment variable:

  • ZOOMEYE_API_KEY: Your ZoomEye API key for authentication

You can set this environment variable in several ways:

  1. Export in your shell session:

    export ZOOMEYE_API_KEY="your_api_key_here"
    
  2. Pass directly when running the container (for Docker):

    docker run -i --rm -e ZOOMEYE_API_KEY=your_api_key_here zoomeyeteam/mcp-server-zoomeye:latest
    

Configure Claude.app

Add the following in Claude settings:

<details> <summary>Using uvx</summary>
"mcpServers": {
  "zoomeye": {
    "command": "uvx",
    "args": ["mcp-server-zoomeye"],
    "env": {
        "ZOOMEYE_API_KEY": "your_api_key_here"
    }
  }
}
</details> <details> <summary>Using docker</summary>
"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"
    }
  }
}
</details> <details> <summary>Installed via pip</summary>
"mcpServers": {
  "zoomeye": {
    "command": "python",
    "args": ["-m", "mcp_server_zoomeye"],
    "env": {
        "ZOOMEYE_API_KEY": "your_api_key_here"
    }
  }
}
</details>

Configure Zed

Add the following in Zed's settings.json:

<details> <summary>Using uvx</summary>
"context_servers": [
  "mcp-server-zoomeye": {
    "command": "uvx",
    "args": ["mcp-server-zoomeye"],
    "env": {
        "ZOOMEYE_API_KEY": "your_api_key_here"
    }
  }
],
</details> <details> <summary>Installed via pip</summary>
"context_servers": {
  "mcp-server-zoomeye": {
    "command": "python",
    "args": ["-m", "mcp_server_zoomeye"],
    "env": {
        "ZOOMEYE_API_KEY": "your_api_key_here"
    }
  }
},
</details>

Example Interactions

Example 1: Retrieve global Apache Tomcat assets

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

Response:

{
  "code": 60000,
  "message": "success",
  "total": 163139107,
  "query": "app="Apache Tomcat"",
  "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...",
      "head

---