Skip to main content
Glama

Scrivener MCP Server

An MCP (Model Context Protocol) server that lets AI assistants read, write, and organize Scrivener projects. Works with Claude, ChatGPT, Gemini, and other MCP-compatible AI tools.

Features

  • Read & Write - Full access to manuscript content, notes, and synopses

  • Organize - Create, move, rename, and delete documents and folders

  • Search - Find content across your entire project with context

  • Compile - Export your manuscript to PDF directly from AI

  • Continuity Tools - Check character/setting consistency across your manuscript

Perfect for writers who want AI assistance with drafting, revision, outlining, or project organization.

Requirements

  • Node.js 18 or higher

  • Scrivener 3 (macOS or Windows)

  • An MCP-compatible AI client (Claude Desktop, ChatGPT Desktop, Cursor, etc.)

Installation

npm install -g @twelvetake/scrivener-mcp

Then add to your MCP client's configuration. For Claude Desktop (claude_desktop_config.json):

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "scrivener": {
      "command": "scrivener-mcp"
    }
  }
}

Option 2: From Source

  1. Clone and build:

    git clone https://github.com/TwelveTake-Studios/scrivener-mcp.git
    cd scrivener-mcp
    npm install
    npm run build
  2. Add to your Claude Desktop configuration:

    {
      "mcpServers": {
        "scrivener": {
          "command": "node",
          "args": ["/full/path/to/scrivener-mcp/dist/index.js"]
        }
      }
    }
  3. Restart Claude Desktop

Quick Start

Once installed, try these commands with your AI assistant:

Open my Scrivener project at /path/to/mynovel.scriv
Show me the structure of my manuscript
Read Chapter 3
Create a new scene called "The Confrontation" in Chapter 5
Compile everything up to Chapter 7 into a PDF
Find all mentions of "Sarah" and check if her descriptions are consistent

Available Tools (22 total)

Project Management

Tool

Description

open_project

Open a Scrivener project (.scriv folder)

get_structure

Get the hierarchical structure of the project binder

Document Operations

Tool

Description

read_document

Read content from a document (optionally includes synopsis)

write_document

Write/replace content in a document

append_to_document

Append content to end of document without replacing

create_document

Create new documents or folders

delete_document

Move documents to trash

move_document

Reorganize items in the binder

rename_document

Rename documents

batch_read

Read multiple documents at once (more efficient)

Synopsis & Notes

Tool

Description

read_synopsis

Read the synopsis (index card text)

write_synopsis

Write/update the synopsis

read_notes

Read inspector notes for a document

write_notes

Write/update inspector notes

Tool

Description

search_content

Search across all documents

search_with_context

Search with surrounding paragraphs for context

Compile & Export

Tool

Description

get_compile_order

Preview what will be compiled

compile_manuscript

Export manuscript to PDF

set_include_in_compile

Toggle document's "Include in Compile" setting

word_count

Get word count for document or entire manuscript

Continuity Checking

Tool

Description

find_all_mentions

Find all sentences mentioning a term

compare_descriptions

Find descriptive sentences to check consistency


Tool Reference

open_project

Open a Scrivener project to work with.

Parameters:

  • path (required): Path to the .scriv project folder

Example:

Open my project at D:/Writing/MyNovel.scriv

get_structure

View the binder hierarchy of your project.

Parameters:

  • folderId (optional): Get structure for specific folder only

  • maxDepth (optional): Maximum depth to traverse

Example:

Show me the structure of my manuscript
Show me only what's in Chapter 3

read_document

Read the content of a document.

Parameters:

  • documentId (required): UUID of the document

  • includeSynopsis (optional): If true, returns both content and synopsis

Example:

Read the content of "Chapter 1 - The Beginning"
Read Chapter 3 with its synopsis

write_document

Replace the content of a document.

Parameters:

  • documentId (required): UUID of the document

  • content (required): New content to write

Example:

Replace the content of Scene 2 with the revised version

append_to_document

Add content to the end of a document without replacing existing content.

Parameters:

  • documentId (required): UUID of the document

  • content (required): Content to append

  • separator (optional): Separator between existing and new content (default: two newlines)

Example:

Append this new paragraph to Chapter 5
Add these notes to the end of the scene

create_document

Create a new document or folder.

Parameters:

  • title (required): Title of the new document

  • parentId (optional): UUID of parent folder (defaults to Draft/Manuscript)

  • documentType (optional): "Text" or "Folder" (default: "Text")

  • content (optional): Initial content

Example:

Create a new chapter called "The Escape"
Create a folder called "Act Two" and add three scenes to it

delete_document

Move a document to the trash.

Parameters:

  • documentId (required): UUID of the document to delete

Example:

Delete the scene called "Old Draft"

move_document

Move a document to a different folder.

Parameters:

  • documentId (required): UUID of the document to move

  • targetFolderId (required): UUID of the target folder

  • position (optional): Position in target folder

Example:

Move "The Discovery" scene to Chapter 4

rename_document

Rename a document.

