FOFA Quake Hunter MCP Server
The FOFA Quake Hunter MCP Server provides a unified AI-friendly interface to query assets across three major Chinese cyberspace mapping platforms: FOFA, 360 Quake, and Qianxin Hunter.
Core Capabilities:
FOFA Search: Query network assets using
field="value"syntax with fuzzy (=), exact (==), negation (!=), and wildcard (*=) matching. Supports logical operators (&&,||), pagination up to 10,000 results, and customizable field selection (IP, port, domain, certificates, geolocation, etc.).Quake Search: Perform deep reconnaissance using
field:valuesyntax with AND/OR/NOT operators. Features unlimited scroll-based pagination viapagination_id(5-minute validity), time-range filtering (UTC timestamps), and granular field control (include/exclude) with different field sets for registered vs. member users.Hunter Search: Query Qianxin's platform using
field="value"syntax with fuzzy/exact matching and exclusion operators. Filter by asset type (web/non-web/all), time ranges (30+ days consumes extra credits), HTTP status codes, and flexible page sizes (10/50/100 results).
Key Features:
AI-Friendly Design: All parameters support natural language configuration for seamless AI assistant integration
Flexible Configuration: Configure only needed platforms via environment variables (FOFA_KEY, QUAKE_KEY, HUNTER_KEY); unconfigured tools provide setup instructions
Complex Queries: All platforms support boolean logic, parentheses for priority, and field-specific matching rules
Easy Integration: Compatible with MCP clients like Claude Desktop or Kiro, with multiple installation methods (uvx, pip, source)
Example Use Cases: Find specific server types by region, track service changes over time, locate vulnerable systems, identify company assets, discover specific web technologies or device types.
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., "@FOFA Quake Hunter MCP ServerSearch FOFA for title='admin' and country='CN', show me 20 results"
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 Quake Hunter DayDayMap MCP Server
一个用于查询 FOFA、Quake、Hunter 和 DayDayMap 网络空间测绘平台的 MCP (Model Context Protocol) 服务器。
中文
功能特性
🔍 FOFA 查询: 支持 FOFA 网络空间测绘系统的资产查询
🌐 Quake 查询: 支持 360 Quake 网络空间测绘系统的深度查询
🦅 Hunter 查询: 支持奇安信鹰图平台的资产查询
🗺️ DayDayMap 查询: 支持 DayDayMap 资产查询、字段筛选和分页
🧩 MCP SDK v2: 使用当前
MCPServerAPI,可直接通过uvx运行🤖 AI 友好: 所有参数支持自然语言对话设置
⚙️ 灵活配置: 可按需配置单个或多个平台
安装
使用 uvx (推荐)
uvx fofa-quake-hunter-mcp使用 pip
pip install fofa-quake-hunter-mcp从源码安装
git clone https://github.com/RuoJi6/fofa_quake_hunter_mcp.git
cd fofa_quake_hunter_mcp
pip install -e .配置
在 MCP 客户端中配置
在 MCP 配置文件中添加(例如 Claude Desktop 的 claude_desktop_config.json 或 Kiro 的 .kiro/settings/mcp.json):
{
"mcpServers": {
"fofa-quake-hunter": {
"command": "uvx",
"args": ["fofa-quake-hunter-mcp"],
"env": {
"FOFA_KEY": "your_fofa_api_key",
"QUAKE_KEY": "your_quake_api_key",
"HUNTER_KEY": "your_hunter_api_key",
"DAYDAYMAP_KEY": "your_daydaymap_api_key"
}
}
}
}注意:
你可以只配置需要使用的平台,未配置的工具在调用时会返回友好的配置提示
FOFA_EMAIL 是可选的,大多数情况下只需要 FOFA_KEY
DayDayMap 同时兼容环境变量
DAYDAYMAP_API_KEY
获取 API Key
FOFA: 登录 https://fofa.info → 个人中心 → API Key
Quake: 登录 https://quake.360.net → 个人中心 → 密钥管理
Hunter: 登录 https://hunter.qianxin.com → 个人中心 → API管理
DayDayMap: 登录 https://www.daydaymap.com → 个人中心
功能说明
1. FOFA 查询 (fofa_search)
主要参数:
query: 查询语法(支持多种匹配和逻辑运算符)size: 返回条数(默认 100,最大 10000)page: 页码(默认 1)fields: 返回字段(默认:host,ip,port,domain,title)
匹配运算符:
=- 匹配(模糊匹配),=""时可查询不存在字段或值为空的情况==- 完全匹配,==""时可查询存在且值为空的情况!=- 不匹配,!=""时可查询值为空的情况*=- 模糊匹配,使用*或?通配符(个人版及以上)
逻辑运算符:
&&- 与(AND)||- 或(OR)()- 括号确认查询优先级
查询示例:
# 基础匹配
body="miner start"
domain="example.com"
# 完全匹配
server=="Microsoft-IIS/10"
# 不匹配
body="admin" && country!="CN"
# 模糊匹配(通配符)
banner*="mys??"
# 逻辑 AND(&&)
domain="example.com" && port="443"
title="login" && country="CN"
# 逻辑 OR(||)
title="admin" || title="后台"
port="80" || port="443"
# 优先级控制
(title="admin" || title="login") && country="CN"2. Quake 查询 (quake_search)
主要参数:
query: 查询语法(使用冒号语法:field:value)size: 返回条数(默认 100)include: 包含字段(逗号分隔,见下方可用字段列表)exclude: 排除字段(逗号分隔)pagination_id: 深度翻页 ID(5分钟有效)start_time/end_time: 时间范围(UTC格式:2020-10-14 00:00:00)
查询语法:
使用冒号
:连接字段和值,如port:443、title:"keyword"逻辑运算符:
AND、OR、NOT(大写)括号
()控制优先级
可用字段(注册用户 - 服务数据):
ip, port, hostname, transport, asn, org, service.name,
location.country_cn, location.province_cn, location.city_cn,
service.http.host, service.http.title, service.http.server可用字段(会员用户 - 额外服务数据字段):
time, domain, service.response, service.cert,
components.product_catalog, components.product_type,
components.product_level, components.product_vendor,
location.country_en, location.province_en, location.city_en,
location.district_en, location.district_cn, location.isp,
service.http.body, components.product_name_cn, components.version,
service.http.infomation.mail, service.http.favicon.hash,
service.http.favicon.data, service.http.status_code查询示例:
# 单条件查询
port:443
title:"后台管理"
# 逻辑 AND
port:3389 AND country:"China"
port:3389 AND country_cn:"中国" AND NOT province_cn:"广东"
# 逻辑 OR
port:3389 AND (country:"China" OR country:"United States")
# 逻辑 NOT
port:80 AND NOT response:"baidu"
service:http AND NOT response:"baidu"
# 优先级控制
port:3389 AND (country:"China" OR country:"United States") AND NOT province_cn:"广东"字段筛选示例:
# 只返回 IP 和端口
include: "ip,port"
# 返回 IP、端口和网页标题
include: "ip,port,service.http.title"
# 返回基础信息和组织
include: "ip,port,service.http.title,org,asn"
# 返回完整信息(会员)- 注意使用具体的组件字段
include: "ip,port,service.http.title,service.http.server,domain,components.product_name_cn,components.version"⚠️ 常见字段错误:
❌
components→ ✅ 使用具体字段如components.product_name_cn❌
as_org→ ✅ 使用asn和org❌
as_organization→ ✅ 使用asn和org
3. Hunter 查询 (hunter_search)
主要参数:
query: 查询语法(使用等号语法:field="value")page_size: 每页条数(可选:10/50/100,默认 10)page: 页码(默认 1)is_web: 资产类型(1=web资产,2=非web资产,3=全部)fields: 返回字段start_time/end_time: 时间范围(格式:YYYY-MM-DD)
匹配运算符:
=- 模糊查询,查询包含关键词的资产==- 精确查询,查询有且仅有关键词的资产!=- 模糊剔除,剔除包含关键词的资产。使用!=""可查询值不为空的情况!==- 精确剔除,剔除有且仅有关键词的资产
逻辑运算符:
&&- 与(AND)||- 或(OR)()- 括号内表示查询优先级最高
查询示例:
# 模糊匹配
web.body="keyword"
domain="example.com"
# 精确匹配
web.title=="登录"
ip=="1.1.1.1"
# 模糊剔除
web.body="admin" && ip!="1.1.1.1"
# 精确剔除
domain!=="example.com"
# 查询值不为空
ip!=""
# 逻辑 AND(&&)
web.title="后台管理系统" && ip="1.1.1.1"
domain="example.com" && web.status_code="200"
# 逻辑 OR(||)
domain="example.com" || domain="test.com"
web.title="admin" || web.title="login"
# 优先级控制
(web.title="admin" || web.title="login") && ip!=""4. DayDayMap 查询 (daydaymap_search)
主要参数:
query: 未经 Base64 编码的 DayDayMap 查询语法,服务器会自动编码page: 页码(默认 1)page_size: 每页条数(默认 100,最大 10000)fields: 逗号分隔的返回字段exclude_fields: 排除字段,只在fields为空时生效
查询示例:
ip="1.1.1.1"
domain="example.com"
port="443" && web.title="login"AI 对话示例
用户: 查询 FOFA,body="admin",返回 50 条
AI: 将设置 query="body=\"admin\"", size=50
用户: 查询 Quake,标题为"后台管理",只返回 IP 和端口
AI: 将设置 query='title:"后台管理"', include='ip,port'
用户: 查询 Hunter,web.title="登录",只要 web 资产,每页 100 条
AI: 将设置 query='web.title="登录"', is_web=1, page_size=100
用户: 查询 DayDayMap,domain="example.com",返回 50 条
AI: 将设置 query='domain="example.com"', page_size=50功能对比
功能 | FOFA | Quake | Hunter | DayDayMap |
返回条数控制 | ✅ size (1-10000) | ✅ size | ✅ page_size (10/50/100) | ✅ page_size (1-10000) |
字段控制 | ✅ fields | ✅ include/exclude | ✅ fields | ✅ fields/exclude_fields |
翻页 | ✅ page | ✅ pagination_id | ✅ page | ✅ page |
时间范围 | ❌ | ✅ start_time/end_time | ✅ start_time/end_time | ✅ 查询语法 |
资产类型筛选 | ❌ | ❌ | ✅ is_web | ✅ 查询语法 |
开发
# 克隆仓库
git clone https://github.com/RuoJi6/fofa_quake_hunter_mcp.git
cd fofa_quake_hunter_mcp
# 安装依赖
uv sync
# 运行服务器
uv run fofa-quake-hunter-mcp许可证
MIT License - 详见 LICENSE 文件
贡献
欢迎提交 Issue 和 Pull Request!
Related MCP server: FOFA MCP Server
English
Features
🔍 FOFA Search: Query FOFA cyberspace mapping platform
🌐 Quake Search: Query 360 Quake cyberspace mapping platform with deep pagination
🦅 Hunter Search: Query Qianxin Hunter (鹰图) platform
🗺️ DayDayMap Search: Query DayDayMap with pagination and response-field filtering
🧩 MCP SDK v2: Uses the current
MCPServerAPI and runs directly throughuvx🤖 AI-Friendly: All parameters support natural language configuration
⚙️ Flexible Config: Configure only the platforms you need
Installation
Using uvx (Recommended)
uvx fofa-quake-hunter-mcpUsing pip
pip install fofa-quake-hunter-mcpFrom Source
git clone https://github.com/RuoJi6/fofa_quake_hunter_mcp.git
cd fofa_quake_hunter_mcp
pip install -e .Configuration
Configure in MCP Client
Add to your MCP configuration file (e.g., Claude Desktop's claude_desktop_config.json or Kiro's .kiro/settings/mcp.json):
{
"mcpServers": {
"fofa-quake-hunter": {
"command": "uvx",
"args": ["fofa-quake-hunter-mcp"],
"env": {
"FOFA_KEY": "your_fofa_api_key",
"QUAKE_KEY": "your_quake_api_key",
"HUNTER_KEY": "your_hunter_api_key",
"DAYDAYMAP_KEY": "your_daydaymap_api_key"
}
}
}
}Note:
You can configure only the platforms you need. Unconfigured tools will show friendly setup instructions when called.
FOFA_EMAIL is optional and only needed for some API endpoints. Most users only need FOFA_KEY.
DAYDAYMAP_API_KEYis also accepted as a compatible DayDayMap environment variable.
Get API Keys
FOFA: Login to https://fofa.info → Personal Center → API Key
Quake: Login to https://quake.360.net → Personal Center → Key Management
Hunter: Login to https://hunter.qianxin.com → Personal Center → API Management
DayDayMap: Login to https://www.daydaymap.com → Personal Center
Tools
1. FOFA Search (fofa_search)
Key Parameters:
query: Search query (e.g.,body="admin",domain="example.com")size: Number of results (default: 100, max: 10000)page: Page number (default: 1)fields: Fields to return (default:host,ip,port,domain,title)
Query Examples:
body="miner start"
domain="example.com" && port="443"
title="login" && country="CN"2. Quake Search (quake_search)
Key Parameters:
query: Search query (e.g.,title:"admin",ip:1.1.1.1)size: Number of results (default: 100)include: Fields to include (e.g.,ip,port,service.http.title)exclude: Fields to excludepagination_id: Pagination ID for deep paging (5-minute expiry)start_time/end_time: Time range (UTC format)
Query Examples:
title:"admin panel"
ip:1.1.1.1 AND port:80
service:http AND country:"china"3. Hunter Search (hunter_search)
Key Parameters:
query: Search query (e.g.,web.body="admin",ip="1.1.1.1")page_size: Results per page (options: 10/50/100, default: 10)page: Page number (default: 1)is_web: Asset type (1=web assets, 2=non-web assets, 3=all)fields: Fields to returnstart_time/end_time: Time range (format: YYYY-MM-DD)
Query Examples:
web.body="keyword"
web.title="admin panel"
domain="example.com" && web.status_code="200"4. DayDayMap Search (daydaymap_search)
Key Parameters:
query: Raw DayDayMap query; the server Base64-encodes it automaticallypage: Page number (default: 1)page_size: Results per page (default: 100, maximum: 10000)fields: Comma-separated response fieldsexclude_fields: Fields to exclude whenfieldsis empty
Query Examples:
ip="1.1.1.1"
domain="example.com"
port="443" && web.title="login"Feature Comparison
Feature | FOFA | Quake | Hunter | DayDayMap |
Result Count | ✅ size (1-10000) | ✅ size | ✅ page_size (10/50/100) | ✅ page_size (1-10000) |
Field Control | ✅ fields | ✅ include/exclude | ✅ fields | ✅ fields/exclude_fields |
Pagination | ✅ page | ✅ pagination_id | ✅ page | ✅ page |
Time Range | ❌ | ✅ start_time/end_time | ✅ start_time/end_time | ✅ query syntax |
Asset Type Filter | ❌ | ❌ | ✅ is_web | ✅ query syntax |
Development
# Clone repository
git clone https://github.com/RuoJi6/fofa_quake_hunter_mcp.git
cd fofa_quake_hunter_mcp
# Install dependencies
uv sync
# Run server
uv run fofa-quake-hunter-mcpLicense
MIT License - see LICENSE file for details
Contributing
Issues and Pull Requests are welcome!
Links
Available Tools
3 toolsfofa_searchA
Search FOFA cyberspace mapping platform. Requires FOFA_EMAIL and FOFA_KEY environment variables. Query syntax: field="value" format. Matching operators: = (match), == (exact match), != (not match), *= (fuzzy match with wildcards). Logical operators: && (AND), || (OR). Examples: body="miner start", server=="nginx", domain="example.com" && port="443"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | FOFA search query. Matching operators: = (match), == (exact match), != (not match), *= (fuzzy with * or ?). Logical: && (AND), || (OR). Examples: body="admin", server=="Microsoft-IIS/10", domain="example.com" && port!="80" | |
| size | No | Number of results to return (default: 100, max: 10000). IMPORTANT: If user specifies a number (e.g., '查询10个', 'find 5 results'), use that number as size value. | |
| page | No | Page number (default: 1) | |
| fields | No | Comma-separated fields to return. Available fields: host, ip, port, domain, title, protocol, server, banner, cert, icp, country, city, as_organization, etc. Default: 'host,ip,port,domain,title' | host,ip,port,domain,title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing authentication requirements (FOFA_EMAIL and FOFA_KEY environment variables), query syntax rules, and operator behaviors. It doesn't mention rate limits, pagination details, or error handling, but provides substantial operational 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?
The description is efficiently structured with zero wasted sentences. It opens with the core purpose, then provides prerequisites, syntax rules, operators, and examples in a logical flow. Every sentence serves a clear informational purpose.
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 search tool with 4 parameters, 100% schema coverage, and no output schema, the description provides strong context about authentication, query syntax, and examples. It lacks details about response format, error conditions, and rate limits, but covers the essential operational aspects well given the structured data available.
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 the baseline is 3. The description adds some value by providing query syntax examples and operator explanations that complement the schema, but doesn't significantly enhance parameter understanding beyond what's already documented in the input schema properties.
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 specific action ('Search') and resource ('FOFA cyberspace mapping platform'), distinguishing it from sibling tools like hunter_search and quake_search by specifying the FOFA platform. It provides a complete functional overview in the opening sentence.
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 context about when to use this tool (searching the FOFA platform) and mentions environment variable prerequisites, but doesn't explicitly contrast with the sibling tools or specify when NOT to use it. The context is sufficient but lacks explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_searchA
Search Hunter (奇安信鹰图) cyberspace mapping platform. Requires HUNTER_KEY environment variable. Query syntax: field="value" format. Matching operators: = (fuzzy match), == (exact match), != (fuzzy exclude), !== (exact exclude). Logical operators: && (AND), || (OR). Examples: web.body="keyword", web.title=="login", domain="example.com" && web.status_code="200", ip!="1.1.1.1". Supports filtering by asset type: web assets, non-web assets, or all. Supports time range filtering (querying beyond 30 days will consume extra credits).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Hunter search query. Matching operators: = (fuzzy), == (exact), != (fuzzy exclude), !== (exact exclude). Logical: && (AND), || (OR). Examples: web.body="keyword", web.title=="login", domain="example.com" && ip!="1.1.1.1", (web.title="admin" || web.title="login") && ip!="" | |
| page | No | Page number, starting from 1 (default: 1) | |
| page_size | No | Results per page (default: 10, valid values: 10, 50, 100). IMPORTANT: If user specifies a number (e.g., '查询10个', 'find 5 results'), choose the closest valid value (10, 50, or 100). For 1-30 use 10, for 31-75 use 50, for 76+ use 100. | |
| is_web | No | Asset type filter: 1=only web assets (websites, web services), 2=only non-web assets (databases, IoT devices, etc.), 3=all assets (default: 3) | |
| status_code | No | HTTP status codes filter (e.g., '200,301') | |
| fields | No | Comma-separated fields to return. Available: 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. If not specified, returns all fields. | |
| start_time | No | Query start time in format: 2021-01-01 (YYYY-MM-DD). Note: Querying beyond 30 days will consume extra credits. | |
| end_time | No | Query end time in format: 2021-03-01 (YYYY-MM-DD). Note: Querying beyond 30 days will consume extra credits. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by mentioning the authentication requirement (HUNTER_KEY), cost implications (extra credits for queries beyond 30 days), and query syntax rules. However, it doesn't mention rate limits, pagination behavior beyond the parameters, or error handling.
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 appropriately sized and front-loaded with essential information. It efficiently covers authentication, query syntax, operators, examples, asset types, and time filtering in a single paragraph. Every sentence adds value, though some information about parameters is redundant with the schema.
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 search tool with 8 parameters, 100% schema coverage, but no output schema or annotations, the description provides adequate context about authentication, query syntax, and cost implications. However, it doesn't describe the return format, result structure, or error scenarios, leaving gaps for an AI agent to understand the full tool behavior.
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 100% schema description coverage, the baseline is 3. The description adds some value by explaining query syntax with examples and mentioning time range filtering implications, but doesn't provide significant additional parameter semantics beyond what's already well-documented in the schema 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 searches the Hunter cyberspace mapping platform with specific query syntax. It distinguishes from siblings by mentioning Hunter specifically, but doesn't explicitly differentiate from fofa_search or quake_search in terms of when to use each platform.
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 the HUNTER_KEY environment variable requirement and provides query syntax examples, but doesn't explicitly state when to use this tool versus the sibling fofa_search or quake_search tools. It provides some context about time range filtering and credit consumption, but lacks explicit guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quake_searchA
Search Quake 360 cyberspace mapping platform using scroll API (supports deep pagination). Requires QUAKE_KEY environment variable. Query syntax: field:value format (e.g., port:443, title:"keyword"). Logical operators: AND, OR, NOT (uppercase). Examples: port:443, ip:1.1.1.1 AND port:80, service:http AND NOT response:"baidu". IMPORTANT: Use 'include' parameter to specify which fields to return. NOTE: Field names must be exact - use 'asn' and 'org' (NOT 'as_org'), use specific component fields like 'components.product_name_cn' (NOT just 'components'). Supports pagination_id for getting more pages.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Quake search query using colon syntax. Logical operators: AND, OR, NOT (uppercase). Examples: title:"后台管理", port:3389 AND country:"China", port:80 AND NOT response:"baidu", domain:example.com OR domain:test.com | |
| size | No | Number of results to return per page (default: 100, larger size = longer request time). IMPORTANT: If user specifies a number (e.g., '查询10个', 'find 5 results'), use that number as size value. | |
| pagination_id | No | Pagination ID from previous response. Use this to get next page. Expires in 5 minutes. Leave empty for first request. | |
| include | No | Comma-separated fields to include. REGISTERED USERS can use: ip, port, hostname, transport, asn, org, service.name, location.country_cn, location.province_cn, location.city_cn, service.http.host, service.http.title, service.http.server. MEMBER USERS can additionally use: time, domain, service.response, service.cert, components.product_catalog, components.product_type, components.product_level, components.product_vendor, location.country_en, location.province_en, location.city_en, location.district_en, location.district_cn, location.isp, service.http.body, components.product_name_cn, components.version, service.http.infomation.mail, service.http.favicon.hash, service.http.favicon.data, service.http.status_code. IMPORTANT: Use exact field names - 'asn' and 'org' (NOT 'as_org'), specific component fields like 'components.product_name_cn' (NOT 'components'). Example: 'ip,port,service.http.title,org,asn' for basic info with organization. | |
| exclude | No | Comma-separated fields to exclude from results | |
| ignore_cache | No | Whether to ignore cache (default: false) | |
| latest | No | Whether to use latest data (default: true) | |
| start_time | No | Query start time in format: 2020-10-14 00:00:00 (UTC timezone) | |
| end_time | No | Query end time in format: 2020-10-14 00:00:00 (UTC timezone) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does an excellent job disclosing behavioral traits. It specifies authentication requirements (QUAKE_KEY environment variable), pagination behavior (scroll API with pagination_id expiring in 5 minutes), query syntax rules, field naming conventions, and user tier limitations for the 'include' parameter. The only minor gap is lack of explicit rate limit information.
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 appropriately front-loaded with core functionality, but becomes somewhat dense with multiple examples, syntax rules, and field naming conventions in a single paragraph. While all information is valuable, the structure could be improved with better organization or bullet points for readability.
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 complex search tool with 9 parameters and no annotations or output schema, the description provides substantial context about authentication, query syntax, pagination behavior, field naming rules, and user tier limitations. The main gap is lack of information about return format or result structure, which would be helpful given no output schema exists.
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%, providing comprehensive parameter documentation. The description adds some value by emphasizing the importance of the 'include' parameter and providing field naming examples, but doesn't significantly enhance parameter understanding beyond what's already in the schema. This meets the baseline for high schema coverage.
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 the 'Quake 360 cyberspace mapping platform using scroll API (supports deep pagination)', which is a specific verb (search) and resource (Quake 360 platform). It distinguishes from sibling tools like fofa_search and hunter_search by explicitly naming the platform and API method.
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 context about when to use this tool (searching Quake 360 platform with scroll API for deep pagination) and mentions the QUAKE_KEY environment variable requirement. However, it doesn't explicitly state when NOT to use it or provide direct alternatives to sibling tools, though the platform specificity implies differentiation.
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.
3 tool updates
v0.1.4- First observed
fofa_search - First observed
hunter_search - First observed
quake_search
TDQS
Each tool has a clearly distinct purpose targeting a different cyberspace mapping platform: fofa_search for FOFA, hunter_search for Hunter, and quake_search for Quake 360. There is no overlap in functionality as they operate on separate data sources with unique query syntax and parameters.
All tool names follow a consistent pattern: platform name (fofa, hunter, quake) followed by '_search'. This uniform verb_noun structure makes the tool set predictable and easy to understand.
With 3 tools, the count is well-scoped for the server's purpose of querying multiple cyberspace mapping platforms. Each tool earns its place by covering a distinct platform, avoiding redundancy while providing comprehensive coverage of the domain.
The tool set is complete for its intended domain, offering search capabilities across three major cyberspace mapping platforms (FOFA, Hunter, Quake 360). There are no obvious gaps, as each tool provides the core functionality needed to query its respective platform with detailed syntax and parameter support.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that integrates ThreatBook's threat intelligence API, offering 15 specialized tools for security analysis. It enables AI models to perform IP reputation checks, domain investigations, file sandbox analysis, and vulnerability intelligence lookups.50MIT
- FlicenseNot gradedqualityBmaintenanceMCP server for querying the FOFA API, enabling network asset search and account information retrieval.8-
- AlicenseBqualityBmaintenanceAggregates multiple cyberspace search engines (FOFA, Quake, Hunter, ZoomEye) into a unified MCP server, enabling asset search, pagination, statistics, and account info retrieval.26MIT
- AlicenseBqualityBmaintenanceMCP server that enables AI agents to search domain, IP, port, service, title, ICP, server header, and component assets via the SCANDOMAIN API using Quake-style DSL queries.1MIT
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/RuoJi6/fofa_quake_hunter_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server