Skip to main content
Glama
zoomeye-ai

ZoomEye MCP Server

Official
by zoomeye-ai

Servidor MCP de ZoomEye

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona información sobre activos de red según las condiciones de consulta. Este servidor permite que los Modelos de Lenguaje Grande (LLM) obtengan información sobre activos de red consultando ZoomEye mediante dorks y otros parámetros de búsqueda.

Este servidor MCP se integra con asistentes de IA y entornos de desarrollo como Claude Desktop, Cursor, Windsurf, Cline, Continue y Zed, lo que les permite buscar y analizar dispositivos, servicios y vulnerabilidades conectados a Internet a través de interacciones de lenguaje natural.

Características

  • Consultar ZoomEye para obtener información sobre activos de red mediante dorks

  • Mecanismo de almacenamiento en caché para mejorar el rendimiento y reducir las llamadas a la API

  • Mecanismo de reintento automático para solicitudes de API fallidas

  • Manejo y registro de errores integral

Related MCP server: Shodan-MCP-Server

Herramientas disponibles

  • zoomeye_search : obtiene información de activos de red según las condiciones de consulta.

    • Parámetros requeridos:

      • qbase64 (cadena): cadena de consulta codificada en Base64 para la búsqueda de ZoomEye

    • Parámetros opcionales:

      • page (entero): Ver número de página del activo, el valor predeterminado es 1

      • pagesize (entero): Número de registros por página, el valor predeterminado es 10, el máximo es 1000

      • fields (cadena): Los campos a devolver, separados por comas

      • sub_type (cadena): Tipo de dato, compatible con v4, v6 y web. El valor predeterminado es v4.

      • facets (cadena): elementos estadísticos, separados por comas si hay varios

      • ignore_cache (booleano): si se debe ignorar el caché

Guía de uso

Uso básico

Una vez que el servidor esté en funcionamiento, puedes interactuar con él a través de tu asistente de IA o entorno de desarrollo. Así es como se usa:

  1. Inicie el servidor utilizando uno de los métodos de instalación anteriores

  2. Configura tu asistente de IA (Claude Desktop, Cursor, Windsurf, Cline, Continue, Zed, etc.) para usar el servidor

  3. Consultar información de la red utilizando lenguaje natural

ejemplo de búsqueda

Guía de sintaxis de búsqueda

  • El alcance de búsqueda cubre dispositivos (IPv4, IPv6) y sitios web (dominios).

  • Al ingresar una cadena de búsqueda, el sistema coincidirá con palabras clave en modo "global", incluido el contenido de varios protocolos como HTTP, SSH, FTP, etc. (por ejemplo, encabezados de protocolo HTTP/HTTPS, cuerpo, SSL, título y otros banners de protocolo).

  • Las cadenas de búsqueda no distinguen entre mayúsculas y minúsculas y se segmentarán para su coincidencia (la página de resultados de búsqueda ofrece una función de prueba de segmentación). Al usar == para la búsqueda, se aplica una coincidencia exacta, distinguiendo entre mayúsculas y minúsculas, con una sintaxis estricta.

  • Utilice comillas para las cadenas de búsqueda (p. ej., "Sistema Cisco" o 'Sistema Cisco'). Si la cadena de búsqueda contiene comillas, utilice el carácter de escape, p. ej., "a" o "b". Si la cadena de búsqueda contiene paréntesis, utilice el carácter de escape, p. ej., portinfo().

Puede ver reglas de sintaxis de búsqueda más detalladas en prompts.py .

Para obtener más información sobre la API de búsqueda de ZoomEye, consulte la documentación de la API de ZoomEye v2 .

Empezando

Prerrequisitos

  1. Clave API de ZoomEye

    • Regístrese para obtener una cuenta en ZoomEye

    • Obtén tu clave API desde la configuración de tu cuenta

    • La clave API se utilizará para autenticar sus solicitudes a la API de ZoomEye

  2. Entorno de Python

    • Se requiere Python 3.10 o superior

    • Alternativamente, puede usar Docker para ejecutar el servidor sin instalar Python

Instalación

Uso de PIP

Alternativamente, puede instalar mcp-server-zoomeye a través de pip:

pip install mcp-server-zoomeye

Después de la instalación, puedes ejecutarlo como un script usando el siguiente comando:

python -m mcp_server_zoomeye

Usando Docker