Parameters:

  • documentId (required): UUID of the document

  • newTitle (required): New title

Example:

Rename "Untitled Scene" to "The Confrontation"

batch_read

Read multiple documents at once. More efficient than multiple read_document calls.

Parameters:

  • documentIds (required): Array of document UUIDs to read

Example:

Read all the scenes in Chapter 2

read_synopsis / write_synopsis

Read or write the synopsis (index card text) for a document.

Parameters:

  • documentId (required): UUID of the document

  • synopsis (required for write): Synopsis text

Example:

Show me the synopsis for Chapter 3
Update the synopsis for "The Chase" to summarize the new version

read_notes / write_notes

Read or write inspector notes for a document.

Parameters:

  • documentId (required): UUID of the document

  • notes (required for write): Notes content

Example:

Show me my notes for Scene 5
Add a note to Chapter 2 about the timeline

search_content

Search for content across all documents.

Parameters:

  • query (required): Search query

Example:

Search for mentions of "the artifact"
Find all scenes that reference the castle

search_with_context

Search with surrounding paragraphs for better context.

Parameters:

  • query (required): Search term

  • contextParagraphs (optional): Paragraphs before/after to include (default: 2)

Example:

Search for "the ritual" with 3 paragraphs of context

get_compile_order

Preview what documents will be compiled and in what order.

Parameters:

  • stopAtTitle (optional): Stop at document with this title (partial match)

Example:

Show me the compile order
What would be compiled up to Chapter 5?

compile_manuscript

Compile the manuscript to a PDF file.

Parameters:

  • outputPath (required): Full path for the output PDF

  • title (optional): Book title for cover page and PDF metadata (default: project filename)

  • author (optional): Author name for cover page and PDF metadata

  • stopAtTitle (optional): Stop at document with this title

  • includeTitle (optional): Include document titles as headers (default: true)

  • fontSize (optional): Font size in points (default: 12)

  • lineSpacing (optional): Line spacing multiplier (default: 1.5)

Example:

Compile my full manuscript to D:/Writing/MyNovel.pdf
Compile with title "Keystone: Aftermath" by Dave Cilluffo
Compile everything up to Chapter 7 to D:/Writing/Draft.pdf
Compile with 14pt font and double spacing

set_include_in_compile

Toggle whether a document should be included when compiling.

Parameters:

  • documentId (required): UUID of the document

  • include (required): true to include, false to exclude

Example:

Exclude the "Notes" document from compile
Include "Deleted Scene" back in the compile

word_count

Get word count for a specific document or the entire manuscript.

Parameters:

  • documentId (optional): UUID of document (omit for entire manuscript)

Example:

How many words are in my manuscript?
What's the word count for Chapter 3?

find_all_mentions

Find all sentences mentioning a term. Great for character/setting consistency checks.

Parameters:

  • term (required): Term to search for (e.g., character name)

Example:

Find all mentions of "Sarah"
Show me every sentence that mentions "the lighthouse"

compare_descriptions

Find descriptive sentences for a term (sentences with "was", "had", "looked", etc.). Helps identify inconsistent descriptions.

Parameters:

  • term (required): Term to find descriptions for

Example:

Find all descriptions of Sarah
Check how I've described the mansion throughout the book
Are my descriptions of Marcus consistent?

Important Notes

  • Close Scrivener first before using this server to avoid conflicts

  • The server modifies the .scrivx binder file and RTF content files directly

  • Always keep backups of important projects

  • Only documents marked "Include in Compile" are included in PDF export

  • This is an unofficial tool and is not affiliated with Literature & Latte

How It Works

Scrivener projects (.scriv folders) contain:

  • A .scrivx XML file that defines the binder structure

  • Individual RTF files for each document's content

  • Synopsis and notes stored as plain text and RTF files

This server parses and modifies these files directly, allowing AI assistants to interact with your project programmatically.

Support This Project

If you find this useful, consider supporting development:

Buy Me A Coffee Ko-fi

License

MIT License - see LICENSE for details.


Changelog

v1.3.2

  • Added title/author to compile - compile_manuscript now accepts title and author parameters for cover page and PDF metadata

v1.3.1

  • Fixed PDF compile formatting - Paragraphs now have proper spacing instead of running together

  • Added text formatting to PDF - Bold, italic, and bold-italic are now rendered in compiled PDFs

  • Improved chapter titles - Larger font (18pt), bold, with better spacing

v1.3.0

  • Added utility tools: word_count, append_to_document, set_include_in_compile, read_notes, write_notes, batch_read

  • Added continuity tools: search_with_context, find_all_mentions, compare_descriptions

  • 22 tools total

v1.2.0

  • Added compile features: get_compile_order, compile_manuscript (PDF export via pdfkit)

  • Compile supports partial export with stopAtTitle parameter

  • Added synopsis tools: read_synopsis, write_synopsis

v1.1.3

  • Fixed empty paragraph handling - Empty lines no longer cause extra spacing in compiled output

