cn-scraper-mcp
CN Scraper MCP is a Model Context Protocol server that enables AI agents to search and scrape content from major Chinese internet platforms, handling anti-scraping measures, login states, and browser environments locally.
🛒 E-Commerce
Taobao/Tmall: Search products and get product details (TLS fingerprint spoofing + MTOP signing, no browser needed)
JD.com: Search products and get product details (requires local Chrome with persistent login profile)
Pinduoduo: Get product details without limits; search is limited to the first session only
📱 Social & Content Platforms
Xiaohongshu: Search notes, get note details, and fetch comments (requires local Chrome + login cookies)
Zhihu: Search content, view hot list, get answers, question answer lists, and comments (requires login cookies)
Weibo: Search posts, view hot list (no login needed), get user timelines, post details, and comments
Douyin: Search videos (experimental), view hot list, get video details and comments (requires login + manual CAPTCHA handling)
Bilibili: Search videos, view popular videos, get video details and comments (all public APIs, no login required)
Douban: Search items, get subject details and reviews
Dianping: Search merchants, get shop details and reviews
ZSXQ (知识星球): Fetch paid community topics and full article content (requires login cookie)
🔐 Authentication & Cookie Management
guided_login: Opens Chrome, navigates to a platform's login page, waits for manual login, then harvests cookies automaticallyharvest_cookies: Extracts cookies from an already-logged-in Chrome session via CDPcheck_cookies: Checks all platform cookie files for existence, validity, required fields, and freshnessverify_login: Makes a live request to verify if cached login sessions are still accepted (supports Zhihu, Weibo, ZSXQ, Douyin)
🔧 Environment Diagnostics
diagnose: Checks Python version, dependencies, Chrome installation, CDP ports, cookie status, and recent errors without making any real scraping requests
Provides search functionality for Taobao/Tmall e-commerce platform, returning product listings with price, sales, and shop info.
Provides search for notes and retrieval of note details including body, tags, and comments on Xiaohongshu.
Provides search for questions and articles, and supports fetching trending topics from Zhihu.
Click on "Deploy 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., "@cn-scraper-mcpsearch taobao for 儿童学习桌"
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.
这是什么
每个 AI Agent(Codex、Claude Code、Cursor、Trae)都能搜网页,但中文平台通常需要登录态、浏览器环境或平台专用参数:
淘宝:需要浏览器一致的网络指纹和登录 Cookie
京东:依赖已登录的本地浏览器环境
小红书:需要住宅 IP、本地浏览器和搜索结果中的访问参数
知乎:游客搜索已关闭,全部 API 需要登录态
拼多多:平台限制严格,目前不推荐使用
微博:搜索 API 需要登录态(SUB token),热搜游客即可访问
抖音:需要浏览器登录并可能人工处理验证码
B站:搜索、热门、视频详情和评论可直接使用公开 API
豆瓣:条目搜索、条目详情和短评/影评
大众点评:商户搜索、商户详情和用户评价
知识星球:付费社群,内容藏在 cookie 认证的 REST API 后面
这个项目就是把踩了好几个月的坑打包成一个 MCP Server——你的 Agent 一句话就能搜:taobao_search("儿童学习桌")。
安全与隐私
cn-scraper-mcp 在你的电脑上本地运行,不需要把 Cookie、账号密码或浏览器 Profile 上传到任何中转服务器:
Cookie 默认保存在
~/.cn-scraper-cookies/,京东登录态保存在本地 Chrome Profile。登录过程直接发生在平台官方页面,软件不会读取或保存你的账号密码。
Cookie 值不会写入日志,也不会通过 MCP 工具结果返回给 Agent;工具只返回状态、字段名和本地路径等非敏感信息。
发起抓取或在线登录验证时,凭证只会发送给对应平台域名。
代码完全开源,所有凭证处理流程都可以审查。
建议仍像保护浏览器登录态一样保护本机账号:不要分享 Cookie 文件,不要把凭证提交到 Git,并限制本地文件的访问权限。
Related MCP server: rednote-analyzer-mcp
平台支持
电商
平台 | 方式 | 无需浏览器 | 限制 | 稳定性 |
淘宝/Tmall |
| ✅ | 宽松¹ | ✅ 稳定 |
京东/JD | Chrome CDP headful | 需 Chrome | 中等 | ✅ 稳定² |
拼多多/PDD | Chrome CDP + iPhone UA | 需 Chrome | 单次搜索限制³ | ⚠️ 不推荐 |
¹ 淘宝无硬性限流,但平台可能随时收紧,不建议高频批量抓取。 ² 京东由本地 Chrome 生成登录态和动态签名,工具读取结构化 API 响应;通过
guided_login("jd")可自动初始化持久化 Profile。 ³ 拼多多每个浏览器会话仅放行第一次搜索,之后永久"系统繁忙"。单次搜索结果零实用价值,引擎代码保留但不推荐使用。
内容社区
平台 | 方式 | 无需浏览器 | 限制 | 稳定性 |
小红书/XHS | 本地 Chrome CDP + cookie | 需 Chrome | 中等⁴ | ✅ 稳定 |
知乎/Zhihu | REST API v4 | ✅ | 正常 | ✅ 稳定 |
知识星球/ZSXQ | REST API v2 | ✅ | 正常 | ✅ 稳定 |
微博/Weibo | REST API | ✅ | 正常 | ✅ 稳定 |
抖音/Douyin ⚠️ | Chrome CDP + 验证码轮询 | 需 Chrome | 实验性⁵ | ⚠️ 实验性 |
B站/Bilibili | 公开 Web API | ✅ | 建议低频调用 | ✅ 稳定 |
豆瓣/Douban | 移动端 JSON API | ✅ | 搜索可能触发风控 | ⚠️ 依会话 |
大众点评/Dianping | 公开网页解析 | ✅ | 可能触发页面风控 | ⚠️ 依页面结构 |
⁴ 小红书只允许住宅 IP——云浏览器/数据中心 IP 直接封。必须用本地 Chrome。 ⁵ 抖音搜索需要登录态 + 手动过滑块验证码。支持 120s 等待用户手动验证,通过后自动抓取。
guided_login("douyin")可引导登录。
快速开始
安装
pip install cn-scraper-mcp也可以从源码安装开发版本:
git clone https://github.com/goesByhc/cn-scraper-mcp.git
cd cn-scraper-mcp
pip install .推荐:CDP 自动登录并保存 Cookie
安装并连接 MCP 后,直接让 Agent 调用:
guided_login(platform="weibo")它会打开本地 Chrome 并进入平台官方登录页。你自己扫码或输入密码后,工具通过 CDP 自动读取完整 Cookie(包括 JavaScript 无法读取的 HttpOnly Cookie),再保存到本机 ~/.cn-scraper-cookies/。京东则保存到本地持久化 Chrome Profile。
这是推荐方式,因为它不会要求你复制 Cookie,不容易漏掉关键字段,也更适合 Cookie 过期后的重新登录。可用平台名包括 taobao、jd、xiaohongshu、zhihu、weibo、zsxq、douyin、pdd、douban 和 dianping。
已有通过远程调试端口启动且登录完成的 Chrome 时,也可以调用:
harvest_cookies(platform="weibo")启动
cn-scraper-mcp
# 或: python -m cn_scraper_mcp.serverDocker
容器内预装 Chromium,无需本地浏览器:
docker build -t cn-scraper-mcp .
docker run -i --rm \
-v ~/.cn-scraper-cookies:/root/.cn-scraper-cookies \
-v ~/.jd_login_profile:/root/.jd_login_profile \
cn-scraper-mcp远程服务器部署可以切换到 HTTP transport,通过 IP + 端口 连接:
docker pull ghcr.io/goesbyhc/cn-scraper-mcp:latest
docker run -d --name cn-scraper-mcp \
-p 8000:8000 \
-e CN_SCRAPER_TRANSPORT=http \
-e CN_SCRAPER_HOST=0.0.0.0 \
-e CN_SCRAPER_PORT=8000 \
-e CN_SCRAPER_PATH=/mcp \
-v ~/.cn-scraper-cookies:/root/.cn-scraper-cookies \
-v ~/.jd_login_profile:/root/.jd_login_profile \
ghcr.io/goesbyhc/cn-scraper-mcp:latest远程 MCP endpoint:
http://<server-ip>:8000/mcp也可以使用 Docker Compose:
docker compose --profile remote up -d cn-scraper-http可用环境变量:
变量 | 默认值 | 说明 |
|
|
|
|
| HTTP/SSE 模式监听地址 |
|
| HTTP/SSE 模式监听端口 |
|
| HTTP/SSE MCP endpoint 路径 |
远程 HTTP 模式会让 MCP 工具通过网络访问本机 Cookie/Profile 目录,请勿直接裸露公网端口。建议放在内网、VPN、防火墙白名单或带鉴权的反向代理后面。小红书、京东、抖音等依赖本地浏览器、住宅 IP 或人工验证码的平台,在远程服务器上的稳定性取决于服务器网络与图形环境。
当平台要求人工处理登录、验证码或风控页时,工具会返回统一的 ACTION_REQUIRED 结构,并在 action_required 字段中说明平台、原因、处理动作、处理链接和建议重试的工具。当前抖音验证码已接入该结构;远程 Docker 场景下仍需要你通过可见浏览器或后续 noVNC 网页完成验证。
Agent 集成配置:
# Codex ~/.codex/config.toml
[mcp_servers.cn-scraper]
command = "docker"
args = ["run", "-i", "--rm",
"-v", "/本机绝对路径/.cn-scraper-cookies:/root/.cn-scraper-cookies",
"-v", "/本机绝对路径/.jd_login_profile:/root/.jd_login_profile",
"cn-scraper-mcp"]请把 /本机绝对路径/ 替换为真实路径;MCP 客户端直接启动进程时不会替你展开 ~。
Docker 镜像内置 Chromium +
--no-sandbox。京东 headful 模式如需 Xvfb,设置环境变量XVFB_WRAPPER=1。小红书仍需住宅 IP——数据中心 IP 会被封。
MCP 工具一览
电商搜索
工具 | 说明 |
| 淘宝/天猫关键词搜索 → 价格、销量、店铺 |
| 淘宝商品详情 → 标题、价格、店铺 |
| 京东关键词搜索 → SKU、价格、商品名 |
| 京东商品详情 → 名称、价格、店铺、规格 |
| 拼多多搜索 → 仅首次有效 |
| 拼多多商品详情 → 不限次数 |
内容社区
工具 | 说明 |
| 小红书笔记搜索 → 标题、作者、点赞、 |
| 小红书笔记详情 → 标题、正文、作者、标签、互动数、发布时间 |
| 小红书笔记首屏评论 → 评论内容、用户、点赞、时间(需要 |
| 知乎搜索 → 问题、文章 |
| 知乎热榜 |
| 知乎回答评论(支持分页) |
| 知乎回答完整正文 |
| 知乎问题下的回答列表 |
| 微博搜索 → 微博帖子内容 |
| 微博热搜榜 |
| 微博用户时间线 |
| 微博帖子评论(支持分页) |
| 微博帖子完整详情 |
| 抖音搜索 → CDP 浏览器 + 验证码轮询(⚠️ 实验性) |
| 抖音热搜榜 |
| 抖音视频详情 |
| 抖音视频评论 |
| B 站视频搜索(纯 HTTP,无需登录) |
| B 站热门视频榜 |
| B 站视频详情及互动统计 |
| B 站视频一级评论(支持分页) |
| 豆瓣书籍、电影、音乐等条目搜索 |
| 豆瓣条目详情 |
| 豆瓣条目短评/影评 |
| 大众点评商户搜索 |
| 大众点评商户详情 |
| 大众点评商户评价 |
| 知识星球付费社群帖子 |
| 知识星球文章全文 |
Cookie 管理
工具 | 说明 |
| 检查所有平台 Cookie 状态 |
| 在线验证知乎、微博、知识星球、抖音登录态;不支持的平台明确返回 unsupported |
| 环境诊断——依赖版本、浏览器、CDP 端口 |
| CDP 自动收割 Cookie(包括 HttpOnly) |
| 引导登录——自动打开浏览器 → 你扫码 → 登录后自动收割 Cookie |
MCP 客户端配置
Codex
~/.codex/config.toml:
[mcp_servers.cn-scraper]
command = "cn-scraper-mcp"
args = []保存后可用 codex mcp list 检查连接状态。
Claude Code / Cursor / Reasonix
这三个客户端都支持标准的 mcpServers JSON:
Claude Code:项目根目录
.mcp.jsonCursor:全局
~/.cursor/mcp.json,或项目目录.cursor/mcp.jsonReasonix:项目根目录
.mcp.json
{
"mcpServers": {
"cn-scraper": {
"command": "cn-scraper-mcp",
"args": []
}
}
}Trae
Trae 不同版本的配置文件位置可能不同。建议在设置中的 MCP 管理界面添加本地 stdio Server:名称填写 cn-scraper,命令填写 cn-scraper-mcp,参数留空。
如果客户端提示找不到命令,先用
where cn-scraper-mcp(Windows)或which cn-scraper-mcp(macOS/Linux)找到完整路径,再把command替换为该路径。
更多文档
常见问题
Q: 使用这个软件安全吗? 软件在你的电脑上本地运行,不经过项目方的中转服务器。Cookie 和浏览器 Profile 保存在本机,Cookie 值不会写入日志或通过 MCP 返回给 Agent;需要访问平台时,凭证只发送给对应的平台域名。
Q: 软件会读取或保存账号密码吗? 不会。登录发生在平台官方页面,由你自己扫码或输入密码;工具只在登录完成后通过 CDP 保存浏览器产生的 Cookie。
Q: Cookie 保存在什么地方?
Cookie 默认保存在 ~/.cn-scraper-cookies/,京东使用本地持久化 Chrome Profile。请像保护已登录浏览器一样保护这些文件,不要分享或提交到 Git。
Q: 怎么初始化 Cookie 最方便?
用 guided_login("平台名") 工具。它会自动打开 Chrome → 导航到登录页 → 等你扫码/输密码 → 登录后自动收割 Cookie 并保存。
Q: 合法吗? 仅用于学习和研究目的。批量抓取可能违反平台服务条款。风险自负。切勿用于垃圾信息、DDoS 或商业级大规模抓取。
许可证
MIT — 详见 LICENSE。
支持项目
如果这个项目帮你节省了时间,可以请作者喝杯咖啡:
致谢
curl_cffi — TLS 指纹伪装
FastMCP — MCP Server 框架
websockets — 异步 WebSocket
Made with ☕ and months of frustration at Chinese platform anti-bot walls.
Available Tools
40 toolsbilibili_commentsA
获取 B 站视频一级评论,支持游标分页。无需登录或浏览器。
bvid 来自 bilibili_search 或 bilibili_popular;下一页传回上次结果中的 next_cursor。评论按 B 站热门评论模式返回。
| Name | Required | Description | Default |
|---|---|---|---|
| bvid | Yes | B 站 BV 号 | |
| limit | No | 返回条数上限(默认 20) | |
| cursor | No | 上一页返回的 next_cursor;第一页留空 |
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 discloses pagination and no login requirement but lacks details on rate limits, error handling, or exact response structure.
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, two sentences plus a line break, with all essential information front-loaded.
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 low complexity (3 params, output schema exists), description fully covers purpose, parameter sources, pagination, and ordering, leaving no obvious gaps.
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 covers all parameters; description adds value by linking bvid to other tools and clarifying cursor usage, though limit is merely restated.
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 fetches B站 first-level comments with pagination, distinguishing from sibling tools like bilibili_search and bilibili_video.
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 mentions bvid comes from bilibili_search or bilibili_popular and how to use cursor for pagination, but does not explicitly state when not to use alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bilibili_popularA
获取 B 站当前热门视频榜。公开 HTTP API,无需登录或浏览器。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数上限(默认 20) |
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 bears full responsibility. It reveals the tool uses a public HTTP API and has no auth requirements, but lacks details on rate limits, pagination, or whether results are real-time. The output schema likely covers return structure, so extra description is not critical.
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 extremely concise with two sentences, front-loading the core purpose. Every word adds value, and no unnecessary information is present.
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 (one optional parameter, output schema exists), the description adequately covers the main context. It could mention update frequency or result type, but the output schema likely handles return details. Minor gap: no mention of default limit.
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 only parameter 'limit' is fully documented in the schema (description: '返回条数上限(默认 20)'), achieving 100% coverage. The tool description adds no additional semantic information beyond the schema, so baseline score of 3 is appropriate.
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 explicitly states the tool retrieves Bilibili's current hot video list, with specific verb '获取' and resource 'B站当前热门视频榜'. It clearly distinguishes from sibling tools like bilibili_search or bilibili_video by focusing on popular content.
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 that the API is public and requires no login or browser, indicating ease of use. However, it does not explicitly state when to use this tool versus alternatives like bilibili_search for specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bilibili_searchA
搜索 B 站视频。公开 HTTP API,无需登录或浏览器。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数上限(默认 10) | |
| keyword | Yes | 视频搜索关键词 |
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 discloses that the API is public and requires no authentication, which is valuable for assessing safety. It does not explicitly state read-only behavior, but '搜索' (search) implies it. Additional details like rate limits or error handling are absent, but the key behavioral trait is covered.
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 that leads with the main purpose and immediately provides access context. Every word carries meaning, with no redundancy or filler.
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 search tool with two parameters and an output schema, the description covers the essential aspects: the platform (Bilibili), the resource (videos), and access requirements (public, no login). There are no significant gaps given 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 schema provides full 100% description coverage for both parameters (keyword and limit), so the description adds no additional parameter semantics. The baseline of 3 is appropriate since the schema handles the 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 the tool searches Bilibili videos using the specific verb '搜索' and resource 'B站视频', which unambiguously identifies its function and distinguishes it from sibling tools like douyin_search or weibo_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?
It provides clear context that this is a public HTTP API requiring no login or browser, which implies it is suitable for public, unauthenticated searches. However, it does not explicitly contrast with alternatives like bilibili_popular, only implying the use case via the search keyword.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bilibili_videoA
获取 B 站视频详情及互动统计。无需登录或浏览器。
bvid 来自 bilibili_search 或 bilibili_popular 结果。
| Name | Required | Description | Default |
|---|---|---|---|
| bvid | Yes | B 站 BV 号 |
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 the description carries the burden. It states no login or browser is needed, which is a positive behavioral trait, but lacks details on rate limits, data freshness, or potential 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?
Two concise sentences: first sentence covers purpose and behavioral trait, second sentence covers input source. No unnecessary information.
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 an output schema, so return values need not be described. The description mentions interaction statistics, hints at output, and provides one required parameter. Adequate for a well-defined 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% and the schema describes bvid as 'B 站 BV 号'. The description adds context about the bvid's source but does not add semantic details beyond the schema. Baseline 3 is appropriate.
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 fetches Bilibili video details and interaction statistics using a specific verb ('获取') and resource, and distinguishes from sibling tools by specifying that the bvid comes from bilibili_search or bilibili_popular 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 explicitly states that the bvid should come from search or popular results, indicating when to use this tool, but does not include explicit exclusions or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_cookiesA
检查所有平台的 cookie 文件是否存在、有效字段及新鲜度。
Cookie 文件查找路径 (按优先级):
平台专用环境变量 (如 TAOBAO_COOKIES_FILE)
~/.cn-scraper-cookies/.json (推荐) JD 特殊: 检查 Chrome profile 目录 ~/.jd_login_profile
Returns: {taobao, xiaohongshu, zhihu, zsxq, jd, pdd: {exists, valid, missing_fields, path, age_hours, stale}}
| 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. It discloses search paths, special treatment for JD, and return format. It is transparent about behavior, though side effects (none) could be mentioned.
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 well-structured with purpose first, then path details, then return format. Every sentence adds value, 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?
For a zero-parameter tool, the description thoroughly covers what platforms it checks, where to find cookies, and the return structure. It is complete and informative.
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?
Input schema has zero parameters, so the description does not need to add parameter info. Baseline score of 4 is appropriate; no redundancy or missing param context.
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 checks cookie files for existence, valid fields, and freshness across multiple platforms (taobao, xiaohongshu, etc.). It specifies a specific verb and resource, distinguishing it from sibling tools like harvest_cookies or verify_login.
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 what it does and gives context for JD special case, but does not explicitly state when to use this tool versus alternatives. Usage guidance is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnoseA
诊断平台环境 — 检查 Python、依赖、Chrome、CDP 端口、Cookie、最近错误。
不做任何实际抓取,纯本地诊断。每项检查超时 5 秒。
Returns: sections: platform: {package_version, python_version} dependencies: {fastmcp: {installed, version}, curl_cffi: {...}, ...} browsers: {chrome: {found, path, version}, obscura: {found, path}} cdp_ports: {9222: {in_use}, 9247: {...}, 9251: {...}} cookies: 来自 check_all_cookies() 的结果 diagnostics: {recent_errors: [...]}
| 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?
With no annotations provided, the description fully discloses behavioral traits: it is a read-only, non-destructive check with a 5-second timeout per check. The return structure is also detailed, leaving no ambiguity about 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?
The description is concise and front-loaded with the main purpose. It lists return sections clearly. Minor improvement could be more structured formatting, but overall 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?
Given no parameters and no annotations, the description provides complete behavioral and output context. Return sections are fully described, and the tool's scope is well-defined.
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 coverage is 100%. Per guidelines, baseline is 4 for zero parameters. The description adds no parameter info because none exist, which is appropriate.
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 diagnoses the platform environment by checking specific components (Python, dependencies, Chrome, CDP ports, cookies, errors). It emphasizes it does no actual scraping, distinguishing it from all sibling scraping/retrieval 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 implicitly indicates this is for diagnostic purposes before scraping, stating it performs 'pure local diagnosis' and does 'no actual scraping.' However, it does not explicitly list when to use vs alternatives or provide exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dianping_reviewsC
获取大众点评商户评价。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| shop_id | Yes |
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 carries full responsibility for behavioral disclosure. It only says 'gets reviews' without describing any traits: whether it requires authentication, pagination behavior, rate limits, or what data types of reviews are returned.
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, short sentence with no wasted words. It is front-loaded with the core action, but could be expanded to include key details 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 the presence of an output schema, return values need not be described. However, the description omits critical context such as default limit value, pagination, prerequisites, and relationship to sibling tools. It is insufficient for an agent to reliably invoke this 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 description coverage is 0%, so the description must clarify parameters. It does not explain shop_id (likely the shop identifier) or limit (number of reviews). The parameter names are somewhat self-explanatory, but the description adds no value 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 the tool retrieves Dianping merchant reviews, using a specific verb (获取) and resource (评价). It is distinguishable from siblings like dianping_search and dianping_shop, but doesn't explicitly contrast 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?
No guidance is provided on when to use this tool versus alternatives (e.g., dianping_search for shops, dianping_shop for shop info). The description lacks any usage context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dianping_searchC
搜索大众点评商户。city 用于给 Agent 记录搜索城市。
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| limit | No | ||
| keyword | Yes |
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 only states it searches merchants and mentions city for logging, but does not disclose any behavioral traits such as whether it is read-only, pagination, rate limits, or authentication requirements.
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 very concise with two short sentences. However, the second sentence about the city parameter could be better integrated. It front-loads the purpose but could be more structured.
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, the description need not explain return values, but it omits any mention of the required keyword parameter, which is essential for use. The description only addresses one of three parameters, making it incomplete for an agent to effectively use the 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?
The schema has 0% description coverage for parameters. The description explains the city parameter ('used to record the search city for the agent') but does not explain the required keyword parameter or the limit parameter, which are left to the schema 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 states 'search Dianping merchants' which is a clear verb+resource. It distinguishes from sibling tools like dianping_reviews and dianping_shop by specifying 'merchants'. However, it does not explicitly differentiate from other platform search tools, but the tool name itself provides that context.
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?
There is no guidance on when to use this tool versus alternatives like dianping_shop or dianping_reviews. The description only explains the city parameter, not when to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dianping_shopA
获取大众点评商户详情。shop_id 来自 dianping_search。
| Name | Required | Description | Default |
|---|---|---|---|
| shop_id | Yes |
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 present, so the description must carry the burden of behavioral disclosure. It reveals a dependency (shop_id from dianping_search) and implicitly indicates a read-only 'get' operation. However, it does not explicitly state side effects, authentication requirements, or error behavior, which would be expected without annotations.
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 extremely concise, consisting of two short sentences. The first states the tool's purpose, and the second clarifies the parameter source. No unnecessary words, and the structure is efficiently 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?
For a simple one-parameter tool with an output schema provided, the description covers the essential context: what the tool does and where the input comes from. It does not cover potential edge cases or authentication, but given the tool's simplicity and the presence of an output schema, it is sufficiently 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?
The schema has 0% description coverage, so the description must compensate. The single parameter shop_id is given semantic context by stating it comes from dianping_search, clarifying its origin and how to obtain it. This is meaningful beyond the bare schema definition of a string type.
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 Dianping merchant details, using the specific verb '获取' (get) and the resource '大众点评商户详情' (Dianping merchant details). It also distinguishes itself from siblings by noting that the shop_id comes from dianping_search, linking it specifically to the search follow-up 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?
The description implies the usage context: shop_id is obtained from dianping_search, which tells the agent to run search first and then use this tool. It does not explicitly name alternatives or exclusions, but the relationship with the search tool provides clear workflow guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douban_reviewsC
获取豆瓣条目的短评/影评。支持 start 分页。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| start | No | ||
| subject_id | Yes |
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 bears full responsibility for behavioral disclosure. It only states that it retrieves reviews with pagination, but fails to disclose that it is read-only, any authentication requirements, rate limits, or side effects. For a data-fetching tool, 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?
The description is a single sentence with no fluff, but it is critically under-specified. Conciseness is achieved at the expense of necessary information, resulting in a score of 2 due to excessive sparseness.
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?
Although an output schema exists, the description does not mention return values, pagination behavior, or error conditions. It provides only the most basic context (the type of content and pagination), leaving the agent with significant unknowns for a simple paginated list 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?
With 0% schema description coverage, the description must compensate. It explains 'start' for pagination but does not clarify 'subject_id' (what it is or how to obtain it) or 'limit' (its meaning or default). Only one of three parameters gains semantic value.
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 short reviews/film reviews of Douban items, using specific verb '获取' and resource '豆瓣条目的短评/影评'. It distinguishes from siblings like douban_subject and douban_search, and from review tools of other platforms.
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. No prerequisites (e.g., need a subject_id from douban_search or douban_subject) or when-not-to-use conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douban_searchC
搜索豆瓣书籍、电影、音乐等条目。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| keyword | Yes |
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 such as read-only status, rate limits, or pagination. It only says 'search entries,' offering no behavioral 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 only one sentence, which is too minimal for a tool with two parameters and no annotations. It is under-specified rather than 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?
Despite having an output schema (so return values are covered), the description lacks details on keyword input, result format, and any limitations. It is insufficient for effective tool selection and 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 0%, yet the description does not explain the parameters (keyword, limit). It adds no meaning beyond the schema, failing to compensate for the coverage gap.
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 Douban entries including books, movies, music, etc. It uses a specific verb and resource, distinguishing it from more specific sibling tools like douban_reviews and douban_subject.
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. There is no mention of when-not to use it or any suggestion of use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douban_subjectA
获取豆瓣条目详情。subject_id 来自 douban_search。
| Name | Required | Description | Default |
|---|---|---|---|
| subject_id | Yes |
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 of behavioral disclosure. It does not specify if the tool is read-only, any required permissions, or potential side effects, though a simple lookup tool is generally safe.
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 exceptionally concise with two sentences, front-loading the purpose and parameter origin, with no extraneous information.
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 (one parameter, output schema exists), the description is largely complete. It explains how to obtain the required ID, though it could briefly note that it returns detailed information.
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 0% description coverage, but the description adds context by stating that subject_id comes from douban_search, adding meaning beyond the schema's bare string type.
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 Douban item details, using a specific verb and resource. It also distinguishes itself from sibling tools like douban_search by noting that the subject_id comes from that 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 guidance that the subject_id should be obtained from douban_search, indicating a prerequisite. However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_commentsA
获取抖音视频评论(首屏)。需要登录 cookie。
video_id 来自 douyin_search 结果中 item 的 video_id 字段。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 (默认 20) | |
| video_id | Yes | 视频 ID |
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 burden of behavioral disclosure. It reveals a login cookie requirement and a limitation of only returning the first screen of comments, which is useful. However, it does not describe error scenarios, data formats, or whether the operation is strictly read-only, leaving gaps in 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 is two sentences long and front-loaded with the core purpose. It avoids redundancy and clearly separates the tool's action, the authentication requirement, and the parameter origin, with no unnecessary 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 tool with 2 parameters, a full schema, and an output schema, the description covers the essential use case: fetching first-screen comments with a required cookie and tying video_id to search results. It misses minor details like pagination behavior beyond the first screen and error handling, but these are partially covered by the presence of an output schema and 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 schema already provides descriptions for both parameters (limit and video_id), achieving 100% coverage. The description adds critical semantic context by explaining that video_id comes from the 'video_id' field of douyin_search results, which goes beyond the schema's simple '视频 ID' and helps the agent source valid inputs.
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's action and resource: '获取抖音视频评论' (get Douyin video comments) with a scope qualifier '(首屏)' (first screen). It distinguishes from sibling tools like douyin_search and douyin_video by focusing specifically on comments for a video.
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 a usage prerequisite: '需要登录 cookie' (requires login cookie) and indicates that video_id comes from douyin_search results, giving explicit source context. It does not explicitly mention alternative tools for other platforms, but the name and context make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_hot_listA
抖音实时热搜榜。需要登录 cookie(首次用 guided_login 收割)。
Returns: {count, items: [{word, hot_value, position, label}]}
| 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?
With no annotations provided, the description carries the burden of behavioral disclosure. It discloses the authentication requirement ('需要登录 cookie') and the exact return format, which is useful. It does not mention rate limits, pagination, or potential errors, but for a simple hot-list tool, this level of transparency is reasonable.
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 extremely concise: one sentence stating purpose and auth requirement, followed by the return schema. It is front-loaded with the core purpose and every sentence adds value. No fluff or 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?
For a tool with no parameters and a simple hot-list output, the description covers purpose, authentication, and the return structure. It does not explain each field (word, hot_value, position, label), but these are self-explanatory in context. The inclusion of the return schema satisfies the output contract, making the description 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?
The tool has zero parameters and the input schema is empty, so schema coverage is effectively 100%. Per the guidelines, 0 params earns a baseline of 4. The description does not need to add parameter semantics, and it correctly focuses on the output structure instead.
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 identifies the resource as '抖音实时热搜榜' (Douyin real-time hot search list), specifying the platform and the type of data (hot list). It distinguishes from sibling hot-list tools like weibo_hot_list and zhihu_hot_list by naming '抖音'. While it lacks an explicit verb like 'get' or 'list', the noun '榜单' implies retrieval, and the tool name itself signals the action.
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 a key usage prerequisite: requiring a login cookie and directing first-time users to guided_login. This gives actionable context for when to use this tool in sequence with another tool. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention exclusions or alternatives for similar hot-list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_searchA
搜索抖音视频 — CDP 浏览器自动轮询,验证码自动等待。
需要 Chrome 已登录抖音(用 guided_login 先登录)。 弹出验证码时持续等待你手动过,通过后自动抓取结果。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 (默认 10) | |
| keyword | Yes | 搜索关键词 |
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 carries the burden. It reveals critical behavioral details: CDP browser automation, auto-polling, captcha waiting for manual intervention, and automatic result capture. This transparency helps an AI agent understand the tool's interactive nature.
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 extremely concise—three sentences, each earning its place: purpose, prerequisite, and behavior. It is front-loaded with the core action and uses no unnecessary 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?
Given the lack of annotations and the presence of an output schema, the description covers necessary context: functionality, prerequisites, and user interaction. It could mention pagination or error handling, but overall it is sufficiently complete for a search 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 description coverage is 100%, so baseline is 3. The description does not add additional meaning for the 'keyword' or 'limit' parameters beyond what is already in the schema, thus not improving parameter understanding.
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 explicitly states '搜索抖音视频' (search Douyin videos), clearly identifying the verb and resource. It distinguishes from sibling tools like douyin_comments, douyin_hot_list, and douyin_video by focusing on 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?
The description provides clear prerequisites: Chrome must be logged into Douyin via guided_login. It also explains that the tool will wait for manual captcha resolution. However, it does not explicitly contrast with alternative search methods or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_videoA
获取抖音视频详情(标题、作者、点赞、描述)。需要 Chrome。
video_id 来自 douyin_search 结果中 item 的 video_id 字段。
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | 视频 ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the Chrome requirement, but lacks details on authentication, rate limits, or error handling. With no annotations, more behavioral 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 two sentences: one for purpose, one for parameter context. Every sentence is useful, 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?
Given the output schema exists and the tool is simple, the description covers the key aspects: purpose, parameter source, and environmental requirement. It could mention other prerequisites like login 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?
The description adds context beyond the schema by explaining that video_id is obtained from douyin_search results. This helps the agent understand how to populate the parameter correctly.
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 video details (title, author, likes, description) and indicates the source of the video_id, distinguishing it from siblings like douyin_comments.
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 douyin_search by explaining where video_id comes from, but does not explicitly mention when not to use it or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guided_loginA
打开浏览器让你登录平台,自动检测登录态并收割 Cookie。
自动打开 Chrome → 导航到平台登录页 → 你扫码/输入密码 → 检测到你登录成功后自动收割 Cookie 并保存。
无需手动操作 CDP 端口——全程自动化。
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | CDP 端口 (可选, 默认 9222) | |
| platform | Yes | 认证注册表中的平台名,包括京东、微博、抖音、豆瓣和大众点评。 |
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 discloses the automated workflow (opening Chrome, navigating, detecting login, harvesting) but does not mention potential side effects (e.g., overwriting existing cookies), error handling, or permission requirements. 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?
The description is very concise and front-loaded with the main action. It uses short, clear sentences in Chinese with no wasted words. Perfect length 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?
Given the tool's low complexity (2 params, no nested objects, has output schema), the description is largely complete. It explains the entire workflow. However, it doesn't mention the output schema or what happens on failure, but the existence of an output schema reduces the burden.
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 does not add additional meaning beyond the schema for either parameter (port and platform). It does not elaborate on parameter formats or constraints.
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's purpose: open a browser, navigate to login page, detect login, and harvest cookies. It uses specific verbs (打开, 导航, 收割) and specifies the resource (浏览器, 登录页, Cookie). This distinguishes it from sibling tools like harvest_cookies and check_cookies.
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 context (to login to a platform and harvest cookies) but does not explicitly state when not to use or provide alternatives. The workflow is clear, but no exclusions or sibling differentiation are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
harvest_cookiesA
从用户自己的浏览器会话中自动提取 cookie(包括 HttpOnly cookie)。
通过 Chrome DevTools Protocol (CDP) 的 Network.getAllCookies 提取 浏览器 cookie jar 中的所有 cookie(含 HttpOnly,这是 JS 无法获取的)。 仅提取用户自己的浏览器会话——浏览器须已在指定端口运行且已登录。
非 profile 平台的 Cookie 保存到认证注册表指定的 JSON 文件。 京东使用持久化 Chrome profile,请改用 guided_login。
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | CDP 调试端口 (可选, 各平台有默认值) | |
| platform | Yes | 认证注册表中的平台名。京东会返回 profile_required。 |
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 carries the burden. It explains the mechanism (CDP Network.getAllCookies), the privacy scope (only the user's own session), side effects (saves to a JSON file specified by the auth registry), and a platform exception. Missing details about error behavior when the port isn't running, but the presence of an output schema reduces the need.
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?
Four sentences, each earning its place: main action, method/conditions, file saving behavior, and the JD exception. Front-loaded with purpose, no filler.
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 output schema exists, the description needn't explain return values. It covers purpose, prerequisites, side effects, and a special case. Could be slightly more explicit about how this tool relates to check_cookies/verify_login, but that's not essential for invoking it.
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 already fully documents both parameters (100% coverage), so baseline is 3. The description adds contextual value by stating that the browser must be running on the specified port and that JD returns profile_required, linking the port and platform parameters to real-world behavior.
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 opens with a specific verb+resource: '自动提取 cookie (including HttpOnly)' from the user's own browser session. It clearly distinguishes itself from sibling guided_login by noting that JD requires a persistent Chrome profile and should use guided_login instead.
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?
It explicitly states the when-not-to-use: for JD (persistent Chrome profile), use guided_login. It also gives prerequisites: browser must be running on the specified port and logged in. This provides clear usage context versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jd_productA
获取京东商品详情(名称、价格、店铺、规格)。需要本地 Chrome。
sku 来自 jd_search 结果中 item 的 sku 字段。
并发: ⚠️ 使用 BrowserLock 保护 CDP 端口。
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | 商品 SKU |
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 discloses important behavioral traits: need for local Chrome and use of BrowserLock for CDP port protection. It does not mention read-only nature or error handling, but for a simple retrieval tool this is adequate.
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 with three sentences, each providing essential information: purpose, input source, and concurrency warning. No unnecessary text.
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 complexity (single parameter, output schema present), the description covers purpose, input source, and concurrency. It could mention prerequisites like Chrome installation, but overall is sufficiently 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 description adds significant value beyond the schema by specifying that the SKU originates from the 'item' object in jd_search results. This helps the agent understand exactly how to obtain the parameter value.
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 fetches JD product details including name, price, store, and specifications. It uses specific verbs and resources, and distinguishes itself from sibling tools like jd_search which handles searching.
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 that the SKU comes from jd_search results, providing clear usage context. It mentions necessary dependencies (local Chrome) and concurrency protection. However, it does not explicitly state when not to use this tool or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jd_searchA
搜索京东商品。需要已登录的有头 Chrome(会自动启动)。
京东 headless 返回 0 结果 → 必须 headful。 需要持久登录 profile (~/.jd_login_profile)。 首次使用需在弹窗 Chrome 中手动登录 jd.com 一次。
并发: ⚠️ 使用 BrowserLock 保护 CDP 端口,同端口调用自动串行化。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数上限 (默认 10) | |
| keyword | Yes | 搜索关键词 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
由于没有任何注解,描述承担了全部行为透明责任。揭示了headless返回0结果、必须headful、登录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?
表达简洁,以换行分隔关键点,信息密度高。但可以进一步结构化以提升可读性。
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?
尽管存在浏览器自动化等复杂性,描述覆盖了核心使用上下文(登录、并发、headful需求)。输出模式存在,无需提及返回值。
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?
输入模式覆盖率100%,描述未为参数增添额外语义,基线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?
明确的动词+资源组合“搜索京东商品”,直接表明功能;与其他平台搜索工具(如taobao_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?
提供了详细的使用前提:需要headful Chrome、持久登录profile、首次手动登录以及并发保护(BrowserLock),但未明确说明何时不使用或替代方案。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdd_product_detailA
获取拼多多商品详情(名称、价格、原价、销量、规格)。
商品详情独立于搜索限制 — 不限次数。
| Name | Required | Description | Default |
|---|---|---|---|
| url_or_id | Yes | 商品 goods_id(如 "123456789")或完整 goods2.html URL |
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 the full burden of behavioral disclosure. It explicitly mentions unlimited usage and independence from search limits, which is valuable behavioral context beyond the schema. It does not discuss authentication prerequisites, but for a simple read-only fetch this is a reasonable gap.
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 short sentences: the first states the purpose and returned fields, the second highlights the unlimited usage. Every word earns its place, and the key information is front-loaded.
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?
This is a simple single-parameter tool with an output schema provided. The description adequately covers what the tool does, the fields returned, and an important usage constraint. No additional context is needed for successful 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%, and the schema already explains that url_or_id can be a goods_id or a full goods2.html URL. The main description adds no additional parameter-specific meaning, so the baseline score of 3 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 uses a specific verb '获取' (fetch) with a clear resource '拼多多商品详情' (Pinduoduo product details) and enumerates the specific fields (名称、价格、原价、销量、规格). This clearly distinguishes it from sibling search tools like pdd_search and other product detail 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 statement '商品详情独立于搜索限制 — 不限次数' gives clear context that this tool is not bound by search quotas, implying it is useful when search limits are a concern. However, it does not explicitly name alternatives or state when-not-to-use, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdd_searchA
搜索拼多多商品。需要 Chrome + PDD cookie(PDDAccessToken + pdd_user_id)。
⚠️ 严重限制:拼多多手机搜索每个浏览器会话仅允许一次搜索。 第一次搜索后,所有后续搜索返回「系统繁忙」。 如需再次搜索,必须重启 MCP server 以创建新的浏览器会话。
原理: Chrome CDP + iPhone UA 模拟手机浏览器搜索。 Cookie 文件: ~/.cn-scraper-cookies/pdd.json Token 有效期约 1 小时,需定期从手机浏览器重新导出。
并发: ⚠️ 使用 BrowserLock 保护 CDP 端口,同端口调用自动串行化。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数上限 (默认 10) | |
| keyword | Yes | 搜索关键词 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description fully bears the burden of behavioral disclosure. It thoroughly explains the single-use limitation, the need to restart the server, the use of BrowserLock for concurrency, token expiry, and cookie export requirements. This is highly transparent and leaves no ambiguity about the tool's behavior.
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 for the complexity of the tool, covering prerequisites, limitations, and behavior. It is front-loaded with the core purpose and then details. While every sentence adds value, it could be slightly more concise by consolidating some technical details. Overall, it strikes a good balance between completeness and 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?
Given the tool's high complexity (single-use, cookie dependencies, concurrency), the description is remarkably complete. It covers what the tool does, its limitations, prerequisites, and failure modes. An output schema exists (not shown) which likely covers return values, so the description does not need to explain those. The tool is fully contextualized 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%, so the baseline is 3. The description does not add explicit parameter descriptions beyond the schema, but the schema itself is clear (keyword required, limit optional with default). No additional context is provided for parameters, but none is strictly necessary given the schema's completeness.
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 '搜索拼多多商品' (search Pinduoduo products), using a specific verb and resource. It distinguishes from sibling tool 'pdd_product_detail' by focusing on search rather than detail retrieval. The purpose is unambiguous and well-defined.
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 explicitly states prerequisites (Chrome + PDD cookie with specific tokens), a severe limitation (one search per session), and the required action to reset (restart MCP server). It also explains the underlying mechanism (Chrome CDP + iPhone UA) and provides cookie file location. This gives clear guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taobao_productA
获取淘宝商品详情(标题、价格、店铺)。
item_id 来自 taobao_search 结果中 item 的 id 字段。
并发安全: ✅ 纯 HTTP/MTOP API。
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | 商品 ID |
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 burden. It notes concurrency safety and HTTP/MTOP API, which adds behavioral context, but does not explicitly state that it is a read-only operation or disclose any authentication requirements.
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?
Three sentences: purpose, parameter source, concurrency note. No fluff, front-loaded, every sentence earns its place.
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 output schema exists, the description adequately covers what to expect (title, price, shop). It is concise and sufficient for a simple product detail tool, though it could mention more about error conditions.
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%, baseline 3. The description adds meaning by linking item_id to taobao_search results, which goes beyond the schema's '商品 ID' description.
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 product details (title, price, shop) from Taobao, and distinguishes from taobao_search by specifying that item_id comes from search 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?
It explicitly instructs that item_id is sourced from taobao_search results, providing clear context for use. However, it does not mention when not to use or compare with alternatives like jd_product.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taobao_searchA
搜索淘宝/天猫商品。纯脚本,无需浏览器,不限流。
原理: curl_cffi 伪造 Chrome TLS 指纹 + MTOP HMAC-MD5 签名。 需要 TAOBAO_COOKIES_FILE 环境变量或 ~/.cn-scraper-cookies/taobao.json。
并发安全: ✅ 纯 HTTP/REST API,无共享状态,任意并发调用安全。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数上限 (默认 10) | |
| keyword | Yes | 搜索关键词,如 "华为mate70" |
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 carries the full burden and does well: it discloses the TLS fingerprinting approach, MTOP signature, cookie dependency, concurrency safety, and lack of rate limiting. It doesn't cover failure modes like cookie expiry, but the core behavioral traits are transparent.
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 compact, well-structured with bullet points, and every sentence provides essential information: purpose, technical principle, auth requirement, and concurrency guarantee. No filler or 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 the output schema exists and the 2-parameter schema is fully described, the description covers all relevant aspects: auth, execution model, rate-limit status, concurrency safety, and the way to search. It is complete for this 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?
Both parameters (keyword and limit) are fully documented in the input schema with descriptions and examples. The tool description adds no additional semantic value beyond what the schema already provides, so baseline 3 is appropriate.
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 '搜索淘宝/天猫商品' (search Taobao/Tmall products), specifying a concrete verb and resource. This unambiguously differentiates it from sibling tools like taobao_product (detail), jd_search, and pdd_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 context: it is a pure-script, browser-free search with no rate limit, and requires specific cookie setup. It does not explicitly name alternatives or exclusions, but the purpose and prerequisites make when-to-use evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_loginA
远端验证缓存登录态是否仍被平台接受。
这与 check_cookies 的本地文件检查不同:本工具会发起只读在线请求。 当前可远端验证:知乎、微博、知识星球、抖音。 淘宝等没有稳定只读验证接口的平台会明确返回 unsupported。
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | 认证注册表中的平台名。 |
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 discloses that the tool makes a read-only online request, lists supported platforms, and mentions that unsupported platforms return 'unsupported'. This is adequate behavioral disclosure for a simple verification tool.
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 sentences, front-loaded with the main purpose, and every sentence adds value. It is concise and well-structured, with no redundant information.
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 simple single-parameter input and the presence of an output schema (indicated by context signals), the description adequately explains the tool's behavior and differentiates from a sibling. It could mention the return values for successful verification, but the output schema likely covers that.
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 covers 100% of parameters (only 'platform'). The description adds value by listing the specific platforms that are supported (Zhihu, Weibo, Knowledge Planet, Douyin) and indicating unsupported behavior, which compensates for the lack of an enum in 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 the tool's purpose: remotely verify if cached login state is still accepted. It distinguishes itself from the sibling tool check_cookies (local file check) and lists supported platforms, providing specific and actionable information.
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 explicitly contrasts with check_cookies and lists which platforms are supported. However, it does not explicitly state when not to use this tool (e.g., for logging in or harvesting), but the context is clear enough for an AI agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weibo_commentsA
获取微博帖子的评论(支持分页)。需要登录 cookie(SUB token)。
mid 来自 weibo_search 或 weibo_user_timeline 结果中 item 的 id 字段。
| Name | Required | Description | Default |
|---|---|---|---|
| mid | Yes | 微博帖子 ID | |
| limit | No | 返回条数 (默认 20) | |
| max_id | No | 分页游标,从上一页的 next_max_id 字段获取(空 = 第一页) |
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 the behavioral disclosure burden. It discloses the authentication requirement (SUB token) and pagination capability, but does not discuss failure modes, rate limits, or response behavior beyond pagination. This is adequate but not rich.
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 sentences long, front-loads the core function, and packs authentication and parameter provenance into concise, useful phrases. Every sentence earns its place with 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?
The tool has an output schema, so return-value details are covered elsewhere. The description adequately covers the key contextual gaps: auth requirement, pagination flow, and how to obtain 'mid'. It could mention error cases or what happens without a valid cookie, but for a simple paginated comments endpoint, it is sufficiently 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 the baseline is 3. The description adds meaningful context by explaining that 'mid' originates from the 'id' field of items in weibo_search or weibo_user_timeline results, which is not fully captured by the schema's terse '微博帖子 ID' description.
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 '获取微博帖子的评论' (fetch comments of a Weibo post) with a specific verb and resource. It distinguishes itself from siblings like weibo_post (fetches the post itself) and weibo_search (searches posts), leaving no ambiguity about its function.
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 explicitly notes the login cookie (SUB token) requirement and instructs that 'mid' comes from the 'id' field in weibo_search or weibo_user_timeline results. This provides clear prerequisites and data flow context, though it does not explicitly mention when not to use the tool or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weibo_hot_listA
获取微博实时热搜榜。无需登录!
原理: 调用 weibo.com/ajax/side/hotSearch(游客可访问)。 返回实时热搜 50 条 + 置顶政务话题。
并发安全: ✅ 纯 HTTP/REST API,无共享状态,任意并发调用安全。
Returns: {count, items: [{rank, word, num, url, label}], hotgov: {name, url}|null}
| 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; the description carries full burden. It discloses the tool is read-only (public HTTP API), concurrency safe, and details the return structure. It lacks rate limit or error handling info but is otherwise transparent.
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 and well-structured, with sections for principle, return value, and concurrency safety. Every sentence adds value, and it is front-loaded with the core 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?
Given no parameters, the description is quite complete: it explains the endpoint, the returned data format, and concurrency safety. Missing minor details like error handling, but overall sufficient for a simple read 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?
The tool has no parameters, so the schema fully covers them. The description adds no parameter info but compensates by detailing the output structure, which is valuable given no 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?
The description clearly states the tool retrieves the Weibo real-time hot search list, specifying it requires no login. It distinguishes itself from sibling tools like weibo_search, weibo_post, and weibo_comments by focusing specifically on the hot 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?
The description explicitly mentions no login is needed and concurrency safety, providing clear usage context. It does not explicitly state when not to use or compare to alternatives, but the purpose is sufficiently differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weibo_postA
获取微博帖子的完整详情(含长文本)。
mid 来自 weibo_search 或 weibo_user_timeline 结果中的 item.id。
| Name | Required | Description | Default |
|---|---|---|---|
| mid | Yes | 微博帖子 ID |
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 mentions inclusion of long text, which is useful behavioral context, but does not disclose any potential side effects, authentication needs, or rate limits.
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 short sentences, front-loads the purpose, and contains no unnecessary words. Every sentence adds value.
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, the description does not need to explain return values. The tool is simple with one parameter, and the description is sufficient for an agent to understand its purpose.
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 has 100% coverage for the single parameter. The description adds meaning by explaining that mid comes from weibo_search or weibo_user_timeline, which is beyond the schema's basic description.
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 full details of a Weibo post including long text, and specifies that the mid comes from search or user timeline results. This distinguishes it from sibling tools like weibo_search and weibo_user_timeline.
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 explicitly indicates when to use the tool by specifying the source of the mid parameter. It does not mention alternatives or exclusions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weibo_searchA
搜索微博帖子。需要登录 cookies(SUB token)。
⚠️ 微博搜索 API 需要登录 — 游客模式不可用。 热搜(weibo_hot_list)无需登录即可使用。
原理: 调用 m.weibo.cn 移动端 API,解析 cards[].mblog。 Cookie 文件: ~/.cn-scraper-cookies/weibo.json(需要 SUB cookie)
并发安全: ✅ 纯 HTTP/REST API,无共享状态,任意并发调用安全。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数上限 (默认 10) | |
| keyword | Yes | 搜索关键词,如 "华为" |
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 fully discloses behavioral traits: it uses m.weibo.cn mobile API, parses cards[].mblog, requires a specific cookie file, and is concurrency-safe. This adds significant value beyond the schema.
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 with multiple bullet points covering purpose, prerequisite, principle, and safety. It is front-loaded and efficient, though could be slightly more structured 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?
The description covers prerequisites, underlying API, cookie handling, and concurrency. It also references an alternative sibling tool. With an output schema present (as indicated by context), the missing return value details are acceptable. Still, the description is fairly comprehensive.
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%, and the schema already describes both parameters (keyword, limit) adequately. The description does not add additional parameter-specific information beyond the schema, so it meets the baseline for schema-rich tools.
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 explicitly states '搜索微博帖子' (search Weibo posts), clearly identifying the action and resource. It also mentions the need for login and distinguishes from weibo_hot_list, which does not require login, aiding differentiation among 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?
The description provides explicit guidelines: requires login cookies (SUB token), guest mode not available, and an alternative (weibo_hot_list) that does not need login. It also notes concurrency safety and cookie file location, giving clear when-to-use and when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weibo_user_timelineA
获取微博用户时间线(最近发言)。
需要登录 cookie(SUB token)。 可通过 weibo_search 找到目标用户获取其 UID。
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | 用户 ID(数字,如 "2803301701" = 人民日报) | |
| limit | No | 返回帖子数 (默认 10) |
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 the need for authentication (cookie), which is critical, but does not discuss other aspects like rate limits, error handling, or whether the operation is read-only. The description is 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?
The description is extremely concise: two sentences covering purpose, auth requirement, and auxiliary hint. No unnecessary words, and the most critical information is front-loaded.
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 has only two parameters and an existing output schema, the description covers the essential aspects: purpose, auth context, and parameter hints. It lacks details about output format or error behavior, but the output schema fills that gap. Fairly complete for a simple 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?
Although schema coverage is 100%, the description adds value with a concrete example for the uid parameter (e.g., '2803301701' for People's Daily) and clarifies the default value for limit. This goes 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 verb '获取' (get) and the resource '微博用户时间线' (Weibo user timeline), with the qualifier '最近发言' (recent posts). It is distinct from sibling tools like weibo_search or weibo_comments, which serve different purposes.
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 explicitly mentions the prerequisite of a login cookie (SUB token) and provides guidance on how to obtain the required UID via weibo_search. This helps the agent decide when to use the tool, though it does not explicitly state 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.
xiaohongshu_commentsA
获取小红书笔记的评论(首屏,约 10-20 条)。
需要本地 Chrome + XHS 登录 cookie。 note_id 和 xsec_token 都来自同一条 xiaohongshu_search 结果。
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | 笔记 ID(16 位十六进制字符串) | |
| xsec_token | Yes | 同一搜索结果中的访问令牌(必填) |
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 present, so the description carries the full burden. It discloses important behaviors: only returns first screen (~10-20 comments), requires local Chrome + login cookie, and dependencies on search tokens. This gives an agent a good sense of the tool's constraints, though it doesn't mention failure modes.
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 crisp sentences with no filler; the main action is front-loaded, followed by prerequisites and parameter provenance.
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 comments-fetching tool, the description covers the essential context: what it returns, prerequisites, and parameter source. An output schema exists, so return details are covered elsewhere.
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 already describes both parameters with 100% coverage. The description adds value by stating they both come from the same search result, establishing their relationship and source, which aids correct invocation.
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 uses specific verb '获取' (get) with resource '小红书笔记的评论' (Xiaohongshu note comments), and adds scope '首屏,约 10-20 条' (first screen, ~10-20 items), clearly distinguishing it from note-level tools like xiaohongshu_note.
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?
States prerequisites: local Chrome and login cookie, and specifies that both parameters come from the same xiaohongshu_search result, providing clear context for when to use it. However, it doesn't explicitly contrast with sibling comment tools like zhihu_comments or provide when-not-to-use, so slightly below perfect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xiaohongshu_noteA
获取小红书笔记详情(标题、正文、点赞、标签、评论)。
note_id 和 xsec_token 都来自同一条 xiaohongshu_search 结果。
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | 笔记 ID(从 xiaohongshu_search 结果中的 noteId 字段) | |
| xsec_token | Yes | 反爬 token(从同一条 xiaohongshu_search 结果中的 xsec_token 字段) |
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 discloses what the tool returns but does not cover authentication needs, rate limits, or side effects. For a read-only fetch tool, this is adequate but not exceptional.
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 with no wasted words. The first sentence states purpose and contents, the second gives parameter source. Well-structured and easy to parse.
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 output schema exists and the description lists the key fields returned, the tool is fully specified. Parameter sources are clear, and the tool fits well within the sibling context.
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 descriptions already explain both parameters. The additional note that they come from the same search result adds value beyond the schema, reinforcing the dependency.
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 Xiaohongshu note details and lists specific fields (title, body, likes, tags, comments). It distinguishes from siblings like xiaohongshu_comments and xiaohongshu_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 explicitly states that note_id and xsec_token come from the same xiaohongshu_search result, providing clear usage context. It does not mention when not to use this tool, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xiaohongshu_searchA
搜索小红书笔记。需要本地 Chrome + XHS 登录 cookie。
小红书只允许住宅 IP(本地 Chrome)——云浏览器/数据中心 IP 直接封。 需要 XHS cookies: web_session, a1, webId, gid 等。 Cookie 文件: ~/.cn-scraper-cookies/xiaohongshu.json
并发: ⚠️ 使用 BrowserLock 保护 CDP 端口,同端口调用自动串行化。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 (默认 10) | |
| keyword | Yes | 搜索关键词 |
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 the full burden of behavioral disclosure. It discloses the need for local Chrome, the residential IP restriction (cloud/datacenter IP gets banned), required cookie fields, cookie file path, and concurrency behavior using BrowserLock with serialization. This is rich behavioral context beyond just saying 'search'.
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, starting with the core purpose and then listing prerequisites and concurrency notes in a structured format. Each sentence provides actionable information, though the format is slightly scattered with line breaks and bullet points.
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 an output schema, so return values are covered. The description covers the critical setup (cookies, IP) and concurrency control, making it complete for a search tool. It could mention error handling for missing cookies, but sibling tools like verify_login cover that part of the workflow.
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 already covers 100% of parameters with descriptions (keyword and limit with default). The description adds no additional semantic meaning for the parameters, so the baseline score of 3 applies since the schema does the heavy lifting.
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 opens with '搜索小红书笔记' (Search Xiaohongshu notes), which clearly states the tool's verb and resource. This distinguishes it from siblings like xiaohongshu_note (retrieve a specific note) and xiaohongshu_comments (get comments), making the purpose unambiguous.
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 important prerequisites: local Chrome, XHS login cookies, and residential IP requirement. However, it does not explicitly state when to prefer this tool over siblings or mention alternatives/exclusions. The usage context is clear but implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zhihu_answerA
获取知乎回答的完整正文。
answer_id 来自 zhihu_search 结果中 type 为 "answer" 的 item 的 id 字段。
| Name | Required | Description | Default |
|---|---|---|---|
| answer_id | Yes | 回答 ID |
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 full burden for behavioral disclosure. It only states the operation of fetching text, with no mention of side effects, auth requirements, error behavior, or data limits. This is insufficient for a mutation-free but potentially unauthenticated tool.
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, each with distinct purpose: first states the tool's action, second links to a sibling tool for parameter sourcing. No wasted words; front-loaded with key information.
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 low complexity (single parameter, output schema exists), the description adequately covers what the agent needs to know: what it does and how to get the required ID. However, lack of behavioral details slightly reduces completeness.
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 value by explaining that the answer_id originates from zhihu_search results, enhancing the schema's simple '回答 ID' description. This aids correct 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 retrieves the full text of a Zhihu answer using an answer_id. It specifies the resource and action, and references zhihu_search for ID sourcing, which distinguishes it from sibling tools like zhihu_question_answers or zhihu_comments.
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 guidance on where to obtain the answer_id (from zhihu_search results), implying its use case. However, it lacks explicit when-to-use or when-not-to-use guidance compared to sibling tools, offering no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zhihu_commentsA
获取知乎回答的评论(支持分页)。需要登录 cookie。
answer_id 来自 zhihu_search 结果中 type 为 "answer" 的 item 的 id 字段。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 (默认 20) | |
| offset | No | 分页偏移 (默认 0,即第一页) | |
| answer_id | Yes | 回答 ID |
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 the full burden. It discloses two behavioral traits: pagination support and the need for a login cookie. However, it does not describe behavior on missing/invalid cookies, error handling, rate limits, or pagination specifics beyond the schema. It adds some value but leaves gaps.
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 sentences long, front-loaded with the core function and requirements, and every sentence provides useful context. 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?
The tool is relatively simple and the output schema exists, so return values need not be described. The description covers the essential prerequisites (cookie, answer_id source) and pagination capability. It doesn't mention error conditions or edge cases, but for a parameter-light tool with an output schema, this is sufficient.
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% (all three parameters have descriptions). The description adds extra semantic meaning by clarifying that answer_id comes from the 'id' field of type 'answer' items in zhihu_search results, which goes beyond the schema's generic '回答 ID'. This is a meaningful addition.
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's function: '获取知乎回答的评论' (fetch comments for a Zhihu answer), mentions pagination support, and distinguishes from sibling tools like zhihu_answer (which would return the answer itself) by focusing on comments. It also provides a source for the required answer_id.
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 practical usage context: it states that a login cookie is required and that answer_id should originate from zhihu_search results (type 'answer'). This implicitly tells the agent when to use this tool (after obtaining an answer_id from search), but it does not explicitly mention alternatives or cases where this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zhihu_hot_listA
获取知乎实时热榜。无需登录。
Returns: {items: [{title, url, excerpt, hot_metric}]}
| 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?
With no annotations provided, the description carries the full burden. It discloses the authentication requirement (no login) and the return format, which is helpful. However, it does not mention potential rate limits, error behavior, or that this is a read-only operation, though the latter is implied by the verb '获取'.
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 extremely concise, with a front-loaded purpose and a compact return format example. Every sentence adds value, and there is no filler or 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?
For a simple parameterless tool with an output schema, the description covers the core purpose, auth requirement, and return shape. It does not include data freshness details or examples, but these are not critical for a hot list retrieval tool, so 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?
The tool has zero parameters, and the schema already covers everything (100% coverage). Per the rubric, 0 parameters warrants a baseline score of 4; the description correctly does not need to elaborate on 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?
The description '获取知乎实时热榜' (Get Zhihu real-time hot list) clearly states a specific verb and resource, and the Zhihu platform distinguishes it from sibling hot list tools like weibo_hot_list and douyin_hot_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?
The description implies use for retrieving the current Zhihu hot list and notes '无需登录' (no login required), which is useful context. However, it does not explicitly mention when to use this tool over alternatives like zhihu_search or other hot lists, making the usage guidance only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zhihu_question_answersA
获取知乎问题下的回答列表。
question_id 来自 zhihu_search 结果中 type 为 "question" 的 item 的 id 字段。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 (默认 20) | |
| question_id | Yes | 问题 ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
无annotations,但描述仅说明基本功能,未提及分页、需登录状态或返回值结构等行为细节。
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?
两句话简洁明了,无冗余信息,关键信息前置。
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?
参数简单且有输出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?
schema覆盖100%,描述额外解释了question_id的来源,增加了参数上下文价值。
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?
描述明确使用动词'获取'和资源'知乎问题下的回答列表',与兄弟工具如zhihu_answer、zhihu_comments等清晰区分。
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?
提供了从zhihu_search获取question_id的指引,但未明确说明何时不使用或与zhihu_answer的替代关系。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zhihu_searchA
搜索知乎内容(问题/文章)。知乎已关闭游客搜索,需要有效登录 Cookie。
无需浏览器——直接调知乎 v4 search API。 需要 cookie: ~/.cn-scraper-cookies/zhihu.json(z_c0 + d_c0)
并发安全: ✅ 纯 HTTP/REST API,无共享状态,任意并发调用安全。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 (默认 10) | |
| keyword | Yes | 搜索关键词 |
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 reveals that the tool directly calls Zhihu's v4 search API without a browser, requires specific cookies, and is concurrency-safe. It does not cover error scenarios like cookie expiration or rate limits, but it transparently addresses the main behavioral aspects beyond the 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?
The description is multi-sentence but each sentence adds value: purpose, prerequisite, technical detail, and safety note. It is front-loaded with the core purpose. A more structured bullet-point format could improve readability, but it remains efficient and clear.
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, return format is covered. The description addresses key aspects: purpose, required authentication, API method, and concurrency. It does not specify result type (e.g., that results include questions/articles as stated in purpose), but it is sufficiently complete for a search tool with two parameters.
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 minimal extra meaning beyond the schema: keyword is '搜索关键词' and limit is '返回条数 (默认 10)'. This confirms the schema descriptions but does not enrich them further.
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 states '搜索知乎内容(问题/文章)', which clearly identifies the verb (search) and resource (Zhihu content, specifically questions and articles). It distinguishes from sibling tools like zhihu_answer, zhihu_comments, and zhihu_question_answers by focusing on search rather than specific item retrieval.
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 prerequisites (valid login cookie, specific file path) and concurrency safety. It mentions that Zhihu has disabled guest search, so a cookie is required. However, it does not explicitly advise when to use this tool over other search tools or alternatives, though the platform context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zsxq_articleA
获取知识星球文章全文。
article_url 来自 zsxq_topics 结果中的 topic 对象, 仅当 topic 类型为文章时可用(talk.article.inline_article_url)。
| Name | Required | Description | Default |
|---|---|---|---|
| article_url | Yes | 文章 URL(从 topic 的 inline_article_url 字段获取) |
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 the full burden. It accurately describes the operation as fetching full text, but does not disclose any potential side effects, rate limits, or error conditions. This is adequate for a simple read-only tool.
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 sentences long, with the main purpose in the first sentence and additional context in the second. No unnecessary words, perfectly front-loaded.
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 presence of an output schema (indicated by 'Has output schema: true'), the description does not need to explain return values. It covers the prerequisite (topic type must be article) and the parameter source, making it complete for the tool's 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 100% description coverage for the one parameter (article_url). The description adds value by specifying the exact source of the URL (inline_article_url field of a topic object), which is not in the schema. This helps the agent understand where to obtain the parameter.
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's purpose: retrieving the full text of a knowledge planet article. It specifies the source of the URL (from zsxq_topics topic object) and the condition (topic type must be article), distinguishing it from sibling tools like zsxq_topics.
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 explicitly tells when to use this tool: when you have an article_url from zsxq_topics and the topic type is article. It does not mention alternatives or when not to use, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zsxq_topicsB
获取知识星球 (ZSXQ) 付费社群最新帖子。
纯 REST API,无需浏览器,只需 cookie。 Cookie 文件: ~/.cn-scraper-cookies/zsxq.json (需要 zsxq_access_token)
并发安全: ✅ 纯 HTTP/REST API,无共享状态,任意并发调用安全。
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 获取帖子数量 (默认 5) | |
| group_id | Yes | 星球 ID (数字,如 "28888555451") | |
| owner_only | No | 只看星主帖子 (默认 False) |
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 carries the full burden. It discloses key behavioral traits: pure HTTP/REST API, no shared state, concurrency safe, and cookie-based authentication. However, it does not address potential errors, rate limits, or read-only nature explicitly.
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 with clear line breaks separating purpose, technical details, and safety note. Every sentence adds value, and the most important information (purpose) is front-loaded.
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 has an output schema (not shown) and 3 parameters fully described, the description covers the basics (purpose, technical requirements, concurrency). However, it lacks details on pagination, error handling, or what happens with invalid group IDs, which is expected for a scraping 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?
Input schema coverage is 100%, so baseline 3 applies. The description adds no new parameter-level information; it only provides context on cookie authentication which is outside parameter semantics.
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 retrieves the latest posts from ZSXQ paid community with a specific verb ('获取'). It distinguishes from the sibling 'zsxq_article' by name, but does not explicitly compare usage contexts.
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 environment details (cookie file, concurrency safety) but lacks guidance on when to use this tool versus siblings like 'zsxq_article', or when not to use it. No exclusions or alternatives are mentioned.
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.
12 tool updates
v0.5.0- Added
bilibili_search - Added
dianping_shop - Added
douyin_comments - Added
douyin_hot_list - Added
harvest_cookies - Added
pdd_product_detail - Added
taobao_search - Added
weibo_comments - Added
xiaohongshu_comments - Added
xiaohongshu_search - Added
zhihu_comments - Added
zhihu_hot_list
12 tool updates
v0.4.1- Removed
bilibili_search - Removed
dianping_shop - Removed
douyin_comments - Removed
douyin_hot_list - Removed
harvest_cookies - Removed
pdd_product_detail - Removed
taobao_search - Removed
weibo_comments - Removed
xiaohongshu_comments - Removed
xiaohongshu_search - Removed
zhihu_comments - Removed
zhihu_hot_list
40 tool updates
v0.1.0- First observed
bilibili_comments - First observed
bilibili_popular - First observed
bilibili_search - First observed
bilibili_video - First observed
check_cookies - First observed
diagnose - First observed
dianping_reviews - First observed
dianping_search - First observed
dianping_shop - First observed
douban_reviews - First observed
douban_search - First observed
douban_subject - First observed
douyin_comments - First observed
douyin_hot_list - First observed
douyin_search - First observed
douyin_video - First observed
guided_login - First observed
harvest_cookies - First observed
jd_product - First observed
jd_search - First observed
pdd_product_detail - First observed
pdd_search - First observed
taobao_product - First observed
taobao_search - First observed
verify_login - First observed
weibo_comments - First observed
weibo_hot_list - First observed
weibo_post - First observed
weibo_search - First observed
weibo_user_timeline - First observed
xiaohongshu_comments - First observed
xiaohongshu_note - First observed
xiaohongshu_search - First observed
zhihu_answer - First observed
zhihu_comments - First observed
zhihu_hot_list - First observed
zhihu_question_answers - First observed
zhihu_search - First observed
zsxq_article - First observed
zsxq_topics
TDQS
Scored across 40 tools
Platform prefixes and resource/action names keep most tools clearly distinct (e.g., douyin_search, douyin_video, douyin_comments). The auth/validation cluster (harvest_cookies, guided_login, check_cookies, verify_login) has some conceptual overlap, but the descriptions clarify local vs remote checks and login-assisted harvesting.
Content tools follow a consistent <platform>_<resource/action> pattern, with search, hot_list, and comments repeated across platforms. Minor deviations like bilibili_popular instead of bilibili_hot_list and standalone verbs like diagnose do not seriously undermine the overall pattern.
40 tools is a heavy surface and will add context/selection overhead for agents. However, the multi-platform scope across 11 Chinese platforms plus a dedicated auth/diagnostic group means most tools are non-redundant and earn their place.
The server covers search, detail, comments, and hot-list flows for most platforms, plus cookie extraction, login, validation, and diagnostics. Gaps like e-commerce reviews or ZSXQ search are workable limitations rather than dead ends in the primary search-to-detail-to-comments flow.
Maintenance
Related MCP Connectors
MCP server aggregating hot-search boards from 8 Chinese platforms (Weibo, Zhihu, Bilibili, Douyin).
MCP server: AI-agent access to Chinese social & trend signals — Douyin, Weibo, Xiaohongshu/RedNote,
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server optimized for Chinese users that enables AI models to perform Bing searches and fetch webpage content without requiring an API key. It provides specialized tools for searching and scraping web data directly through supported AI environments like Claude or Cursor.41 npm6MIT
- AlicenseAqualityDmaintenanceMCP server enabling AI assistants to search, analyze, and generate content for Xiaohongshu (RedNote), China's leading lifestyle social media platform.69MIT
- FlicenseNot gradedqualityBmaintenanceMCP server enabling AI agents to generate AI videos and images, analyze video content, and download videos from Douyin and Xiaohongshu.-
- FlicenseNot gradedqualityCmaintenanceMCP server that enables AI agents to search the web and extract clean Markdown content, with support for JavaScript rendering, structured data extraction, and screenshots.1-