Skip to main content
Glama
PTCuong-1102

story-architect-mcp

by PTCuong-1102

💡 The "Novels as Codebases" Paradigm

Software Engineering Concept

Novel Architecture Equivalent

story-architect-mcp Implementation

Modules & Packages

Arcs & Chapters

Standardized manuscript/arc_01/ch_001.md structure

Interfaces & Schemas

Character Bible & Lore

Frontmatter-backed Markdown files in bible/

Compiler & Linter

Continuity & Pacing Auditing

story_detect_timeline_conflicts, story_analyze_voice

Bug Tracker

Plot Hole & Chekhov's Gun Registry

story_log_plot_hole, story_log_setup, story_log_payoff

Git & Rollback

Point-in-Time Snapshots

story_snapshot and story_rollback safety engine

Dependency Injection

Context Budgeting

story_query_context (Graph Memory + Semantic Search)


Related MCP server: bible-ecrivain

🆕 What's New in v0.7.0

  • AI-assisted layout analysis ("AI in-the-loop") — recognition is no longer capped by regex rules. story_export_layout_brief (tool #31) packages raw evidence — file tree, word counts, content excerpts, plus the heuristic profile as a flagged-not-trusted opinion — for the AI agent in your session to analyze by context: chapter titles without the word "chapter" ("I. Mở màn", "Ngày 17-3"), author-named files (01.txt, t4-bai-viet), epistolary/diary formats, several interleaved novels.

  • story_apply_layout_verdict (tool #32) — the AI submits its verdict as JSON (layout kind, chapter boundaries by line number, folder→arc mapping, per-file classification). The server validates strictly (paths inside the project, destinations limited to manuscript/ | bible/ | outline/ | drafts_raw/, chapter start lines must exist) and stores it in .story/layout-verdict.json.

  • Refactor & scan prefer the AI verdict: story_auto_refactor_structure (auto_profile) splits by the AI's chapter boundaries — the regex no longer needs a keyword; story_scan_messy_project shows the AI verdict with a heuristic cross-check warning when they disagree. Safety unchanged: dry-run preview + auto-snapshot; the AI only directs, the server executes. Delete .story/layout-verdict.json to fall back to rules.

🆕 What's New in v0.6.0

  • Layout Profiles — novels written before you install story-architect-mcp now get recognized: the scanner reports how your existing novels are actually organized — chapter files nested in custom arc folders ("Quyển 3", "phan 2", "vol 2"...), flat chapter files, one big file containing the whole novel, or unseen multi-novel trees (multiple private novels in one folder tree). Multilingual chapter numbering is parsed: Arabic ("12"), Roman ("XII"), Vietnamese word numbers ("mười hai", "hai mươi mốt"), and CJK ("第十二章").

  • auto_profile strategy (new default for story_auto_refactor_structure): one big file → split into standard ch_XXX.md chapters by their headings (titles preserved for EPUB/DOCX tables of content; original archived in drafts_raw/); custom arc folders → mapped to arc_XX without renaming your files; flat chapters → renumbered. Everything stays dry-run preview + auto-snapshot protected.

  • Multi-novel detection: story_scan_messy_project flags folders that look like separate novels sharing one tree, so you can point story_set_project at each.

🆕 What's New in v0.5.0

  • Timeline Absolute Dates: "2025-01-01" ≡ "2025-01-01 00:00" in omnipresence checks (format differences no longer hide conflicts); new conflict #4 flags day↔chapter order inversions (with a flashback heads-up); Mermaid diagrams sort by relativeOrder → parsed date → chapter; addEvent feedback tells you whether an ISO date joins conflict detection or is just an in-world display string.

  • BM25 Search Ranking: story_query_context term-level matches are now ranked by BM25 (zero-dep) — rare phrases ("phượng hoàng giáng thế") outweigh common filler words, while exact-name/alias/fuzzy matches keep precedence.

  • story_prune_snapshots (tool #30): safely clean up old snapshots — keepLast (default 10) + optional olderThanDays, dry-run preview before confirm: true, keepLast < 3 requires explicit confirm, orphaned entries are cleaned from the index, and the report shows MB/KB freed.

🆕 What's New in v0.4.0

  • Auto-Stale Index: The knowledge graph cache (.cbm/index.json) now carries a stat fingerprint of its sources; editing bible files outside the tools (by hand, in another editor) is detected automatically — no more manual rebuildIndex calls.

  • State History Diff: story_track_character_state action: "history" now shows what changed between consecutive milestones — inventory lost/acquired (−🎒/+🎒), secrets learned (+🗝️), status/condition/location changes — directly in the report.

  • Sentiment lexicon-v3: unaccented negators/intensifiers ("khong vui", "rat vui", "vo cung") now match exactly — unaccented prose no longer gets muted polarity. (Method label is transparent.)

  • Cross-Process Lock Regression Test: the on-disk lock layer is now protected by a 4-process × 10-RMW contention test (148 unit tests total).

  • EPUB Cover + DOCX TOC: exports gain an SVG title cover (metadata-driven, zero-dep) and a real Word TOC field with outline levels for the Navigation pane.

🆕 What's New in v0.3.0

  • Atomic Writes + Advisory File Locking: Every .story/*.json state file is written atomically (temp-file + rename — readers never see a half-written file), and all read-modify-write operations are serialized through a two-layer lock (in-process mutex + on-disk lock dir with stale-TTL and fail-fast timeout). Safe for multiple MCP clients writing to the same novel.

  • Project Registry & story_list_projects: Server now reuses StoryProject instances across switches, and a new tool lists every project opened in the session.

  • Diacritics-insensitive + Fuzzy Graph Matching: Character/relationship lookups normalize Vietnamese diacritics (Trăng ≡ trang) and fall back to Levenshtein fuzzy match (±1–2 characters) — queries mistyped by the LLM still resolve.

  • Transparent Lexical Analysis: story_analyze_sentiment now reports its method (lexicon-v3) and warns when coverage is too low to trust metaphorical/ironic readings.

  • Richer EPUB/DOCX Export: EPUB3 gains dcterms:modified, richer CSS (justified text, hyphenation, per-section page breaks); DOCX gains page breaks between chapters, justified Normal style, full docProps (creator, language, app info), and Times New Roman typography.


✨ Key Features

🧹 1. Messy Project Rescue & Auto-Refactoring

  • Smart File Classifier (story_scan_messy_project): Scans unorganized manuscript folders, auto-detects character encodings (UTF-8, Windows-1252, ISO-8859-1), computes content similarity matrices, and tags files (Manuscript, Lore, Notes, Outline) with confidence scores. v0.6.0 adds a Layout Profile section — recognizes how the novel was arranged before installation (custom arc folders, flat chapters, single big file, separate novels in one tree) with multilingual chapter numbers.

  • Automated Refactoring (story_auto_refactor_structure): Reorganizes scattered files into a clean project structure with safe dry-run previews (confirm: false). v0.6.0 adds the auto_profile strategy: a single-file novel is split into manuscript/arc_01/ch_XXX.md by its chapter headings (Vietnamese word numbers, Roman, Arabic, CJK supported), original archived into drafts_raw/; custom arc folders map to arc_XX content-preserving.

  • Snapshot & Rollback Protection (story_snapshot / story_rollback): Creates automatic point-in-time state backups prior to file operations.

🔍 2. Continuity Auditing & Plot Hole Tracking

  • Plot Hole Manager (story_log_plot_hole / story_resolve_plot_hole): Tracks unresolved plot holes, severity levels, and proposed fixes directly in .story/unresolved_holes.json.

  • Chekhov’s Gun Tracker (story_log_setup / story_log_payoff): Ensures planted clues or foreshadowed events are resolved before the story concludes.

  • Timeline Conflict Detector & Parallel Subplots (story_detect_timeline_conflicts): Audits character omnipresence/teleportation conflicts, event order, and absolute dates across parallel storyline threads, generating interactive Mermaid Flowchart Diagrams.

  • Character State & Inventory Tracker (story_track_character_state): Tracks characters' geographic location, physical condition, inventory items, and acquired secrets chapter-by-chapter to eliminate continuity errors.

✍️ 3. Safe Manuscript Authoring & Progress Tracking

  • Direct Chapter Authoring (story_write_chapter): Saves or updates chapter drafts with automatic pre-write snapshots and real-time word count tracking.

  • Scene Appending (story_append_scene): Seamlessly appends new scenes and beat breaks without risking the loss of existing chapter text.

  • Manuscript Reader (story_read_chapter): Retrieves chapter text alongside extracted headings, beats, and statistics.

🧠 4. Knowledge Graph & Story Bible Integration

  • Automatic Entity Extraction (story_extract_entities_to_bible): Parses chapter drafts to automatically create structured Markdown profiles in bible/characters/ and bible/world/.

  • Dynamic Relationship Graph (story_map_relationships): Tracks changing relationships between characters across chapters into .story/relationships.json — can be auto-detected from manuscript co-occurrences or updated manually.

  • Token-Budget Context Querying (story_query_context): Generates optimized context packages for LLMs by combining graph memory traversal with token budget constraints.

📈 5. Pacing, Voice, Sentiment & Analytics Dashboard

  • Pacing Inspector (story_analyze_pacing): Measures Action / Dialogue / Description distribution and scene tension curves across chapters.

  • Voice Drift Monitor (story_analyze_voice): Evaluates sentence complexity, vocabulary richness, POV/tense compliance, and dominant emotions against your .story/style_guide.json.

  • Sentiment & Tone Analyzer (story_analyze_sentiment / story_track_emotion): Performs lexicon-based emotional arc tracking, polarity calculation, tone classification (8 categories), and tone drift detection across chapters.

  • Visual HTML Dashboard (story_generate_dashboard): Generates a standalone interactive HTML dashboard (export/dashboard.html) summarizing progress, plot holes, and story assets.

  • Writing Statistics (story_stats): Real-time word counts, writing velocity, and estimated project completion dates.

📄 6. AI Prompt Generator & Manuscript Export

  • Context-Rich Prompt Builder (story_generate_writing_prompt): Automatically compiles lore, recent chapter endings, outline beats, character states, and active Chekhov's guns into an optimized writing prompt.

  • Multi-Format Export (story_export): Compiles manuscript files into Markdown, HTML, EPUB, or DOCX formats with custom metadata and Table of Contents. (For PDF, export to HTML and print-to-PDF from a browser.)


📁 Standard Project Architecture

story-architect-mcp organizes novel projects into a standardized layout:

my-epic-novel/
├── .story/                      # Project metadata & state tracking
│   ├── config.json              # Title, Author, Genre, POV, Tense
│   ├── status.json              # Word counts & progress tracking
│   ├── timeline.json            # Event chronology, dates & parallel threads
│   ├── unresolved_holes.json    # Active plot hole registry
│   ├── character_states.json    # Location, condition & inventory timeline
│   ├── relationships.json       # Character relationship matrix
│   ├── foreshadowing.json       # Chekhov's gun tracker (Setups & Payoffs)
│   ├── style_guide.json         # Voice, tone, sentence rules & reference excerpts
│   └── snapshots/               # Version snapshots for rollback protection
├── .cbm/                         # Knowledge Graph cache & index
│   └── index.json                # Precomputed entity/relationship index
├── bible/                       # Story Bible & Worldbuilding Lore
│   ├── characters/              # Character profiles with YAML frontmatter
│   ├── world/                   # Locations, factions, magic/tech systems
│   └── subplots/                # Subplot tracking & arc objectives
├── manuscript/                  # Official Manuscript Drafts
│   └── arc_01/
│       ├── ch_001.md
│       └── ch_002.md
├── outline/                     # Master Outline & Chapter Beats
│   ├── synopsis.md              # High-level story synopsis
│   ├── themes.md                # Themes & key motifs
│   └── arc_01/
│       ├── overview.md          # Arc overview
│       └── ch_001_outline.md    # Scene beats per chapter
└── drafts_raw/                  # Loose, unorganized writing snippets

⚙️ MCP Client Configuration (Manual Setup)

Nếu bạn muốn cấu hình thủ công thay vì chạy npx story-architect-mcp setup:

💡 Zero-Config Project Switching: Bạn không bắt buộc phải cố định đường dẫn novel project trong tham số khởi động. Khi server chạy, AI có thể tự chọn hoặc chuyển đổi dự án tại runtime bằng tool story_set_project.

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "story-architect": {
      "command": "npx",
      "args": ["-y", "story-architect-mcp"]
    }
  }
}

Antigravity / Cursor / Windsurf / VS Code (mcp.json / cline_mcp_settings.json)

{
  "mcpServers": {
    "story-architect": {
      "command": "npx",
      "args": ["-y", "story-architect-mcp"]
    }
  }
}

🛠️ MCP API Reference

1. MCP Tools (32 Tools)

🔹 Project & Structure Management

Tool Name

Key Parameters

Description

story_set_project

projectPath

Sets or switches the target novel project directory dynamically at runtime.

story_list_projects

none

Lists all novel projects opened in this server session (parameter v0.3.0 — project registry + instance reuse).

story_get_project_info

none

Returns status, path, configuration, and word count of the active project.

story_init

template, title, author, genre, pov, tense

Initializes project directory with predefined genre templates.

story_stats

none

Computes total manuscript word count, writing velocity, and estimated completion date.

story_generate_dashboard

outputPath

Generates a comprehensive interactive visual HTML dashboard (export/dashboard.html).

🔹 Manuscript Authoring Suite

Tool Name

Key Parameters

Description

story_write_chapter

arc, chapter, content, title, autoSnapshot

Writes or overwrites a chapter draft with automatic snapshot and writing progress recording.

story_append_scene

arc, chapter, content, sceneHeading

Appends a new scene or beat to an existing chapter draft.

story_read_chapter

arc, chapter

Reads chapter draft content, word count, and scene beat structure.

🔹 Rescue & Refactoring Suite

Tool Name

Key Parameters

Description

story_scan_messy_project

path

Scans unorganized directories, detects encoding, and classifies loose files.

story_auto_refactor_structure

strategy, confirm

Refactors messy files into the standard novel structure (supports dry-run).

story_snapshot

description

Creates a point-in-time state snapshot in .story/snapshots/.

story_rollback

snapshot_id, confirm

Restores project state to a designated snapshot.

story_prune_snapshots

keepLast, olderThanDays, confirm

Prunes old snapshots (preview by default; requires confirm: true to delete — v0.5.0).

🔹 Continuity & Management Suite

Tool Name

Key Parameters

Description

story_log_plot_hole

title, description, severity, location, suggested_fix

Registers an unresolved narrative plot hole or inconsistency.

story_resolve_plot_hole

hole_id, resolution_note

Resolves or dismisses a logged plot hole.

story_log_setup

title, description, chapter, character

Logs a foreshadowing setup (Chekhov's Gun).

story_log_payoff

setup_id, payoff_chapter, description

Marks a foreshadowing setup as paid off.

story_list_unfired

none

Lists all planted foreshadowing items that haven't been resolved yet.

story_track_character_state

character, chapter, action, state

Tracks character geographic location, status, physical condition, secrets, and inventory timeline.

🔹 Graph Memory & Context Suite

Tool Name

Key Parameters

Description

story_extract_entities_to_bible

chapter_path, confirm

Automatically extracts characters and locations from chapter drafts into bible/.

story_map_relationships

chapter_range

Builds and updates inter-character relationship matrix across chapters.

story_query_context

query, budget_tokens

Extracts context packages using knowledge graph memory + vector search.

🔹 Analysis & Prompt Generator Suite

Tool Name

Key Parameters

Description

story_detect_timeline_conflicts

addEvent

Audits event chronology & character omnipresence across parallel subplots, rendering Mermaid Flowchart diagrams.

story_analyze_pacing

chapter_range

Computes Action / Dialogue / Description ratio and scene tension curves.

story_analyze_voice

chapter_range

Checks sentence length, vocabulary richness, and POV/tense compliance against style guide.

story_analyze_sentiment

arc, chapter, windowSize, compareToStyleGuide

Analyzes chapter/arc sentiment, dominant emotions, tone classification, emotional arcs, and detects tone drift.

story_track_emotion

text

Standalone emotion and tone tracker for quick drafting feedback on arbitrary text passages.

story_generate_writing_prompt

target_chapter_id, strategy

Compiles lore, outlines, recent endings, and style rules into an optimized prompt.

story_export

format, output_path, include_outline

Compiles manuscript into Markdown, HTML, EPUB, or DOCX formats.


2. MCP Resources (8 Static & 4 Templates)

Static Resources

Resource URI

Description

MIME Type

story://status

Live project word counts, progress, and status

application/json

story://config

Project settings (Title, Author, Genre, POV, Tense)

application/json

story://timeline

Story timeline events, dates & parallel subplots

application/json

story://character-states

Character locations, physical conditions, and inventory history

application/json

story://holes

List of unresolved plot holes and continuity warnings

application/json

story://foreshadowing

Unfired Chekhov's guns and foreshadowing setups

application/json

story://relationships

Character relationship matrix and interaction states

application/json

story://emotions

Project-wide cached sentiment and emotional arc summary

application/json

Resource Templates

Template URI

Description

MIME Type

story://bible/characters/{name}

Profile, frontmatter, and lore for a specific character

text/markdown

story://bible/world/{location}

Description, history, and lore for a location or faction

text/markdown

story://character-states/{name}

Latest location, condition, and inventory snapshot for a character

application/json

story://manuscript/{arc}/{chapter}

Manuscript text for a specific chapter in an arc

text/markdown


3. MCP Workflow Prompts (5 Prompts)

Prompt Name

Required Arguments

Workflow Description

write-next-chapter

arc, chapter

Gathers lore, preceding chapter endings, outline beats, character states, and style rules into an optimized prompt for writing the next chapter.

character-deep-dive

name

Aggregates a character's Bible entry alongside all scene appearances across the manuscript for deep analysis.

continuity-audit

arc

Scans an entire arc to detect timeline errors, term inconsistencies, and unresolved setups.

rescue-project

projectPath (optional)

Step-by-step guided workflow for scanning, previewing, and refactoring chaotic manuscript folders.

brainstorm-scene

arc, chapter

Generates 3–5 distinct scene execution options based on current outline and plot state.


🛡️ Data Integrity & Safety Protocol

Writing a novel takes months or years; story-architect-mcp is designed with strict data preservation measures:

  1. Dry-Run Mode First (confirm: false): All destructive or structural refactoring tools run in Preview mode by default. You can inspect exact proposed file moves and edits before confirming execution (confirm: true).

  2. Automated Pre-Refactor & Pre-Write Snapshots: Executing structural changes or overwriting existing chapters automatically triggers snapshots to create a rollback checkpoint prior to file operations.

  3. Transparent File Formats: All metadata is stored as standard JSON in .story/, and all story content is stored in plain Markdown with YAML frontmatter—ensuring zero vendor lock-in.


📄 License

Distributed under the MIT License. See LICENSE for more information.

Available Tools

32 tools
story_analyze_pacingAnalyze Pacing & Tension CurveB

Đo lường tỷ lệ Action / Dialogue / Description, đường cong căng thẳng (Tension curve) và cấu trúc nhịp cảnh (Scene beats).

NameRequiredDescriptionDefault
arcYesArc ID (ví dụ: arc_01)
chapterNoChương cụ thể (bỏ qua để phân tích toàn bộ Arc)

TDQS

B3.2/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 implies a read-only measurement operation but never states that it is non-mutating, nor whether it requires the arc to be previously set (story_set_project) or how costly the scan is. It does usefully disclose the computed artifacts, which is the main behavioral fact an agent needs, but omits output shape and any prerequisites.

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?

A single front-loaded sentence that enumerates the three analyses with no filler. It is efficiently sized for the tool's scope, though it spends no words on guidance or output context.

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

Completeness3/5

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

For a two-parameter, no-output-schema tool, the description lists all three returned artifacts, which partially substitutes for an output schema. However, it never describes the result structure (per-chapter? per-scene? numeric ranges?), and with no annotations an agent gets no safety or precondition context, leaving a meaningful gap.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (arc, chapter) are documented in-schema, including the 'omit chapter to analyze the whole arc' rule, so the baseline of 3 applies. The description adds no syntax, format, or defaulting information beyond the schema.

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?

The description names a specific analysis operation and enumerates the three concrete outputs (Action/Dialogue/Description ratio, Tension curve, Scene beats), so an agent knows exactly what is computed. It does not explicitly differentiate itself from near-neighbors such as story_analyze_sentiment or story_analyze_voice, which also read chapters and produce derived metrics.

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

Usage Guidelines2/5

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

There is no statement of when to invoke this versus alternatives; the only scoping hint ('bỏ qua để phân tích toàn bộ Arc') lives in the schema, not the description. An agent must infer the trigger condition and cannot learn from the text why it would pick this over the other analysis siblings.

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

story_analyze_sentimentAnalyze Sentiment & ToneB

Phân tích cảm xúc (sentiment), giọng văn (tone), và emotional arc của chương/arc. Phát hiện tone drift giữa các chương.

NameRequiredDescriptionDefault
arcYesArc ID cần phân tích (ví dụ: arc_01)
chapterNoChương cụ thể (bỏ qua để phân tích toàn bộ Arc)
windowSizeNoSố từ mỗi sliding window cho emotional arc (default 200)
compareToStyleGuideNoSo sánh với style_guide.json nếu có

TDQS

B3.1/5.0
Behavior2/5

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 never states that this is a read-only analysis (likely LLM-backed, potentially slow or costly), whether compareToStyleGuide causes file reads with side effects, or what happens on a missing arc/chapter. For a tool with zero annotation coverage, this is a significant gap.

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?

Two short sentences with no filler, and the core capability is front-loaded. It is arguably over-terse for an analysis tool, but nothing is wasted.

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

Completeness2/5

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, yet the description says nothing about what the analysis returns (sentiment scores, tone labels, drift report, emotional arc series) or where results land. For a four-parameter analysis tool, an agent cannot predict the response shape or cost from this definition alone.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description only reinforces scope (chapter vs. whole arc), adding marginal meaning beyond the schema's own 'bỏ qua để phân tích toàn bộ Arc' note. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description names a specific verb (analyze) and three concrete resources (sentiment, tone, emotional arc), plus a secondary capability (tone drift detection across chapters), and clarifies the scope is a chapter or an arc. It does not differentiate itself from close siblings like story_analyze_voice, story_analyze_pacing, or story_track_emotion, which an agent could easily confuse with this tool.

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?

Usage is only implied: mentioning 'chương/arc' suggests choosing chapter-level versus arc-level analysis, and 'tone drift giữa các chương' hints at multi-chapter comparisons. There is no explicit when-to-use, when-not-to-use, or named alternative among the many analysis siblings (voice, pacing, emotion tracking).

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

story_analyze_voiceAnalyze Writing Voice & DriftB

Phân tích giọng văn (độ dài câu, vốn từ, POV, Tense, cảm xúc chủ đạo) và kiểm tra hiện tượng trôi văn phong (Voice drift) so với style_guide.json.

NameRequiredDescriptionDefault
arcYesArc ID cần phân tích
chapterNoChương cụ thể cần kiểm tra

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool reads a style_guide.json baseline and performs drift comparison, which is useful context, but it does not say what happens if no style guide exists, whether the operation is read-only, or what the result contains.

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?

A single dense sentence with the analyzed dimensions front-loaded before the drift check; no filler. Slightly over-packed as a parenthetical list, but efficient.

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

Completeness3/5

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

With two simple, fully documented parameters and no output schema, the description is enough to invoke the tool, but it never describes the return shape (drift score? per-metric verdicts?) or the dependency on style_guide.json, which an agent needs to interpret results.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are documented in the schema, so baseline is 3. The description adds no meaning beyond the schema — it does not clarify whether omitting 'chapter' analyzes the whole arc or what 'chapter' accepts (number vs path).

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 (phân tích / analyze) plus the exact facets measured (sentence length, vocabulary, POV, tense, dominant emotion) and a second function: detecting voice drift against style_guide.json. That distinguishes it from siblings like story_analyze_pacing and story_analyze_sentiment, though the emotion overlap is not resolved.

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

Usage Guidelines2/5

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

The description tells what is compared (style_guide.json) but never states when to use this tool versus story_analyze_sentiment, story_analyze_pacing, or story_query_context, nor any preconditions such as requiring an existing style guide. Usage must be inferred.

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

story_append_sceneAppend Scene to ChapterA

Nối thêm một phân cảnh (scene) vào cuối chương truyện hiện có mà không làm mất nội dung trước đó.

NameRequiredDescriptionDefault
arcYesTên Arc (ví dụ: "arc_01")
chapterYesTên Chapter (ví dụ: "ch_001")
contentYesNội dung phân cảnh cần nối thêm
sceneHeadingNoTiêu đề phân cảnh (nếu có, ví dụ: "Cuộc Gặp Dưới Mưa")

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It does disclose a meaningful trait: appending to the end without losing previous content, which is useful for a mutation tool. It does not cover permissions, missing-chapter behavior, response format, or other side effects, so it remains incomplete.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It immediately communicates the append action and the non-destructive guarantee.

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

Completeness3/5

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

For a simple four-parameter append tool with full schema coverage and no output schema, the description is adequate but not complete. It does not explain edge cases such as a missing chapter or what the tool returns, which would help an agent invoke it confidently.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description does not add syntax, format, or usage details beyond what the schema provides, making the baseline score of 3 appropriate.

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?

The description states a specific verb (nối thêm), resource (phân cảnh), and target location (cuối chương truyện hiện có), with the added constraint that prior content is preserved. It is clear what the tool does, but it does not explicitly differentiate itself from sibling story_write_chapter.

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?

The phrase 'vào cuối chương truyện hiện có' implies the tool is for appending to an existing chapter without replacing it, which hints at when to use it. However, it gives no explicit alternatives, exclusions, or prerequisites such as what happens if the chapter does not exist.

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

story_apply_layout_verdictApply AI Layout VerdictA

Nộp phán đoán bố cục (verdict JSON) — kết quả đọc story_export_layout_brief bằng AI. Server XÁC THỰC nghiêm ngặt (đường dẫn phải nằm trong dự án, đích giới hạn trong manuscript/bible/outline/drafts_raw, dòng chương phải tồn tại) rồi lưu vào .story/layout-verdict.json. story_auto_refactor_structure (auto_profile) và story_scan_messy_project sẽ ưu tiên dùng. Xóa file để quay về heuristic.

NameRequiredDescriptionDefault
verdictYesPhán đoán bố cục của AI
projectPathYesĐường dẫn dự án

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden and does so well: it lists concrete validation rules (paths must stay inside the project, destinations are limited to manuscript/bible/outline/drafts_raw, chapter lines must exist) and states the persistence target .story/layout-verdict.json. It does not say what happens on validation failure (error shape, whether an existing verdict file is overwritten), which is the remaining gap.

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?

It is a single dense paragraph that leads with the action and the upstream tool, then the validation rules, then the consumers and the revert path. Nothing is wasted, though the validation clause is packed tightly enough to require careful reading.

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 2-parameter write tool with no output schema and no annotations, the description covers the critical facts an agent needs: input provenance, enforced constraints, storage location, downstream effects, and rollback. Only the failure/error behavior is left unstated.

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% and the nested verdict object is well typed (kind enum, confidence 0-1, required reasoning, arcs/chapters/files arrays), so the schema does most of the work. The description adds real semantic context by explaining that the verdict is the AI's output from reading story_export_layout_brief and listing the constraints the server enforces on paths and destinations.

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

Purpose5/5

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

The description states a specific verb (nộp/save) and resource (layout verdict JSON), and ties it to its upstream producer story_export_layout_brief. An agent can immediately tell this apart from analysis tools such as story_scan_messy_project because it writes a persisted verdict rather than computing one.

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

Usage Guidelines5/5

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

It names the downstream consumers (story_auto_refactor_structure, story_scan_messy_project) that will prioritize this verdict, and it explicitly states how to undo it: delete the file to return to the heuristic. That covers when to use it, what it affects, and how to opt out.

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

story_auto_refactor_structureAuto Refactor Novel StructureB

Phân loại và chuẩn hóa cấu trúc thư mục dự án tiểu thuyết theo layout chuẩn. Hỗ trợ dry-run mode (confirm=false) để preview trước khi thực hiện.

NameRequiredDescriptionDefault
confirmNofalse = dry-run (chỉ preview), true = thực hiện thực sự (sẽ tự động snapshot trước)
strategyNoChiến lược sắp xếp: auto_profile (mặc định, v0.6.0) — nhận diện bố cục hiện có trước: một file lớn chứa nhiều chương → TÁCH theo tiêu đề chương; thư mục phân tập tự đặt tên → map thành arc_XX; chương phẳng → đánh số lại ch_XXX by_chapter — mọi file bản thảo → manuscript/arc_01/ by_arc — đoán arc từ tên file/nội dung ("quyển 3", "part 2"...) chronological — đánh số theo thời gian sửa fileauto_profile
projectPathYesĐường dẫn dự án

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It does explain the dry-run safety path, which is valuable, but for a file-moving mutation it omits whether the operation is reversible, that a snapshot happens (that detail lives only in the schema), and what the result looks like. It signals the operation but not its consequences.

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?

Two tight sentences with the core purpose front-loaded and the safety mode immediately following. Nothing is wasted, though the dry-run sentence could have carried more behavioral detail given the space available.

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

Completeness3/5

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

For a mutation tool with no annotations and no output schema, the description is minimal: it lacks any mention of what is returned, whether snapshot/rollback protects the user, or how it relates to the scan/verdict tools. The dry-run hint helps but does not fully cover the complexity of a directory-restructuring operation.

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

Parameters3/5

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

Schema description coverage is 100%, with the strategy enum fully documented in-schema. The description's mention of confirm=false as dry-run duplicates what the schema already states, adding no new semantics. Baseline 3 is appropriate given the schema does the heavy lifting.

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?

The description states a specific verb+resource: it classifies and normalizes the directory structure of a novel project into a standard layout. This clearly distinguishes it from read-only siblings like story_scan_messy_project, though it does not explicitly name the related story_apply_layout_verdict. An agent can identify the operation without reading the schema.

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 useful procedural guidance: use dry-run mode (confirm=false) to preview before committing. However, it never states when this tool should be chosen over closely related siblings such as story_scan_messy_project or story_apply_layout_verdict, nor does it state prerequisites. Usage is implied rather than fully directed.

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

story_detect_timeline_conflictsDetect Timeline Conflicts & Generate Mermaid Parallel TimelineB

Phân tích các mốc thời gian tuyệt đối & tương đối, sự kiện, địa điểm và nhân vật để phát hiện mâu thuẫn timeline (như phân thân xuất hiện ở 2 nơi cùng lúc, đảo ngược thứ tự sự kiện). Hỗ trợ các tuyến truyện song song (Threads/Subplots) và xuất biểu đồ Mermaid trực quan.

NameRequiredDescriptionDefault
addEventNoThêm sự kiện timeline mới (nếu cần)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden. It frames the tool as a read/analysis operation ('phân tích ... để phát hiện mâu thuẫn') yet the schema exposes an addEvent capability, meaning the tool can mutate timeline state — and the description never says so, nor whether conflicts are persisted, what permissions are needed, or how results are returned beyond 'exports a Mermaid chart'.

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?

Two dense sentences with the detection purpose front-loaded followed by the parallel-thread/Mermaid output capability. No filler, though the visual-output claim sits in the same breath as analysis without separating the two modes of operation.

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

Completeness3/5

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

For a tool with no annotations and no output schema, the description covers the analysis purpose and the Mermaid return artifact reasonably well. But it omits the event-insertion behavior implied by addEvent and says nothing about what the conflict report itself contains, leaving a mutation-capable tool under-described.

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

Parameters3/5

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

Schema description coverage is 100%, so every sub-field (label, thread, chapter, location, characters, absoluteDate, relativeOrder) is already documented in the schema; baseline 3 applies. The description adds only the thematic link to 'Threads/Subplots' for the thread field and never mentions the single top-level addEvent parameter, so it contributes little beyond structured data.

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: analyze absolute/relative time markers, events, locations and characters to detect timeline contradictions, with concrete examples (a character in two places at once, reversed event order) plus Mermaid diagram output. The scope is unmistakable and no sibling tool overlaps with conflict detection, though it does not explicitly name non-overlap.

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?

Usage is only implied: an agent can infer this is for consistency-checking a story's chronology, but the description gives no trigger conditions, no prerequisites, and no when-not-to-use guidance versus other analysis siblings such as story_log_plot_hole or story_analyze_pacing.

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

story_exportExport Story ManuscriptA

Đóng gói và xuất bản toàn bộ tác phẩm thành file Markdown, HTML, EPUB hoặc DOCX kèm mục lục và thông tin tác giả.

NameRequiredDescriptionDefault
formatNoĐịnh dạng xuất: markdown_single | html | epub | docx (pdf chưa hỗ trợ — xem gợi ý)markdown_single
outputPathNoĐường dẫn file xuất (mặc định: <project>/export/<name>.<ext>)
includeOutlineNoBao gồm dàn ý trong file xuất

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral burden. It usefully discloses that the export includes a table of contents and author information and that output is a file in one of several formats, but it does not mention overwrite behavior, required project context, or what happens with the unsupported PDF option.

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

Conciseness5/5

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

A single, front-loaded sentence that states the action, target, formats, and bundled output contents. It contains no filler and is appropriately sized for a tool with full schema coverage.

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

Completeness3/5

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

For a file-export mutation tool with no annotations and no output schema, the description is adequate but incomplete. It identifies the output formats and included sections, but leaves gaps around overwrite behavior, project context, and error/format limitations such as the PDF enum value.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains format, outputPath, and includeOutline. The description adds only a high-level list of formats and mentions TOC/author info, which is not parameter-specific. Baseline 3 is appropriate because the schema does the heavy lifting.

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?

The description gives a specific verb-resource pair: "Đóng gói và xuất bản toàn bộ tác phẩm" into named file formats. It is clear what the tool produces, though it does not explicitly differentiate itself from the similarly named story_export_layout_brief sibling.

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?

Usage is implied by "toàn bộ tác phẩm" — export the whole manuscript — but the description does not state when to prefer it over alternatives or when not to use it. It also gives no guidance on choosing among the supported formats.

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

story_export_layout_briefExport Layout Brief for AI AnalysisA

Gói bằng chứng thô của dự án (cây file + trích nội dung + heuristic profile) để BẠN/AI phân tích bố cục bằng ngữ cảnh thay vì quy tắc regex cứng. Luồng: gọi tool này → bạn đọc brief và suy đoán → gọi story_apply_layout_verdict nộp phán đoán. Sau đó story_auto_refactor_structure (strategy auto_profile) sẽ dùng phán đoán của bạn.

NameRequiredDescriptionDefault
projectPathYesĐường dẫn dự án

TDQS

A3.9/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It does disclose what the payload contains and its role in a larger pipeline, but never states that the operation is read-only/non-destructive, whether anything is written to disk, or how large the brief may get for a big project (no truncation or size caveat). Those are meaningful gaps for a tool whose output is meant to be read wholesale into an agent's context.

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 sentences, front-loaded with what the tool produces before the pipeline steps. Every sentence contributes, though the inline enumeration of the three downstream/upstream steps is slightly dense and could be tightened.

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?

With no output schema, the description usefully compensates by enumerating the brief's contents (file tree, content excerpts, heuristic profile) and its position in the workflow. It stops short of clarifying output format (single text blob vs. file reference) and any size limits, which matters for an evidence-export tool.

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

Parameters3/5

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

Only one parameter (projectPath), and schema description coverage is 100%, so the schema already defines it as the project path. The description adds no further semantics such as whether a relative or absolute path is expected, or what happens with an invalid path. Baseline 3 applies when the schema does the work.

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?

The description states a concrete verb+resource: it packages a project's raw evidence (file tree + content excerpts + heuristic profile) into a layout brief for AI inference. It clearly differentiates from regex-based analysis and names the downstream tools it feeds (story_apply_layout_verdict, story_auto_refactor_structure). It does not disambiguate against the sibling story_export, which an agent might reasonably confuse with this.

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

Usage Guidelines5/5

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

It gives an explicit three-step workflow: call this tool, read the brief and infer, then submit the verdict via story_apply_layout_verdict, after which story_auto_refactor_structure with strategy auto_profile consumes the result. The condition selecting this tool over rule-based analysis is stated directly ('thay vì quy tắc regex cứng').

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

story_extract_entities_to_bibleExtract Entities to BibleA

Phân tích văn bản chương, tự động phát hiện nhân vật và địa danh, tạo đề xuất hoặc tự động tạo các file Markdown trong bible/ với YAML frontmatter chuẩn.

NameRequiredDescriptionDefault
arcYesArc ID (ví dụ: arc_01)
chapterYesChapter ID (ví dụ: ch_001)
confirmNofalse = preview/đề xuất, true = ghi file vào bible/

TDQS

A4.1/5.0
Behavior4/5

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 key behavioral trait: it can either propose entities or automatically create files in the bible/ folder, depending on the confirm flag. It also specifies the output format (Markdown with YAML frontmatter), which is valuable. It does not mention potential overwrites or file system prerequisites, but the primary 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.

Conciseness5/5

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

The description is a single concise sentence that front-loads the primary action ('Analyze chapter text') and packs in all essential details (entities detected, two modes, output location, format). There is no redundant or extraneous information.

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

Completeness3/5

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

The tool has no output schema, so the description should explain what the agent can expect as a result. It says 'create suggestions' but does not specify the return format (e.g., a list, a status, or file paths). It also omits any prerequisites like the existence of the bible/ folder. For a moderate-complexity tool, this is a noticeable gap.

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

Parameters3/5

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

The schema already documents all three parameters (arc, chapter, confirm) with descriptions, including the purpose of confirm (false=preview, true=write). The tool description adds overall workflow context but does not add per-parameter meaning beyond the schema. With 100% schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the tool's function: analyzing chapter text to detect characters and places, then creating suggestions or Markdown files in bible/ with YAML frontmatter. This distinct action differentiates it from sibling tools like story_map_relationships or story_auto_refactor_structure.

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

Usage Guidelines4/5

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

The description provides clear context: it is used for analyzing chapter text and extracting entities. It also indicates two modes (preview vs. auto-create) via the confirm parameter, giving clear guidance on when to use each. It does not explicitly mention alternatives or exclusions, but the context is sufficient.

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

story_generate_dashboardGenerate Visual HTML Story DashboardA

Xuất một trang Dashboard trực quan hóa dạng HTML độc lập tại export/dashboard.html, tổng hợp số từ, tiến độ, danh sách plot holes, Chekhov guns và nhân vật.

NameRequiredDescriptionDefault
outputPathNoĐường dẫn file HTML xuất ra (mặc định: export/dashboard.html)

TDQS

A4.5/5.0
Behavior4/5

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

Since no annotations are provided, the description carries a high burden of disclosure. It clearly states the output format (HTML), the location of the file, and the specific metrics compiled, which is valuable behavioral context for a generative tool.

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

Conciseness5/5

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

The description is delivered in a single, powerful sentence that efficiently communicates the function, the output format, the default location, and the core content of the visualization with zero fluff.

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

Completeness5/5

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

Given that the tool is a high-level synthesis and reporting tool, the description provides all necessary context for an agent to decide if the requested action (e.g., 'show me my story progress') aligns with this specific tool.

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?

The input schema coverage is 100%, providing a baseline score of 3. The description adds clarity by specifying the default file path for the `outputPath` parameter, which is a useful behavioral detail for this optional parameter.

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

Purpose5/5

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

The description is highly specific, clearly stating the tool generates an HTML dashboard. It defines exactly what the dashboard includes (word count, progress, plot holes, Chekhov guns, characters), distinguishing its function as an aggregator from the low-level tools in the sibling list.

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

Usage Guidelines4/5

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

While it does not explicitly list alternatives, the description clearly defines its role as a synthesis/reporting tool, implying its usage when a holistic project overview is needed. The context suggests it is used when the goal is review, not data manipulation.

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

story_generate_writing_promptGenerate Optimized Writing PromptB

Đọc chương trước + Dàn ý + Lore + Style Guide + Chekhov Guns → Tạo System Prompt gọt giũa hoàn hảo cho lượt viết tiếp theo.

NameRequiredDescriptionDefault
arcYesArc ID (ví dụ: arc_01)
chapterYesChapter ID (ví dụ: ch_003)
strategyNoChiến lược viết: continue (viết tiếp), rewrite (viết lại), expand (mở rộng)continue

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral load. It usefully discloses the input sources it reads (previous chapter, outline, lore, style guide, Chekhov guns), which is real context beyond the schema, but it is silent on whether it mutates state, whether it persists the generated prompt, how large or structured the output is, and what happens if those sources are missing.

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?

A single compact sentence using an arrow to front-load inputs and the result; zero filler. It would be stronger if the disambiguating use case came before the input list. Note the description is in Vietnamese while the tool name, title, and schema wording are mixed, which slightly hurts scanability for an agent working in English.

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

Completeness3/5

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

For a 3-parameter, 100%-documented tool with no output schema and no annotations, the description covers the 'what goes in → what comes out' contract but leaves the output shape, whether it is returned or stored, and failure modes unspecified. Adequate but with clear gaps for a tool whose whole value is the generated artifact.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents arc, chapter, and the strategy enum in full, making 3 the baseline. The description adds nothing about parameters — notably the strategy enum is never referenced, so the agent gets no narrative hint that 'rewrite' vs 'expand' changes what context is gathered.

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 concrete verb ('Tạo' / create) and a concrete artifact ('System Prompt') from a named set of inputs, so the agent knows this aggregates story context rather than writing prose itself. It does not name or contrast with the closest sibling (story_write_chapter), which would be the natural alternative an agent might confuse it with.

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?

The phrase 'cho lượt viết tiếp theo' (for the next writing turn) implies when to use it, but there is no explicit when-not, no mention of why one would choose this over story_write_chapter or story_query_context, and no stated prerequisites such as an existing arc/chapter.

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

story_get_project_infoGet Current Project InfoA

Xem thông tin dự án tiểu thuyết hiện tại đang được trỏ đến.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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 'view' implies a read-only operation, which is a helpful clue, but it doesn't disclose preconditions (e.g., whether a project must be pointed to) or error behavior. This is minimal but adequate for a simple getter.

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

Conciseness5/5

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

The description is a single short sentence with no extraneous words. It is front-loaded with the action verb and directly states the resource. Perfectly concise.

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

Completeness3/5

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

There is no output schema, so the description should give some indication of the return value. It only says 'information', which is vague and leaves the agent unsure of the exact fields or structure. For a simple tool this is a minor gap but still incomplete.

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?

The tool has zero parameters, so the schema already fully covers parameter semantics. The baseline for 0 parameters is 4, and the description doesn't need to add parameter details.

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?

The description states a specific verb ('view') and resource ('current novel project information'), clearly distinguishing it from sibling tools like story_set_project or story_init. However, it doesn't specify exactly what project information is included, so it falls 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.

Usage Guidelines3/5

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

The description implies usage when one needs to see the active project's details, but it does not explicitly state when to use this tool vs alternatives or mention any exclusions. This is implied usage, not explicit guidance.

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

story_initInitialize Story ProjectA

Khởi tạo dự án tiểu thuyết mới: tạo cấu trúc thư mục chuẩn (.story/, bible/, manuscript/, outline/...) và metadata ban đầu.

NameRequiredDescriptionDefault
povNoNgôi kể
nameYesTên dự án tiểu thuyết
genreNoThể loại: Fantasy, Romance, Sci-Fi...
tenseNoThì: past hoặc present
authorNoTên tác giả
languageNoNgôn ngữ chính (vi, en...)
targetWordCountNoMục tiêu số từ (mặc định 80000)

TDQS

A3.5/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, and it does disclose the key side effect (creating a standard directory tree plus initial metadata). It does not disclose permission requirements, failure behavior on name collisions, or whether existing directories are overwritten — significant gaps for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

A single front-loaded sentence that names the operation and its concrete outputs with no filler. The directory list is high-value detail rather than padding.

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

Completeness3/5

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

For a 7-parameter creation tool with no output schema and no annotations, the description should say what is returned and how errors (e.g., existing project) are handled. It covers the write effects but leaves the response contract and failure modes unspecified.

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

Parameters3/5

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

Schema description coverage is 100% and includes enum values and a documented default (80000) for targetWordCount, so the schema does the heavy lifting. The description adds nothing about individual parameters beyond what the schema already states; baseline 3 applies.

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 (khởi tạo/tạo) and resource (dự án tiểu thuyết), and enumerates concrete artifacts created (.story/, bible/, manuscript/, outline/). This clearly separates it from retrieval siblings like story_list_projects and story_get_project_info, though it does not name those siblings 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?

The phrase 'dự án tiểu thuyết mới' implies first-time setup, which is useful context for choosing this over story_set_project. However, there is no explicit when-not guidance, no mention of prerequisites, and no statement about what happens if the project already exists.

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

story_list_projectsList Session ProjectsA

Liệt kê mọi dự án tiểu thuyết đã mở trong phiên server (kèm trạng thái khởi tạo và dự án đang active). Dùng story_set_project để chuyển đổi.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden and does disclose key behavior: results are scoped to the current server session, and entries carry initialization state plus an active project marker. It doesn't state whether an empty list is possible or whether the call has any side effects, which keeps it from a 5.

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

Conciseness5/5

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

Two short sentences, zero filler, with the scope-and-contents statement front-loaded and the alternative tool named second. Every clause earns its place.

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 simple no-arg read tool with no output schema, the description conveys enough: what is listed, what metadata comes back, and where to go next. Only the empty-result behavior is left implicit.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly signals that no arguments are needed by describing a plain session-scoped listing.

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

Purpose5/5

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

Specific verb (Liệt kê/list) plus a precise resource and scope: novel projects opened in the server session, with initialization status and the active project called out. This cleanly separates it from story_get_project_info and story_set_project.

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

Usage Guidelines4/5

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

It explicitly routes the agent to story_set_project for switching projects, which establishes the natural pairing. It stops short of stating when-not-to-use or prerequisites, but the context for invocation is clear for a zero-parameter listing tool.

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

story_list_unfiredList Unfired Chekhov GunsA

Liệt kê tất cả các "khẩu súng Chekhov chưa bắn" — chi tiết đã cài cắm nhưng chưa được giải gỡ.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full transparency burden. It adds useful conceptual context by defining 'unfired' as planted but unresolved, but does not disclose any other behavioral traits such as output format, ordering, or side effects (likely none). This is adequate for a simple listing 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.

Conciseness5/5

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

The description is a single concise sentence in the title and one explanatory phrase in the description. It is front-loaded with the action 'Liệt kê tất cả' and contains no redundant or filler text.

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

Completeness3/5

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

The tool has no output schema, so the description should compensate by explaining the return structure. It explains the semantic filter but does not mention what fields or format the list will contain. Given the simplicity of the tool, this is a moderate gap.

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?

The tool has zero parameters, so the baseline is 4. The description adds semantic value by clarifying what 'unfired' means, which helps the agent understand the scope of the listing despite no schema fields to explain.

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

Purpose5/5

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

The description uses the verb 'liệt kê' (list) with a specific resource ('unfired Chekhov guns') and defines the key term as 'details planted but not yet resolved,' clearly distinguishing it from analysis siblings like story_stats or story_query_context.

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?

The description implies the tool lists unfired Chekhov guns but provides no explicit guidance on when to prefer it over similar analysis tools such as story_query_context or story_stats. No alternatives are mentioned, so the usage context is only partially clear.

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

story_log_payoffLog Payoff (Chekhov Gun)A

Đánh dấu một chi tiết cài cắm đã được giải gỡ (payoff) — "khẩu súng Chekhov đã bắn".

NameRequiredDescriptionDefault
idYesID của chi tiết cài cắm cần payoff
payoffYesMô tả cách chi tiết đã được giải gỡ
payoffChapterYesChương giải gỡ (ví dụ: arc_01/ch_010)

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits on its own. It only says 'mark' and gives the Chekhov's gun metaphor, but does not explain what happens if the id is invalid, whether it verifies the detail was previously planted, or what the return/response is. This is a significant gap for a write operation.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core purpose with a memorable metaphor. Every word contributes to understanding, and there is no redundancy or filler.

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

Completeness3/5

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

The description combined with the schema is adequate for a simple logging action, but it lacks guidance on how this tool relates to story_log_setup or story_list_unfired, and does not mention failure modes or postconditions. For a tool with no output schema and simple parameters, this is acceptable but not complete.

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

Parameters3/5

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

The input schema already provides 100% coverage with detailed descriptions for all three parameters (id, payoff, payoffChapter). The tool description itself adds no additional parameter 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.

Purpose5/5

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

The description clearly states the tool's function: marking a planted detail (Chekhov's gun) as resolved (payoff). It uses a specific verb ('mark' / 'Đánh dấu') and resource (a planted detail), and the metaphor distinguishes it from sibling tools like story_log_setup (which plants details) and story_list_unfired (which lists unresolved ones).

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?

The description implies when to use the tool (when a setup has paid off) but provides no explicit when-to-use guidance or alternatives. It does not mention story_log_setup for planting or story_list_unfired for checking outstanding setups, relying on the name and metaphorical phrasing to convey context.

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

story_log_plot_holeLog Plot HoleB

Ghi nhận một điểm mâu thuẫn hoặc lỗ hổng cốt truyện mới vào hệ thống theo dõi.

NameRequiredDescriptionDefault
titleYesTên ngắn gọn cho plot hole
chaptersNoDanh sách các chương liên quan (ví dụ: ["arc_01/ch_001", "arc_01/ch_003"])
severityNoMức độ nghiêm trọngmedium
descriptionYesMô tả chi tiết mâu thuẫn

TDQS

B3.3/5.0
Behavior2/5

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 conveys that this is a write into a persistent tracking system, but says nothing about required preconditions (active project via story_set_project, story_init), duplicate handling, whether the entry is immutable or later resolved via story_resolve_plot_hole, or what the caller gets back.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; every clause (record, new, contradiction/hole, tracking system) contributes to identification of the action.

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

Completeness3/5

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

The schema fully documents the inputs and there is no output schema to explain, so the description only needs to cover behavior and routing. It remains silent on the lifecycle relationship to story_resolve_plot_hole and on project/init prerequisites, which matters for a mutation tool with zero annotation coverage.

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

Parameters3/5

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

Schema description coverage is 100%, with every one of the four parameters documented in the schema, including an example format for chapters and a default for severity. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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?

The description names a specific verb ('Ghi nhận' = record/log) and a specific resource ('điểm mâu thuẫn hoặc lỗ hổng cốt truyện' = plot contradiction/hole), plus the target ('hệ thống theo dõi' = tracking system). The word 'mới' (new) implicitly separates it from the sibling story_resolve_plot_hole, though the sibling is never 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?

Usage is only implied: 'mới' signals this creates a new entry rather than resolving an existing one, which contrasts loosely with story_resolve_plot_hole. There is no explicit statement of when to use this versus story_log_payoff or story_detect_timeline_conflicts (which might surface holes automatically), and no prerequisites such as an active project.

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

story_log_setupLog Setup (Chekhov Gun)C

Đánh dấu một chi tiết cài cắm mới (Chekhov's Gun) — một setup sẽ cần được payoff sau này.

NameRequiredDescriptionDefault
setupYesMô tả chi tiết cài cắm
setupLineNoTrích dẫn dòng cài cắm
importanceNoMức độ quan trọngmoderate
setupChapterYesChương đặt chi tiết cài cắm (ví dụ: arc_01/ch_002)

TDQS

C2.9/5.0
Behavior1/5

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

Since no annotations are provided, the description carries the full burden. However, it only describes the conceptual action. It offers zero technical behavioral details (e.g., idempotency, how the setup is indexed, what occurs if the chapter doesn't exist). This is a significant gap for a logging/tracking tool.

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

Conciseness5/5

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

The description is extremely concise and directly addresses the core concept of the tool in a single, highly focused statement. It avoids jargon not related to the specific 'setup' concept.

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

Completeness2/5

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

As a specialized plot tracking tool without any annotations or defined output, the definition is insufficiently complete. It explains *what* it does but fails to provide the necessary context for an agent to handle edge cases or integrate this step reliably into a larger narrative workflow.

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

Parameters3/5

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

The schema description coverage is 100%, meaning the description is redundant in detailing the parameters. While the description reinforces the conceptual nature of the inputs (setup detail, chapter location), it adds little semantic value beyond what the schema already dictates.

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?

The title and description clearly define the tool's purpose as logging a specific narrative element ('Chekhov's Gun'/'setup'). It successfully differentiates itself from `story_log_payoff` by focusing on the initial setup rather than the subsequent resolution.

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?

The description implies the appropriate time to use the tool (when a setup requires future payoff), which provides moderate guidance. However, it offers no explicit exclusions or comparison to other methods of logging plot ideas.

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

story_map_relationshipsMap Character Relationships GraphA

Phân tích bản thảo và tự động cập nhật Đồ thị quan hệ nhân vật vào .story/relationships.json. Nếu bỏ trống source/target sẽ tự quét toàn bộ manuscript để phát hiện các cặp nhân vật đồng xuất hiện. Mỗi quan hệ mang nhãn nguồn gốc: EXTRACTED (người khẳng định) hoặc INFERRED (máy suy ra).

NameRequiredDescriptionDefault
typeNoLoại mối quan hệ
sourceNoNhân vật A (bỏ trống để chạy chế độ tự quét)
targetNoNhân vật B (bỏ trống để chạy chế độ tự quét)
chapterNoChương diễn ra biến động quan hệ
descriptionNoMô tả mối quan hệ
minChaptersNoNgưỡng số chương đồng xuất hiện (chế độ tự quét)

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it discloses the key trait that this tool writes/updates a persistent file (.story/relationships.json), plus the auto-scan trigger and the EXTRACTED/INFERRED provenance labeling. It leaves out whether existing relationships are overwritten or merged, permission needs, and reversibility, keeping it from a 5.

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 compact sentences, front-loaded with the core action and destination file, then mode behavior, then the provenance vocabulary. No filler, though the provenance-label sentence is somewhat tangential to invocation.

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

Completeness3/5

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

For a 6-parameter, no-required, mutation-style tool with no annotations and no output schema, the description covers modes and labeling but omits what the tool returns and whether an existing relationships.json is replaced or merged—material gaps an agent would want before calling it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter including the blank-source/target auto-scan behavior and minChapters. The description largely restates those points and adds little new syntax or format meaning, so the baseline 3 applies.

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+resource: analyzes the manuscript and auto-updates a character-relationship graph persisted to .story/relationships.json. This clearly distinguishes it from most siblings, though it does not explicitly differentiate from the related story_track_character_state or story_extract_entities_to_bible tools.

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?

Explains the two operating modes (targeted pair when source/target are supplied vs. full-manuscript auto-scan when they are blank) and the minChapters threshold, which is real mode-selection guidance. However, it gives no when-not-to-use guidance and never routes the agent to or away from sibling tools like story_track_character_state.

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

story_prune_snapshotsPrune Old SnapshotsA

Dọn dẹp các snapshot cũ trong .story/snapshots/ (mỗi snapshot là full-copy nên dễ phình đĩa). Giữ lại N snapshot mới nhất; dry-run preview trước khi confirm. Snapshot mới nhất và backup pre-rollback gần đây luôn an toàn vị trí — chỉ bị xóa khi vượt ngưỡng được chọn.

NameRequiredDescriptionDefault
confirmNofalse = chỉ xem preview, true = thực hiện xóa
keepLastNoSố snapshot MỚI NHẤT luôn giữ lại (kể cả khi vượt olderThanDays)
olderThanDaysNoChỉ xóa snapshot cũ hơn số ngày này (bỏ trống = xóa mọi snapshot ngoài keepLast)

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does a good job: it discloses that this is a destructive delete of on-disk snapshots, that confirm=false means preview-only, and that the newest snapshot plus recent pre-rollback backups are protected unless thresholds are exceeded. It stops short of stating irreversibility or what exactly the preview reports.

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 tight sentences with the resource/risk front-loaded and the safety guarantee last; nearly every clause earns its place, though the disk-bloat rationale could be trimmed.

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 destructive, zero-annotation tool with no output schema, the description covers purpose, default-safe behavior, and retention guarantees. It leaves minor gaps around what the dry-run preview returns and whether deletion is reversible.

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

Parameters3/5

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

Schema description coverage is 100% and each parameter is already documented, so the schema does the heavy lifting. The description paraphrases keepLast and the confirm/dry-run behavior, adding minimal information beyond the structured fields.

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?

Names a specific verb+resource (prune old snapshots in .story/snapshots/) and explains the reason (full-copy snapshots bloat disk). It does not explicitly name story_snapshot or story_rollback as the create/restore counterparts, so sibling differentiation is implied via the pre-rollback backup mention rather than stated.

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

Usage Guidelines4/5

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

Clearly frames the workflow: default dry-run preview, then confirm=true to actually delete, and retain the N most recent. It gives safe-usage context but no explicit 'do not use when' exclusions or pointers to alternatives.

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

story_query_contextQuery Context BudgetB

Trích xuất và tổng hợp Context Budget tối ưu nhất bằng Knowledge Graph (Bible + Relationships + Timeline) kết hợp ngân sách token. Truyền from+to để hỏi đường liên hệ ngắn nhất giữa hai nhân vật.

NameRequiredDescriptionDefault
toNoNhân vật đích cho truy vấn đường đi (đi kèm from)
fromNoNhân vật xuất phát cho truy vấn đường đi (đi kèm to)
queryYesChủ đề hoặc từ khóa cần lấy context (ví dụ: "Tiêu Viêm Thanh Vân Sơn")
maxDepthNoĐộ sâu mở rộng quan hệ nhân vật (BFS) trong đồ thị
budgetTokensNoNgân sách token tối đa cho context (mặc định 2000 tokens ~ 1500 từ)
rebuildIndexNoBuộc build lại index .cbm/index.json từ dữ liệu mới nhất

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries the full burden and it falls short. It never states that the tool is a read operation, that rebuildIndex writes/replaces the .cbm/index.json file on disk, or how truncation behaves when the token budget is exhausted (which content gets dropped). The phrase 'tối ưu nhất' asserts quality without explaining the selection or ranking behavior.

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?

Two sentences, the core capability front-loaded, and the mode switch placed second. Nothing is padding, though 'tối ưu nhất' is unverifiable marketing rather than information, which keeps it from a 5.

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

Completeness2/5

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

For a six-parameter tool with no annotations and no output schema, the description leaves too much unsaid: it does not describe what the returned 'Context Budget' looks like (synthesized prose, entity list, graph slice?), how query and from/to modes interact, or the cost/impact of rebuildIndex. The agent must open the schema and guess the rest.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (query, from, to, maxDepth, budgetTokens, rebuildIndex) are already documented in the schema, establishing the baseline of 3. The description's mention of from+to merely restates what the schema already says and adds no format, interaction (from+to vs query precedence), or unit detail beyond it.

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?

The first sentence names a specific action (extract and synthesize an optimal Context Budget) and the sources it draws from (Bible + Relationships + Timeline in a Knowledge Graph), which is far more informative than the bare name 'story_query_context'. The second sentence carves out a distinct second mode (from+to shortest relationship path). It stops short of explicitly contrasting itself with siblings like story_map_relationships or story_generate_writing_prompt, so differentiation is only partial.

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?

The sentence 'Truyền from+to để hỏi đường liên hệ ngắn nhất giữa hai nhân vật' does give a concrete condition for the path-query mode, so usage is more than bare implication. However, it never says when to prefer this tool over story_generate_writing_prompt, story_map_relationships, or story_extract_entities_to_bible, nor when not to use it. The rival-sibling exclusions an agent would need are absent.

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

story_read_chapterRead Chapter Content & MetadataB

Đọc toàn bộ nội dung của một chương truyện, kèm thống kê số từ và danh sách tiêu đề phân cảnh.

NameRequiredDescriptionDefault
arcYesTên Arc (ví dụ: "arc_01")
chapterYesTên Chapter (ví dụ: "ch_001")

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It usefully discloses that the response includes derived data (word count, scene title list) beyond raw content, but says nothing about the response format, what happens when the arc/chapter doesn't exist, or whether an active project is required.

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?

A single well-formed sentence that front-loads the primary action and then lists the secondary return data. No filler, though the brevity borders on under-specification rather than tightness.

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

Completeness5/5

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

For a two-parameter read tool with a fully documented schema, no annotations and no output schema, the description covers the core action and hints at the return payload. The remaining gaps (error cases, project context) are minor for this level of complexity.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters (arc, chapter) have examples in the schema, so the description correctly does not need to restate them. It adds no additional semantics such as whether names are paths, case-sensitive, or matched against the current project.

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 ('Đọc toàn bộ nội dung') and resource (a story chapter), plus what comes bundled with it: word count statistics and a list of scene titles. That makes it easily distinguishable from the write-side sibling story_write_chapter, though it never names an alternative.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus story_query_context, story_stats or story_get_project_info, and no stated prerequisites (e.g. whether a project must first be selected via story_set_project). The only cue is the implicit read semantics of the verb.

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

story_resolve_plot_holeResolve Plot HoleB

Đánh dấu một plot hole đã được giải quyết hoặc won't-fix.

NameRequiredDescriptionDefault
idYesID của plot hole cần resolve
statusNoTrạng thái mớiresolved
resolutionYesGiải thích cách đã giải quyết

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states the action without disclosing side effects, reversibility, required permissions, or return behavior. For a mutation tool, this is a significant gap.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary wording. It front-loads the core action and leaves nothing ambiguous in terms of length.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is too terse. It does not explain what the tool returns, when it should be used relative to sibling tools, or any behavioral nuances. The schema documents parameters but not the broader operational context.

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

Parameters3/5

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

Schema description coverage is 100%, meaning all parameters are documented in the schema. The description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('resolve') and resource ('plot hole') and specifies the two possible states ('resolved or won't-fix'). This clearly distinguishes it from the sibling tool story_log_plot_hole, which likely handles creating/logging plot holes.

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?

The usage context is implied by the verb 'resolve' and the presence of sibling tools, but the description does not explicitly state when to use this tool versus alternatives like story_log_plot_hole, nor does it mention any prerequisites or exclusions.

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

story_rollbackRollback SnapshotC

Khôi phục dự án về snapshot trước đó từ .story/snapshots/.

NameRequiredDescriptionDefault
confirmNofalse = preview, true = thực hiện rollback
snapshotIdNoID snapshot cần rollback (bỏ qua để dùng snapshot mới nhất)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It states the action but does not disclose that rollback is destructive, irreversible, or that a confirmation/preview step exists. The confirm parameter's semantics are only in the schema, leaving a significant transparency gap for a mutation 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?

The description is a single efficient sentence with no redundant wording, clearly naming the action and source. It could include a safety note without sacrificing brevity, but it is appropriately concise for the information it conveys.

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

Completeness2/5

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

The tool's two-phase confirm flow (preview vs execute) and potential destructiveness are absent from the description. Given the absence of annotations and output schema, the description is under-specified for a rollback operation of this complexity.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters clearly described. The tool description adds no additional parameter meaning beyond what the schema provides, so baseline 3 is appropriate.

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?

The description clearly states the tool restores a project to a prior snapshot, identifying the storage location. It is distinct from sibling story_snapshot (which creates snapshots), though it does not explicitly name the alternative. The phrase 'previous snapshot' slightly undersells that any snapshot can be selected via snapshotId.

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

Usage Guidelines2/5

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

No guidance is given on when to use rollback versus sibling tools like story_snapshot. There is no mention of scenarios, prerequisites, or exclusions. The only usage hint (preview vs execute) comes from the schema, not the description.

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

story_scan_messy_projectScan Messy Novel ProjectB

Quét toàn bộ dự án tiểu thuyết lộn xộn: phát hiện trùng lặp, nhận diện encoding, phân loại file vào 4 nhóm (Manuscript, Notes, Lore, Outline) kèm confidence score.

NameRequiredDescriptionDefault
pathYesĐường dẫn đến thư mục dự án cần quét
detectDuplicatesNoPhát hiện file trùng lặp/tương đồng

TDQS

B3.3/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 behavioral burden. It usefully discloses that the scan detects duplicates, recognizes encoding, and classifies files with confidence scores, but it does not state whether files are modified, moved, or merely reported on, nor does it mention permissions or safety characteristics.

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

Conciseness5/5

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

The description is a single efficient sentence with the core action and outputs front-loaded. Every listed item earns its place by describing a concrete scan capability.

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

Completeness3/5

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

There is no output schema, so the description should explain what a scan returns. It names the classification groups and confidence scores, which is helpful, but it does not describe the response structure, whether results are persisted, or how duplicate/encoding findings are reported.

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

Parameters3/5

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

Schema description coverage is 100%, so both path and detectDuplicates are already documented in the input schema. The description implies that path is the project directory to scan and that duplicate detection is part of the operation, but it adds no syntax or behavioral detail beyond the schema.

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?

The description states a specific verb (scan) and resource (messy novel project), then lists concrete operations: duplicate detection, encoding recognition, and classification into four file groups with confidence scores. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools such as story_list_projects or story_get_project_info.

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

Usage Guidelines2/5

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

The only contextual cue is that the project is 'messy', but there is no explicit guidance on when to use this scan versus alternatives like story_list_projects, story_get_project_info, or story_init. No exclusions, prerequisites, or alternative-routing instructions are provided.

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

story_set_projectSet Story Project PathA

Thiết lập hoặc chuyển đổi dự án tiểu thuyết đích. Tự động phát hiện và từ chối dự án code (Node.js, Python, Rust, v.v.) để tránh lãng phí tài nguyên. Dùng force=true để bỏ qua kiểm tra.

NameRequiredDescriptionDefault
forceNoBỏ qua kiểm tra loại dự án (dùng khi muốn khởi tạo dự án mới trong thư mục bất kỳ)
projectPathYesĐường dẫn đến thư mục dự án tiểu thuyết (tuyệt đối hoặc tương đối so với cwd)

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description usefully discloses a non-obvious behavior: automatic detection and rejection of code projects (Node.js, Python, Rust) to avoid wasted resources, plus the force escape hatch. It omits what the failure response looks like and whether the setting persists to config, so the mutation's side effects remain partially undisclosed.

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 sentences, front-loaded with the core action before the validation caveat. The force sentence slightly duplicates the schema field description, keeping it just short of a 5.

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 simple two-parameter tool with full schema coverage and no output schema, the description covers purpose, the validation trap, and the override. Only the return/error semantics on rejection are missing, which is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented, including force's meaning ('Bỏ qua kiểm tra loại dự án'). The description essentially restates the schema's force semantics rather than adding new detail, so the baseline 3 applies.

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?

The description states a specific verb and resource ('Thiết lập hoặc chuyển đổi dự án tiểu thuyết đích' – set/switch the target novel project), which is concrete. It does not explicitly name the contrasting siblings (story_init, story_list_projects, story_get_project_info), so differentiation is implied rather than stated.

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 one actionable condition ('Dùng force=true để bỏ qua kiểm tra' – use force to skip the check), which tells the agent when to override validation. However, it never says when to use this tool versus story_init or story_list_projects, leaving the primary routing decision to inference.

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

story_snapshotCreate SnapshotA

Lưu snapshot trạng thái dự án hiện tại vào .story/snapshots/ để có thể rollback khi cần.

NameRequiredDescriptionDefault
labelNoNhãn cho snapshot (ví dụ: "before-refactor")manual
descriptionNoMô tả lý do tạo snapshot

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. It discloses the write action to a specific directory and the non-destructive intent (creating a snapshot for rollback). It does not mention file naming or overwrite behavior, but the core behavior is adequately transparent.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the action, target, and purpose. No wasted words or redundant 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 simple tool with two optional parameters and no output schema, the description covers the essential context: what it does, where it writes, and why. It could mention that `story_rollback` consumes these snapshots, but the sibling list and 'rollback' mention make this reasonably discoverable.

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

Parameters3/5

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

Schema description coverage is 100%, with both `label` and `description` already documented in the input schema. The tool description adds no additional parameter semantics, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('save snapshot') and the resource ('current project state') with a specific destination (`.story/snapshots/`). It distinguishes the tool from siblings by tying it to rollback functionality, which is not claimed by any other tool.

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

Usage Guidelines4/5

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

The phrase 'so can rollback when needed' indicates when this tool is appropriate (before changes that may need to be undone). It lacks explicit exclusions or alternative suggestions, but the context is clear enough for a simple snapshot creation tool.

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

story_statsStory StatisticsA

Thống kê tổng số từ (word count), tốc độ viết (writing velocity), phần trăm hoàn thành mục tiêu, và chi tiết từng arc/chương.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry full weight. It discloses the tool's output metrics but does not mention whether it performs a read-only operation, requires a prior story_init, or interacts with project state. This leaves some behavioral ambiguity.

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

Conciseness5/5

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

The description is a single sentence that front-loads the primary action (statistics) followed by concrete metrics. Every element adds value—total words, velocity, goal completion, and arc/chapter breakdowns—with no redundant or filler language.

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?

With zero parameters and no output schema, the description carries the responsibility of explaining return content. It lists the main statistic categories and per-arc/chapter detail, but does not specify the exact structure (e.g., relative vs absolute percentages, formatting, or whether aggregates and details are combined). This is a minor gap for an otherwise straightforward tool.

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?

The tool has zero parameters and the schema's property list is empty, so there are no parameter meanings to add. Per the baseline rule for 0-parameter tools, a score of 4 is appropriate—the description correctly focuses on what the tool returns rather than inputs.

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

Purpose5/5

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

The description uses a specific verb 'Thống kê' (statistics) and clearly identifies the resource and scope: total word count, writing velocity, goal completion percentage, and per-arc/chapter details. This distinguishes it from sibling analysis tools like story_analyze_pacing and story_analyze_voice, which focus on qualitative or different quantitative metrics.

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?

The description implies usage when narrative statistics are needed but does not explicitly state when to use this tool over alternatives or mention prerequisites like an initialized project. There are no exclusions or alternative tool references, leaving the agent to infer context from the metric list.

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

story_track_character_stateTrack & Query Character State, Location & InventoryB

Ghi nhận hoặc truy vấn trạng thái nhân vật theo từng mốc chương (vị trí hiện tại, vật phẩm/vũ khí mang theo, tình trạng thương tích, bí mật đã biết) để đảm bảo tính liên tục (continuity).

NameRequiredDescriptionDefault
stateNoThông tin trạng thái khi thực hiện action="log"
actionNoThao tác: "log" (ghi nhận mới), "query" (lấy trạng thái mới nhất), "history" (lịch sử biến đổi)query
chapterNoChương ghi nhận hoặc muốn truy vấn (ví dụ: "arc_01/ch_002")
characterYesTên nhân vật (ví dụ: "Tiêu Viêm", "nhan_vat_chinh")

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden, and it does not say whether a 'log' replaces or appends to prior chapter state, whether history is retained or mutable, or what the call returns. The phrase 'theo từng mốc chương' hints at per-chapter versioning but never confirms write semantics for a mutation 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?

A single front-loaded sentence with the verb pair first and the tracked facets in a parenthetical, so nothing must be read twice. The parenthetical partially restates schema field descriptions, which is the only mild waste.

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

Completeness3/5

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

For a 4-parameter tool with a nested state object, no output schema, and no annotations, the description covers what is tracked but not the consequences of logging, the shape of the query/history response, or how state interacts with chapter. Adequate to select the tool, insufficient to call it confidently.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents character, chapter, action, and every state sub-field. The description's parenthetical field list mirrors those schema descriptions without adding syntax, format, or interaction rules (e.g., whether state is required for action=log). Baseline 3 applies.

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 pair (ghi nhận / truy vấn) and resource (trạng thái nhân vật) plus the grain (theo từng mốc chương), and enumerates the tracked facets (location, inventory, injury, known secrets). An agent can distinguish it from story_track_emotion or story_query_context by those facets, 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?

The record-or-query duality is stated, but the actual choice is delegated to the action enum rather than to guidance about when to log vs. query vs. history. The trailing 'để đảm bảo tính liên tục (continuity)' gives motivation but no exclusion against sibling tools like story_track_emotion or story_query_context.

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

story_track_emotionQuick Emotion TrackerB

Phân tích nhanh cảm xúc và giọng văn của một đoạn text. Không cần context dự án — chỉ cần đưa vào đoạn văn cần kiểm tra.

NameRequiredDescriptionDefault
textYesĐoạn văn bản cần phân tích cảm xúc

TDQS

B3.1/5.0
Behavior3/5

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

No annotations, so the description must carry the behavioral burden. It signals that the tool is stateless and context-free ('quick', 'no project context needed'), which usefully tells the agent it can be called without setting up a project. It says nothing about whether results are persisted, cost, or output shape.

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?

Two short sentences, no filler, with the key constraint (no project context needed) stated up front. Slightly under-specified rather than verbose, but structurally sound.

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

Completeness3/5

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

For a single-parameter, no-output-schema tool this is nearly adequate, but with two near-identical siblings and no annotations the description should explain what makes this analyzer different and what a caller gets back. Those gaps matter for correct selection.

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

Parameters3/5

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

Only one parameter and schema description coverage is 100%, so the schema already documents 'text' fully. The description adds nothing beyond it, which is the expected baseline for full schema coverage.

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

Purpose3/5

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

States a specific verb and resource: analyze emotion and tone of a text passage. But it does not distinguish itself from the very close siblings story_analyze_sentiment and story_analyze_voice, leaving the agent unable to tell which analyzer to pick. 'Quick' and 'no project context' hint at scope but never establish the boundary.

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?

'Không cần context dự án — chỉ cần đưa vào đoạn văn' gives an implied usage condition (use when you have a standalone snippet and no project state). No explicit exclusion against story_analyze_sentiment or story_analyze_voice, so the sibling decision is left to inference.

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

story_write_chapterWrite or Update Chapter DraftA

Lưu hoặc cập nhật nội dung chương truyện vào manuscript//.md. Tự động snapshot backup an toàn nếu sửa chương cũ và ghi nhận tiến độ viết.

NameRequiredDescriptionDefault
arcYesTên Arc (ví dụ: "arc_01")
titleNoTiêu đề chương (ví dụ: "Khởi Đầu Định Mệnh")
chapterYesTên Chapter (ví dụ: "ch_001")
contentYesNội dung văn bản chương (Markdown)
autoSnapshotNoTự động tạo snapshot backup trước khi ghi đè chương đã có

TDQS

A3.6/5.0
Behavior3/5

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 disclose two meaningful behaviors beyond the schema: an automatic safe snapshot backup before overwriting an existing chapter, and progress recording ('ghi nhận tiến độ viết'). It does not state what the tool returns (file path, snapshot id, progress delta), whether overwrites are irreversible, or any 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.

Conciseness5/5

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

Two short sentences, zero filler, with the destination path stated first and the side effects (snapshot, progress) following. Nothing can be removed without losing information.

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

Completeness3/5

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

For a 5-parameter mutation tool with no annotations and no output schema, the description covers destination and side effects but omits the return value and any overwrite/error semantics. Those gaps matter more here precisely because structured fields supply no safety or return information.

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 would be 3. The description adds meaning by showing how arc and chapter compose into the output path template, and it explains autoSnapshot's real effect (backup before overwrite) rather than just restating the flag. The remaining 'title' parameter and the shape of 'content' gain nothing extra.

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?

The description states a specific verb pair (lưu/cập nhật = save/update) and a concrete resource (chapter content written to manuscript/<arc>/<chapter>.md), so the agent knows exactly what the tool produces. It does not explicitly distinguish itself from the sibling story_append_scene, which also mutates chapter text, 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.

Usage Guidelines3/5

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

The phrase 'nếu sửa chương cũ' (if editing an existing chapter) implies the create-vs-update condition, which is useful. However, there is no explicit guidance on when to use this instead of story_append_scene, story_snapshot, or story_rollback, which are the closest overlapping siblings.

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.

  1. 24 tool updatesv0.7.0
    • Changedstory_analyze_pacing2 fields changed
      • addedInput schema / properties / arc / maxLength
        Added value: +64
      • addedInput schema / properties / arc / minLength
        Added value: +1
    • Addedstory_analyze_sentiment
    • Changedstory_analyze_voice2 fields changed
      • addedInput schema / properties / arc / maxLength
        Added value: +64
      • addedInput schema / properties / arc / minLength
        Added value: +1
    • Addedstory_append_scene
    • Addedstory_apply_layout_verdict
    • Changedstory_auto_refactor_structure4 fields changed
      • addedInput schema / properties / projectPath / minLength
        Added value: +1
      • changedInput schema / properties / strategy / default
        Previous value: -"by_chapter"New value: +"auto_profile"
      • changedInput schema / properties / strategy / description
        Previous value: -"Chiến lược sắp xếp"New value: +"Chiến lược sắp xếp:\n  auto_profile (mặc định, v0.6.0) — nhận diện bố cục hiện có trước: một file lớn chứa nhiều chương → TÁCH theo tiêu đề chương; thư mục phân tập tự đặt tên → map thành arc_XX; chương phẳng → đánh số lại ch_XXX\n  by_chapter — mọi file bản thảo → manuscript/arc_01/\n  by_arc — đoán arc từ tên file/nội dung (\"quyển 3\", \"part 2\"...)\n  chronological — đánh số theo thời gian sửa file"
      • changedInput schema / properties / strategy / enum
        Previous value: -[
        -  "by_chapter",
        -  "by_arc",
        -  "chronological"
        -]New value: +[
        +  "auto_profile",
        +  "by_chapter",
        +  "by_arc",
        +  "chronological"
        +]
    • Changedstory_detect_timeline_conflicts7 fields changed
      • addedInput schema / properties / addEvent / properties / absoluteDate
        Added value: +{
        +  "description": "Mốc thời gian tuyệt đối (YYYY-MM-DD hoặc in-world date)",
        +  "type": "string"
        +}
      • addedInput schema / properties / addEvent / properties / characters
        Added value: +{
        +  "description": "Danh sách nhân vật tham gia",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / addEvent / properties / label / maxLength
        Added value: +300
      • addedInput schema / properties / addEvent / properties / label / minLength
        Added value: +1
      • addedInput schema / properties / addEvent / properties / location
        Added value: +{
        +  "description": "Địa điểm diễn ra sự kiện",
        +  "type": "string"
        +}
      • addedInput schema / properties / addEvent / properties / relativeOrder / description
        Added value: +"Thứ tự tương đối của sự kiện"
      • addedInput schema / properties / addEvent / properties / thread
        Added value: +{
        +  "description": "Tuyến subplot / storyline (ví dụ: \"Phe Kháng Chiến\", \"Cung Đình\")",
        +  "type": "string"
        +}
    • Changedstory_export3 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Định dạng xuất: markdown_single (hiện tại hỗ trợ)"New value: +"Định dạng xuất: markdown_single | html | epub | docx (pdf chưa hỗ trợ — xem gợi ý)"
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "markdown_single"
        -]New value: +[
        +  "markdown_single",
        +  "html",
        +  "epub",
        +  "docx",
        +  "pdf"
        +]
      • changedInput schema / properties / outputPath / description
        Previous value: -"Đường dẫn file xuất (mặc định: <project>/export/<name>.md)"New value: +"Đường dẫn file xuất (mặc định: <project>/export/<name>.<ext>)"
    • Addedstory_export_layout_brief
    • Addedstory_generate_dashboard
    • Changedstory_generate_writing_prompt4 fields changed
      • addedInput schema / properties / arc / maxLength
        Added value: +64
      • addedInput schema / properties / arc / minLength
        Added value: +1
      • addedInput schema / properties / chapter / maxLength
        Added value: +64
      • addedInput schema / properties / chapter / minLength
        Added value: +1
    • Changedstory_init2 fields changed
      • addedInput schema / properties / name / maxLength
        Added value: +200
      • addedInput schema / properties / name / minLength
        Added value: +1
    • Addedstory_list_projects
    • Changedstory_log_plot_hole3 fields changed
      • addedInput schema / properties / description / minLength
        Added value: +1
      • addedInput schema / properties / title / maxLength
        Added value: +300
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Changedstory_log_setup3 fields changed
      • addedInput schema / properties / setup / minLength
        Added value: +1
      • addedInput schema / properties / setupChapter / maxLength
        Added value: +64
      • addedInput schema / properties / setupChapter / minLength
        Added value: +1
    • Changedstory_map_relationships4 fields changed
      • addedInput schema / properties / minChapters
        Added value: +{
        +  "default": 2,
        +  "description": "Ngưỡng số chương đồng xuất hiện (chế độ tự quét)",
        +  "maximum": 9007199254740991,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / source / description
        Previous value: -"Nhân vật A"New value: +"Nhân vật A (bỏ trống để chạy chế độ tự quét)"
      • changedInput schema / properties / target / description
        Previous value: -"Nhân vật B"New value: +"Nhân vật B (bỏ trống để chạy chế độ tự quét)"
      • removedInput schema / required
        Removed value: -[
        -  "source",
        -  "target",
        -  "type"
        -]
    • Addedstory_prune_snapshots
    • Changedstory_query_context8 fields changed
      • addedInput schema / properties / budgetTokens / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / budgetTokens / minimum
        Added value: +100
      • changedInput schema / properties / budgetTokens / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / from
        Added value: +{
        +  "description": "Nhân vật xuất phát cho truy vấn đường đi (đi kèm to)",
        +  "type": "string"
        +}
      • addedInput schema / properties / maxDepth
        Added value: +{
        +  "default": 2,
        +  "description": "Độ sâu mở rộng quan hệ nhân vật (BFS) trong đồ thị",
        +  "maximum": 10,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / rebuildIndex
        Added value: +{
        +  "default": false,
        +  "description": "Buộc build lại index .cbm/index.json từ dữ liệu mới nhất",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / to
        Added value: +{
        +  "description": "Nhân vật đích cho truy vấn đường đi (đi kèm from)",
        +  "type": "string"
        +}
    • Addedstory_read_chapter
    • Changedstory_scan_messy_project1 field changed
      • addedInput schema / properties / path / minLength
        Added value: +1
    • Changedstory_set_project2 fields changed
      • addedInput schema / properties / force
        Added value: +{
        +  "default": false,
        +  "description": "Bỏ qua kiểm tra loại dự án (dùng khi muốn khởi tạo dự án mới trong thư mục bất kỳ)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / projectPath / minLength
        Added value: +1
    • Addedstory_track_character_state
    • Addedstory_track_emotion
    • Addedstory_write_chapter
  2. 21 tool updatesv0.1.0
    • First observedstory_analyze_pacing
    • First observedstory_analyze_voice
    • First observedstory_auto_refactor_structure
    • First observedstory_detect_timeline_conflicts
    • First observedstory_export
    • First observedstory_extract_entities_to_bible
    • First observedstory_generate_writing_prompt
    • First observedstory_get_project_info
    • First observedstory_init
    • First observedstory_list_unfired
    • First observedstory_log_payoff
    • First observedstory_log_plot_hole
    • First observedstory_log_setup
    • First observedstory_map_relationships
    • First observedstory_query_context
    • First observedstory_resolve_plot_hole
    • First observedstory_rollback
    • First observedstory_scan_messy_project
    • First observedstory_set_project
    • First observedstory_snapshot
    • First observedstory_stats

TDQS

B3.3/5.0

Scored across 32 tools

Disambiguation3/5

Most tools have distinct purposes, but several analysis tools overlap heavily: story_analyze_voice, story_analyze_sentiment, and story_track_emotion all deal with tone/emotion, while story_scan_messy_project, story_auto_refactor_structure, and the layout brief/verdict pair require careful reading to choose correctly. The descriptions help, but an agent can still misselect among these clusters.

Naming Consistency4/5

Nearly all tools use the story_ prefix with snake_case and a verb_noun pattern (e.g., story_write_chapter, story_log_plot_hole, story_analyze_pacing). Minor deviations like story_init, story_export, story_stats, and story_snapshot are still readable and do not break the convention.

Tool Count2/5

With 32 tools, the surface is heavy for a single MCP server and exceeds the typical well-scoped range of roughly 3-15 tools. Several specialized analysis and layout tools could likely be consolidated without losing core capability.

Completeness4/5

The server covers project setup, chapter writing/reading, continuity tracking, analysis, export, and snapshot rollback, which is a broad lifecycle for novel architecture. There are minor gaps such as no explicit outline/bible CRUD tools and no dedicated list-open-plot-holes operation, but agents can work around most of these via existing tools.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A Model Context Protocol server that manages character knowledge and relationships for creative writing projects, offering semantic search and AI-powered analysis.
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for managing a writer's bible, a structured and searchable knowledge base of a narrative universe with tools for characters, places, events, and semantic search.
    -
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that analyzes your writing style to generate personal voice rules, scores drafts for AI slop, and verifies authorship, enabling LLMs to write in your specific voice.
    7
    MIT