v1.1.2

  • Fixed RTF paragraph formatting - Resolved issue where \par\par patterns caused section breaks in Scrivener compile

v1.0.1

  • Fixed DraftFolder detection - create_document now finds the manuscript root by type (DraftFolder) instead of requiring title to be "Draft" or "Manuscript"

  • Fixed empty search query - search_content with empty query now returns empty array

  • Fixed empty rename validation - rename_document rejects empty titles

v1.0.0

  • Initial release with 11 core tools

  • Custom RTF parser with formatting preservation

  • Support for bold, italic, em-dash, en-dash

Credits

Developed by Dave Cilluffo / TwelveTake Studios

Scrivener is a registered trademark of Literature & Latte Ltd.

Available Tools

22 tools
append_to_documentA

Append content to the end of an existing document without replacing existing content

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document
contentYesContent to append
separatorNoSeparator between existing and new content (default: two newlines)

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It mentions the append behavior but lacks details on permissions needed, error handling (e.g., if documentId is invalid), rate limits, or whether the operation is idempotent. For a mutation tool, this is a significant gap in behavioral context.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the key action and constraint ('without replacing existing content'). Every word earns its place, with no redundancy or unnecessary elaboration.

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?

Given no annotations and no output schema, the description is minimal but covers the core purpose. For a mutation tool with 3 parameters, it should ideally include more behavioral details (e.g., success/error responses), but it meets minimum viability for basic understanding.

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 fully documents parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain content formatting or separator usage). Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 ('Append content') and resource ('to the end of an existing document'), specifying it does so 'without replacing existing content'. This distinguishes it from siblings like write_document (which likely overwrites) and create_document (which creates new).

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 implies usage when you want to add to an existing document without overwriting, which differentiates it from write_document. However, it doesn't explicitly state when not to use it or mention alternatives like write_document for replacement scenarios, leaving some guidance implicit.

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

batch_readA

Read multiple documents at once. More efficient than multiple read_document calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdsYesArray of document UUIDs to read

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions efficiency benefits, it doesn't describe critical behavioral traits such as error handling (e.g., what happens if some document IDs are invalid), performance characteristics (e.g., rate limits or size constraints), authentication requirements, or the format/structure of the returned data. This leaves significant gaps for a tool that performs batch operations.

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 with only two sentences, both of which add clear value. The first sentence states the core purpose, and the second provides important usage context. There is no wasted language or redundancy.

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?

Given the complexity of a batch operation tool with no annotations and no output schema, the description is insufficiently complete. It lacks information about return values, error behavior, performance limits, and other operational details that would help an agent use the tool effectively. The efficiency mention is helpful but doesn't compensate for these gaps.

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 has 100% description coverage, with the 'documentIds' parameter clearly documented as 'Array of document UUIDs to read.' The description adds no additional parameter semantics beyond what the schema provides, such as constraints on array size or UUID format. Given the high schema coverage, 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 specific action ('Read multiple documents at once') and resource ('documents'), and explicitly distinguishes it from the sibling tool 'read_document' by noting it's 'more efficient than multiple read_document calls.' This provides clear differentiation from alternatives.

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 for when to use this tool ('more efficient than multiple read_document calls'), which implicitly suggests using it for batch operations rather than individual reads. However, it doesn't explicitly state when NOT to use it or mention other potential alternatives beyond the named sibling.

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

compare_descriptionsC

Find all descriptive sentences for a term (sentences with 'was', 'had', 'looked', etc.). Helps identify inconsistent descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesTerm to find descriptions for (e.g., 'Sarah', 'the house')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe important behavioral aspects: what format the results come in (list of sentences? structured data?), whether there are limitations (max results, processing time), what happens with ambiguous terms, or how it handles different document contexts. The description is functional but lacks operational transparency.

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 well-structured in just two sentences. The first sentence states the core functionality with specific examples of grammatical markers. The second sentence provides the value proposition ('Helps identify inconsistent descriptions'). Every word earns its place with no redundancy or unnecessary elaboration.

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 insufficiently complete. While concise, it doesn't address critical context: what the output looks like (crucial since there's no output schema), performance characteristics, error conditions, or how it integrates with the document system implied by sibling tools. The description explains what but not how or what results to expect.

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% with a single parameter 'term' clearly documented. The description adds minimal value beyond the schema by providing example terms ('Sarah', 'the house') which slightly enhance understanding, but doesn't explain nuances like case sensitivity, partial matching, or special character handling. With complete schema coverage, the 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's purpose: 'Find all descriptive sentences for a term' with specific grammatical indicators ('was', 'had', 'looked', etc.). It distinguishes from siblings like 'find_all_mentions' or 'search_content' by focusing specifically on descriptive sentences rather than general mentions or content searches. However, it doesn't explicitly contrast with these siblings in the description text itself.

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 provides no guidance on when to use this tool versus alternatives. It mentions the purpose but doesn't indicate when this specific descriptive sentence extraction is preferred over sibling tools like 'find_all_mentions' (which might find all mentions) or 'search_content' (which might do broader searches). There's no mention of prerequisites, limitations, or typical use cases.

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

