Skip to main content
Glama

保存正文到本地文稿库

save_article

Store written content in a local manuscript library and return an ID, eliminating the need to resend long text. Works for novel chapters and short stories.

Instructions

把用户写好的正文入库(data/articles.json),返回 article_id,避免把长文本反复塞进工具参数。kind=chapter 可带 novel_id/chapter_number;kind=short 用于短故事。正文可用 content 或 file_path。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYeschapter=小说章节,short=短故事正文
titleYes标题
statusNo初始状态,默认 draft
contentNo正文(与 file_path 二选一)
novel_idNo归属的本地小说 id(kind=chapter)
file_pathNo正文文件路径(UTF-8 文本)
chapter_numberNo章节号(kind=chapter)
tomato_book_idNo已绑定的番茄 book_id(可选)
tomato_item_idNo已绑定的番茄短故事 item_id(可选)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the storage location and the article_id return, plus the content/file_path alternative, but says nothing about overwrite/duplicate behavior, permissions, or whether saving is idempotent — the main risks for a persistence tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler: destination and return value come first, then the kind branching and the content source. Dense but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, no-annotation, no-output-schema tool, it covers the essentials — where data lands, what comes back, and the key conditional parameters. It leaves the optional tomato_* linkage fields and conflict handling unaddressed, which is a modest gap rather than a blocking one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description goes beyond the per-field text by encoding the conditional relationships: kind=chapter pairs with novel_id/chapter_number, kind=short is for short stories, and content vs file_path are the two ways to supply 正文.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (把正文入库), names the concrete store (data/articles.json), and names the return value (article_id). The local-file target implicitly separates it from the Tomato-publishing siblings (add_chapter_tomato, create_short_story_tomato), though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a rationale (避免把长文本反复塞进工具参数) and splits usage by kind, which hints at when each variant applies. But it never states when to use this local save versus the publish-oriented siblings, nor any prerequisites such as an existing novel_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.