zoomeye_vuldb_by_id
Search for detailed vulnerability information by CVE, CNVD, or CNNVD ID and receive comprehensive, formatted security vulnerability details.
Instructions
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:Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | A valid vulnerability identifier, eg: CVE-XXXX-XXXX,CNVD-XXXX-XXXX,CNNVD-XXXX-XXXX |
Implementation Reference
- src/mcp_server_zoomeye/server.py:53-56 (handler)Handler function `zoomeye_query_vuldb_by_id` that creates a ZoomeyeService and calls `query_vulnerability_by_id(cve_id)`.
def zoomeye_query_vuldb_by_id(cve_id: str): """Search for vulnerabilities by ID. eg: CVE-XXXX-XXXX,CNVD-XXXX-XXXX,CNNVD-XXXX-XXXX""" service = ZoomeyeService() return service.query_vulnerability_by_id(cve_id) - ZoomeyeService.query_vulnerability_by_id() method – makes a GET request to https://api.zoomeye.ai/v2/vuldb/{cve_id} with the API key and returns the JSON response.
async def query_vulnerability_by_id(self, cve_id: str): """Query vulnerability by ID. Args: cve_id (str): The CVE ID to query. Returns: dict: The API response data. Raises: ValueError: If API key is not provided or API request fails. """ url = "https://api.zoomeye.ai/v2/vuldb/{}".format(cve_id) headers = {"API-KEY": self.key, "Content-Type": "application/json"} try: client = await self.get_client() async with client: response = await client.get(url, headers=headers) response.raise_for_status() # Raise exception for HTTP errors return response.json() except httpx.HTTPError as e: raise ValueError(f"Error querying ZoomEye API: {str(e)}") except json.JSONDecodeError: raise ValueError("Invalid JSON response from ZoomEye API") - src/mcp_server_zoomeye/server.py:17-21 (registration)Enum definition ZoomeyeTools.ZOOMEYE_VULDB_BY_ID = "zoomeye_vuldb_by_id" – declares the tool identifier string.
class ZoomeyeTools(str, Enum): ZOOMEYE_SEARCH = "zoomeye_search" """Search query for ZoomEye.""" ZOOMEYE_VULDB_BY_ID = "zoomeye_vuldb_by_id" """Query vulnerability by ID.""" - src/mcp_server_zoomeye/server.py:219-235 (registration)Tool registration inside list_tools() – defines the tool's name, description, and input schema (requires 'cve_id' string).
Tool( name=ZoomeyeTools.ZOOMEYE_VULDB_BY_ID, description="""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:""", inputSchema={ "type": "object", "properties": { "cve_id": { "type": "string", "description": "A valid vulnerability identifier, eg: CVE-XXXX-XXXX,CNVD-XXXX-XXXX,CNNVD-XXXX-XXXX", } }, "required": ["cve_id"], }, ), - src/mcp_server_zoomeye/server.py:293-297 (handler)Tool call dispatch: case ZoomeyeTools.ZOOMEYE_VULDB_BY_ID – extracts cve_id from arguments, validates it, then calls zoomeye_service.query_vulnerability_by_id(cve_id).
case ZoomeyeTools.ZOOMEYE_VULDB_BY_ID: cve_id = arguments.get("cve_id") if not cve_id: raise ValueError("Missing required argument: cve_id") result = await zoomeye_service.query_vulnerability_by_id(cve_id)