compile_manuscriptB

Compile the manuscript to a PDF file. Only includes documents marked 'Include in Compile'.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputPathYesFull path for the output PDF file
titleNoBook title for cover page and PDF metadata (default: project filename)
authorNoAuthor name for cover page and PDF metadata
stopAtTitleNoOptional: Stop at document with this title (partial match). E.g., 'Chapter 7'
includeTitleNoInclude document titles as chapter headers (default: true)
fontSizeNoFont size in points (default: 12)
lineSpacingNoLine spacing multiplier (default: 1.5)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only mentions the inclusion filter. It doesn't disclose important behavioral aspects like whether this is a read-only vs. write operation (though 'compile' implies generation), what happens if outputPath exists, error conditions, performance characteristics, or what the tool returns. The description adds minimal context beyond the basic action.

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 sentences with zero waste - the first states the core purpose, the second adds the critical constraint. Every word earns its place, and the most important information (what it does and the key limitation) is front-loaded.

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 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, performance implications, or how it interacts with the document system. The description covers only the basic what, not the how or what-to-expect.

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 all 7 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions, so it meets the baseline for high schema coverage without adding extra value.

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 specific action ('compile the manuscript') and resource ('to a PDF file'), with the important constraint 'Only includes documents marked "Include in Compile"' that distinguishes it from other compilation approaches. This is more specific than just restating the tool name.

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 it (when you want a PDF with only included documents) but doesn't explicitly contrast with alternatives like get_compile_order or other compilation methods. No guidance is provided about when NOT to use this tool or what prerequisites exist.

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

create_documentC

Create a new document or folder in the project

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the new document
parentIdNoUUID of parent folder (optional, defaults to Draft)
documentTypeNoType of document
contentNoInitial content (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create' implies a write operation, it doesn't specify permissions needed, whether creation is reversible, what happens on conflicts, or any rate limits. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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 that communicates the core purpose without unnecessary words. It's appropriately sized for a tool with clear parameters in the schema, and every word earns its place by conveying essential information.

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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., returns document ID, success/failure indicators), doesn't mention error conditions, and provides no context about the project system it operates within. Given the complexity of document creation with multiple parameters, more context is needed.

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 fully documents all 4 parameters. The description doesn't add any parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters or provide usage examples. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('new document or folder in the project'), making the purpose immediately understandable. However, it doesn't distinguish this from sibling tools like 'write_document' or 'append_to_document', which could create ambiguity about when to use each tool.

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 provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'write_document', 'append_to_document', and 'rename_document', there's no indication of whether this is for initial creation versus updates, or how it differs from other document manipulation tools.

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

delete_documentC

Move a document to trash

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document to delete

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 full burden but only states the action without disclosing critical behavioral traits. It doesn't mention if this is reversible (e.g., trash recovery), requires specific permissions, has side effects on related data, or provides any response details, leaving significant gaps for a destructive 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, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for a simple tool, making it easy to parse quickly.

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?

Given the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It fails to address key contextual aspects like reversibility, error handling, or what happens post-deletion, which are crucial for safe agent use.

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 description adds no parameter semantics beyond the input schema, which has 100% coverage and clearly documents the 'documentId' as a UUID. Since schema coverage is high, the baseline score of 3 applies, as the description doesn't compensate but also doesn't detract.

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 action ('Move') and resource ('document to trash'), making the purpose understandable. However, it doesn't differentiate from sibling 'move_document' which might imply physical relocation versus deletion, leaving some ambiguity.

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 provided on when to use this tool versus alternatives like 'move_document' or 'rename_document'. The description lacks context about prerequisites, such as needing the document to exist or be accessible, or when not to use it.

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

find_all_mentionsB

