tomato-writer-mcp
An MCP server for automating Fanqie Novel writer-backend workflows via Cookie/CSRF-authenticated HTTP calls.
Manage novels: list all novels, switch the current novel, and view the current selection.
Publish chapters: publish immediately or schedule with
publish_time; use direct title/content or extract a chapter from a Markdown file by chapter number; add author notes.Inspect content: list chapters by volume with published/scheduled status, and list drafts.
Delete chapters/drafts with explicit
confirm=trueto prevent accidental deletion.Analyze data: get novel-level stats with chapter reading/retention detail, author overview, attendance calendar, and remaining check-in tickets.
Monitor account/status: list notices for review results, check banned/violation status, medals, and AI feature qualification.
Find inspiration: fetch site hot words by gender and Douyin hot list.
Manage account: check login validity, get account info, and retrieve a login QR code.
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., "@tomato-writer-mcp列出我的小说,并看看每本书的阅读量和追读数据"
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.
🍅 tomato-writer-mcp
AI 帮你写小说 —— 在 Claude / Cursor 里用一句话发章节、管书、盯数据。
番茄小说作家后台 MCP Server | Fanqie Novel (番茄小说) Writer MCP Server for Claude, Cursor & Any MCP Client
⭐ If this helps you, please star it — it's the only payment open-source authors get.
💬 你能用它做什么 / What You Can Do
装好之后,你不再需要打开作家后台网页。直接对 AI 说话:
你说 / You say | AI 做 / AI does |
💬「看看我这几本书的数据怎么样」 |
|
💬「把第 16 章发上去」 |
|
💬「明早 8 点定时发第 17 章」 |
|
💬「哪章追读掉得最狠?」 |
|
💬「有审核结果了吗」 |
|
💬「给我几个热词参考,想开新书」 |
|
💬「删掉那章测试稿」 |
|
💬「Cookie 是不是过期了」 |
|
📷 Demo GIF / 演示动图 — PR welcome(这是本项目最需要的贡献)
Related MCP server: Goink MCP Server
🚀 30 秒快速开始 / Quick Start
① 获取鉴权(一次性)
浏览器登录 番茄小说作家后台
F12 → Network→ 选中任意/api/author/...请求复制请求头
Cookie和X-Secsdk-Csrf-Token
cp .env.example .env
# 填入上面两个值Cookie 有效期约 1~2 个月,失效时用
check_login秒级发现。
② 启动
npx tomato-writer-mcp # 一行启动,无需安装或本地开发:
git clone https://github.com/itsyhx/tomato-writer-mcp.git
cd tomato-writer-mcp
npm install && npm run build && npm start③ 接入 AI 客户端 / Connect to Your AI Client
配置文件 config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tomato-writer": {
"command": "npx",
"args": ["-y", "tomato-writer-mcp"],
"env": {
"TOMATO_COOKIE": "your-cookie",
"TOMATO_CSRF_TOKEN": "your-token"
}
}
}
}.cursor/mcp.json:
{
"mcpServers": {
"tomato-writer": {
"command": "npx",
"args": ["-y", "tomato-writer-mcp"],
"env": {
"TOMATO_COOKIE": "your-cookie",
"TOMATO_CSRF_TOKEN": "your-token"
}
}
}
}任意支持 MCP stdio 的客户端:command: npx,args: ["-y","tomato-writer-mcp"],两个环境变量塞进 env。
重启客户端 → 对 AI 说「看看我有哪些书」✅
🛠️ 20+ 工具一览 / Tools
📚 书籍管理 / Book Management
Tool | 说明 |
| 列出所有小说(book_id、书名、字数、阅读数、连载状态) |
| 切换当前操作的书 |
| 查看当前选中的书 |
✍️ 发布 / Publishing
Tool | 说明 |
| 发布 / 定时发布一章(支持直接传正文,或从 Markdown 稿件按章节号提取) |
| 各分卷章节列表(含定时待发 / 已发布状态) |
| 草稿箱列表 |
| 删除章节(需 |
📊 数据与分析 / Analytics
Tool | 说明 |
| 书级概览 + 各章阅读/追读/读完率明细 |
| 作者级数据总览 |
| 打卡 / 全勤日历 |
| 剩余打卡券 |
🔔 监控与灵感 / Monitoring & Inspiration
Tool | 说明 |
| 站内通知(审核结果监控) |
| 违规 / 封禁状态(可做自动告警) |
| 站内热词(起书名 / 蹭流量) |
| 抖音热点榜(选题参考) |
| 任务勋章概览 |
| AI 功能资格(AI 插画/命名/咨询是否开放) |
🔐 账号 / Account
Tool | 说明 |
| 登录态探针(Cookie 失效早知道) |
| 账号信息 |
| 扫码登录二维码(Base64 PNG) |
🔬 技术要点 / How It Works
本项目最有价值的部分 —— 我们摸清了番茄作家后台的私有协议:
要点 | 说明 |
鉴权 / Auth |
|
无需风控签名 | ❌ 不需要 |
POST 编码 | 必须 |
公共参数 |
|
响应格式 | 统一 |
已实测覆盖 /api/author/** 共 22 个端点。
🧪 冒烟测试 / Smoke Test
npm run smoke # 只读接口逐个体检
npm run smoke -- --write # 额外测「建草稿→删草稿」安全写链路✅ check_login(登录态) (312 bytes)
✅ list_novels(书单) (2841 bytes)
✅ get_hot_words(热词) (12053 bytes)
结果:15 通过 / 0 失败🏗️ 架构 / Architecture
src/
├── index.ts # MCP Server 入口(stdio)
├── tomato/
│ ├── client.ts # HTTP 客户端(鉴权 / 编码 / 错误归一)
│ ├── config.ts # .env 加载 + 当前书状态持久化
│ ├── service.ts # 书籍 / 章节 / 发布核心服务
│ ├── author.ts # 账号 / 通知 / 违规 / 打卡 / 删除扩展
│ └── content.ts # Markdown → 番茄正文 HTML
└── tools/ # MCP 工具定义零重依赖 —— 仅 MCP SDK + dotenv,单进程 stdio,树莓派可跑。
❓ FAQ
Q: 需要安装浏览器或 Playwright 吗? A: 不需要。纯 HTTP + Cookie,零浏览器依赖。
Q: Cookie 会泄露吗?
A: 只存在你本地 .env,代码不会上传到任何服务器。.gitignore 已排除。
Q: 支持哪些 AI 客户端? A: 任意支持 MCP stdio 的客户端:Claude Desktop、Cursor、Cline、Continue、Cherry Studio、Zed 等。
Q: 接口失效了怎么办?
A: 跑 npm run smoke 体检,然后提 issue,我们一起维护。
🤝 贡献 / Contributing
急需:
演示 GIF / 截图(最重要的贡献!)
更多 MCP 客户端配置示例
接口变动时提 issue
git clone https://github.com/itsyhx/tomato-writer-mcp.git
cd tomato-writer-mcp && npm install && npm run build && npm run smoke⚠️ 免责声明 / Disclaimer
本项目仅调用作者本人账号的后台接口,用于自动化自己的创作工作流
请遵守平台规则,勿用于刷量、批量注册等灰产场景
Cookie 等同账号密码,切勿提交到仓库(
.gitignore已排除.env)平台接口随时可能变更,发现失效欢迎提 issue
本项目与番茄小说官方无关,非官方 API / Not affiliated with Fanqie Novel official
🔎 关键词 / Keywords
番茄小说 番茄免费小说 番茄小说作家后台 番茄作家助手 网文写作 小说发布 MCP Model Context Protocol MCP Server Claude MCP Cursor MCP AI 写作 AI写小说 网文作者工具 fanqienovel fanqie novel tomato novel web novel Chinese web novel novel publishing automation AI agent
📄 License
MIT © 2026 Harrison Yin
⭐ Star 一下,让更多网文作者看到这个项目
Your star is the only payment open-source authors receive.
Available Tools
20 toolscheck_loginA
检查登录态是否仍然有效(最轻量探针)。Cookie 过期前先用它确认,避免发布到一半失败。
| Name | Required | Description | Default |
|---|---|---|---|
No 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 successfully conveys that this is a cheap, non-mutating, safe probe that can be called ahead of write operations, but it does not say what the response looks like (boolean vs. error) or what the caller should do when the session is invalid.
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 short sentences, zero waste. The purpose and the operational rationale (avoid a half-finished publish) are front-loaded and each 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?
For a parameterless probe with no output schema, the description covers what the agent needs in order to decide to call it. The one real gap is the shape of the result, since no output schema exists to document 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 tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter claims are made or needed.
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?
States a specific verb+resource: verifies whether the login session is still valid, and adds the distinguishing qualifier 'lightest probe', which separates it from heavier account reads like get_account_info. It does not name a sibling tool explicitly, so it falls just short of a 5.
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?
Gives a concrete when-to-use: call it before the Cookie expires, and specifically before publishing so a long publish_chapter operation doesn't fail midway. The 'lightest probe' phrasing implies alternatives exist, but no sibling is named as an explicit alternative or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_chapterA
删除章节(已发布/草稿均可,⚠️ 不可恢复)。必须显式传 confirm=true 才会真正执行。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | No | 可选,默认当前选中的书 | |
| confirm | Yes | 必须为 true 才会删除,防误删 | |
| item_id | Yes | 章节 item_id(从 list_chapters / list_drafts 取) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers the two most critical facts: the operation is irreversible (⚠️ 不可恢复) and a destructive side effect applies to both live and draft content. It omits secondary behavior such as whether a missing confirm errors out or silently no-ops, and any permission/login preconditions.
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 short sentences, zero filler, with the destructive warning and the confirm gate front-loaded before any call is attempted. Every clause 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?
For a destructive, 3-parameter tool with no annotations and no output schema, the description covers the essential facts an agent needs: irreversibility, applicable content states, and the confirm gate. Only the failure mode when confirm is absent or false is left unspecified.
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 each parameter already documents itself, including the meaning of confirm and the source of item_id. The description's confirm sentence largely restates the schema, adding only emphasis on the guard rather than new syntax or edge-case behavior; baseline 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?
States a specific verb and resource (删除章节) plus the scope it accepts (已发布/草稿均可), so the agent knows exactly which objects are in range. It does not name a sibling or explicitly contrast with publish_chapter / list_chapters, but no competing delete tool exists, so ambiguity is low.
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 scope clause implies when the tool applies (any chapter, published or draft), and the confirm requirement tells the agent the invocation precondition. There is no explicit when-not guidance, no note on retrieving item_id first, and no mention of alternatives for restructuring rather than deleting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoA
获取当前番茄作家账号信息(昵称、ID、等级等)。用来确认 Cookie 绑的是哪个号。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the return payload (nickname, ID, level) and the fact that identity is tied to the bound Cookie, but it says nothing about what happens when no valid Cookie is present (error vs. empty result) — a likely failure mode for this call.
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 short sentences: the first defines the operation and its payload, the second gives the motive. Nothing is padded and the core 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?
With no annotations and no output schema, the description does the work of naming the returned fields and the precondition (a bound Cookie). Only the unauthenticated/failed-cookie behavior is omitted, which is a modest gap for a zero-parameter 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 takes zero parameters, so there is no parameter semantics to explain; this is the baseline-correct score. The description correctly implies no input is required by framing the call around the ambient Cookie state.
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?
States a specific verb and resource ('获取当前番茄作家账号信息') and enumerates the returned fields (昵称、ID、等级), so an agent knows exactly what it gets. It does not explicitly contrast itself with siblings like get_author_overview or check_login, which is the only gap.
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 second sentence gives a concrete when-to-use: verifying which account a Cookie is bound to. No explicit when-not-to-use or named alternative (e.g. check_login) is offered, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ai_qualificationB
AI 功能资格查询(AI 插画 / AI 命名 / AI 咨询是否对该书开放)。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | No | 可选,默认当前选中的书 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden; the verb 查询 makes clear this is a read-only lookup with no side effects, which is the main behavioral fact an agent needs. However, it says nothing about whether the result is a per-feature boolean, whether an unselected book falls back to a default, or what happens if the book does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the feature list in a parenthetical; every phrase carries information and there is no filler. It is terse but not truncated.
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?
There is no output schema and no annotations, so the description is the only source of truth for the return value; yet it never says the result is an availability flag per feature, nor how a missing book_id or an ineligible book is reported. For a caller deciding what to do with the answer, this leaves a real gap.
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 single book_id parameter is documented in the schema (可选,默认当前选中的书). The description only implicitly reinforces the per-book scope via 对该书开放. Baseline 3 applies since the schema does the work and the description adds no syntax or default-resolution detail beyond it.
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?
States a specific verb (查询) and resource (AI 功能资格), and enumerates the exact capability set covered (AI 插画 / AI 命名 / AI 咨询), so an agent knows precisely what is being checked. It does not name or contrast with any sibling, but the siblings listed are all novel/chapter/account tools with no overlapping AI-eligibility scope, so confusion risk is low.
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?
Usage is only implied: the parenthetical shows it is a pre-check for AI illustration/naming/consultation availability. There is no explicit 'use before calling X' or 'do not use for Y' statement, and no mention of prerequisite auth or account state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attend_calendarB
打卡/全勤日历。start_date / end_date 为 unix 秒;不传默认最近 30 天。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | No | 可选,默认当前选中的书 | |
| end_date | No | 结束 unix 秒 | |
| start_date | No | 起始 unix 秒 |
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 usefully discloses the default window (last 30 days) and the epoch-second unit, but says nothing about whether this is strictly read-only, whether book_id scoping changes results, or what the returned calendar contains.
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 tight clauses: resource identity first, then the date-parameter contract and default. No filler and nothing buried.
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?
With no output schema and no annotations, an agent still cannot tell what a 'calendar' response looks like or how book_id interacts with the date window. Adequate for invocation, incomplete for interpretation.
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 all three parameters are already documented, including the unix-second unit. The description adds only the default-window behavior not present in the schema, which earns the baseline 3 rather than more.
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 names the resource explicitly ('打卡/全勤日历'), clarifying what the ambiguous 'attend' in the tool name means. It does not distinguish this tool from the sibling get_checkin_tickets, which covers an adjacent domain, so it stops short of a 5.
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 only usage-relevant statement is the default range ('不传默认最近 30 天'). There is no guidance on when to use this calendar versus get_checkin_tickets or get_novel_stats, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_author_overviewB
作者级数据总览(全站维度的创作/收益概览)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It says it is an overview but does not state what fields are returned, whether it requires login, or whether it is read-only, leaving behavioral traits largely undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the core purpose front-loaded and no filler. It is appropriately terse for a no-argument overview tool.
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?
With no output schema, the description should hint at what the overview contains (e.g., totals, revenue, engagement). It says 'creation/revenue overview' but omits concrete return contents, so it is adequate but not fully 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 takes zero parameters, which is the baseline-4 case. The description is consistent with a parameterless call and adds no misleading hints about 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?
States a specific resource ('作者级数据总览') and clarifies scope as site-wide creation/revenue overview, which is more than a restatement of the name. It does not name siblings like get_novel_stats or get_account_info, so the agent must infer that this is author-level rather than novel-level or account-level.
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 versus get_novel_stats, get_account_info, or get_medal_summary, which all return related author/metric data. The agent must guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_banned_infoA
违规/封禁状态查询。不传 book_id 查账号级;可用于违规自动告警。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | No | 可选,书籍 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the account-level behavior when book_id is omitted and the alerting use case. However, it does not state permissions, rate limits, read-only nature, or what the status result looks like.
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 compact clauses with no wasted language, and the core purpose plus the key scope condition are 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?
For a simple one-parameter query this is mostly adequate, and the scope-switching behavior is explained. But with no output schema and no annotations, the description does not explain what information the status query returns or how to interpret it, leaving a notable gap.
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 documents book_id as an optional book ID. The description adds important semantics beyond the schema: omitting book_id switches the query to account-level scope. This is meaningful parameter guidance.
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 names the specific resource and query intent: violation/ban status. It clearly distinguishes this from the novel/chapter-management siblings by domain. It does not explicitly contrast with a named sibling, which keeps it from a 5.
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 gives an explicit conditional usage rule: omit book_id to query at the account level. It also states a concrete use case, automatic violation alerts. It does not describe exclusions or alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkin_ticketsA
查询剩余打卡券数量(补卡用)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden; '查询' does imply a side-effect-free read, which is helpful. But it says nothing about authentication requirements, whether the count is per-account or per-novel, or what the response contains (an integer? a breakdown?), leaving real behavioral gaps for a tool with no output 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?
A single short phrase with the resource front-loaded and the purpose appended in parentheses – no wasted words. It is arguably too terse rather than too long.
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 read tool this is close to adequate, but with no output schema and no annotations the description should say what the return value looks like (a numeric balance) and whether any login/session context is required. It leaves the agent to infer both.
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 takes zero parameters, which is the baseline-4 case. The description correctly implies no inputs are needed, though it does not explicitly say the count applies to the current account/novel 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 names a specific verb and resource – querying the remaining check-in ticket count – and adds the practical purpose (补卡, making up a missed check-in). No sibling tool in the provided list deals with tickets, so no differentiation is required, though it also makes no attempt to contrast with anything.
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 parenthetical '(补卡用)' implies the usage context: check this before performing a makeup check-in. However, it never states when not to use it, prerequisites (e.g., must be logged in), or any alternative tool, so the guidance stays implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_novelA
查看当前选中的小说。
| Name | Required | Description | Default |
|---|---|---|---|
No 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. '查看' implies a read-only operation, which is useful, but the description does not state what happens if no novel is selected, whether side effects occur, or what the returned data represents. It is minimally transparent but not richly detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. Every phrase earns its place by identifying both the action and the target 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 zero-parameter getter, the description is mostly adequate, but with no output schema and no annotations, it does not clarify the return shape or behavior in edge cases such as no current selection. The low complexity and clear siblings partially compensate, leavig some 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?
The tool has zero parameters and schema coverage is .,% so there is nothing the description needs to explain about parameter syntax. The description adds the meaningful context that the operation targets the currently selected novel, which is sufficient for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('查看') plus a specific resource ('当前选中的小说'), which clearly identifies the tool's function. It also distinguishes itself from siblings like list_novels and switch_novel by focusing on the current selection rather than listing or switching.
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 phrase '当前选中的' implies this tool should be used when the agent needs the currently active novel, likely after a switch_novel operation. However, it does not explicitly mention alternatives, exclusion conditions, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_douyin_hot_listB
抖音热点榜,配合站内热词做选题参考。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not say whether this hits an external service, how fresh the data is, whether results are ranked or paginated, or what the response looks like. Only the general domain (hot topics) is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and no filler. It is efficient, though extremely terse, leaving little room to convey behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description only needs to convey the return's nature, which it does vaguely ('hot list'). It does not indicate what fields come back (ranks, heat scores, links) or how current the data is, leaving a gap for an agent deciding whether results suffice.
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 takes zero parameters, so the schema has nothing to document and the baseline is 4. The description correctly implies no inputs are needed.
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 names a specific resource (抖音热点榜 / Douyin hot search list) and implies a read of that list. It is clear on what it fetches, but does not explicitly contrast itself with the sibling get_hot_words, which covers a similar topical area.
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?
'配合站内热词做选题参考' implies the use case (topic selection, used together with in-site hot words), which hints at a relationship with get_hot_words. However, it never states when to call this tool versus that sibling, nor any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hot_wordsB
站内热词榜(起书名 / 蹭流量用)。gender:1=男频,2=女频。
| Name | Required | Description | Default |
|---|---|---|---|
| gender | No | 1=男频 2=女频,默认 1 |
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, and it discloses nothing behavioral: no indication that it is a read-only list, nothing about how many words come back, freshness of the ranking, or whether results are paged. Only the purpose is conveyed.
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 compact sentences with the resource and its use front-loaded and no filler. The gender mapping is slightly redundant with the schema, keeping it from a 5.
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 one-parameter read tool this is close to adequate, but with no annotations and no output schema the description should at least say what the response contains (a ranked list of words) or that it is a safe read. As written an agent can call it but not predict the result.
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 single gender parameter is already fully documented in the schema, so the description's '1=男频,2=女频' merely repeats it without adding syntax or default behaviour (the default of 1 lives only in the schema). Baseline 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?
States a specific resource – the in-site hot-words ranking – and adds an intended use (naming books / riding traffic). It is distinguishable from the sibling get_douyin_hot_list, though it never names that sibling as the alternative.
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 parenthetical '起书名 / 蹭流量用' implies when to reach for it, but there is no explicit when-not and no pointer to get_douyin_hot_list for off-site trends. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_login_qrcodeA
获取番茄作家后台官方实时扫码登录二维码数据源 (Base64 PNG) 与会话 Token
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the disclosure burden. It does reveal the key outputs (Base64 PNG and session Token) and the 'real-time' nature, but it does not disclose possible side effects such as whether previous QR codes/tokens are invalidted, whether the token expires, or whether authentication is required before other tools. This is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and outcome with no redundant words. Every part, including the output types (Base64 PNG and session Token), contributes useful information, making it concise and well 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 zero parameters and no output schema, the description sufficiently explains the return values (QR code image in Base64 and a session token). It does not explain the surrounding login flow, such as how the token should be used or whether the QR code must be polled, which would make it fully complete, but it covers the core call correctly.
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 parameters and 100% coverage, so there is nothing for the description to add about parameters. With no parameters, the baseline is 4 and the description appropriately focuses on outputs rather than 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 states a specific verb (获取/get), a clear resource (登录二维码数据源/QR code source and 会话 Token/session token), and distinguishes itself from the sibling novel-management tools. An agent can immediately know this is the login-entry tool, separate from list_novels or publish_chapter.
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 tool is for login via '扫码登录', and the sibling list shows no other login tool, so usage context is somewhat clear. However, it never explicitly says when to use it (e.g., before other authenticated calls) or mentions any exclusions/alternatives. The guidance is implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_medal_summaryC
任务勋章概览(平台活动完成度)。
| Name | Required | Description | Default |
|---|---|---|---|
No 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 and says nothing beyond a gloss of the name. It does not state that the call is read-only, whether login is required, whether data is per-account or platform-wide, or what shape the response takes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short phrase with zero waste and no burying of key information. Its brevity reflects terseness rather than padding, though the phrase is too thin to be fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-param, annotation-free tool with no output schema depends entirely on the description to explain what a \"medal summary\" contains and what the platform-activity-completion figure represents. The description leaves both unanswered, so an agent cannot predict the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing to disambiguate; the baseline 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?
"任务勋章概览(平台活动完成度)" names a resource (medals) and a scope (platform activity completion), but the verb is only implied by the "get_" prefix and the term "概览" leaves the actual content ambiguous. No sibling tool overlaps, so differentiation is not an issue, but the purpose remains vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when an agent should call this tool versus its many siblings (account info, author overview, check-in tickets), nor any prerequisites such as being logged in. The agent must infer the trigger condition entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_novel_statsA
获取小说阅读数据:书级概览(总阅读数 read_count、字数、连载状态)+ 各章阅读/追读明细。不传 book_id 用当前选中的小说。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | No | 可选,目标小说 book_id;默认当前选中 | |
| chapter_detail | No | 是否包含各章明细,默认 true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does state the operation is a read ('获取'), the data categories included, and the default selection behavior. It does not disclose error behavior, auth requirements, or the exact output structure, which is some gap for a tool with no output 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 two concise sentences with no filler. It front-loads the core purpose and details in the first sentence, and the default behavior in the second, with every word earning 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?
For a low-complexity tool with two optional parameters and no output schema, the description provides a solid overview of what data will be returned and how book_id behaves. It could be more complete by describing the shape of chapter details or behavior when no novel is selected, but the essentials for selecting and invoking the tool are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description reinforces the book_id default and chapter detail meaning but adds no meaningful semantics beyond what the input schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets novel reading statistics, enumerating the specific returned categories: book-level overview (read_count, word count, serialization status) and per-chapter reading/following details. This distinguishes it from siblings like list_novels and list_chapters, which are about listing rather than statistics.
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 tool is for reading statistics and clarifies the default behavior when book_id is omitted, which helps invocation. However, it does not explicitly state when to prefer this tool over alternatives such as list_chapters or get_current_novel, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chaptersA
列出小说各分卷下的章节(含定时待发 / 已发布状态)。不传 book_id 用当前选中的小说。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | No | 可选,目标小说 book_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
无 annotations,描述承担了行为披露责任。它补充了“含定时待发/已发布状态”以及“不传 book_id 用当前选中的小说”这两个关键行为特征,超出了工具名本身能推断的信息。
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?
工具复杂度低,只有一个可选参数且无 output 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 已说明 book_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?
描述使用明确动词“列出”,资源为“小说各分卷下的章节”,并补充了包含定时待发/已发布状态,清楚区分于 list_novels 等兄弟工具。功能边界一目了然。
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?
描述了核心使用方式:不传 book_id 时使用当前选中的小说,给出了参数省略时的明确行为。虽未直接列举替代工具,但结合工具名和上下文,使用场景足够清晰。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_draftsC
草稿箱列表(未发布的章节)。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | No | 可选,默认当前选中的书 | |
| page_count | No | 每页条数,默认 20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it says nothing about pagination behavior, which book's drafts are returned by default, or whether results are read-only. It only conveys that the contents are 'unpublished chapters', leaving most behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero waste, though it's more terse than front-loaded—there is minimal content to structure.
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 two-optional-parameter list tool with no output schema, the description is adequate but thin: it doesn't explain what fields drafts contain or pagination format. Combined with absent annotations, more disclosure would help the agent call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented including their defaults (current selected book, 20 per page), so the schema handles semantics. The description adds nothing beyond the schema, which matches the baseline 3 for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clarifies that it lists drafts, specifically unpublished chapters, distinguishing the resource somewhat from list_chapters. However, it largely restates the tool name and doesn't explicitly frame the draft-vs-chapter distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus list_chapters or other list tools; the sibling set includes list_chapters but no relation or exclusion is stated. The agent must infer the draft-only scope from the parenthetical alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_noticesA
站内通知列表(审核结果、平台公告)。发完章节后用它盯是否已过审。
| Name | Required | Description | Default |
|---|---|---|---|
| page_count | No | 每页条数,默认 10 | |
| page_index | No | 页码,默认 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral load. It discloses the kind of data returned and a workflow context, but says nothing about whether results are unread-only, how they are ordered, whether reading marks them as read, or retention behavior. Acceptable for a low-risk read tool, 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?
Two short sentences: the first identifies the resource and its contents, the second gives the usage trigger. Front-loaded, no filler, nothing redundant with structured fields.
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 two-parameter read-only listing tool with full schema coverage and no output schema, the description covers what it returns and when to call it. Additional detail on result ordering or read-state would help but is not essential to invoke it correctly.
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 both pagination parameters (page_count, page_index) and their defaults are already documented in the schema. The description adds no paging or ordering semantics beyond that, which is the expected baseline.
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 names a specific verb+resource (list of in-site notifications) and clarifies the content types (review results, platform announcements), which tells an agent exactly what this returns. It doesn't explicitly contrast with siblings like list_chapters or list_drafts, but the resource is distinct enough that confusion is unlikely.
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 states a concrete trigger: use it after publishing a chapter to monitor whether the chapter passed review. That is genuine when-to-use guidance tied to a sibling workflow (publish_chapter). It lacks explicit exclusions or alternatives, 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.
list_novelsA
列出当前账号下的所有小说(book_id、书名、字数、总阅读数、连载状态)。多本小说时用它来选择操作目标。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It transparently conveys that this is a read-only listing operation scoped to the current account, and it lists the output fields. It does not mention ordering, pagination, or auth prerequisites, but for a simple list tool the disclosed behavior 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 a single sentence that wastes no words. It front-loads the listing scope, includes the expected output, and ends with a practical usage tip.
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 list tool with no output schema, the description is complete: it states scope, response fields, and the intended use case. Nothing critical is missing for an agent to select and invoke it correctly.
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, so the description needs to add no parameter semantics. The baseline of 4 applies because there is nothing ambiguous about invoking an input-free tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('列出') with a clear resource ('当前账号下的所有小说') and enumerates the returned fields. It is easily distinguishable from siblings like list_chapters or get_novel_stats, which target different scopes or data.
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 when to use it: when handling multiple novels and needing to select an operation target. It could be slightly stronger by naming alternatives, but the usage context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_chapterA
发布或定时发布一章到当前(或指定)小说。内容二选一:① 直接传 title + content;② 传 file(Markdown 稿件路径)+ chapter_no 自动提取(标题取章节行)。publish_time 传 ISO 时间则定时/预约发布,省略则立即发布。
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Markdown 稿件路径(与 chapter_no 搭配使用) | |
| title | No | 章节标题(用 file+chapter_no 时可省略,自动取) | |
| book_id | No | 可选,目标小说;默认当前选中 | |
| content | No | 正文,纯文本/Markdown(按行分段)或已是 <p> HTML | |
| chapter_no | No | 要从 file 中提取的章节号 | |
| author_speak | No | 作者有话说内容(显示在章节末尾) | |
| publish_time | No | ISO 时间则定时发布(如 2026-06-20T15:00:00+08:00);省略则立即发布 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the two content modes, auto-extraction behavior, and immediate vs scheduled publishing, which is helpful. However, it does not mention side effects such as overwriting, authentication requirements, or what the response contains.
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 one dense, well-structured sentence that front-loads the purpose and then cleanly lays out the alternatives and scheduling behavior. There is no filler or redundant restating of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no output schema and no annotations, the description covers the essential call contract: the required content-mode combos, optional book routing, author_speak, and scheduling. Missing return-value and error-case details are notable but do not prevent an agent from invoking the tool correctly.
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%, which gives a baseline of 3, but the description adds real value beyond the schema by explaining the one-of-two content mode relationship, how file+chapter_no work together, and how title is auto-extracted. It also gives an ISO time example for publish_time.
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 a specific action (publish or schedule-publish a chapter) and a specific resource (a chapter in the current or specified novel). It clearly distinguishes the tool from read-only siblings like list_chapters and get_novel_stats.
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 clearly explains when to use the tool and gives explicit internal alternatives: title+content vs file+chapter_no. It does not explicitly say when to prefer sibling tools, but the read/write boundary between publishing and listing or stats tools is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_novelA
切换当前要操作的小说(传 book_id,可先用 list_novels 查)。之后的发布、数据查询默认作用于这本,直到再次切换。
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | Yes | 目标小说的 book_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing behavior. It explicitly reveals the key side effect: the novel selection persists and affects subsequent publish and data-query operations until another switch. It does not mention return values or failure behavior, but the important stateful behavior is 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 a single compact sentence: the action is front-loaded, the lookup hint is in a parenthetical, and the persistence behavior is stated with no filler. Every clause 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?
For a one-parameter tool with no output schema, the description covers the purpose, the prerequisite workflow, and the persistent side effect. An agent has enough information to decide when to invoke it and what to pass. Omitted return/error details are not necessary for correct selection and invocation at this complexity level.
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 describes book_id with 100% coverage, so the baseline is 3. The description adds value by showing how to obtain book_id via list_novels and by linking the parameter to the persistent current-novel state. This is beyond what the schema alone conveys.
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 ('切换', switch) and a specific resource ('当前要操作的小说', the current target novel), and then defines the consequential behavior: subsequent publishing and data queries operate on this novel until switched again. This clearly distinguishes it from siblings like list_novels and get_current_novel, which inspect or list rather than change state.
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 gives a clear prerequisite: call list_novels first to obtain the book_id. It also explains when the switch matters by stating that later publishing and data queries default to the newly selected novel, which is useful usage context. It does not explicitly say when not to use the tool, but for a simple state-switching tool the guidance is sufficient.
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.
20 tool updates
v2.0.0- First observed
check_login - First observed
delete_chapter - First observed
get_account_info - First observed
get_ai_qualification - First observed
get_attend_calendar - First observed
get_author_overview - First observed
get_banned_info - First observed
get_checkin_tickets - First observed
get_current_novel - First observed
get_douyin_hot_list - First observed
get_hot_words - First observed
get_login_qrcode - First observed
get_medal_summary - First observed
get_novel_stats - First observed
list_chapters - First observed
list_drafts - First observed
list_notices - First observed
list_novels - First observed
publish_chapter - First observed
switch_novel
TDQS
Scored across 20 tools
Most tools have clearly distinct resource/action targets: novel selection, chapter publishing/listing/deleting, account/login, stats, notices, and trend lookup are separable. A few status/account tools such as check_login, get_account_info, and get_login_qrcode are adjacent, but the descriptions make their roles understandable.
All tool names consistently use snake_case and mostly follow a predictable verb_noun pattern such as list_novels, get_novel_stats, publish_chapter, and delete_chapter. Minor variation like check_login and switch_novel is still readable and consistent with the overall convention.
With 20 tools, the server is somewhat heavy but the scope is broad: novel management, chapter publishing, account/login, analytics, notices, check-ins, trends, drafts, and AI qualification. Each tool appears to represent a real operation rather than redundant filler.
The surface covers core writer workflows including listing/switching novels, chapter listing, publishing, drafts, deletion, stats, login, notices, and account checks. Some lifecycle gaps remain, such as editing chapter content or creating a novel, but agents can likely work around these via the web backend.
Related MCP Connectors
Chinese web novel MCP: 36 tools (outline, prose, review, coach, KD export). BYOK, no API key.
AI-native fiction platform. Any AI can register, read, search and co-author novels via MCP or REST.
Search Chinese books with Douban ratings, AI book guides and curated toplists. Free, no API key.
Edit and publish your FramerToNextJS sites (converted Framer or AI-built) from Claude, Cursor or Codex. 19 tools: read pages, rewrite copy, restyle elements, add sections and pages, design Studio sites, manage CMS collections and items, then publish to your own host. OAuth with a read-only option, and MCP runs no model on FNJ's side. Requires an FNJ plan (Lifetime or any AI builder plan).
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI clients to interact with the Fanqie free novel author backend, including listing works, fetching chapter statuses, retrieving statistics, and publishing or drafting chapters.71MIT
- AlicenseNot gradedqualityCmaintenanceExposes 30+ novel-writing tools over stdio or HTTP so external agents such as Claude Code or WorkBuddy can use their own models and API keys to read chapters, write prose, manage characters, foreshadowing, story arcs and worldbuilding, run local semantic search, and launch review sub-agents. Supports one-click enabling with configurable port, token, and approval mode.AGPL 3.0
- AlicenseAqualityBmaintenanceEnables automated publishing to the Fanqie Novel (fanqienovel.com) author backend by driving a real browser through confirmed two-step form submissions, covering login, novel creation, chapter upload with scheduled release, short-story drafting and publishing, and a local manuscript library for batch uploads.1997 npmMIT
- AlicenseAqualityBmaintenanceEnables authors to automate publishing and managing their own Qimao (七猫) novel author-backend works through an MCP client, covering login and status, book creation and metadata, chapter add/edit/delete and batch publishing, short stories, read-only statistics and income, plus a local manuscript library, originality checks, and a genre knowledge base. Write operations follow a two-stage preview-then-confirm flow and it runs over stdio or Streamable HTTP with 30 tools and 8 read-only resources.3016 npmMIT