También puede ejecutar el servidor ZoomEye MCP usando Docker:

Extraer desde 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

Nota : Proporcionamos imágenes Docker de múltiples arquitecturas que admiten plataformas linux/amd64 y linux/arm64 y pueden ejecutarse en procesadores Intel/AMD y ARM (como Apple Silicon).

Construir desde la fuente

Alternativamente, puedes crear la imagen de Docker desde la fuente:

# 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

Usando uv

uv es un instalador y solucionador rápido de paquetes de Python escrito en Rust. Es una alternativa moderna a pip que ofrece mejoras significativas de rendimiento.

Instalación de 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

Usando uvx para ejecutar mcp-server-zoomeye

No se requiere ninguna instalación específica al utilizar uvx , lo que le permite ejecutar paquetes de Python directamente:

Instalación con uv

Alternativamente, puede instalar el paquete usando 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

Configuración

Variables de entorno

El servidor ZoomEye MCP requiere la siguiente variable de entorno:

  • ZOOMEYE_API_KEY : Su clave API de ZoomEye para autenticación

Puede configurar esta variable de entorno de varias maneras:

  1. Exportar en su sesión de shell :

    export ZOOMEYE_API_KEY="your_api_key_here"
  2. Pasar directamente al ejecutar el contenedor (para Docker):

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

Configurar Claude.app

Agregue lo siguiente en la configuración de 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"
    }
  }
}

Configurar Zed

Agregue lo siguiente en settings.json de Zed:

"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"
    }
  }
},

Ejemplos de interacciones

Ejemplo 1: Recuperar activos globales de Apache Tomcat

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

Respuesta:

{
  "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
    }
  ]
}

Depuración y solución de problemas

Uso del inspector MCP

El Inspector de Protocolo de Contexto de Modelo es una herramienta que ayuda a depurar servidores MCP mediante la simulación de interacciones con el cliente. Puede usarlo para probar su servidor MCP de ZoomEye:

# 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

Problemas comunes

  1. Errores de autenticación

    • Asegúrese de que su clave API de ZoomEye sea correcta y esté configurada correctamente como variable de entorno

    • Comprueba que tu clave API no haya caducado ni haya sido revocada

  2. Problemas de conexión

    • Verificar su conexión a Internet

    • Compruebe si la API de ZoomEye está experimentando un tiempo de inactividad

  3. No hay resultados

    • Su consulta podría ser demasiado específica o contener errores de sintaxis.

    • Intente simplificar su consulta o utilizar términos de búsqueda diferentes.

  4. Limitación de velocidad

    • La API de ZoomEye tiene límites de velocidad según el tipo de cuenta

    • Distribuya sus solicitudes o actualice su cuenta para obtener límites más altos

Uso avanzado

Almacenamiento en caché

El servidor MCP de ZoomEye implementa el almacenamiento en caché para mejorar el rendimiento y reducir las llamadas API:

  • Las respuestas se almacenan en caché en función de los parámetros de consulta.

  • La duración del caché es configurable (predeterminado: 1 hora)

  • Puede omitir el caché configurando ignore_cache como true en su consulta

Campos personalizados

Puede solicitar campos específicos en los resultados de su consulta utilizando el parámetro fields :

{
  "name": "zoomeye_search",
  "arguments": {
    "qbase64": "app=\"Apache\"",
    "fields": "ip,port,domain,service,os,country,city"
  }
}

Paginación

Para las consultas que devuelven muchos resultados, puede paginarlos:

{
  "name": "zoomeye_search",
  "arguments": {
    "qbase64": "app=\"Apache\"",
    "page": 2,
    "pagesize": 20
  }
}

Contribuyendo

Invitamos a contribuir a mcp-server-zoomeye para ampliar y mejorar su funcionalidad. Ya sea añadiendo nuevas herramientas relacionadas, mejorando funciones existentes o mejorando la documentación, su aportación es valiosa.

Para ver ejemplos de otros servidores MCP y patrones de implementación, consulte: https://github.com/modelcontextprotocol/servers

¡Aceptamos solicitudes de incorporación de cambios! Siéntete libre de contribuir con nuevas ideas, correcciones de errores o mejoras para que mcp-server-zoomeye sea más robusto y práctico.

Licencia

mcp-server-zoomeye está licenciado bajo la Licencia MIT. Esto significa que usted tiene libertad de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más información, consulte el archivo de LICENCIA en el repositorio del proyecto.