Find all sentences mentioning a term across the manuscript. Useful for checking character/place consistency.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesTerm to search for (e.g., character name)

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 of behavioral disclosure. It mentions the tool finds sentences, which implies a read-only operation, but doesn't specify if it returns raw text, formatted results, or pagination details. For a tool with no annotation coverage, this is a significant gap in transparency about output format and potential limitations.

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 highly concise and front-loaded, consisting of just two sentences that efficiently convey the tool's purpose and utility. Every word earns its place, with no wasted information, making it easy to parse and understand quickly.

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?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool does and hints at usage, but lacks details on behavioral traits like output format or error handling. This makes it minimally viable but incomplete for optimal agent use.

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 has 100% description coverage, with the 'term' parameter clearly documented as 'Term to search for (e.g., character name).' The description adds minimal value beyond this, only implying usage for consistency checks. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't provide additional syntax or format 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 clearly states the tool's purpose: 'Find all sentences mentioning a term across the manuscript.' It specifies the verb ('Find'), resource ('sentences'), and scope ('across the manuscript'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'search_content' or 'search_with_context', which prevents a perfect score.

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 provides implied usage guidance by stating it's 'Useful for checking character/place consistency,' suggesting it's for consistency checks rather than general searches. However, it doesn't explicitly state when to use this tool versus alternatives like 'search_content' or 'search_with_context,' nor does it mention any exclusions or prerequisites, leaving some ambiguity.

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

get_compile_orderB

Get the list of documents in compile order from the Draft/Manuscript folder. Useful for seeing what will be included in a compile.

ParametersJSON Schema
NameRequiredDescriptionDefault
stopAtTitleNoOptional: Stop at document with this title (partial match). E.g., 'Chapter 7' to get everything up to and including Chapter 7

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 of behavioral disclosure. It mentions the tool retrieves a list from a specific folder and hints at compilation preview, but lacks details on permissions, rate limits, error handling, or what the output looks like (e.g., format, pagination). This is a significant gap for a tool with potential operational implications.

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 two sentences, front-loaded with the core purpose and followed by a brief usage hint. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.

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?

Given no annotations and no output schema, the description provides basic purpose and usage but lacks details on behavioral traits, output format, or error conditions. It's minimally adequate for a simple read operation but could be more complete to help an agent fully understand how to use it correctly in various scenarios.

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 fully documents the single optional parameter 'stopAtTitle'. The description doesn't add any parameter-specific information beyond what's in the schema, such as examples or edge cases. Baseline 3 is appropriate when the schema handles parameter documentation effectively.

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 verb 'Get' and resource 'list of documents in compile order from the Draft/Manuscript folder', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_structure' or 'compile_manuscript', which might also relate to document organization or compilation processes.

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 context by stating it's 'Useful for seeing what will be included in a compile', which suggests it should be used for previewing compilation order. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'compile_manuscript' (which might perform the actual compilation) or 'get_structure' (which might show a different view).

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

get_structureC

Get the hierarchical structure of the project binder

ParametersJSON Schema
NameRequiredDescriptionDefault
folderIdNoOptional: Get structure for specific folder only
maxDepthNoOptional: Maximum depth to traverse

TDQS

C2.9/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 of behavioral disclosure. It states the action but doesn't describe traits like whether it's read-only, requires authentication, has rate limits, or what the output format looks like (e.g., tree structure, list). This leaves significant gaps for a tool that retrieves hierarchical data.

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 that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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?

Given the complexity of retrieving hierarchical structure, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, error conditions, or behavioral aspects, which are crucial for an AI agent to use this tool effectively in a project binder 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%, so the input schema fully documents the two optional parameters (folderId and maxDepth). The description adds no additional meaning beyond the schema, such as explaining what 'hierarchical structure' entails or how depth affects traversal. Baseline 3 is appropriate as 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 clearly states the verb 'Get' and the resource 'hierarchical structure of the project binder', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_compile_order' or 'search_content', which might also involve project structure queries, so it misses full sibling differentiation.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'search_content' or 'find_all_mentions' that might retrieve project information, there's no indication of context, prerequisites, or exclusions for selecting this tool over others.

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

move_documentC

Move a document to a different folder

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document to move
targetFolderIdYesUUID of the target folder
positionNoPosition in target folder (optional)

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 full burden but only states the basic action. It doesn't disclose behavioral traits such as whether the move is destructive (e.g., removes from original folder), requires specific permissions, has rate limits, or what happens on failure (e.g., error if target doesn't exist). This is inadequate 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?

The description is a single, efficient sentence with zero waste—'Move a document to a different folder'—front-loading the core action. Every word earns its place, making it highly concise and well-structured for quick understanding.

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?

Given a mutation tool with no annotations, no output schema, and 3 parameters, the description is incomplete. It lacks details on behavior (e.g., side effects, error handling), return values, or usage context, failing to compensate for the missing structured data, which is insufficient for safe and effective tool invocation.

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 fully documents parameters (documentId, targetFolderId, position). The description adds no meaning beyond this, as it doesn't explain parameter interactions (e.g., position's effect) or constraints. Baseline 3 is appropriate since the schema handles parameter documentation.

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 action ('Move') and resource ('a document'), specifying it relocates to 'a different folder'. It distinguishes from siblings like 'rename_document' or 'delete_document' by focusing on relocation, though it doesn't explicitly contrast with all similar tools (e.g., 'set_include_in_compile' might involve positioning).

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 provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing permissions), exclusions (e.g., not for moving folders), or compare to siblings like 'rename_document' for name changes or 'write_document' for content updates, leaving usage context implied.

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

open_projectC

Open a Scrivener project (.scriv folder)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .scriv project folder

TDQS

C2.9/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 states the action ('Open') but doesn't disclose behavioral traits such as whether this initializes a session, requires specific permissions, affects other tools, or what happens on failure (e.g., invalid path). For a tool with no annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it appropriately sized and easy to parse without unnecessary details.

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?

