Claude Writer's Aid MCP
Links git commits to conversations based on timestamps and file changes, enabling tracking of code evolution and commit history alongside conversation context.
Supports using Ollama for generating embeddings with models like mxbai-embed-large for semantic search capabilities across conversation history.
Uses SQLite as the storage backend for indexing conversations, tracking file history, decisions, mistakes, and managing conversation memory data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Claude Writer's Aid MCPcheck my manuscript for broken links and terminology consistency"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Claude Writer's Aid MCP
A Model Context Protocol (MCP) server designed specifically for writers and authors working with markdown manuscripts. Provides intelligent analysis, quality checks, and writing assistance tools integrated into Claude Code.
๐ก What It Does
Manuscript Indexing - Automatically index and track all markdown files in your writing project
Semantic Search - Find content across your manuscript using natural language queries
Quality Analysis - Check for terminology consistency, readability, duplicates, and structure issues
Link Management - Validate internal links, find broken references, and suggest cross-references
Progress Tracking - Monitor word counts, track changes, and generate progress reports
Theme Extraction - Discover and analyze recurring themes across your content
TODO Management - Extract and track all TODO, FIXME, and DRAFT markers
Writing Statistics - Comprehensive metrics and analytics for your writing project
Related MCP server: Content Manager MCP Server
โ ๏ธ Important: Claude Code CLI Only
This MCP server works ONLY with Claude Code CLI.
It does NOT work with:
โ Claude Desktop
โ Claude Web
โ Other Claude integrations
Writer's Aid MCP stores manuscript data in .writers-aid/manuscript.db within your project folder, keeping all writing data organized alongside your manuscript files.
๐ฆ Installation
Prerequisites
Required:
Claude Code CLI: https://github.com/anthropics/claude-code
Node.js: Version 18 or higher
Quick Install (Recommended)
Install globally from npm:
# Install the package globally
npm install -g claude-writers-aid-mcp
# Auto-configure for Claude Code CLI
writers-aid init-mcpThat's it! The init-mcp command automatically:
Detects your installation paths
Configures
~/.claude.jsonwith the correct settingsProvides next steps for verification
Alternative: Development Install
For local development/use from this repository:
# Clone the repository
git clone https://github.com/xiaolai/claude-writers-aid-mcp.git
cd claude-writers-aid-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Configure MCP server
npm run init-mcpManual Configuration (Advanced)
If you prefer manual setup, add to your ~/.claude.json (NOT ~/.claude/config.json):
{
"mcpServers": {
"writers-aid": {
"type": "stdio",
"command": "node",
"args": [
"/path/to/claude-writers-aid-mcp/dist/index.js"
]
}
}
}Replace /path/to/ with the actual path where you installed the package.
Verify Installation
Check your MCP configuration:
writers-aid mcp-statusRestart Claude Code CLI and test with:
"Index my manuscript files"
"Check my manuscript for quality issues"
"Show writing statistics"If the MCP tools are working, you'll see analysis results and statistics!
MCP Configuration Commands
The package includes commands to manage your Claude Code MCP configuration:
# Check MCP configuration status
writers-aid mcp-status
# Configure or update MCP server
writers-aid init-mcp
# Remove MCP configuration
writers-aid remove-mcpImportant: Restarting After Updates
When you upgrade to a new version, you MUST restart Claude Code CLI to reload the MCP server:
Exit Claude Code CLI completely
Start it again
The new version will be loaded
Why? Claude Code caches MCP servers. Without restarting, it will continue using the old cached version even after you've upgraded the npm package globally.
Quick check: After restart, you can verify the version with:
claude-conversation-memory-mcp --version๐ฅ๏ธ Standalone CLI / REPL Mode
Beyond the MCP server, this package includes a powerful standalone CLI for managing your conversation memory directly from the terminal.
Three Modes of Operation
1. Interactive REPL Mode (Default)
claude-conversation-memory-mcp
# Starts interactive shell with 40+ commands2. Single Command Mode
claude-conversation-memory-mcp status
claude-conversation-memory-mcp "search authentication"
claude-conversation-memory-mcp mistakes --limit 53. MCP Server Mode (Used by Claude Code CLI)
claude-conversation-memory-mcp --server
# Or automatically via stdio from Claude Code CLIQuick CLI Examples
# View database status
claude-conversation-memory-mcp status
# Index conversations
claude-conversation-memory-mcp index --include-mcp
# Search for topics
claude-conversation-memory-mcp "search database migration" --limit 3
# Find past mistakes
claude-conversation-memory-mcp mistakes "async" --type logic_error
# Check file context before editing
claude-conversation-memory-mcp check src/auth.ts
# Configure embedding model
claude-conversation-memory-mcp config
claude-conversation-memory-mcp set model mxbai-embed-large
claude-conversation-memory-mcp set dimensions 1024
# View help
claude-conversation-memory-mcp help
claude-conversation-memory-mcp "help search"Configuration Management
The CLI includes built-in commands for managing embedding models and dimensions:
# View current configuration
claude-conversation-memory-mcp config
# Switch to Ollama with mxbai-embed-large (1024 dimensions)
claude-conversation-memory-mcp set provider ollama
claude-conversation-memory-mcp set model mxbai-embed-large
claude-conversation-memory-mcp set dimensions 1024
# Switch to Transformers.js (offline, no setup)
claude-conversation-memory-mcp set provider transformers
claude-conversation-memory-mcp set model Xenova/all-MiniLM-L6-v2
claude-conversation-memory-mcp set dimensions 384
# Get specific config value
claude-conversation-memory-mcp get providerAvailable Commands
๐ฅ Indexing:
index,reindex๐ Search:
search,decisions,mistakes,similar๐ Files:
check,history๐ Git:
commits๐ Other:
requirements,tools,docsโน๏ธ Info:
status,version,helpโ๏ธ Config:
config,get,set๐งน Maintenance:
vacuum,reset
๐ See Complete CLI Guide for all commands, examples, and workflows
๐ฏ Usage Examples
First Time Setup
You: "Index my conversation history for this project"
Claude: I'll index all conversations for this project...
โ Indexed 5 conversations with 2,341 messages
โ Semantic search enabled (embeddings generated)Search Past Conversations
You: "What did we discuss about the authentication system?"
Claude: Let me search our conversation history...
[Returns relevant messages with context and timestamps]Before Modifying Files
You: "Before I change database.ts, what should I know?"
Claude: Let me check the context for database.ts...
[Shows recent changes, related decisions, and past mistakes]Track Decisions
You: "Why did we choose SQLite over PostgreSQL?"
Claude: Let me check our decision history...
[Returns the decision with rationale and alternatives considered]Learn from Mistakes
You: "Have we had issues with async/await before?"
Claude: Let me search past mistakes...
[Shows previous errors and how they were fixed]Find Related Work
You: "Have we worked on similar API endpoints before?"
Claude: Let me find similar sessions...
[Returns past conversations about similar work]View File History
You: "Show me how auth.ts evolved over time"
Claude: Let me trace the file evolution...
[Shows complete timeline with conversations, commits, and decisions]Recall and Apply Context
You: "Recall how we implemented authentication, now add OAuth support using that same pattern"
Claude: Let me recall the authentication implementation context...
[Returns relevant conversations, decisions, mistakes, file changes, and commits]
[Provides suggestions for applying this context to OAuth implementation]More examples:
"Remember the bug we fixed in parser.ts, check if similar issue exists in lexer.ts"
"Recall all decisions about database schema, now design the migration strategy"
"Find mistakes we made with async/await, avoid them in this new async function"
๐ง Advanced Usage
Index Specific Session
You: "Index conversation from session a1172af3-ca62-41be-9b90-701cef39daae"Exclude MCP Conversations
By default, conversations about the MCP itself are excluded to prevent self-referential loops. To include them:
You: "Index all conversations, including MCP conversations"Indexing Options
When indexing conversations, several options control what gets stored:
Include Thinking Blocks
Default: false (thinking blocks are excluded)
Thinking blocks contain Claude's internal reasoning process. They can be very large (3-5x more data) and are usually not needed for search.
# Default behavior (recommended)
You: "Index conversations"
# Thinking blocks are excluded
# Include thinking blocks (increases database size significantly)
You: "Index conversations with thinking blocks"When to enable:
โ You want to search Claude's reasoning process
โ You're analyzing decision-making patterns
โ Don't enable if you just want to search visible conversation content
Exclude MCP Conversations
Default: "self-only" (excludes only conversation-memory MCP calls)
Controls which MCP tool interactions are indexed:
"self-only"(default): Excludes messages about this conversation-memory MCP to prevent self-referential loopsfalse: Index all MCP tool calls from all servers"all-mcp"ortrue: Exclude all MCP tool calls from all servers["server1", "server2"]: Exclude specific MCP servers
# Default - exclude only conversation-memory MCP
You: "Index conversations"
# Include all MCP conversations (including this one)
You: "Index conversations, include all MCP tools"
# Exclude all MCP tool calls
You: "Index conversations, exclude all MCP interactions"What gets filtered: Only the specific messages that invoke MCP tools are excluded, not entire conversations. This preserves conversation context while preventing self-referential loops.
Enable Git Integration
Default: true (git commits are linked)
Links git commits to conversations based on timestamps and file changes.
# Default behavior
You: "Index conversations"
# Git commits are automatically linked
# Disable git integration
You: "Index conversations without git integration"Index Output
After indexing, you'll see:
๐ Indexed from: /path/to/modern-folder, /path/to/legacy-folder
๐พ Database: /path/to/.claude-conversations-memory.dbThis shows:
Indexed folders: Which conversation folders were used (including legacy if it exists)
Database location: Where your indexed data is stored
Search with Date Filters
You: "What were we working on last week?"Generate Documentation
You: "Generate project documentation from our conversations"Claude will create comprehensive docs combining code analysis with conversation history.
Migrate Conversation History
When you rename or move a project directory, your conversation history becomes inaccessible because Claude Code creates a new folder for the new path. Use the migration tools to recover your history:
Step 1: Discover old conversation folders
You: "Discover old conversations for this project"Claude will scan ~/.claude/projects/ and show you folders that match your current project, ranked by similarity score. The output includes:
Folder name and path
Original project path stored in the database
Number of conversations and files
Last activity timestamp
Similarity score (higher = better match)
Step 2: Migrate the history
You: "Migrate conversations from /Users/name/.claude/projects/-old-project-name, old path was /Users/name/old-project, new path is /Users/name/new-project"Claude will:
Copy all conversation JSONL files to the new location
Update the
project_pathin the databaseCreate automatic backups (
.claude-conversations-memory.db.bak)Preserve all original data (copy, not move)
Example workflow:
# You renamed your project directory
# Old: /Users/alice/code/my-app
# New: /Users/alice/code/my-awesome-app
You: "Discover old conversations for this project"
Claude: Found 1 potential old conversation folder:
- Folder: -Users-alice-code-my-app
- Original path: /Users/alice/code/my-app
- Conversations: 15
- Files: 47
- Score: 95.3
You: "Migrate from /Users/alice/.claude/projects/-Users-alice-code-my-app, old path /Users/alice/code/my-app, new path /Users/alice/code/my-awesome-app"
Claude: Successfully migrated 47 conversation files.
Now you can index and search your full history!Dry run mode:
Test the migration without making changes:
You: "Dry run: migrate from [source] old path [old] new path [new]"This shows what would be migrated without actually copying files.
Merge Conversations from Different Projects
NEW in v0.4.0: Combine conversation history from different projects into one folder using merge mode.
Use case: You want to merge conversations from /project-a/drafts/2025-01-05 into your current project /project-b.
Step 1: Discover the source folder
You: "Discover old conversations for project path /Users/name/project-a/drafts/2025-01-05"Step 2: Merge into current project
You: "Merge conversations from /Users/name/.claude/projects/-project-a-drafts-2025-01-05, old path /Users/name/project-a/drafts/2025-01-05, new path /Users/name/project-b, mode merge"Claude will:
Copy only new conversation files (skip duplicates)
Keep target conversations when IDs collide (no data loss)
Merge all database entries using INSERT OR IGNORE
Create backup of target database before merge
Preserve all original source data
Example workflow:
# Scenario: You have conversations from different projects to combine
Current project: /Users/alice/main-project (already has 20 conversations)
Source project: /Users/alice/drafts/experiment (has 10 conversations, 3 overlap with main)
You: "Discover old conversations for /Users/alice/drafts/experiment"
Claude: Found 1 folder:
- Folder: -Users-alice-drafts-experiment
- Original path: /Users/alice/drafts/experiment
- Conversations: 10
- Files: 10
You: "Merge from /Users/alice/.claude/projects/-Users-alice-drafts-experiment, old path /Users/alice/drafts/experiment, new path /Users/alice/main-project, mode merge"
Claude: Successfully merged 7 new conversation files into /Users/alice/.claude/projects/-Users-alice-main-project
(3 duplicate conversations were skipped to preserve target data)
Backup created at: .claude-conversations-memory.db.bak
# Result: main-project now has 27 conversations (20 original + 7 new from experiment)Key differences between migrate and merge:
Feature | Migrate Mode (default) | Merge Mode |
Target has data | โ Rejected (conflict) | โ Allowed |
Duplicate IDs | Overwrites target | Skips source (keeps target) |
Use case | Renamed project | Combine different projects |
Backup location | Source folder | Target folder |
๐ Learn More
Tool Examples - 50+ natural language examples for each tool
Quick Reference - Common phrases cheat sheet
Embeddings FAQ - How semantic search works
๐ Troubleshooting
"No conversations found"
Make sure you're running this in a directory where you've had Claude Code CLI conversations. Check ~/.claude/projects/ to verify conversation files exist.
"Embeddings failed"
The MCP falls back to full-text search if embeddings fail. Everything still works, just without semantic search.
"MCP not responding"
Restart Claude Code CLI to reload the MCP server.
๐ License
MIT License - See LICENSE file for details.
๐ Acknowledgments
Inspired by code-graph-rag-mcp.
Made with โค๏ธ for the Claude Code CLI community
Available Tools
34 toolsadd_style_decisionC
Record a style decision for consistency
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| category | Yes | Style category | |
| canonical_choice | Yes | The chosen canonical form | |
| rationale | No | Why this choice was made | |
| examples | No | Example usages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Record' which implies a write operation, but doesn't specify permissions, whether it's idempotent, how it handles duplicates, or what the response looks like. 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.
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 unnecessary words. It's front-loaded and every part earns its place, 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.
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 5 parameters, no annotations, and no output schema, the description is insufficient. It lacks details on behavioral traits, error handling, and return values, which are critical for an agent to use this tool effectively in context with its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any meaning beyond what the schema provides, such as explaining relationships between parameters or usage nuances. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Record') and resource ('style decision') with the purpose 'for consistency', which specifies what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list_writing_decisions' or 'track_changes', which might handle related aspects of style decisions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'list_writing_decisions' and 'track_changes', there's no indication of context, prerequisites, or exclusions for using add_style_decision, 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.
analyze_link_graphC
Visualize connections between documents
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| format | No | Output format | mermaid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. 'Visualize' suggests a read-only operation that generates output, but there's no mention of what kind of visualization is produced, whether it's interactive or static, how large document sets are handled, or any performance considerations. The description doesn't contradict annotations (none exist), but provides insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase that communicates the core function without unnecessary words. It's appropriately sized for a tool with good schema documentation and gets straight to the point with zero wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (visualization with multiple parameters) and the absence of both annotations and output schema, the description is insufficiently complete. It doesn't explain what the visualization output looks like, how to interpret it, what 'connections' specifically means, or any limitations of the analysis. For a visualization tool with no output schema, more context about the result format and interpretation would be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all three parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema - it doesn't explain how 'project_path' relates to the visualization, what 'scope' patterns are meaningful, or when to choose different 'format' options. The baseline score of 3 reflects adequate but unenhanced parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Visualize connections between documents' clearly states the tool's function with a specific verb ('visualize') and resource ('connections between documents'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'trace_reference_chain' or 'find_related_sections' that might also deal with document relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools dealing with document analysis and relationships (like 'trace_reference_chain', 'find_related_sections', 'holistic_search'), there's no indication of what makes this visualization tool distinct or when it's the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_before_editB
Check context before editing a file - get warnings about past mistakes, decisions, and requirements to maintain consistency
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | Yes | File to check before editing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'get warnings' but doesn't disclose behavioral traits such as output format, error handling, performance characteristics, or whether it's read-only or has side effects. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Check context before editing a file') and elaborates concisely on the specific warnings provided. 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.
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 complex warnings or validation results. It doesn't explain what 'warnings' entail, how they're formatted, or what 'consistency' means in practice. For a pre-edit check tool, this leaves the agent guessing about the tool's output and operational impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('project_path' and 'file_path') adequately. The description adds no additional parameter semantics beyond what's in the schema, such as file format expectations or validation rules. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check context before editing a file' with specific goals ('get warnings about past mistakes, decisions, and requirements to maintain consistency'). It distinguishes itself from siblings like 'get_file_context' or 'get_requirements' by focusing on pre-edit validation rather than general information retrieval. However, it doesn't explicitly contrast with all similar tools like 'validate_structure' or 'check_readability'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('before editing a file') but lacks explicit guidance on when to use this versus alternatives like 'validate_structure' or 'check_terminology'. It doesn't specify prerequisites, exclusions, or edge cases, leaving the agent to infer timing from the phrase 'before editing' without clear operational boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_readabilityC
Analyze readability metrics
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | No | Specific file to analyze | |
| metrics | No | Metrics to calculate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Analyze readability metrics' suggests a read-only operation, but it doesn't specify what the analysis entails, what format the results take, whether it modifies any files, or what permissions might be required. For a tool with 3 parameters and no annotation coverage, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise at just three words. It's front-loaded with the essential information and contains zero wasted words or unnecessary elaboration. This is an excellent example of efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what readability metrics are calculated, what the output format looks like, or how the analysis is performed. For an analysis tool with multiple configuration options, more context is needed to understand what the tool actually does beyond the basic verb.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, all three parameters are already documented in the input schema. The description doesn't add any additional meaning about the parameters beyond what the schema provides. It doesn't explain what types of readability metrics are available, what the default behavior is when parameters are omitted, or how project_path and file_path interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Analyze readability metrics' clearly states the verb (analyze) and resource (readability metrics), making the tool's purpose immediately understandable. However, it doesn't specifically differentiate this tool from its many siblings that also perform analysis functions (like analyze_link_graph, find_duplicates, etc.), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus alternatives. With 35 sibling tools on the server, many performing various types of analysis, there's no indication of what makes this tool distinct or when it should be chosen over similar tools like get_writing_stats or validate_structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_terminologyC
Find inconsistent term usage
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| auto_detect | No | Auto-detect variants | |
| terms | No | Specific terms to check | |
| limit | No | Maximum term groups to return | |
| examples_per_variant | No | Examples per term variant |
TDQS
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. 'Find inconsistent term usage' implies a read-only analysis operation, but it doesn't specify whether this tool modifies files, requires specific permissions, has rate limits, or what the output format looks like. For a tool with 6 parameters and no output schema, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase with zero wasted words. It's appropriately sized for a tool name that's already descriptive, and it's front-loaded with the core purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't explain what 'inconsistent term usage' means operationally, what the tool returns, or how results are structured. For a tool that presumably performs textual analysis across files, more context about behavior and output is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema descriptions. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find inconsistent term usage' clearly states the tool's purpose with a specific verb ('Find') and target ('inconsistent term usage'), but it doesn't differentiate from sibling tools like 'find_duplicates' or 'find_concept_contradictions' that might have overlapping semantic domains. It's not tautological but remains somewhat vague about what constitutes 'inconsistent term usage' in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'find_duplicates' or 'find_concept_contradictions'. There's no mention of prerequisites, typical use cases, or exclusions. The agent must infer usage solely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_themesC
Cluster content into main themes/topics
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| num_themes | No | Number of themes to extract |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('cluster content') but doesn't describe how it works (e.g., algorithm, processing time), what it returns (e.g., list of themes with examples), or any constraints (e.g., file size limits, supported formats). For a tool with 3 parameters and no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose ('cluster content into main themes/topics'), making it immediately understandable. Every word earns its place by specifying the action and outcome without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (thematic clustering with 3 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain the clustering method, output format, performance considerations, or error handling. For a tool that likely involves non-trivial processing, more context is needed to use it effectively beyond the basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 3 parameters (project_path, scope, num_themes). The description adds no additional meaning about parameters beyond what's in the schema (e.g., it doesn't explain how 'scope' affects theme extraction or what 'num_themes' optimizes). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('cluster') and resource ('content'), and specifies the output ('main themes/topics'). It distinguishes from most siblings (e.g., 'find_duplicates', 'search_content') by focusing on thematic analysis rather than search or validation. However, it doesn't explicitly differentiate from tools like 'suggest_reorganization' or 'analyze_link_graph' that might involve thematic grouping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing content to analyze), exclusions (e.g., not for small documents), or comparisons to sibling tools like 'holistic_search' or 'suggest_reorganization' that might overlap in topic discovery. Usage is implied only by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_broken_linksC
Detect broken internal and external links
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| check_external | No | Check external links | |
| scope | No | File scope pattern | |
| limit | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'detect' implies a read-only operation, it doesn't specify whether this is a scan that might be resource-intensive, time-consuming, or have side effects like network requests for external links. The description lacks details on output format, error handling, or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the phrase 'Detect broken internal and external links' contributes directly to understanding the tool's function, making it optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool with four parameters. It doesn't explain what the tool returns (e.g., a list of broken links, a report format) or provide behavioral context needed for safe and effective use, especially in a server with many similar analysis tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description doesn't add any meaning beyond what's in the schemaโit mentions 'internal and external links' which aligns with the 'check_external' parameter but doesn't provide additional context about parameter interactions or usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('detect') and resource ('broken internal and external links'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'analyze_link_graph' or 'trace_reference_chain' which might also involve link analysis, leaving room for ambiguity in a crowded toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to content analysis (e.g., 'analyze_link_graph', 'trace_reference_chain'), there's no indication of specific contexts, prerequisites, or exclusions for this link-checking operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_concept_contradictionsC
Detect contradictions in concept definitions across versions
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| concept_name | Yes | Concept to check for contradictions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'detect contradictions' implies a read-only analysis operation, the description doesn't specify what constitutes a contradiction, how results are presented, whether this requires specific file access permissions, or any performance characteristics. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for this tool's complexity and front-loads the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of contradiction detection across versions, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how contradictions are identified, or what format results take. For a specialized analysis tool in a rich sibling environment, this leaves too many questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('detect') and resource ('contradictions in concept definitions across versions'). It distinguishes from siblings like 'track_concept_evolution' by focusing on contradiction detection rather than evolution tracking. However, it doesn't explicitly differentiate from all possible alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or exclusions. With many sibling tools available for manuscript analysis, this lack of comparative guidance is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_duplicatesC
Find near-duplicate content
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| similarity_threshold | No | Similarity threshold (0-1) | |
| min_length | No | Minimum content length | |
| limit | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation ('find') but doesn't specify whether it modifies data, requires permissions, has rate limits, or what the output format looks like. For a tool with 5 parameters and no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase with zero waste. It's appropriately sized and front-loaded, making it easy to scan without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 5-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'near-duplicate' means in practice, how results are returned, or the tool's role among many siblings, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as explaining how 'similarity_threshold' applies to 'near-duplicate' detection. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find near-duplicate content' states the general purpose but is vague about the specific resource and scope. It mentions 'content' without specifying whether this refers to files, text sections, or other entities, and doesn't distinguish from siblings like 'find_related_sections' or 'search_similar_mistakes' which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'find_related_sections' and 'search_similar_mistakes', the description doesn't clarify the specific context for detecting duplicates, such as for quality control or content management, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_gapsC
Find terms mentioned but not explained
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| limit | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'finds' terms, implying a read-only operation, but doesn't disclose any behavioral traits such as performance characteristics (e.g., speed, resource usage), output format, or error handling. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Find terms mentioned but not explained') that is front-loaded and wastes no words. It directly conveys the core purpose without unnecessary elaboration, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a tool with 3 parameters and no output schema) and lack of annotations, the description is incomplete. It doesn't explain what the tool returns (e.g., a list of terms, locations, suggestions), how results are formatted, or any limitations (e.g., only works with certain file types). For a tool that likely outputs non-trivial results, this leaves significant gaps for an AI agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all three parameters (project_path, scope, limit) with descriptions. The tool description adds no additional meaning beyond what the schema provides, such as how 'scope' relates to 'terms' or what constitutes a 'gap'. With 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find terms mentioned but not explained' clearly states the tool's function with a specific verb ('find') and resource ('terms mentioned but not explained'). It distinguishes itself from siblings like 'check_terminology' or 'track_concept_evolution' by focusing on unexplained terms rather than terminology validation or evolution tracking. However, it doesn't specify the context (e.g., in a manuscript) beyond what the parameters imply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'check_terminology' (which might validate defined terms) or 'track_concept_evolution' (which might track term usage over time), nor does it specify prerequisites or exclusions. Usage is implied only through the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_orphaned_sectionsC
Find sections with no incoming links
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on how it behaves: e.g., whether it's read-only or has side effects, what permissions are required, how results are returned, or any 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.
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 is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of analyzing links and identifying orphaned sections, with no annotations and no output schema, the description is incomplete. It doesn't explain what 'sections' refer to, how 'incoming links' are defined, or what the return format looks like, leaving key contextual gaps for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters ('project_path' and 'scope') with descriptions. The tool description adds no additional meaning or context about these parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find sections with no incoming links' clearly states the tool's purpose with a specific verb ('Find') and resource ('sections'), and it distinguishes what it does (identifying orphaned sections based on link analysis). However, it doesn't explicitly differentiate from sibling tools like 'find_broken_links' or 'analyze_link_graph', which keeps it from 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.
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 'find_broken_links' and 'analyze_link_graph' that might involve link analysis, there's no indication of when this specific tool is appropriate or what prerequisites might be needed, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_todosC
Extract all TODO/FIXME/DRAFT markers
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| markers | No | Markers to search for | |
| group_by | No | Grouping method | |
| limit | No | Maximum results |
TDQS
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 extraction but doesn't disclose how results are returned, whether the operation is read-only, performance characteristics, or error conditions. For a tool with 5 parameters and no output schema, this is inadequate behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - a single sentence that states the core purpose without any wasted words. It's front-loaded with the essential information and earns its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how results are structured, or provide behavioral context needed for proper invocation. The conciseness comes at the expense of necessary completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Extract all TODO/FIXME/DRAFT markers' - a specific verb ('extract') and resource ('markers'). It distinguishes from siblings by focusing on marker extraction rather than other analysis tasks like 'find_broken_links' or 'find_duplicates', though it doesn't explicitly differentiate from similar tools like 'search_content'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. The description doesn't mention context, prerequisites, or exclusions. Given the many sibling tools for content analysis, this represents a significant gap in helping the agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_outlineC
Create hierarchical outline from content
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| depth | No | Outline depth | |
| include_word_counts | No | Include word counts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Create' implies a generative operation, but it doesn't disclose behavioral traits such as whether it modifies files, requires specific permissions, handles errors, or produces output format. This leaves significant gaps for an agent to understand how to invoke it safely and effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasteโ'Create hierarchical outline from content' is front-loaded and directly conveys the core action. Every word earns its place, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a generative tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on output format, error handling, or behavioral context, which are crucial for an agent to use this tool effectively in a content analysis environment with many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds no additional meaning beyond implying content as input, which is already covered by parameters like 'project_path' and 'scope'. Thus, it meets the baseline of 3 without compensating for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create hierarchical outline from content' clearly states the verb ('Create'), resource ('hierarchical outline'), and source ('from content'), making the purpose unambiguous. However, it doesn't explicitly differentiate this outline generation tool from other content analysis tools like 'extract_themes' or 'suggest_reorganization' among the siblings, which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools for content analysis (e.g., 'extract_themes', 'suggest_reorganization'), there's no indication of whether this is for structural overview, planning, or other contexts, nor any prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_progress_reportC
Create progress dashboard
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| target_word_count | No | Target word count goal | |
| scope | No | File scope pattern | |
| include_todos | No | Include TODO count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Create' implies a write operation, but the description doesn't state whether this generates a file, modifies existing data, requires specific permissions, or has side effects. It also doesn't mention output format, persistence, or any rate limits. For a creation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two words. It's front-loaded with the core action and resource. However, it's arguably too brief, bordering on under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of creating a progress dashboard with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the dashboard contains, how it's presented, whether it's saved or temporary, or what the user can expect after invocation. The agent lacks sufficient context to understand the tool's full behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters with clear descriptions. The description adds no additional parameter information beyond what's in the schema. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create progress dashboard' states the action (create) and resource (progress dashboard), but is vague about what a 'progress dashboard' entails. It doesn't specify what metrics or visualizations are included, nor does it differentiate from sibling tools like 'get_writing_stats' or 'track_changes' that might provide related progress information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, appropriate contexts, or exclusions. With many sibling tools that could relate to progress tracking (e.g., 'get_writing_stats', 'track_changes', 'find_todos'), the agent has no indication of when this specific dashboard creation is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_contextC
Get all context for a file (sessions, decisions, mistakes, commits)
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | Yes | File to get context for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves context but doesn't disclose behavioral traits such as whether it's read-only (implied by 'Get'), what format the context is returned in, if there are rate limits, authentication needs, or error conditions. For a tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get all context for a file') and lists the context types without unnecessary words. Every part earns its place, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a tool that retrieves multiple types of context, the description is incomplete. It doesn't explain what 'all context' entails in detail, how results are structured, or potential limitations. For a context-fetching tool with rich sibling tools, more completeness is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (project_path and file_path) with descriptions. The description adds no additional meaning beyond implying 'file_path' is used to identify the target file, but it doesn't explain parameter interactions or provide examples. 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.
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 'all context for a file', specifying the types of context (sessions, decisions, mistakes, commits). It distinguishes from siblings like 'get_session_context' (which focuses on sessions only) and 'track_file_evolution' (which tracks changes over time). However, it doesn't explicitly contrast with all siblings, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a file path), exclusions, or comparisons to siblings like 'get_session_context' (for session-specific data) or 'track_file_evolution' (for historical tracking). 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.
get_requirementsC
Get all requirements or filter by type
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| requirement_type | No | Filter by requirement type | |
| enforced_only | No | Show only enforced requirements |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves requirements but doesn't describe the return format (e.g., list, structured data), pagination, error conditions, or permissions needed. For a read tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core purpose ('Get all requirements') and adds optional functionality ('or filter by type') without unnecessary details. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 3 parameters, the description is incomplete. It doesn't explain what 'requirements' entail (e.g., metadata, constraints), how results are structured, or error handling. For a tool that likely returns complex data (requirements with types and enforcement status), more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (project_path, requirement_type, enforced_only) with descriptions and an enum for requirement_type. The description adds no additional parameter semantics beyond what the schema provides, such as explaining how filters interact or default behaviors. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all requirements or filter by type' specifies the verb (get) and resource (requirements) with optional filtering. It distinguishes itself from siblings like 'set_requirement' (write vs. read) but doesn't explicitly differentiate from other read tools like 'get_file_context' or 'get_session_context' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a project_path), exclusions, or compare it to other tools for retrieving requirements or context. Usage is implied by the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_contextC
Get detailed context for a specific file or concept from past sessions
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | No | File to get session context for | |
| limit | No | Maximum sessions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieving 'detailed context' but doesn't specify what that includes (e.g., metadata, content snippets, timestamps), whether it's read-only or has side effects, or any limitations like rate limits or authentication needs. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It avoids redundancy and waste, making it easy to parse, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of retrieving session context, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed context' includes, how results are structured, or any behavioral traits, leaving the agent with insufficient information to use the tool effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying that parameters relate to fetching session context, but it doesn't clarify interactions between parameters (e.g., if 'file_path' is required when 'project_path' is set). Baseline 3 is appropriate as the schema handles most of the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Get detailed context for a specific file or concept from past sessions', which provides a clear verb ('Get') and resource ('context'), but it's vague about what 'context' entails and doesn't differentiate from siblings like 'get_file_context' or 'recall_writing_session'. It specifies the scope ('from past sessions') but lacks precision on the nature of the context returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_file_context' or 'recall_writing_session'. The description implies usage for retrieving session-based context but offers no explicit when/when-not instructions or prerequisites, leaving the agent to infer usage from the name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_writing_statsC
Overall project statistics
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| scope | No | File scope pattern | |
| breakdown_by | No | Breakdown method |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Overall project statistics' implies a read-only operation that aggregates data, but it doesn't specify whether this requires file access permissions, what format the statistics are returned in, or if there are any rate limits or performance considerations. The description is too brief to provide meaningful behavioral context beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just three words, front-loaded with the core purpose. There is zero wasted language or redundancy. While it may be under-specified, it earns full marks for conciseness as every word ('Overall', 'project', 'statistics') contributes directly to the tool's intent without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what statistics are returned, how they're formatted, or any behavioral traits. While the schema covers parameters, the lack of output schema means the description should ideally hint at return values, but it doesn't. This leaves significant gaps for an AI agent to understand the tool's full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (project_path, scope, breakdown_by) with descriptions and an enum for breakdown_by. The description adds no additional meaning beyond what's in the schemaโit doesn't explain how parameters interact or provide examples. With high schema coverage, the baseline score of 3 is appropriate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Overall project statistics' states what the tool provides (statistics) but is vague about the specific resource and verb. It mentions 'project' which aligns with the 'project_path' parameter, but doesn't specify what kind of statistics (e.g., word count, writing metrics) or how they relate to writing/manuscripts. It distinguishes from siblings by focusing on statistics rather than analysis or editing, but lacks precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons to sibling tools like 'generate_progress_report' or 'track_changes' that might offer related functionality. The agent must infer usage from the name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holistic_searchC
Unified search across all memory layers (content, decisions, mistakes, concepts, sessions, commits)
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| query | Yes | Search query | |
| layers | No | Memory layers to search (default: all) | |
| start_date | No | Filter results after this date (ISO format or relative) | |
| end_date | No | Filter results before this date (ISO format or relative) | |
| limit | No | Maximum results to return | |
| min_relevance | No | Minimum relevance score (0-1) |
TDQS
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 but provides minimal information. It mentions 'unified search' but doesn't describe what the search returns, how results are ranked, whether it's read-only or has side effects, or any performance considerations. The description is too brief to adequately inform agent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that efficiently communicates the core functionality. It's front-loaded with the main purpose and includes the complete list of searchable layers. Every word serves a purpose with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex search tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the search returns, how results are formatted, whether there are limitations or constraints, or how this differs from sibling search tools. The description leaves too many behavioral questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation entirely through the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Unified search across all memory layers' with specific layers enumerated (content, decisions, mistakes, concepts, sessions, commits). It uses a specific verb ('search') and resource ('memory layers'), but doesn't explicitly differentiate from sibling tools like 'search_content' or 'search_similar_mistakes'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple search-related sibling tools (search_content, search_similar_mistakes, find_related_sections, etc.), there's no indication of when this unified search is preferred over more specific search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_commits_to_sessionsC
Link git commits to writing sessions for context
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| since | No | Start date (ISO format or relative) | |
| limit | No | Maximum commits to process |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions linking commits to sessions 'for context' but doesn't explain what this linking entails (e.g., does it create associations, update databases, or just analyze?), what permissions are needed, whether it's read-only or mutative, or what output to expect. This leaves significant gaps for a tool that likely involves data processing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for the tool's apparent complexity and is front-loaded with the core action, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain the behavioral aspects (e.g., what 'linking' means operationally, whether it's safe or destructive), the expected output format, or how it integrates with sibling tools. For a tool with three parameters and no structured safety hints, this leaves too much unspecified for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional meaning about the parameters beyond what's in the schema, such as how 'since' and 'limit' affect the linking process. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'link' and the resources 'git commits' and 'writing sessions', providing a specific purpose. However, it doesn't distinguish this tool from sibling tools like 'track_changes' or 'track_concept_evolution' that might also involve commit analysis, missing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'track_changes' and 'track_concept_evolution' that might overlap in analyzing commits, there's no indication of when this linking operation is preferred or what specific context it serves beyond the vague 'for context'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_writing_decisionsC
List writing decisions by file, type, or date range
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | No | Filter decisions for this file | |
| decision_type | No | Filter by decision type | |
| limit | No | Maximum decisions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions filtering capabilities but fails to describe key behaviors such as pagination (implied by 'limit' parameter), default sorting, error handling, or what constitutes a 'writing decision'. For a list operation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely conciseโa single sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main action ('list writing decisions') and immediately specifies filtering options. Every part of the sentence earns its place, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of listing decisions with filtering, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, what a 'writing decision' entails, or how results are structured. For a tool with 4 parameters and behavioral unknowns, more context is needed to ensure the agent can use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all parameters. The description adds minimal value by hinting at filtering options ('by file, type, or date range'), but it doesn't provide additional semantics beyond the schema. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, though the description could have elaborated on parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing writing decisions with filtering capabilities by file, type, or date range. It uses specific verbs ('list') and resources ('writing decisions'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'recall_writing_session' or 'track_changes', which might have overlapping functionality, preventing 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.
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 many sibling tools available (e.g., 'recall_writing_session', 'track_changes'), there's no indication of context, prerequisites, or exclusions. This lack of comparative guidance leaves the agent to infer usage, which is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_mistakeC
Record a writing mistake to avoid repeating it
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | Yes | File where mistake occurred | |
| line_range | No | Line range (e.g., '45-52') | |
| mistake_type | Yes | Type of mistake | |
| description | Yes | Description of the mistake | |
| correction | No | How it should be corrected |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Record' implies a write operation, the description doesn't specify where mistakes are stored, whether they're permanent or temporary, if they're visible to other users, or what happens when the same mistake is recorded multiple times. For a mutation tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the core purpose without any wasted words. It's appropriately sized for a tool with this level of complexity and gets straight to the point with zero unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after recording a mistake - whether there's confirmation, where the data is stored, how it can be retrieved, or what the tool returns. With 6 parameters and a write operation, more context about the tool's behavior and outcomes is needed for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are well-documented in the schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema - it doesn't explain relationships between parameters, provide examples of valid inputs, or clarify edge cases. With complete schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('Record') and resource ('writing mistake'), making it immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'track_changes' or 'list_writing_decisions' that might also involve recording or tracking writing-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available for writing analysis and tracking, there's no indication of when 'mark_mistake' is appropriate versus tools like 'track_changes', 'find_duplicates', or 'check_before_edit'. The description simply states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_writing_sessionC
Search writing session history by date range or query
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| start_date | No | Start date (ISO format or relative like '1 week ago') | |
| end_date | No | End date (ISO format) | |
| file_path | No | Filter sessions that touched this file | |
| limit | No | Maximum sessions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool searches history but doesn't describe what 'writing session history' entails, how results are returned (e.g., format, pagination), or any limitations (e.g., rate limits, permissions). This leaves significant gaps for a search tool with 5 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It effectively communicates the tool's function in a compact form, earning its place with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits, result format, and usage context, making it inadequate for an agent to fully understand how to invoke and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional meaning beyond implying date range and query-based search, which is already covered by the schema's parameter descriptions. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Search writing session history by date range or query', specifying the verb 'search' and resource 'writing session history'. It distinguishes itself from siblings like 'get_writing_stats' or 'link_commits_to_sessions' by focusing on search functionality, though it doesn't explicitly differentiate from 'search_content' or 'holistic_search' which might overlap in search operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare to sibling tools like 'search_content' or 'get_session_context', leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_contentC
Semantic search across all manuscript content
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| query | Yes | Search query | |
| scope | No | File scope pattern (e.g., 'chapters/*.md') | |
| limit | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'search' implies a read-only operation, it doesn't address important aspects like performance characteristics, result format, error conditions, or whether this is a local vs remote search. The description is too minimal for a tool with 4 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 4 parameters and no output schema, the description is insufficient. It doesn't explain what 'semantic search' means in this context, what kind of results to expect, or how results are ranked/returned. Given the complexity of search operations and lack of output schema, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the schema. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('semantic search') and target resource ('all manuscript content'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from 'holistic_search' or other search-related siblings in the list, 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.
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 'holistic_search' or other content-finding tools in the sibling list. It lacks any context about appropriate use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_similar_mistakesC
Search for similar mistakes to avoid repeating them
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| description | Yes | Description to search for similar mistakes | |
| limit | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'search' but doesn't clarify what constitutes a 'mistake', how results are returned (e.g., format, ranking), or any limitations like performance or scope. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any redundant words. It is appropriately sized and front-loaded, making it easy to parse quickly, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., list of mistakes, error messages) or provide enough context about the search mechanism, making it inadequate for an agent to fully understand how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all three parameters (project_path, description, limit) with their types and defaults. The description adds no additional meaning beyond what the schema provides, such as explaining how the description parameter is used in the search or what 'similar' entails, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as searching for similar mistakes to avoid repetition, which is a specific action. However, it doesn't explicitly differentiate from sibling tools like 'find_duplicates' or 'find_concept_contradictions', which might have overlapping functionality, so it doesn't achieve 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.
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 any prerequisites, exclusions, or specific contexts, leaving the agent to infer usage based on the tool name alone, which is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_requirementC
Store a publisher or style requirement
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| requirement_type | Yes | Type of requirement | |
| description | Yes | Description of the requirement | |
| value | No | Target value (e.g., '50000' for word count) | |
| enforced | No | Whether this requirement is enforced |
TDQS
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 'Store' without clarifying behavioral aspects. It doesn't mention if this is a create/update operation, permission requirements, side effects, or response format, which are critical 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior, error handling, or return values, leaving significant gaps for an AI agent to understand how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying storage of requirements, aligning with the baseline score when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Store') and resource ('publisher or style requirement'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'get_requirements' or 'add_style_decision', which would require more specificity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_requirements' (for retrieval) or 'add_style_decision' (for style-related actions). The description lacks context about prerequisites, timing, or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_cross_referencesC
Suggest where to add links between sections
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| min_similarity | No | Minimum similarity threshold | |
| exclude_existing_links | No | Exclude existing links |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'suggest' but doesn't clarify if this is a read-only analysis, whether it modifies data, what permissions are needed, or how results are returned. This is inadequate for a tool with parameters and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without any fluff or redundancy. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of suggesting cross-references and the lack of annotations and output schema, the description is insufficient. It doesn't explain what the tool returns, how suggestions are prioritized, or any behavioral traits, leaving significant gaps for the agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents the three parameters (project_path, min_similarity, exclude_existing_links). The description adds no additional meaning beyond what the schema provides, such as explaining how similarity is calculated or what 'links' refer to, but this is acceptable given the high schema coverage, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as suggesting where to add links between sections, which is a specific action (suggest) on a resource (links between sections). However, it doesn't explicitly differentiate from sibling tools like 'find_related_sections' or 'analyze_link_graph', which might have overlapping functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to links and sections (e.g., 'find_related_sections', 'analyze_link_graph', 'find_broken_links'), there is no indication of context, prerequisites, or exclusions, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_reorganizationC
Suggest better content organization
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| current_structure | No | Description of current structure | |
| optimization | No | Optimization goal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Suggest' implies a read-only, advisory operation, but the description doesn't clarify if it modifies files, requires specific permissions, has side effects, or provides output format. For a tool with 3 parameters and no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose and appropriately sized for a tool with clear parameters in the schema. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like what the suggestion output looks like, potential limitations, or how it interacts with the manuscript directory. For a tool that likely provides advisory content reorganization, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema itself. The description adds no additional meaning about parameters beyond what's in the schema (e.g., it doesn't explain 'optimization' goals like 'coherence' vs 'flow'). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Suggest better content organization' states a general purpose but lacks specificity. It mentions the action ('suggest') and resource ('content organization'), but doesn't specify what type of content (manuscript files based on schema) or how it differs from similar tools like 'validate_structure' or 'generate_outline' in the sibling list. The purpose is clear but vague about scope and differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'validate_structure', 'generate_outline', and 'find_related_sections' that might overlap in content organization tasks, the description offers no context about appropriate use cases, prerequisites, or exclusions. Usage is implied from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_reference_chainC
Follow concept through linked documents
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| start_file | Yes | Starting file | |
| end_file | Yes | Target file | |
| concept | No | Concept to track |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Follow concept through linked documents' but doesn't explain what the tool does operationally (e.g., returns a chain of references, analyzes connections, requires specific file formats). For a tool with 4 parameters and no annotations, this is a significant gap in describing behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Follow concept through linked documents') that is front-loaded and wastes no words. However, it may be overly concise given the tool's complexity, as it doesn't provide enough context for effective use without additional information from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how it handles linked documents, or behavioral aspects like error conditions. With rich sibling tools and no output schema, more detail is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters (project_path, start_file, end_file, concept). The description adds no additional meaning about parameters beyond what the schema provides, such as explaining relationships between them or usage nuances. Baseline 3 is appropriate when the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Follow concept through linked documents' states a general purpose but lacks specificity. It mentions a verb ('Follow') and resource ('linked documents') but doesn't clarify what 'follow' entails (e.g., tracing references, analyzing connections) or how it differs from sibling tools like 'track_concept_evolution' or 'find_related_sections'. The purpose is vague rather than clearly distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description implies usage for tracking concepts across documents, but it doesn't specify contexts, prerequisites, or exclusions. With many sibling tools (e.g., 'track_concept_evolution', 'find_related_sections'), the lack of differentiation leaves the agent without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_changesC
Show what changed since timestamp
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| since | No | Timestamp or relative time | |
| scope | No | File scope pattern | |
| summary_level | No | Summary detail level | file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool shows changes but fails to describe key behaviors like output format (e.g., list of files, diff summaries), pagination, rate limits, or authentication needs. This leaves significant gaps for an agent to understand how the tool operates beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence ('Show what changed since timestamp'), which is front-loaded and wastes no words. Every part of the sentence directly contributes to understanding the tool's purpose, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, and no annotations), the description is incomplete. It lacks details on behavioral traits, output format, and usage context, which are crucial for an agent to invoke it correctly. The high schema coverage doesn't compensate for these gaps in overall tool understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing details for all parameters. The description adds no additional semantic meaning beyond implying a 'since' parameter for timestamp filtering, which is already covered in the schema. Thus, it meets the baseline score of 3, as the schema adequately documents parameters without extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Show') and resource ('what changed'), indicating it displays modifications. However, it doesn't explicitly differentiate from siblings like 'track_concept_evolution' or 'track_file_evolution', which might have overlapping functionality, leaving some ambiguity in sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'track_concept_evolution' or 'track_file_evolution', nor does it mention prerequisites or exclusions. It only implies usage based on needing to see changes since a timestamp, which is insufficient for informed tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_concept_evolutionC
Track how a concept's definition evolved over time
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| concept_name | Yes | Name of the concept to track |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool tracks evolution over time, implying a read operation, but doesn't specify what data it returns (e.g., timeline, changes), whether it requires specific file formats, or any limitations (e.g., rate limits, performance). This is inadequate 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.
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 unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a timeline, list of changes) or behavioral aspects like error handling. For a tool that likely processes manuscript data, more context on inputs and outputs is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('project_path' and 'concept_name') with descriptions. The description adds no additional meaning beyond implying the tool uses 'concept_name' for tracking, which is redundant. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: tracking how a concept's definition evolves over time. It specifies the verb 'track' and the resource 'concept's definition', making it understandable. However, it doesn't explicitly differentiate from siblings like 'track_file_evolution' or 'find_concept_contradictions', which could have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., for manuscript analysis), or exclusions. With many sibling tools (e.g., 'track_file_evolution', 'find_concept_contradictions'), the lack of differentiation leaves the agent guessing about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_file_evolutionC
Show how a file evolved through git commits with rationale
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | Yes | File to track evolution for | |
| limit | No | Maximum commits to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool will 'show how a file evolved' and include 'rationale', it doesn't describe what format the output takes, whether it requires git repository access, what happens with large files or repositories, or any performance considerations. The description is too vague about actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 8 words, with zero wasted language. It's front-loaded with the core purpose and includes the unique 'rationale' aspect. Every word earns its place in this minimal but complete statement of function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the output looks like (critical for a 'show' tool), doesn't mention git-specific requirements or behaviors, and provides no context about the 'rationale' aspect. The description leaves too many unanswered questions about how the tool actually works.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the schema descriptions. The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('show') and resource ('file evolution through git commits'), and it adds the unique aspect of 'rationale' which distinguishes it from generic git history tools. However, it doesn't explicitly differentiate from sibling tools like 'track_changes' or 'track_concept_evolution', which have similar naming patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this tool is appropriate, what prerequisites might be needed, or how it differs from sibling tools like 'track_changes' or 'track_concept_evolution' that appear to have related functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_structureC
Check heading hierarchy and section balance
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| file_path | No | Specific file to validate | |
| checks | No | Checks to run (heading-levels, duplicates, balance, deep-nesting) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does ('Check heading hierarchy and section balance') but doesn't reveal critical traits like whether it's read-only or mutative, what permissions are needed, how results are returned, or any rate limits. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just five words ('Check heading hierarchy and section balance'), with zero wasted language. It's front-loaded with the core action and resources, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no annotations, no output schema), the description is insufficiently complete. It lacks information on behavioral traits, output format, error handling, and how it integrates with sibling tools. For a validation tool with multiple parameters and no structured output, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters ('project_path', 'file_path', 'checks') with clear descriptions. The tool description adds no additional parameter semantics beyond what's in the schema, such as explaining the 'checks' array values in more detail. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check heading hierarchy and section balance' clearly states the tool's function with specific verbs ('Check') and resources ('heading hierarchy', 'section balance'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this validation tool from similar siblings like 'check_readability' or 'find_duplicates', 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.
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 many sibling tools performing various checks (e.g., 'check_readability', 'find_duplicates', 'find_gaps'), the agent receives no indication of whether this is for structural validation specifically or how it complements other tools, leaving usage context entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes focused on different aspects of writing analysis and project management, such as link analysis (analyze_link_graph), consistency checking (check_terminology), and evolution tracking (track_concept_evolution). However, some tools like 'search_content' and 'holistic_search' could potentially overlap in function, and 'get_file_context' and 'get_session_context' might be confused for similar context retrieval tasks, though their descriptions help differentiate them.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include 'add_style_decision', 'check_readability', 'find_duplicates', 'generate_outline', and 'track_changes'. This predictability makes it easy for agents to understand and select tools based on their naming conventions.
With 34 tools, the count feels excessive for a writing aid server, leading to potential overwhelm and redundancy. While the domain is broad (covering analysis, tracking, and management), many tools could be consolidated (e.g., multiple search and tracking functions), making the set feel heavy and less scoped than ideal for efficient agent use.
The tool set provides comprehensive coverage for writing and project management, including CRUD-like operations (e.g., 'set_requirement', 'mark_mistake'), analysis (e.g., 'check_readability', 'extract_themes'), tracking (e.g., 'track_changes', 'track_concept_evolution'), and search functionalities. There are no obvious gaps; agents can perform end-to-end workflows from planning to validation without dead ends.
Maintenance
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
Markdown workspace for AI agents: read, write, organize, and share markdown documents.
MCP-native collaborative markdown editor with real-time AI document editing
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with the ability to lint, validate, and auto-fix Markdown files to ensure compliance with established Markdown standards and best practices.6MIT
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive content management through Markdown processing, HTML rendering, intelligent fuzzy search, and document analysis. Supports frontmatter parsing, tag-based filtering, table of contents generation, and directory statistics for efficient content organization and discovery.193MIT
- AlicenseNot gradedqualityDmaintenanceEnables intelligent Markdown document analysis including extracting table of contents with hierarchy, detecting numbering issues like duplicates and discontinuities, and generating formatted TOC content in multiple output formats.1Apache 2.0
- AlicenseCqualityNot gradedmaintenanceProvides semantic editing tools for Markdown files, allowing structured manipulation of document elements through hierarchical paths rather than raw text operations. Supports navigation, search, content replacement, element insertion/deletion, undo functionality, and YAML frontmatter management.152
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/xiaolai/claude-writers-aid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server