SurveyHub-MCP
SurveyHub-MCP is a unified MCP server that aggregates five major cyberspace asset mapping platforms — FOFA, 360 Quake, Hunter, ZoomEye, and DayDayMap — into a single interface for asset search, aggregation, and account management.
FOFA
fofa_search/fofa_search_next– Asset search with standard and continuous paginationfofa_search_stats– Statistical aggregation by protocol, port, country, etc. (throttled)fofa_host– Host aggregation data for a specific IP/hostnamefofa_user_info– Account status, quota, and membership info
360 Quake
quake_service_search– Real-time service search (up to 500 results)quake_service_scroll– Deep-pagination search for large datasetsquake_service_aggregation– Aggregation queries on up to 2 fieldsquake_filterable_fields/quake_aggregation_fields– List available filter/aggregation fieldsquake_user_info– User details, quota, and role
Hunter (Personal & Enterprise)
Asset search with filtering by date, status code, and web type
Batch task creation (via query or CSV), status monitoring, CSV download, and (enterprise) JSON result pulling
User info and quota for both editions; enterprise adds whois, body, and vulnerability fields
ZoomEye
zoomeye_search– Paid-account asset search with facets and sub-type filtering (v4/v6/web)zoomeye_user_info– Subscription and points information
DayDayMap
daydaymap_search– Asset search with rich query syntax covering IP, domain, geo, ICP, ASN, protocol, device, certificate, vulnerability, and organization fields
Additional Features
Prompts:
surveyhub_search_plan(generate multi-platform search plans) andsurveyhub_query_help(check and optimize queries)Resource references: Query syntax and API documentation for all platforms via
surveyhub://reference/URIsRate limiting & circuit breaking: Per-platform throttling and a circuit breaker (pauses 15s after 2 consecutive failures)
Error handling: Local parameter validation and structured error reporting for auth, rate limit, and timeout issues
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SurveyHub-MCPshow my FOFA account info"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
支持平台
平台 | 能力 |
FOFA | 资产搜索、连续翻页、统计聚合、Host 聚合、账号信息 |
360 Quake | 服务搜索、深度翻页、服务聚合、筛选字段、聚合字段、账号信息 |
Hunter | 资产搜索、批量任务、任务状态、结果下载、结果拉取、账号信息 |
ZoomEye | 资产搜索、账号信息 |
DayDayMap | 资产搜索 |
Related MCP server: FOFA Quake Hunter MCP Server
快速开始
通过 pip 安装
要求 Python >=3.10,MCP Python SDK >=2.0.0,<3。用户无需 clone 源码,可直接从 PyPI 安装:
python -m pip install -U surveyhub-mcp安装后可直接启动聚合 MCP Server:
surveyhub-mcp服务同时兼容 MCP 2026-07-28 和 2025-11-25;SDK 会根据客户端自动选择
server/discover 或传统 initialize 流程。
MCP 客户端配置:
{
"mcpServers": {
"surveyhub": {
"command": "surveyhub-mcp",
"args": [],
"env": {
"CN_FOFA_KEY": "your_fofa_key",
"CN_FOFA_EMAIL": "optional_fofa_email",
"CN_QUAKE_KEY": "your_quake_key",
"CN_ZOOMEYE_API_KEY": "your_zoomeye_api_key",
"CN_HUNTER_ENTERPRISE_KEY": "your_hunter_enterprise_key",
"CN_DAYDAYMAP_API_KEY": "your_daydaymap_api_key"
}
}
}
}只运行单个平台入口时:
fofa-mcp
quake-mcp
zoomeye-mcp
hunter-personal-mcp # 个人版
hunter-enterprise-mcp # 企业版
daydaymap-mcp通过 uvx 免安装运行
如果不想提前安装,也可以在 MCP 客户端中使用 uvx 直接运行 PyPI 包:
{
"mcpServers": {
"surveyhub": {
"command": "uvx",
"args": [
"surveyhub-mcp"
],
"env": {
"CN_FOFA_KEY": "your_fofa_key",
"CN_FOFA_EMAIL": "optional_fofa_email",
"CN_QUAKE_KEY": "your_quake_key",
"CN_ZOOMEYE_API_KEY": "your_zoomeye_api_key",
"CN_HUNTER_ENTERPRISE_KEY": "your_hunter_enterprise_key",
"CN_DAYDAYMAP_API_KEY": "your_daydaymap_api_key"
}
}
}
}只运行单个平台入口时:
uvx --from surveyhub-mcp fofa-mcp
uvx --from surveyhub-mcp quake-mcp
uvx --from surveyhub-mcp zoomeye-mcp
uvx --from surveyhub-mcp hunter-personal-mcp
uvx --from surveyhub-mcp hunter-enterprise-mcp
uvx --from surveyhub-mcp daydaymap-mcp从源码运行
git clone https://github.com/helGayhub233/SurveyHub-MCP.git
cd SurveyHub-MCP
uv sync
uv run surveyhub-mcp也可以只启动单个平台:
uv run fofa-mcp
uv run quake-mcp
uv run zoomeye-mcp
uv run hunter-personal-mcp
uv run hunter-enterprise-mcp
uv run daydaymap-mcpMCP 配置
从源码运行时,推荐使用 uv --directory 固定项目目录。使用 PyPI 包时可直接参考上方 pip 或 uvx 配置。
{
"mcpServers": {
"surveyhub": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/SurveyHub-MCP",
"run",
"surveyhub-mcp"
],
"env": {
"CN_FOFA_KEY": "your_fofa_key",
"CN_FOFA_EMAIL": "optional_fofa_email",
"CN_QUAKE_KEY": "your_quake_key",
"CN_ZOOMEYE_API_KEY": "your_zoomeye_api_key",
"CN_HUNTER_ENTERPRISE_KEY": "your_hunter_enterprise_key",
"CN_DAYDAYMAP_API_KEY": "your_daydaymap_api_key"
}
}
}
}只使用某一个平台时,把 args 最后一个命令替换为对应入口,并只保留对应平台的 Key。
平台 | 单平台入口 | 必要环境变量 |
FOFA |
|
|
Quake |
|
|
ZoomEye |
|
|
Hunter 个人版 |
|
|
Hunter 企业版 |
|
|
DayDayMap |
|
|
mcp.json.example 和 .env.example 提供了可直接修改的示例。
Hunter 版本路由
聚合入口会按 MCP 子进程实际收到的凭据选择 Hunter 工具族:只配置
CN_HUNTER_ENTERPRISE_KEY 时仅暴露 hunter_enterprise_*,只配置
CN_HUNTER_PERSONAL_KEY 时仅暴露 hunter_personal_*。共享的 CN_HUNTER_KEY
无法表明账户版本,因此会保留两组工具供调用者明确选择;未配置
Hunter Key 时也会保留两组 schema,用于暴露配置要求。
一般只应选择下列一种配置,不要把占位值同时填入三个变量:
账户类型 | 建议配置 | 实际暴露的工具 |
Hunter 企业版 |
|
|
Hunter 个人版 |
|
|
旧版共享配置 |
| 两组 Hunter 工具 |
同时设置共享 CN_HUNTER_KEY 和任一版本专用 Key,也可能使两组工具同时
出现,因此新配置应优先使用版本专用变量。
如果已配置企业版仍提示未配置,请检查 Key 是否放在 MCP 客户端的
mcpServers.<name>.env 中,而不是只存在于另一个终端。环境变量修改后必须重启
MCP 子进程。企业版也可直接使用 hunter-enterprise-mcp,该入口只暴露
6 个企业版工具,能进一步避免 Agent 误选个人版。如果仍调用到错误版本,
返回的 error.type=wrong_hunter_edition 和 error.details.recommended_tool 会指明已配置版本及
应改用的工具;不应将该错误概括为“Hunter 未配置”。
环境变量
环境变量使用 CN_ 前缀命名规范。
环境变量 | 说明 |
| FOFA API Key |
| FOFA Email |
| 360 Quake API Key |
| ZoomEye API Key |
| Hunter 通用 fallback API Key |
| Hunter 个人版 API Key |
| Hunter 企业版 API Key |
| DayDayMap API Key |
API Key 获取入口:
FOFA:
https://fofa.infoQuake:
https://quake.360.netZoomEye:
https://www.zoomeye.orgHunter:
https://hunter.qianxin.comDayDayMap:
https://www.daydaymap.com
工具列表
下表是项目的完整能力集,不代表每个运行实例都会暴露全部工具。Hunter 工具会按 上述凭据版本动态选择,单平台入口则只暴露对应平台的工具。
工具名称 | 所属平台 | 说明 |
| FOFA | 常规资产搜索 |
| FOFA | 连续翻页搜索 |
| FOFA | 统计聚合 |
| FOFA | Host 聚合 |
| FOFA | 账号信息 |
| Quake | 用户信息 |
| Quake | 服务数据可筛选字段 |
| Quake | 实时服务搜索 |
| Quake | 深度翻页搜索 |
| Quake | 兼容别名,等同于 |
| Quake | 聚合字段列表 |
| Quake | 服务聚合查询 |
| ZoomEye | 用户信息、订阅信息和积分情况 |
| ZoomEye | 付费账号 v2 资产搜索 |
| Hunter 个人版 | 资产搜索 |
| Hunter 个人版 | 创建批量任务 |
| Hunter 个人版 | 查询批量任务状态 |
| Hunter 个人版 | 下载批量任务结果 |
| Hunter 个人版 | 账号信息 |
| Hunter 企业版 | 资产搜索 |
| Hunter 企业版 | 创建批量任务 |
| Hunter 企业版 | 查询批量任务状态 |
| Hunter 企业版 | 下载批量任务结果 |
| Hunter 企业版 | 拉取批量任务结果 JSON |
| Hunter 企业版 | 账号信息 |
| DayDayMap | 资产搜索 |
工具返回结构化结果:成功时包含 ok=true、platform 和 data 或 text;失败时包含 ok=false、platform 和 error。meta.execution 还会返回 request_id、脱敏请求指纹、传输状态、重试安全性、配额风险与数据完整性,便于 AI 区分“确认空结果”与“执行结果未知”。
计费型资产搜索默认使用 retry_mode=safe_only:仅在请求确认未发送的连接或连接池失败时自动重试;写入或读取超时会返回 final_state=indeterminate,不会自动重发。相同指纹的请求在未知状态后 60 秒内会被请求账本抑制;只有明确接受重复扣费风险时才应设置 force_retry=true。
资源提示
服务会暴露查询语法和 API 文档资源,URI 前缀为 surveyhub://reference/,例如:
surveyhub://reference/fofa-syntaxsurveyhub://reference/quake-syntaxsurveyhub://reference/hunter-syntaxsurveyhub://reference/zoomeye-syntaxsurveyhub://reference/daydaymap-api
聚合入口额外提供两个 Prompt:
surveyhub_search_plan:根据目标和平台生成资产搜索计划surveyhub_query_help:检查并优化指定平台查询语句
请求限制
项目会对可在本地判断的参数做校验或节流。账号等级、积分额度、CSV 文件内容等仍以平台返回为准。
平台 | 工具 | 控制方式 |
FOFA |
| 进程内节流, |
FOFA |
| 进程内节流, |
FOFA |
| 本地校验,返回 |
FOFA |
| 本地校验,返回 |
FOFA |
| 不使用未文档化响应字段控制重试; |
Quake | 全部工具 | 进程内节流, |
Quake |
| 参数 schema 限制, |
Quake |
| 根据官方可筛选字段清单移除非法 |
Quake | 搜索与聚合工具 | 默认 |
Quake |
| 本地校验聚合字段最多 2 个,参数 schema 限制 |
ZoomEye |
| 仅调用付费账号 |
Hunter 个人版 | 全部搜索工具 | 基于 API Key 的 SQLite 跨进程共享节流, |
Hunter 个人版 | 搜索和批量查询语句 | 默认将 |
Hunter 个人版 | 批量任务 | 工具描述提示平台限制: |
Hunter 企业版 | 全部搜索工具 | 基于 API Key 的 SQLite 跨进程共享节流, |
Hunter 企业版 | 搜索和批量查询语句 | 默认将 |
Hunter 企业版 | 批量任务 | 工具描述提示平台限制: |
DayDayMap |
| 本地拒绝空白查询;限制 |
全部平台 | 全部 HTTP 请求 | 进程内熔断保护,连续 3 次可恢复失败后暂停 15 秒 |
搜索响应的顶层 meta 包含 MCP 实际执行信息,例如 original_query、executed_query、attempts 和 partial_data;顶层 warnings 保留不会使请求失败、但可能影响完整性的供应商或参数提示。
FOFA 和 Quake 的频率控制、以及全部平台的熔断状态保存在单 MCP 进程内;Hunter 频率控制会按 API Key 通过本地 SQLite 在多个 MCP 进程之间共享。
API 文档
已整理的接口文档位于 docs/api/:
docs/api/fofa_api.mddocs/api/quake_api.mddocs/api/zoomeye_api.mddocs/api/hunter_personal_api.mddocs/api/hunter_enterprise_api.mddocs/api/daydaymap_api.md
版本发布和迭代记录见 CHANGELOG.md。
项目结构
src/
surveyhub_mcp/
server.py # 聚合 MCP 入口
fofa.py # FOFA 工具
quake.py # Quake 工具
zoomeye.py # ZoomEye 工具
hunter_personal.py # Hunter 个人版工具
hunter_enterprise.py # Hunter 企业版工具
daydaymap.py # DayDayMap 工具
reference.py # MCP resources 和 prompts
common.py # 共享编码、HTTP、错误处理和节流工具手动编译
uv sync
uv run python -m compileall src/surveyhub_mcp
uv build --wheel注意事项
本项目仅供学习和技术研究使用,严禁用于任何商业或非法用途。
请只在合法授权范围内使用本项目,并遵守各平台的 API 服务条款和额度限制。
许可证
MIT License,见 LICENSE。
Available Tools
26 toolsdaydaymap_searchDayDayMap SearchA
Search DayDayMap assets with POST /api/v1/raymap/search/all. Query is automatically Base64-encoded for the keyword parameter. Strings in queries must use English double quotes and are case-insensitive. Supported return fields: ip, is_ipv6, is_website, port, protocol, url, continent, country, country_code, province, city, postal_code, asn, asn_org, longitude, latitude, isp, domain, icp_reg_name, industry, title, icon_md5, banner, header, body, os, device_type, manufacturer, server, lang, device, product, service, tags, time_stamp, cert, cert_selfsigned, SSL. Query syntax categories: IP: ip, ip.port, ip.isp, ip.os_family, ip.os, ip.tag, ip.industry, is_ipv6; 域名: domain, domain.root, is_domain; 地理位置: ip.country, ip.province, ip.city, ip.district; ICP 备案: icp.number, icp.name, icp.name_prefix, icp.webname; AS 域: asn.number, asn.org; WEB: is_web, web.server, web.status_code, web.header, web.title, web.lang, web.body, web.icon; 协议: protocol.transport, protocol.service, protocol.banner; 应用: app.name; 组件: product; 设备: device.name, device.type, device.type_sub, brand, model, manufacturer; 证书: cert.issuer, cert.subject, cert.sn, cert.org, cert.md5, cert.is_expired, cert.is_trust, cert.startdate, cert.enddate; 时间: time; 漏洞: vul.cve, vul.dvb; 资产归属: org.name, org.name_prefix. Logical AND uses &&. Maximum 10,000 results total (page x page_size <= 10000).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-10000. | |
| query | Yes | DayDayMap query string. Use English double quotes for values. Examples: ip="1.1.1.1", domain="example.com", ip.port="443" && protocol.service="https", ip.country="中国" && web.title="管理系统", cert.subject.cn="example.com". | |
| fields | No | Comma-separated fields to include in response. When set, only these fields are returned. Takes priority over exclude_fields. | |
| page_size | No | Results per page, max 10000. | |
| exclude_fields | No | Comma-separated fields to exclude from response. Only effective when fields is not set. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: automatic Base64 encoding of query, English double quotes case-insensitive, maximum results 10000, and a complete list of return fields and query syntax categories. There are no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose (large list of fields and query syntax) but well-structured with categories. While the length is warranted for complexity, it could be trimmed by relying on the output schema for return fields. However, it remains readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, hundreds of fields) and existence of an output schema, the description covers all critical aspects: endpoint, encoding, query syntax, fields, pagination limits, and examples. It is fully sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% but the description adds substantial value: it explains the Base64 encoding behavior, provides query examples, and details the query syntax categories not present in the schema. This goes beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches DayDayMap assets via a specific API endpoint, and explicitly names the target platform. It distinguishes itself from sibling tools (e.g., fofa, hunter, quake) by the unique asset source DayDayMap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive usage guidance: query syntax categories, examples, case-insensitivity, double quotes requirement, Base64 encoding, logical AND with &&, and result limits. It lacks explicit comparison to siblings but implicitly defines its domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fofa_hostFOFA Host AggregationB
Get FOFA host aggregation data with /api/v1/host/{host}. Calls are throttled to one request every 1 second in this MCP process.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Host name or IP address, usually an IP. | |
| detail | No | Set true to include port product details. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description carries full burden. It discloses rate limiting and endpoint path, but omits whether the operation is read-only, requires authentication, or has other important behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with front-loaded purpose and no unnecessary words. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with 2 params and output schema, description adequately covers core purpose and adds rate-limit context. Could be enhanced with usage guidance, but fundamentally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no additional parameter meaning beyond the schema's existing descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves FOFA host aggregation data via a specific endpoint. It uses a direct verb ('Get') and resource, but does not explicitly differentiate from sibling tools like fofa_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only mentions rate limiting; no guidance on when to choose this tool over siblings or conditions for use. Lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fofa_searchFOFA SearchB
Search FOFA assets with /api/v1/search/all. Query is encoded as qbase64. Supported fields include: ip, port, protocol, country, country_name, region, city, longitude, latitude, asn, org, host, domain, os, server, icp, title, jarm, header, banner, cert, base_protocol, link, cert.issuer.org, cert.issuer.cn, cert.subject.org, cert.subject.cn, tls.ja3s, tls.version, cert.sn, cert.not_before, cert.not_after, cert.domain, status_code, header_hash, banner_hash, banner_fid, cname, lastupdatetime, product, product_category, product.version, icon_hash, cert.is_valid, cname_domain, body, cert.is_match, cert.is_equal, icon, fid, structinfo.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Set true to search all data instead of one-year data. | |
| page | No | Page number, starting from 1. | |
| size | No | Results per page. | |
| query | Yes | FOFA query, for example body="admin" or domain="example.com" && port="443". | |
| fields | No | Comma-separated return fields. | host,ip,port,domain,title |
| r_type | No | Response type. Use "json" for JSON responses. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should cover behavioral context. It mentions query encoding (qbase64) but omits authentication needs, rate limits, or side effects. It adequately describes basic behavior but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single long paragraph with an extensive list of fields, making it verbose. The core purpose is front-loaded, but the field list is excessive and could be omitted or summarized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While output schema exists and schema coverage is high, the description lacks usage guidelines and behavioral context. It covers the tool's function and parameter details but is incomplete for an agent to choose appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds the list of supported fields but does not enhance parameter understanding beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches FOFA assets using a specific API endpoint and lists supported fields, distinguishing it from sibling search tools like zoomeye_search or hunter_enterprise_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like fofa_host or other search tools. The description focuses on technical details rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fofa_search_nextFOFA Continuous SearchB
Search FOFA assets with /api/v1/search/next. Use returned next value for stable continuous pagination over a large result set.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Set true to search all data instead of one-year data. | |
| size | No | Results per page. | |
| query | Yes | FOFA query to encode as qbase64. | |
| fields | No | Comma-separated return fields. | host,ip,port,domain,title |
| r_type | No | Response type. Use "json" for JSON responses. | json |
| next_id | No | Next page token returned by the previous response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions pagination stability but omits details on authentication, rate limits, error handling, or result format. The additional context is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the action and key pagination concept. Every sentence earns its place with no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated search tool with good schema coverage and an output schema (present but not shown), the description covers the essential pagination mechanism. Missing details like link to initial search could be helpful but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds little beyond the schema, e.g., 'Encode as qbase64' is already in the schema. No new semantic value provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches FOFA assets using a specific API endpoint and mentions continuous pagination via a 'next' value. This distinguishes it from sibling tools like fofa_search, but does not explicitly differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when stable continuous pagination over large result sets is needed, but does not provide explicit guidance on when to use this vs. other search tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fofa_search_statsFOFA Search StatsA
Aggregate FOFA search results with /api/v1/search/stats. Calls are throttled to one request every 5 seconds in this MCP process. Supported fields: protocol, domain, port, title, os, server, country, asn, org, asset_type, fid, icp.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | FOFA query to encode as qbase64. | |
| fields | No | Comma-separated aggregation fields, for example protocol,domain,port. | protocol,domain,port |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only mentions a rate limit (throttling) but does not state if the tool is read-only, idempotent, or requires specific authentication. Significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: first states the purpose, second provides critical usage info (throttling) and supported fields. Front-loaded with essential information, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (context indicates true), the description need not detail return values. However, it could better explain that the tool provides aggregated statistics or counts per field. The listed fields are helpful, but the aggregation nature is only hinted at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by listing the full set of supported aggregation fields (protocol, domain, port, etc.), which goes beyond the schema's default value and clarifies what fields are valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool aggregates FOFA search results using the /api/v1/search/stats endpoint, with a specific verb and resource. It also lists supported fields, distinguishing it from sibling search tools that return raw results or paginate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions throttling but does not explicitly state when to use this tool versus alternatives like fofa_search or other aggregation tools. Usage context is implied through the term 'aggregate' but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fofa_user_infoFOFA User InfoA
Get FOFA account status, quota, and membership information with /api/v1/info/my.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies read-only operation ('get info'), but does not explicitly state safety, authentication needs, or rate limits. Adequate for a simple query with no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, directly states purpose and API endpoint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema, so return values are covered. Description fully explains tool's function. No missing context for a simple 0-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%. Description adds no param info, but none needed. Baseline 4 for zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get', resource 'FOFA account status, quota, and membership information', and includes API endpoint. Distinguishes from sibling tools which are mostly search or other service user info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives, but context implies it's for retrieving FOFA account info. Sibling tools are different services or search functions, so differentiation is clear without explicit note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_enterprise_batch_createHunter Enterprise Batch CreateB
Create a Hunter enterprise batch search task with query or CSV file upload.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Hunter query. Required if file_path is not provided. | |
| fields | No | Comma-separated return fields. | |
| is_web | No | 1=web, 2=non-web. | |
| end_time | No | End date in YYYY-MM-DD. | |
| file_path | No | Local CSV file path. Required if query is not provided. | |
| start_time | No | Start date in YYYY-MM-DD. | |
| search_type | No | CSV search type. Enterprise limits: all <=10; ip/domain/company <=10000. | all |
| status_code | No | Comma-separated status codes, for example "200,401". | |
| assets_limit | No | Expected exported asset count. | |
| exact_search | No | For query mode, convert Hunter field="value" fuzzy comparisons to field=="value" exact comparisons by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states the action (create task) but omits details like synchronous/asynchronous behavior, task lifecycle, rate limits, or what happens after creation. The parameter descriptions hint at some constraints (e.g., search_type limits) but the description itself lacks transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence encapsulates the core purpose with no extraneous words. It is front-loaded and efficiently communicates the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no output schema, and no annotations, the description is too brief. It fails to explain the return value, how to monitor task progress, or the relationship with batch download/pull tools. More context about the batch workflow is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description. The description adds minimal value beyond the schema—only hinting at two modes (query vs CSV). Baseline 3 is appropriate as the schema already documents parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a batch search task using either a query or CSV upload. This distinguishes it from sibling tools like hunter_enterprise_search (direct search) and batch download/status tools. The verb 'Create' and resource 'batch search task' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as hunter_enterprise_search or hunter_personal_batch_create. The description does not mention prerequisites, limitations, or context for choosing between query and file upload modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_enterprise_batch_downloadHunter Enterprise Batch DownloadA
Download Hunter enterprise batch task export file to output_path.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID returned by hunter_enterprise_batch_create. | |
| output_path | Yes | Local output CSV path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It only states a download operation without discussing side effects, overwriting behavior, permissions required, or error conditions. This is insufficient for a complete behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of 9 words, front-loaded with the action and resource. Every word is necessary; no filler or repetition. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple download tool with two parameters and no output schema, the description covers the essentials. It could mention file format explicitly, but the parameter description implies CSV. The context of being the final step in a batch process is clear enough from the sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds marginal value by indicating the source of task_id ('returned by hunter_enterprise_batch_create') and clarifying that output_path is local. However, this does not significantly extend beyond schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Download') and the resource ('Hunter enterprise batch task export file') and specifies the target ('to output_path'). It effectively distinguishes from sibling tools like hunter_enterprise_batch_create and hunter_enterprise_batch_status, which handle other lifecycle stages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after a batch task is created (via 'task_id'), but does not explicitly state when to use this tool over alternatives or exclude inappropriate contexts. No when-not or alternative tool guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_enterprise_batch_pullHunter Enterprise Batch PullB
Pull Hunter enterprise batch task results as JSON. Enterprise-only.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| task_id | Yes | Task ID returned by hunter_enterprise_batch_create. | |
| page_size | No | Results per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose behavior such as whether results are only available after task completion, rate limits, or error states. The pagination parameters are documented in schema but not described behaviorally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence plus scope qualifier. No wasted words. Could be slightly more informative without losing conciseness, but still well-structured for its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should at least hint at return format ('as JSON' helps slightly). However, missing details like whether it returns a list or object, pagination behavior, and handling of incomplete tasks make it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions (e.g., task_id links to batch_create). The tool description adds no extra semantic value beyond the schema, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Pull') and resource ('batch task results'), and clearly distinguishes from sibling tools like batch_create and batch_status by focusing on results retrieval. 'Enterprise-only' further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like hunter_enterprise_batch_download or hunter_enterprise_batch_status. The description only mentions 'Enterprise-only' but doesn't explain prerequisites or ordering relative to other batch operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_enterprise_batch_statusHunter Enterprise Batch StatusA
Get Hunter enterprise batch task progress.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID returned by hunter_enterprise_batch_create. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Get ... progress' without explaining that the tool is read-only, whether it can be called multiple times, what happens if the task ID is invalid, or what the response format looks like. This is a significant gap for a tool that checks asynchronous progress.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that captures the essence of the tool with zero wasted words. It is maximally concise while remaining informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, no output schema), the description provides minimal but adequate information. However, it does not specify what 'progress' entails (e.g., status enums, completion percentage) or whether the tool returns immediately or waits. This leaves some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters, but the description adds value by specifying that task_id is 'returned by hunter_enterprise_batch_create.' This tells the agent exactly how to obtain a valid task ID, which is more helpful than just the schema type alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and identifies the resource as 'Hunter enterprise batch task progress.' It clearly distinguishes from sibling tools like hunter_enterprise_batch_create, hunter_enterprise_batch_download, and hunter_enterprise_batch_pull, each of which handles different stages of the batch workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Although the description lacks explicit 'when to use' or 'when not to use' statements, the parameter description for task_id states 'Task ID returned by hunter_enterprise_batch_create,' which implies the tool should be used after creating a batch task to check its progress. This provides indirect usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_enterprise_searchHunter Enterprise SearchC
Search Hunter enterprise API /openApi/search. Enterprise fields: ip,port,domain,ip_tag,url,web_title,is_risk_protocol,protocol,base_protocol,status_code,os,company,number,icp_exception,country,province,city,is_web,isp,as_org,cert_sha256,ssl_certificate,component,asset_tag,updated_at,header,header_server,banner,whois,body,vul_list.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| query | Yes | Hunter query, for example web.title="login". | |
| fields | No | Comma-separated return fields. | |
| is_web | No | 1=web, 2=non-web, 3=all. | |
| end_time | No | End date in YYYY-MM-DD. | |
| page_size | No | Results per page. | |
| start_time | No | Start date in YYYY-MM-DD. | |
| status_code | No | Comma-separated status codes, for example "200,401". | |
| exact_search | No | Convert Hunter field="value" fuzzy comparisons to field=="value" exact comparisons by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions the API endpoint and enterprise scope but omits critical traits like read-only nature, rate limits, or authentication requirements. The description implies a read operation but lacks explicit safety guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with one sentence and a field list. It is front-loaded with the action but the list is long and could be formatted more cleanly. Still, it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema or annotations, the description is too sparse. It does not explain pagination, return format, or behavior of parameters like 'exact_search'. The field list alone is insufficient for an agent to fully understand tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value beyond the schema. The list of enterprise fields provides context for the 'fields' parameter but is not explained. Baseline is 3 since schema covers parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it's a search tool for the Hunter enterprise API and lists enterprise-specific fields, distinguishing it from personal search tools. However, it does not explicitly state the return type or differentiate from other search tools beyond the field list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as hunter_personal_search or other sibling search tools. The description lacks explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_enterprise_user_infoHunter Enterprise User InfoA
Get Hunter enterprise or sub-account quota and account information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits beyond the basic function. There is no mention of rate limits, authentication requirements, or data volume. For a read-only tool with no parameters, minimal transparency is acceptable, but some additional context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, containing no waste. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description adequately communicates the tool's purpose. However, it could be slightly more detailed about what 'account information' includes, but overall it is complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema description coverage is 100% (empty schema). According to the rubric, 0 parameters yields a baseline of 4. The description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get Hunter enterprise or sub-account quota and account information.' It uses a specific verb ('Get') and identifies the resource ('enterprise or sub-account quota and account information'), which distinguishes it from sibling tools like hunter_personal_user_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as hunter_personal_user_info for personal accounts. The description does not specify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_personal_batch_createHunter Personal Batch CreateC
Create a Hunter personal batch search task with query or CSV file upload.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Hunter query. Required if file_path is not provided. | |
| fields | No | Comma-separated return fields. | |
| is_web | No | 1=web, 2=non-web. | |
| end_time | No | End date in YYYY-MM-DD. | |
| file_path | No | Local CSV file path. Required if query is not provided. | |
| start_time | No | Start date in YYYY-MM-DD. | |
| search_type | No | CSV search type. Personal limits: all <=10; ip/domain/company <=100. | all |
| status_code | No | Comma-separated status codes, for example "200,401". | |
| assets_limit | No | Expected exported asset count. | |
| exact_search | No | For query mode, convert Hunter field="value" fuzzy comparisons to field=="value" exact comparisons by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as async nature, rate limits, or what happens after creation (e.g., returns a task ID). It only says 'create' with no further context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the action, though it could benefit from a bit more detail without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no output schema, and no annotations, the description is too brief. It fails to explain return values, async behavior, or related tools like hunter_personal_batch_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already described. The description adds 'with query or CSV file upload', hinting at two modes, but does not add specific parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a batch search task, distinguishing it from the personal search tool (hunter_personal_search) which likely does single searches, but it does not explicitly contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use batch vs search, no prerequisites, no mention of when to use query vs file upload, and no alternatives listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_personal_batch_downloadHunter Personal Batch DownloadB
Download Hunter personal batch task export file to output_path.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID returned by hunter_personal_batch_create. | |
| output_path | Yes | Local output CSV path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral traits such as error handling, file overwrite behavior, or network dependencies. The description is too minimal for a download operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, no wasted words. However, it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple tool, the description is too minimal. It does not explain prerequisites (e.g., task must be complete), return value, or error scenarios, leaving agents uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no new parameter meaning beyond what the schema already provides (task_id and output_path descriptions are identical).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Download') and resource ('Hunter personal batch task export file'), distinguishing it from siblings like 'hunter_personal_batch_create' and 'hunter_enterprise_batch_download'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., enterprise version), nor any prerequisites like task completion. The description only states the basic operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_personal_batch_statusHunter Personal Batch StatusC
Get Hunter personal batch task progress.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID returned by hunter_personal_batch_create. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must inform about behavioral traits. It only says 'Get ... progress' and does not disclose read-only nature, auth requirements, rate limits, or error handling for invalid task IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and resource. It is concise with no wasted words, though a bit too brief for a complete understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description should mention that it is a polling endpoint for progress tracking. It omits return values, expected polling behavior, and error conditions, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter well-described in the schema as 'Task ID returned by hunter_personal_batch_create.' The description adds no extra meaning beyond the schema, meeting the baseline for high coverage but not compensating for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'Hunter personal batch task progress,' making the tool's purpose evident. However, it does not explicitly differentiate from siblings like hunter_enterprise_batch_status, but the name and parameter hint at personal account usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., enterprise batch status or batch create). The description does not mention polling prerequisites or that the task_id must come from hunter_personal_batch_create, though this is implied by the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_personal_searchHunter Personal SearchC
Search Hunter personal API /openApi/search. Personal fields: ip,port,domain,ip_tag,url,web_title,is_risk_protocol,protocol,base_protocol,status_code,os,company,number,icp_exception,country,province,city,is_web,isp,as_org,cert_sha256,ssl_certificate,component,asset_tag,updated_at,header,header_server,banner.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| query | Yes | Hunter query, for example web.title="login". | |
| fields | No | Comma-separated return fields. | |
| is_web | No | 1=web, 2=non-web, 3=all. | |
| end_time | No | End date in YYYY-MM-DD. Beyond 30 days consumes equity points. | |
| page_size | No | Results per page. | |
| start_time | No | Start date in YYYY-MM-DD. Beyond 30 days consumes equity points. | |
| status_code | No | Comma-separated status codes, for example "200,401". | |
| exact_search | No | Convert Hunter field="value" fuzzy comparisons to field=="value" exact comparisons by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as authentication requirements, rate limits, pagination behavior, or whether the operation is read-only. The list of fields is helpful but not behavioral.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence stating the action and a list of fields. The structure is clear and front-loaded. The field list is long but relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the number of parameters (9), the presence of many sibling tools, and no output schema, the description is minimal. It lacks information on how to construct queries, result format, or error scenarios. It covers only the basic purpose and available fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter schema coverage is 100%, so each parameter already has a description. The tool description lists additional personal fields specific to this API, which adds context beyond the schema, but does not significantly enhance understanding of parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a search on the Hunter personal API, and lists many personal fields. However, it does not differentiate from sibling tools like hunter_enterprise_search or fofa_search, which also have similar search functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only says 'Search Hunter personal API' without explaining the recommended use cases or scenarios where this tool is preferred over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_personal_user_infoHunter Personal User InfoA
Get Hunter personal account quota and account information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read-only operation ('Get'), but does not disclose any potential side effects, rate limits, or authentication requirements. For a simple info retrieval, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extra words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters and no output schema. The description mentions 'account quota and account information' but lacks specifics on the structure of the response. For a simple tool, it is somewhat complete but could be more detailed about what exactly is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so per the rubric baseline of 4. The schema coverage is 100% trivially, and the description does not need to add parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with a specific resource: 'Hunter personal account quota and account information'. It clearly distinguishes from sibling tools like 'hunter_enterprise_user_info' by specifying 'personal'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are given, but the purpose is straightforward and implied. It might be used when the agent needs account quota or info, but there is no guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_aggregation_fieldsQuake Aggregation FieldsA
Get Quake service aggregation fields with /api/v3/aggregation/quake_service. Examples: ip, port, service, product, os, asn, org, title, server, app, catalog, type, level, vendor, isp, status_code, powered_by, meta_keywords, page_type, icp, app_and_version, service_and_version, unique_ip, unique_domain, unique_port, unique_product, unique_asn, unique_org, unique_isp, unique_title, unique_server, unique_app, unique_catalog, unique_type, unique_level, unique_vendor, unique_country, unique_province, unique_city, province, province_cn, country, country_cn, country_code, city, city_cn, district, district_cn, province_of_china.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, authentication requirements, or rate limits. The simple action of 'getting fields' implies idempotency but is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a long list of examples. While the list is extensive, it is informative and does not contain extraneous information. It could be slightly more concise by omitting some examples, but overall acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of parameters and presence of an output schema, the description is largely complete. It explains the purpose and provides example values, though it does not describe the output format or structure, which is provided by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema covers everything trivially. The description adds value by listing example fields, but this pertains to output rather than parameters. Baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets Quake service aggregation fields via a specific endpoint and provides numerous examples, distinguishing it from siblings like quake_filterable_fields or quake_service_aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It is implied that it provides available fields for aggregation, but no direct comparison or usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_filterable_fieldsQuake Filterable FieldsB
Get Quake service fields usable in include/exclude with /api/v3/filterable/field/quake_service. Examples: components.product_level, components.product_catalog, location.country_cn, domain, service.http.favicon.hash, service.http.host, components.product_vendor, location.city_en, service.http.title, service.name, time, location.isp, transport, location.province_en, components.product_name_cn, asn, location.city_cn, location.province_cn, service.http.status_code, service.http.infomation.mail, org, service.http.icp.main_licence.unit, location.district_cn, service.cert, service.http.server, hostname, service.http.body, components.product_type, location.district_en, service.http.favicon.data, ip, service.http.icp.licence, components.version, location.country_en, port, service.response.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the operation is read-only, requires authentication, or has rate limits. It only describes the output, leaving the agent uninformed about safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a long list of examples. While it is concise in terms of word count, the example list is lengthy and could be formatted more efficiently (e.g., grouped or truncated). The structure is adequate but not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and an output schema, the description is sufficiently complete. It explains the purpose and provides representative examples of the field names, which is adequate given the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description carries a lower burden. It adds value by listing numerous example field names, providing concrete context beyond the empty schema. This helps the agent understand the type of output expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets Quake service fields usable in include/exclude operations. It specifies the endpoint and provides examples. However, it does not explicitly differentiate from sibling 'quake_aggregation_fields', though the context of sibling tools suggests distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool vs alternatives. It mentions fields are usable in include/exclude but does not provide context for when this tool is appropriate or when to use sibling tools like quake_aggregation_fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_searchQuake Search (Scroll Compatibility)C
Backward-compatible alias for quake_service_scroll.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Results per page. | |
| query | Yes | Quake query, for example service:http or port:443 AND country:"China". | |
| latest | No | Whether to use latest data. | |
| exclude | No | Comma-separated fields to exclude. | |
| include | No | Comma-separated fields to include. | |
| end_time | No | UTC end time. | |
| start_time | No | UTC start time. | |
| ignore_cache | No | Whether to ignore cached data. | |
| pagination_id | No | Pagination ID from previous response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description offers zero behavioral details (e.g., side effects, permissions, limitations). The agent gets no insight beyond the alias indication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (one short sentence) but lacks substance. Every sentence should earn its place; this one provides minimal information, making it under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and an output schema exists, the description fails to explain the tool's overall behavior or how to use it effectively. It is incomplete for a tool with such complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all 9 parameters, so description need not add more. However, it could add context like parameter interplay or defaults, but missing that is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only states it's a backward-compatible alias for 'quake_service_scroll', but does not explicitly define what the tool does. It relies on the user knowing the other tool's purpose, making it vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus siblings. Mentioning it's an alias implies it's for backward compatibility, but no explicit usage context or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_service_aggregationQuake Service AggregationC
Run Quake service aggregation query with /api/v3/aggregation/quake_service.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | Service data collection rule name for IP-list collections. | |
| size | No | Aggregation bucket count per field. | |
| query | Yes | Quake query, for example country:"China". | |
| latest | No | Whether to use latest data. | |
| ip_list | No | Comma-separated IP list. | |
| end_time | No | UTC end time, for example 2020-10-14 00:00:00. | |
| start_time | No | UTC start time, for example 2020-10-14 00:00:00. | |
| ignore_cache | No | Whether to ignore cached data. | |
| aggregation_list | Yes | One or two comma-separated aggregation fields, for example service or country,service. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only states the action without disclosing side effects, authentication needs, or data behavior (e.g., whether data is cached or time-bound).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It does front-load the action but omits any useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters and an output schema, the description fails to explain return values, when to use aggregation vs. other searches, or how to interpret results. It is notably incomplete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond the tool name and endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a Quake service aggregation query and includes the API endpoint. However, it does not differentiate it from sibling tools like quake_search or quake_aggregation_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as quake_search or quake_service_scroll. No context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_service_scrollQuake Service ScrollA
Run deep-pagination Quake service search with /api/v3/scroll/quake_service. Use meta.pagination_id from the response as pagination_id for the next page.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | Service data collection rule name for IP-list collections. | |
| size | No | Results per page. | |
| query | Yes | Quake query, for example service:http or port:443 AND country:"China". | |
| latest | No | Whether to use latest data. | |
| exclude | No | Comma-separated fields to exclude. | |
| include | No | Comma-separated fields to include. | |
| ip_list | No | Comma-separated IP list. | |
| end_time | No | UTC end time, for example 2020-10-14 00:00:00. | |
| shortcuts | No | Comma-separated shortcut filter IDs from the web UI. | |
| start_time | No | UTC start time, for example 2020-10-14 00:00:00. | |
| ignore_cache | No | Whether to ignore cached data. | |
| pagination_id | No | Pagination ID from previous response. Expires in 5 minutes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description mentions pagination_id usage but omits key behavioral details like the 5-minute expiration (only present in parameter description), rate limits, or any side effects. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero fluff. Every word adds value—action, resource, and pagination workflow in a compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and the schema covers parameters, the description's emphasis on the pagination flow is appropriate. However, it could mention that this tool is for iterating large result sets requiring multiple requests.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-described. The tool description adds no additional meaning beyond what the schema provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action is 'deep-pagination Quake service search' and specifies the REST endpoint. This distinguishes it from sibling tools like quake_service_search, which likely handles single-page results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to paginate (using pagination_id from response) but does not explicitly state when to use this tool over alternatives like quake_service_search. It assumes the agent understands 'deep-pagination' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_service_searchQuake Service SearchA
Run real-time Quake service search with /api/v3/search/quake_service. Use this for small result sets; use quake_service_scroll for deep pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | Service data collection rule name for IP-list collections. | |
| size | No | Number of results to return. | |
| query | Yes | Quake query, for example service:http or port:443 AND country:"China". | |
| start | No | Result start offset. | |
| latest | No | Whether to use latest data. | |
| exclude | No | Comma-separated fields to exclude. | |
| include | No | Comma-separated fields to include. | |
| ip_list | No | Comma-separated IP list. | |
| end_time | No | UTC end time, for example 2020-10-14 00:00:00. | |
| shortcuts | No | Comma-separated shortcut filter IDs from the web UI. | |
| start_time | No | UTC start time, for example 2020-10-14 00:00:00. | |
| ignore_cache | No | Whether to ignore cached data. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions 'real-time' but lacks details on rate limits, authentication, response format, or side effects. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading purpose and usage guidance. Every sentence earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters and an output schema, the description does not elaborate on return values or common patterns. It provides essential usage context but lacks depth for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 applies. Description adds no extra meaning beyond schema descriptions; it merely restates the endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Run real-time Quake service search' with specific resource and endpoint. Distinguishes from sibling quake_service_scroll by indicating usage for small result sets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends use for small result sets and directs to quake_service_scroll for deep pagination. Provides clear context but does not explicitly list when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_user_infoQuake User InfoB
Get Quake user details, quota, token, and role information with /api/v3/user/info.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'Get' implying read-only, but no details on authentication, rate limits, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence including API endpoint, concise and front-loaded. Slightly more detail could be added without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and output schema exists. Description covers basic purpose but lacks depth in behavioral context (e.g., auth requirements).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline is 4. Description adds value by listing what is returned (details, quota, token, role) beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and the resource 'Quake user details, quota, token, and role information'. It distinguishes from sibling search tools and other platform user info tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. For a simple info retrieval, usage is implied but could be improved by mentioning it's for account-related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zoomeye_searchZoomEye v2 Asset SearchA
Search ZoomEye paid-account assets with POST /v2/search. Provide a raw query for automatic Base64 encoding, or pass qbase64 directly. Free and legacy search APIs are not supported.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number sorted by update time. | |
| query | No | Raw ZoomEye v2 query, for example title="knownsec" or port=443 && country="CN". | |
| facets | No | Comma-separated facet fields. Supported values: country, subdivisions, city, product, service, device, os, port. | |
| fields | No | Comma-separated return fields, for example ip,port,domain,update_time. | ip,port,domain,update_time |
| qbase64 | No | Base64-encoded ZoomEye v2 query. Used as-is when provided. | |
| pagesize | No | Results per page. Official v2 maximum is 10000. | |
| sub_type | No | Asset data type: v4, v6, or web. | v4 |
| ignore_cache | No | Whether to ignore cached data. Business plans and above support this. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It mentions automatic Base64 encoding and paid-account requirements but fails to disclose authentication needs, rate limits, pagination behavior, or cost implications. For a search tool, lack of these details reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences with no redundant information. It is front-loaded with the main action and efficiently covers key points: endpoint, query options, and unsupported APIs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 8 parameters (all optional), 100% schema coverage, and presence of an output schema, the description is adequate but not thorough. It explains the query mechanism and scope but omits return format, pagination details, and error handling. For a search tool in a competitive suite, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context about the query and qbase64 parameters, explaining the relationship (raw query gets auto-encoded vs. direct base64). This adds marginal value beyond the schema descriptions, which already include examples and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches ZoomEye paid-account assets using POST /v2/search, specifying the verb, resource, and API method. It distinguishes from siblings by explicitly noting that free and legacy APIs are not supported, which separates it from related tools like fofa_search or quake_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: users can either provide a raw query (automatic Base64 encoding) or pass qbase64 directly. It also mentions that free/legacy APIs are not supported, implying when not to use the tool. However, it does not explicitly suggest alternative tools for free or legacy accounts, which would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zoomeye_user_infoZoomEye User InfoA
Get paid-account subscription and points information with POST /v2/userinfo.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read operation ('Get'), which is non-destructive, but does not disclose authentication requirements, idempotency, or rate limits. For a simple info tool, this is minimally adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no superfluous words. It immediately states the action and resource, ensuring clarity without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential action and resource, and an output schema is provided. It does not mention related tools or prerequisites (e.g., needing a paid account), but for a simple info endpoint with no parameters, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter meaning. The baseline for zero parameters is 4, and the description correctly focuses on the tool's action without missing parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'paid-account subscription and points information', and the HTTP method and path 'POST /v2/userinfo'. It unambiguously identifies the tool's purpose and distinguishes it from siblings like zoomeye_search and other service info tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs alternatives or provide context on usage. However, the tool's name and description imply it is for retrieving account information, so usage context is inferred but not explicitly guided.
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. Dates show when Glama detected each change.
26 tool updates
v1.17.0- First observed
daydaymap_search - First observed
fofa_host - First observed
fofa_search - First observed
fofa_search_next - First observed
fofa_search_stats - First observed
fofa_user_info - First observed
hunter_enterprise_batch_create - First observed
hunter_enterprise_batch_download - First observed
hunter_enterprise_batch_pull - First observed
hunter_enterprise_batch_status - First observed
hunter_enterprise_search - First observed
hunter_enterprise_user_info - First observed
hunter_personal_batch_create - First observed
hunter_personal_batch_download - First observed
hunter_personal_batch_status - First observed
hunter_personal_search - First observed
hunter_personal_user_info - First observed
quake_aggregation_fields - First observed
quake_filterable_fields - First observed
quake_search - First observed
quake_service_aggregation - First observed
quake_service_scroll - First observed
quake_service_search - First observed
quake_user_info - First observed
zoomeye_search - First observed
zoomeye_user_info
TDQS
Tools are clearly grouped by platform (fofa, hunter, quake, zoomeye, daydaymap), making them distinct. Minor confusion arises from quake_search being an alias for quake_service_scroll, and similar patterns across platforms (e.g., user_info), but overall an agent can differentiate.
Naming follows a consistent platform_action pattern (e.g., fofa_search, hunter_enterprise_search). Inconsistencies include quake_search as an alias and variations like service_search vs. service_scroll, but the system is largely predictable.
26 tools is slightly high but appropriate given the aggregation of five different search engines, each requiring multiple operations (search, user info, aggregation, batch). The count reflects the breadth of the domain without being excessive.
The toolset covers the essential lifecycle for asset intelligence search: query, pagination, aggregation, and account info across multiple platforms. Minor gaps exist, like missing user info for DayDayMap, but core workflows are complete.
Maintenance
Related MCP Connectors
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Trust-scored search engine for MCP servers. 1,900+ sources indexed. IETF draft published. Referenced by OWASP MCP Security Cheat Sheet. L0-L4 trust levels based on cryptographic verification.
Related MCP Servers
- MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables AI models to query FOFA, 360 Quake, and Hunter cyberspace mapping platforms for asset discovery and security research. It supports natural language parameter configuration and provides comprehensive search tools for retrieving IP, port, and domain data.36MIT
- FlicenseNot gradedqualityBmaintenanceMCP server for querying the FOFA API, enabling network asset search and account information retrieval.8-
- FlicenseNot gradedqualityBmaintenanceUnified vulnerability search MCP server for penetration testing agents, integrating 5 data sources (NVD, OSV, EPSS, CISA KEV, Exploit-DB+GitHub) and 10 MCP tools for CVE query, keyword search, batch query, EPSS scoring, KEV checking, exploit search, and comprehensive assessment with Chinese output.2-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/helGayhub233/SurveyHub-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server