Given the tool's complexity (opening a project likely involves session management or state changes), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'Open' entails behaviorally or what the agent should expect after invocation, leaving gaps for effective use.

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 description adds no parameter semantics beyond what the input schema provides. The schema has 100% coverage with a clear description for the 'path' parameter, so the baseline is 3. The description doesn't compensate with additional context like path format examples or constraints.

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 action ('Open') and the resource ('a Scrivener project (.scriv folder)'), making the purpose specific and understandable. It distinguishes from siblings like 'read_document' or 'compile_manuscript' by focusing on project-level access, though it doesn't explicitly contrast with them.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing project), exclusions, or how it relates to other tools like 'read_document' for accessing project contents, leaving usage context unclear.

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

read_documentB

Read the content of a document. Optionally includes synopsis (index card text).

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document
includeSynopsisNoIf true, returns { content, synopsis } object instead of just content string

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral context. It mentions the optional synopsis return format but doesn't disclose permissions needed, rate limits, error conditions, or what happens with invalid document IDs. For a read operation, this leaves significant gaps in understanding how the tool behaves.

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 perfectly concise with two clear sentences that each earn their place. The first sentence states the core purpose, and the second adds important optional functionality. No wasted words or unnecessary elaboration.

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?

Given the tool's simplicity (read operation with 2 parameters), 100% schema coverage, and no output schema, the description is adequate but minimal. It covers the basic purpose and optional feature but lacks context about permissions, error handling, or relationship to sibling tools, which would be helpful for an agent.

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 fully documents both parameters. The description adds marginal value by mentioning the synopsis option, which aligns with the 'includeSynopsis' parameter, but doesn't provide additional semantic context beyond what's in the schema descriptions.

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 verb 'Read' and the resource 'content of a document', making the purpose immediately understandable. It distinguishes from siblings like 'read_notes' or 'read_synopsis' by focusing on document content. However, it doesn't explicitly differentiate from 'batch_read' which might handle multiple documents.

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 provides no guidance on when to use this tool versus alternatives like 'batch_read' for multiple documents, 'search_content' for finding specific content, or 'read_synopsis' for just the synopsis. It mentions the optional synopsis inclusion but doesn't explain when that feature should be used.

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

read_notesC

Read the notes (inspector notes) for a document

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document

TDQS

C2.9/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 of behavioral disclosure. It states 'Read' but doesn't clarify if this is a safe operation, what permissions are needed, how notes are formatted, or if there are rate limits. This is a significant gap for a tool with no 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?

The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.

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?

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'inspector notes' entail, the return format, or behavioral aspects like error handling, which are crucial for a read operation in this 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?