Available Tools

3 tools
zoomeye_vuldb_by_idC

Search for detailed vulnerability information by vulnerability ID and return formatted results.

Use this tool to retrieve comprehensive security vulnerability details from the vulnerability
database using a vulnerability identifier (CVE, CNVD, CNNVD). Results include:
ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesA valid vulnerability identifier, eg: CVE-XXXX-XXXX,CNVD-XXXX-XXXX,CNNVD-XXXX-XXXX

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It indicates a read-only operation (search/retrieve), but fails to describe output format, pagination, rate limits, or any side effects. The abrupt end ('Results include:') leaves the agent guessing what the tool returns, which is a significant gap for transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but it is incomplete, ending with 'Results include:' without any continuation. This disrupts the structure and leaves the description unfinished. Every sentence should be complete and purposeful, and this one fails to deliver its intended content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain the return values comprehensively. It starts listing results but cuts off, providing zero information about what the formatted results contain. This is a major omission for a tool that only has one parameter and no other documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, with the parameter 'cve_id' described and examples given. The description repeats this information without adding substantial new meaning. Baseline is 3, and since no extra semantics are provided, the score remains at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for detailed vulnerability information by vulnerability ID', specifying the verb and resource. It lists the accepted ID formats (CVE, CNVD, CNNVD), which helps the agent understand the tool's scope. However, it does not differentiate from sibling tools like 'zoomeye_search' or 'zoomeye_vuldb_by_keyword', and the incomplete sentence 'Results include:' slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use this tool to retrieve...' but provides no guidance on when to use it versus alternatives, such as the sibling tool 'zoomeye_vuldb_by_keyword'. There is no mention of prerequisites, limitations, or exclusions, leaving the agent to infer usage context without explicit advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zoomeye_vuldb_by_keywordA

Search ZoomEye's vulnerability database for security vulnerabilities based on a specified keyword.

This function queries the ZoomEye vulnerability database to retrieve information about known security vulnerabilities associated with specific products, vendors. Results include vulnerability details such as CVE IDs, severity ratings, affected versions, and vulnerability descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesSearch term to query the vulnerability database. This can be a product name, vendor name (e.g., "nginx", "mysql", "tomcat", "WordPress", "hikvision", "huawei").
page_sizeNoNumber of records per page, default is 10, maximum is 100.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description only lists output fields without behavioral disclosures like read-only guarantee, rate limits, or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, though the second paragraph could be shortened without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description reasonably explains return fields (CVE, severity, etc.) and implies pagination via page_size, though total count is omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description enhances understanding by providing examples for keyword and clarifying page_size defaults/maximum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches ZoomEye's vulnerability database by keyword, and implicitly distinguishes it from siblings (search vs. by ID).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains it retrieves vulnerability info for products/vendors but does not explicitly compare with zoomeye_search or zoomeye_vuldb_by_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedzoomeye_search
    • First observedzoomeye_vuldb_by_id
    • First observedzoomeye_vuldb_by_keyword

TDQS

B3.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a distinct purpose: one for general asset search, one for vulnerability detail by ID, and one for vulnerability keyword search. There is no overlap in functionality.

Naming Consistency5/5

All tools follow a consistent 'zoomeye_' prefix with snake_case naming: search, vuldb_by_id, vuldb_by_keyword. Pattern is uniform and predictable.

Tool Count4/5

With 3 tools, the set is minimal but appropriate for the ZoomEye domain, covering asset search and vulnerability queries. Slightly thin but reasonable given the focused scope.

Completeness3/5

The tools cover basic search and vulnerability lookup, but lack features like retrieving detailed host info, filtering by specific fields, or obtaining result counts. Some operations are missing for full workflow coverage.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for querying the Shodan API and Shodan CVEDB. This server provides tools for IP lookups, device searches, DNS lookups, vulnerability queries, CPE lookups, and more.
    7
    362 npm
    174
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    This is a Model Context Protocol (MCP) server that provides access to the Shodan API. It allows you to programmatically query Shodan for information about devices, vulnerabilities, and more.
    2
    -
  • A
    license
    B
    quality
    B
    maintenance
    Aggregates multiple cyberspace search engines (FOFA, Quake, Hunter, ZoomEye) into a unified MCP server, enabling asset search, pagination, statistics, and account info retrieval.
    26
    MIT

Appeared in Searches