The input schema has 100% description coverage, with 'documentId' documented as a UUID. The description doesn't add any parameter details beyond what the schema provides, such as examples or constraints, so it meets the baseline of 3 for high schema coverage.

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 action ('Read') and resource ('notes (inspector notes) for a document'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'read_document' or 'write_notes', which would require explicit differentiation to earn 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'read_document' or 'write_notes'. It lacks any mention of prerequisites, context, or exclusions, leaving the agent without usage direction.

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

read_synopsisC

Read the synopsis (index card text) of a document

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document

TDQS

C2.9/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 of behavioral disclosure. It states the action ('read') but doesn't mention permissions, rate limits, error handling, or what the output looks like (e.g., text format, length). For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every part of the sentence contributes directly to understanding the tool's purpose.

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?

Given the lack of annotations and output schema, the description is incomplete for a read operation. It doesn't explain what a 'synopsis' entails (e.g., summary text, metadata), how it differs from other document content tools, or what the return value includes. For a tool in a rich sibling set with no structured output information, more context is needed.

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 has 100% description coverage, with 'documentId' clearly documented as a UUID. The description doesn't add any parameter details beyond what the schema provides, such as examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as 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 clearly states the verb ('read') and resource ('synopsis of a document'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'read_document' or 'read_notes', which would require more specificity about what distinguishes a synopsis from other document content.

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 provided on when to use this tool versus alternatives such as 'read_document' or 'read_notes'. The description lacks context about prerequisites, typical use cases, or comparisons to sibling tools, leaving the agent to infer usage from the name alone.

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

rename_documentC

Rename a document

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document
newTitleYesNew title

TDQS

C2.7/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 of behavioral disclosure. 'Rename' implies a mutation operation, but the description doesn't address critical aspects like required permissions, whether the rename is reversible, potential side effects (e.g., breaking references), or rate limits. This is inadequate 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?

The description 'Rename a document' is extremely concise—a single, direct phrase with zero wasted words. It's front-loaded with the core action, making it easy to parse quickly. Every word earns its place by conveying the essential purpose without redundancy.

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?

Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens on success (e.g., returns the updated document) or failure (e.g., error if document doesn't exist), nor does it cover behavioral traits like idempotency or side effects. This leaves significant gaps for agent decision-making.

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 has 100% description coverage, with clear documentation for 'documentId' (UUID) and 'newTitle' (new title). The description adds no parameter-specific information beyond what the schema provides, such as format details or constraints. Given the high schema coverage, a baseline score of 3 is appropriate as the schema handles the heavy lifting.

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?

The description 'Rename a document' clearly states the verb ('rename') and resource ('document'), making the basic purpose understandable. However, it lacks specificity about what constitutes a document in this system and doesn't differentiate from sibling tools like 'move_document' or 'write_document', which might also involve document modifications.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing document), exclusions (e.g., not for creating or deleting documents), or comparisons to siblings like 'move_document' (which might handle relocation with renaming). This leaves the agent to infer usage from context alone.

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

search_contentC

Search for content across all documents

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query

TDQS

C2.9/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 full burden for behavioral disclosure. While 'search' implies a read-only operation, the description doesn't specify whether this is a simple keyword search, full-text search, or includes metadata. It also lacks information about permissions, rate limits, or what happens when no results are found.

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 with just one sentence that directly states the tool's purpose. There's no wasted language or unnecessary elaboration, making it efficiently front-loaded and easy to parse.

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 search tool with no annotations and no output schema, the description is insufficient. It doesn't explain what type of content is searched, how results are returned, whether there's pagination, or what the search scope 'across all documents' entails. Given the complexity of search operations, more context is needed.

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% for the single 'query' parameter, so the schema already documents it adequately. The description adds no additional parameter information beyond what's in the schema, which is acceptable given the high schema coverage but doesn't provide extra value.

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's purpose with a specific verb ('search') and resource ('content across all documents'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'search_with_context' or 'find_all_mentions', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'search_with_context' and 'find_all_mentions' available, there's no indication of what distinguishes this search functionality or when it's preferred over other search-related tools.

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

search_with_contextC

Search for a term and return matches with surrounding paragraphs for context

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term
contextParagraphsNoNumber of paragraphs before/after match to include (default: 2)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions returning matches with context but omits critical details: whether this is a read-only operation, how results are formatted, pagination behavior, error conditions, or performance characteristics. The description is too vague for a tool with potential complexity.

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 that states the core functionality without unnecessary words. It's appropriately sized for a search tool and front-loads the essential information.

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 search tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'matches' look like, how context paragraphs are selected, whether results are limited, or what happens with no matches. Given the lack of structured fields, more behavioral detail is needed.

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 both parameters thoroughly. The description implies the 'query' parameter is for searching and 'contextParagraphs' controls output context, but adds no additional meaning beyond what the schema provides. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Search') and resource ('term'), and specifies what it returns ('matches with surrounding paragraphs for context'). It distinguishes from basic search tools by emphasizing contextual output, though it doesn't explicitly differentiate from sibling 'search_content'.

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 provides no guidance on when to use this tool versus alternatives like 'search_content' or 'find_all_mentions'. It lacks context about prerequisites, exclusions, or typical scenarios where contextual paragraphs are beneficial.

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

set_include_in_compileC

Set whether a document should be included in compile

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document
includeYesTrue to include, false to exclude

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool sets a boolean flag, implying a mutation, but doesn't cover critical aspects like required permissions, whether changes are reversible, error conditions (e.g., invalid document ID), or side effects. This is inadequate 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?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action, resource, and property, making it highly concise and well-structured.

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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., permissions, reversibility), expected outcomes, or error handling. While the schema covers parameters well, the overall context for safe and effective use is insufficient.

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 fully documents both parameters ('documentId' as UUID, 'include' as boolean). The description adds no additional parameter semantics beyond what's in the schema, such as format details or constraints. Baseline 3 is appropriate when 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 clearly states the action ('Set') and the resource ('document'), specifying what property is being modified ('whether a document should be included in compile'). It distinguishes from siblings like 'compile_manuscript' (which performs compilation) or 'get_compile_order' (which reads compile settings). However, it doesn't explicitly contrast with all siblings, keeping it at 4 rather than 5.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid document ID), exclusions (e.g., not applicable to non-compilable documents), or related tools like 'get_compile_order' for checking current settings. Usage is implied but not articulated.

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

word_countC

Get word count for a specific document or the entire manuscript

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdNoUUID of document to count (omit for entire manuscript)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool does without disclosing behavioral traits like whether it's read-only, requires permissions, has rate limits, or what format the word count returns. It lacks crucial operational context for a tool with potential data access implications.

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 perfectly concise with a single, clear sentence that front-loads the core purpose. Every word earns its place with no redundancy or unnecessary elaboration.

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?

Given no annotations and no output schema, the description is incomplete for a tool that likely returns numerical data. It doesn't explain what the word count output looks like (e.g., integer, formatted string, includes character count) or any behavioral aspects, leaving significant gaps for agent understanding.

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 description adds some semantic context by explaining that omitting documentId counts the entire manuscript, which complements the 100% schema coverage. However, it doesn't provide additional meaning beyond what the schema already documents about the parameter's purpose and optional nature.

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 verb ('Get word count') and resource ('document or entire manuscript'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'read_document' or 'search_content' that might also provide text-related information.

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 provides minimal guidance by mentioning 'specific document or entire manuscript' but offers no explicit when-to-use advice, alternatives, or exclusions compared to siblings like 'search_content' or 'read_document'. No context about when this tool is preferred over others is provided.

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

write_documentC

Write content to an existing document

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document
contentYesContent to write

TDQS

C2.7/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 full burden. It states 'write content' but doesn't disclose behavioral traits such as whether this overwrites existing content, requires specific permissions, has rate limits, or what the response looks like. This is a significant gap for a mutation tool with no structured safety hints.

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 zero waste. It's front-loaded and appropriately sized, making it easy to parse quickly without unnecessary elaboration.

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?

Given the complexity of a write operation with no annotations and no output schema, the description is incomplete. It doesn't explain return values, error conditions, or behavioral implications, leaving the agent under-informed for safe and effective use.

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 input schema already documents both parameters (documentId as UUID, content as string). The description adds no additional meaning beyond what the schema provides, such as format details or usage examples, meeting the baseline for high 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?

The description 'Write content to an existing document' clearly states the action (write) and target (existing document), but it's vague about what 'write' entails—does it replace or append content? It doesn't distinguish from siblings like 'append_to_document' or 'create_document', leaving ambiguity in scope.

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 provided on when to use this tool versus alternatives. With siblings like 'append_to_document' (likely for adding content) and 'create_document' (for new documents), the description lacks context on prerequisites, exclusions, or comparative use cases, offering no help in tool selection.

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

write_notesC

Write or update the notes (inspector notes) for a document

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document
notesYesNotes content to write

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'write or update' which implies mutation, but doesn't clarify if this creates new notes, overwrites existing ones, requires specific permissions, or has side effects. This leaves significant gaps 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 that gets straight to the point without unnecessary words. It could be slightly improved by front-loading key details, but it's appropriately sized and wastes no space.

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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'inspector notes' are, how the operation behaves (e.g., overwrite vs. append), or what the response looks like, leaving too much ambiguity for effective use.

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 has 100% description coverage, so the schema already documents both parameters ('documentId' as UUID and 'notes' as content). The description adds no additional meaning beyond what the schema provides, resulting in a baseline score of 3.

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 verb ('write or update') and resource ('notes for a document'), making the purpose understandable. It doesn't distinguish from siblings like 'write_document' or 'append_to_document' which could have overlapping functionality, so it misses the top score.

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 provided on when to use this tool versus alternatives like 'write_document' or 'append_to_document'. The description lacks context about prerequisites, such as whether the document must exist or if notes can be overwritten, leaving usage unclear.

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

write_synopsisC

Write or update the synopsis (index card text) of a document

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesUUID of the document
synopsisYesSynopsis text to write

TDQS

C2.9/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 full burden. It implies a mutation ('write or update') but doesn't disclose behavioral traits such as permissions required, whether changes are reversible, error handling, or effects on the document. This is inadequate 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.

Conciseness4/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, though it could be slightly more informative to improve clarity.

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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior, return values, error conditions, or how it interacts with sibling tools, making it insufficient for effective agent use.

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 both parameters ('documentId' and 'synopsis'). The description adds no additional meaning beyond what the schema provides, such as format details or constraints, resulting in a baseline score of 3.

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 verb ('write or update') and resource ('synopsis of a document'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'write_document' or 'write_notes', which also modify document content, so it misses full sibling distinction.

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 provides no guidance on when to use this tool versus alternatives. For example, it doesn't specify if this is for initial synopsis creation or updates, or how it differs from 'write_document' or 'append_to_document' in handling synopses, leaving usage context unclear.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 22 tool updatesv1.0.0
    • First observedappend_to_document
    • First observedbatch_read
    • First observedcompare_descriptions
    • First observedcompile_manuscript
    • First observedcreate_document
    • First observeddelete_document
    • First observedfind_all_mentions
    • First observedget_compile_order
    • First observedget_structure
    • First observedmove_document
    • First observedopen_project
    • First observedread_document
    • First observedread_notes
    • First observedread_synopsis
    • First observedrename_document
    • First observedsearch_content
    • First observedsearch_with_context
    • First observedset_include_in_compile
    • First observedword_count
    • First observedwrite_document
    • First observedwrite_notes
    • First observedwrite_synopsis

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no significant overlap. For example, read_document, read_synopsis, and read_notes target different document attributes, while search_content and find_all_mentions serve distinct search functions. The descriptions effectively differentiate tools, preventing misselection.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, such as create_document, delete_document, and move_document. All names use snake_case, and verbs like read, write, search, and get are applied predictably across related tools, making the set highly readable and uniform.

Tool Count4/5

With 22 tools, the count is slightly high but reasonable for a comprehensive writing assistant server covering document management, search, compilation, and metadata operations. It avoids bloat by ensuring each tool serves a specific function, though it borders on the heavy side for typical MCP servers.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for Scrivener projects, including create, read, update, delete, move, rename, compile, and search operations. It also handles specialized writing tasks like synopsis and notes management, with no obvious gaps that would hinder agent workflows in this domain.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TwelveTake-Studios/scrivener-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server