Skip to main content
Glama

Knowledge MCP Server

TypeScript Tests License MCP Compatible

A production-ready Model Context Protocol (MCP) server that provides centralized knowledge management for AI assistants. Features project-specific documentation, searchable knowledge bases, integrated TODO management, and Git-backed version control for persistent AI memory across sessions.

🚀 Features

  • 📝 Project Knowledge Management: Centralized storage for project instructions and documentation

  • 🔍 Advanced Search: Full-text search across all knowledge documents with contextual results

  • 📋 TODO System: Built-in task management with markdown support and progress tracking

  • 🔐 Security-First: Comprehensive input validation, path sanitization, and abstraction boundaries

  • ⚡ High Performance: Optimized for concurrent operations with sophisticated file locking

  • 📊 Request Tracing: Unique trace IDs for debugging and monitoring

  • 🔄 Git Integration: Automatic version control with descriptive commit messages

  • 🧪 Battle-Tested: 133 comprehensive tests covering all functionality and edge cases

Related MCP server: Memory Bank MCP

📦 Installation

npm install -g @spothlynx/knowledge-mcp

From Source

git clone https://github.com/sven-borkert/knowledge-mcp.git
cd knowledge-mcp
pnpm install
pnpm run build
npm link

🛠️ Usage

MCP Client Configuration

Add to your MCP client configuration:

{
  "mcpServers": {
    "knowledge": {
      "command": "knowledge-mcp",
      "args": []
    }
  }
}

Claude Desktop Configuration

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Direct Execution

# Start the MCP server
knowledge-mcp

# Development mode with auto-reload
pnpm run dev

🤖 AI Assistant Configuration

For comprehensive usage instructions, copy the contents of INSTRUCTIONS.md to your global instruction file (e.g., ~/.claude/CLAUDE.md).

This will enable Claude Code to automatically use the Knowledge MCP for all project knowledge management.

Knowledge is organized as:

~/.knowledge-mcp/
├── index.json                 # Project name mapping
├── activity.log              # Request logs (gitignored)
└── projects/
    └── {project-slug}/       # Auto-detected from git/directory
        ├── main.md           # Project instructions
        ├── knowledge/        # Knowledge documents
        │   ├── api-guide.md
        │   └── architecture.md
        └── TODO/             # TODO lists
            └── 1/            # TODO #1
                ├── index.md  # TODO metadata
                └── tasks/    # Individual task files

⚠️ IMPORTANT CONSTRAINTS

  • Project ID auto-detected from git repo or current directory name

  • All paths are sanitized - no ../ or absolute paths

  • Keywords must be alphanumeric + dots, underscores, hyphens

  • Maximum 50 chapters per document

  • File extension .md required for knowledge files

  • Section headers must include ## prefix (e.g., "## Configuration")

  • All changes auto-commit with descriptive messages

  • Storage syncs with origin/main if git remote configured

🔍 ERROR CODES

Common errors and their meanings:

  • PROJECT_NOT_FOUND: Project doesn't exist yet (use update_project_main to create)

  • DOCUMENT_NOT_FOUND: Knowledge file not found

  • FILE_ALREADY_EXISTS: File/chapter already exists (use update instead)

  • CHAPTER_NOT_FOUND: Chapter title not found in document

  • SECTION_NOT_FOUND: Section header not found in main.md

  • TODO_NOT_FOUND: TODO list doesn't exist

  • INVALID_INPUT: Parameters failed validation

  • FILE_SYSTEM_ERROR: File operation failed

  • GIT_ERROR: Git operation failed

Each error includes a traceId for debugging.


## 📦 Client-Specific Configuration

### Claude Code

```bash
# For global scope (all projects) - ensures latest version is always used
claude mcp add knowledge-mcp npx -- -y @spothlynx/knowledge-mcp@latest

# For current project only
claude mcp add --scope project knowledge-mcp npx -- -y @spothlynx/knowledge-mcp@latest

# For development (using local build)
claude mcp add knowledge-mcp node "$(pwd)/dist/knowledge-mcp/index.js"

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "knowledge": {
      "command": "npx",
      "args": ["-y", "@spothlynx/knowledge-mcp@latest"]
    }
  }
}

Generic MCP Configuration

For other MCP-compatible clients:

{
  "mcpServers": {
    "knowledge-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@spothlynx/knowledge-mcp@latest"],
      "env": {}
    }
  }
}

🔄 Version Management

Why Use @latest and -y Flags

  • -y flag: Automatically accepts npx installation prompt without user interaction

  • @latest tag: Forces npx to fetch the newest version instead of using cached versions

Important: NPX caches packages indefinitely. Without @latest, you might run outdated versions.

Updating to Latest Version

# Remove and re-add to ensure latest version
claude mcp remove knowledge-mcp
claude mcp add knowledge-mcp npx -- -y @spothlynx/knowledge-mcp@latest

Configuration Precedence

Most MCP clients support multiple configuration levels:

  1. User-level (Global): Applies to all projects

  2. Project-level: Applies to current project only

  3. Configuration files: Manual configuration files

Higher-level configurations typically override lower-level ones.

🛡️ Environment Configuration

Environment Variables

  • KNOWLEDGE_MCP_HOME: Storage directory (default: ~/.knowledge-mcp)

  • KNOWLEDGE_MCP_LOG_LEVEL: Log level: ERROR, WARN, INFO, DEBUG (default: INFO)

Automatic Project Identification

The Knowledge MCP automatically identifies projects based on:

  • Git repositories: Uses repository name from git remote URL

  • Non-git directories: Uses current directory name

Example: /path/to/my-awesome-project/.git → project_id = "my-awesome-project"

Storage Structure

~/.knowledge-mcp/
├── .git/                      # Git repository (auto-initialized)
├── index.json                 # Project name mapping
├── activity.log              # Request activity log (gitignored)
└── projects/
    └── my-app/
        ├── main.md            # Project instructions (centralized, not in repo)
        ├── knowledge/
        │   ├── api-guide.md   # Structured knowledge documents
        │   └── architecture.md
        └── TODO/              # TODO lists for the project
            ├── 1/             # First TODO list
            │   ├── index.md   # TODO metadata
            │   └── tasks/     # Individual task files
            └── 2/             # Second TODO list

Enable automatic cloud backup:

# 1. Create repository on GitHub/GitLab
# 2. Configure remote
cd ~/.knowledge-mcp
git remote add origin https://github.com/yourusername/knowledge-mcp-backup.git
git push -u origin main

# 3. Set up authentication (SSH recommended)
git remote set-url origin git@github.com:yourusername/knowledge-mcp-backup.git

⚠️ Important: On startup, Knowledge MCP pulls from origin/main and overwrites local changes.

📚 API Reference

Core Tools

Project Management

  • get_project_main(project_id) - Retrieve main project instructions

  • update_project_main(project_id, content) - Update project instructions

  • update_project_section(project_id, section_header, new_content) - Update specific section

  • add_project_section(project_id, section_header, content, position?, reference_header?) - Add new section

  • remove_project_section(project_id, section_header) - Remove section

  • delete_project(project_id) - Delete entire project

Knowledge Documents

  • create_knowledge_file(project_id, filename, title, introduction, keywords, chapters) - Create structured document

  • get_knowledge_file(project_id, filename) - Retrieve complete document

  • delete_knowledge_file(project_id, filename) - Delete document

  • update_chapter(project_id, filename, chapter_title, new_content, new_summary?) - Update chapter

  • add_chapter(project_id, filename, chapter_title, content, position?, reference_chapter?) - Add chapter

  • remove_chapter(project_id, filename, chapter_title) - Remove chapter

Chapter Iteration

  • list_chapters(project_id, filename) - List all chapters (titles and summaries only)

  • get_chapter(project_id, filename, chapter_title | chapter_index) - Get single chapter content

  • get_next_chapter(project_id, filename, current_chapter_title | current_index) - Get next chapter

Search & Discovery

  • search_knowledge(project_id, query) - Full-text search across all documents

TODO Management

  • list_todos(project_id) - List all TODO lists

  • create_todo(project_id, description, tasks?) - Create new TODO list

  • get_todo_tasks(project_id, todo_number) - Get tasks in TODO list

  • add_todo_task(project_id, todo_number, title, content?) - Add task

  • complete_todo_task(project_id, todo_number, task_number) - Mark task complete

  • get_next_todo_task(project_id, todo_number) - Get next incomplete task

  • remove_todo_task(project_id, todo_number, task_number) - Remove task

  • delete_todo(project_id, todo_number) - Delete entire TODO list

Server Operations

  • get_server_info() - Get server version and configuration

  • get_storage_status() - Get Git repository status

  • sync_storage() - Force Git commit and sync

Resources

The server provides read-only resources for browsing:

  • knowledge://projects/{project_id}/main - Project main instructions

  • knowledge://projects/{project_id}/files - List of knowledge files

  • knowledge://projects/{project_id}/chapters/{filename} - Chapter listings

🏗️ Architecture

Storage Structure

~/.knowledge-mcp/
├── index.json                 # Project name to directory mapping
├── activity.log              # Request activity log (gitignored)
└── projects/
    └── {project-slug}/        # Slugified project directory
        ├── main.md            # Main project instructions
        ├── knowledge/         # Knowledge documents
        │   └── *.md           # Individual knowledge files
        └── TODO/              # TODO lists
            └── {number}/      # Numbered TODO directories
                ├── index.md   # TODO metadata
                └── tasks/     # Individual task files
                    └── *.md

Security Features

  • Path Validation: Prevents directory traversal attacks

  • Input Sanitization: Comprehensive validation with Zod schemas

  • Abstraction Boundaries: Internal paths never exposed to clients

  • Atomic Operations: File operations use temp-file + rename pattern

  • Request Tracing: Unique trace IDs for all operations

Concurrency & Performance

  • File Locking: Queue-based locking prevents race conditions

  • Atomic Updates: All file operations are atomic

  • Efficient Search: Optimized full-text search with result limiting

  • Memory Management: Controlled memory usage for large documents

🧪 Testing

The project includes comprehensive test coverage:

# Run all tests
pnpm run test:all

# Run specific test suite
npx tsx test/suites/01-project-main.test.ts

# Generate HTML test report
pnpm run test:all && open test-results/html/merged-results.html

Test Coverage

  • 133 tests across 11 comprehensive test suites

  • 100% success rate in CI/CD pipeline

  • Edge cases including concurrency, unicode, and error conditions

  • Security tests for abstraction boundaries and input validation

  • Performance tests for high-load scenarios

🔧 Development

Prerequisites

  • Node.js 18+

  • pnpm (recommended) or npm

  • TypeScript 5.7+

Development Workflow

# Install dependencies
pnpm install

# Start development server with auto-reload
pnpm run dev

# Build for production
pnpm run build

# Run type checking
pnpm run type-check

# Run linter
pnpm run lint

# Format code
pnpm run format

# Run all quality checks
pnpm run analyze

Code Quality

The project enforces high code quality standards:

  • TypeScript: Strict mode with comprehensive type checking

  • ESLint: Comprehensive linting with TypeScript support

  • Prettier: Consistent code formatting

  • Static Analysis: Zero warnings policy

  • Test Coverage: All functionality thoroughly tested

📖 Documentation

🐛 Troubleshooting

Common Issues

  1. "spawn npx ENOENT" or "Connection closed"

    # Remove and re-add to ensure latest version
    claude mcp remove knowledge-mcp
    claude mcp add knowledge-mcp npx -- -y @spothlynx/knowledge-mcp@latest
  2. Permission errors

    # Ensure storage directory exists and is writable
    mkdir -p ~/.knowledge-mcp
    chmod 755 ~/.knowledge-mcp
  3. NPX cache issues

    # Clear NPX cache if using published version
    rm -rf ~/.npm/_npx
    
    # Reinstall with @latest
    claude mcp remove knowledge-mcp
    claude mcp add knowledge-mcp npx -- -y @spothlynx/knowledge-mcp@latest
  4. Version conflicts

    # Check all configuration scopes
    claude mcp list
    
    # Remove from all scopes and re-add
    claude mcp remove knowledge-mcp -s global
    claude mcp remove knowledge-mcp -s project
    claude mcp add knowledge-mcp npx -- -y @spothlynx/knowledge-mcp@latest

Debugging with Logs

# View MCP logs (location varies by client)
# For Claude Code:
ls ~/Library/Caches/claude-cli-nodejs/*/mcp-logs-knowledge-mcp/

# View activity logs with trace IDs
tail -f ~/.knowledge-mcp/activity.log

# Check Git repository status
cd ~/.knowledge-mcp && git status

Error Codes

The Knowledge MCP uses standardized error codes for debugging:

  • PROJECT_NOT_FOUND - Project doesn't exist yet (call update_project_main to create)

  • DOCUMENT_NOT_FOUND - Knowledge file not found

  • FILE_ALREADY_EXISTS - File already exists (use update instead of create)

  • SECTION_NOT_FOUND - Section header not found in document

  • SECTION_ALREADY_EXISTS - Section header already exists

  • INVALID_INPUT - Invalid parameters (check Zod validation errors)

  • TODO_NOT_FOUND - TODO list doesn't exist

  • TODO_TASK_NOT_FOUND - Task not found in TODO list

  • FILE_SYSTEM_ERROR - File operation failed

  • GIT_ERROR - Git operation failed

Each error includes a unique traceId for debugging. Search logs using: grep "traceId" ~/.knowledge-mcp/activity.log

Verifying Installation

# Check if Knowledge MCP is properly configured
claude mcp list | grep knowledge-mcp

# Test basic functionality (if using Claude Code)
# Should return server information
/mcp knowledge get_server_info

# Verify storage directory
ls -la ~/.knowledge-mcp/

Performance Issues

If experiencing slow performance:

  1. Large knowledge base: Consider splitting large documents

  2. Git repository size: Archive old projects or use shallow clones

  3. Concurrent operations: File locking ensures safety but may slow bulk operations

  4. Search performance: Use specific keywords instead of broad queries

See Error Handling Guide for detailed debugging information.

🤝 Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/amazing-feature

  3. Make your changes and add tests

  4. Ensure all tests pass: pnpm run test:all

  5. Run quality checks: pnpm run analyze

  6. Commit your changes: git commit -m 'Add amazing feature'

  7. Push to the branch: git push origin feature/amazing-feature

  8. Open a Pull Request

Development Standards

  • All new features must include comprehensive tests

  • Code must pass all static analysis checks

  • Documentation must be updated for API changes

  • Security considerations must be addressed

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Model Context Protocol - For the excellent MCP specification

  • TypeScript Community - For outstanding tooling and ecosystem

  • Contributors - For making this project better

📞 Support


Built with ❤️ using TypeScript and the Model Context Protocol

Available Tools

27 tools
add_chapterAdd ChapterA

Add a new chapter to an existing knowledge document with positioning control.

When to use this tool:

  • Expanding document with new topics

  • Adding examples or case studies

  • Including additional reference material

  • Inserting clarifying chapters

  • Growing documentation organically

Key features:

  • Flexible positioning (before/after/end)

  • Maintains document flow

  • Maximum 50 chapters per document

  • Reference-based positioning

You should:

  1. Choose clear, descriptive chapter titles

  2. Position chapter logically in document flow

  3. Keep chapters focused on single topics

  4. Use reference_chapter for precise placement

  5. Consider reader's journey through document

  6. Check current chapter count (max 50)

  7. Include practical, actionable content

DO NOT use when:

  • Chapter already exists

  • Document has 50 chapters already

  • Content belongs in existing chapter

Position options: "before", "after", "end" (default) Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
chapter_titleYesTitle for the new chapter
contentYesContent for the new chapter
filenameYesKnowledge file name (must include .md extension)
positionNoWhere to insert the chapter (default: "end")
project_idYesThe project identifier
reference_chapterNoThe chapter title to use as reference point for before/after positioning

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: maximum 50 chapters per document constraint, positioning options with default value, and return format structure. It also mentions 'Maintains document flow' as a behavioral characteristic. The only gap is lack of explicit mention about whether this is a write/mutation operation.

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

Conciseness3/5

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

The description is well-structured with clear sections but contains some redundancy. The 'Position options' line repeats what's in the schema enum, and the 7-point 'You should' list includes some generic advice ('Include practical, actionable content') that doesn't add tool-specific value. However, it's front-loaded with the core purpose.

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

Completeness4/5

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

For a mutation tool with no annotations and no output schema, the description does well by explaining the return format, constraints (max 50 chapters), and behavioral context. It could be more complete by explicitly stating this is a write operation and mentioning potential error conditions beyond what's implied in the return format.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema: explains the purpose of 'reference_chapter' for precise placement, clarifies that position options are for 'before/after/end' (though schema already has enum), and provides guidance on how to use parameters effectively (e.g., 'Choose clear, descriptive chapter titles').

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

Purpose5/5

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

The description clearly states the specific action ('Add a new chapter to an existing knowledge document') and distinguishes it from siblings like 'create_knowledge_file' (creates new file) and 'update_chapter' (modifies existing chapter). It includes the key differentiator of 'positioning control' which is not present in other tools.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' with 5 specific use cases and 'DO NOT use when' with 3 clear exclusions. It also implicitly distinguishes from alternatives like 'update_chapter' (for modifying existing chapters) and 'create_knowledge_file' (for creating new documents).

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

add_project_sectionAdd Project SectionA

Add a new section to the project main.md file with precise positioning control.

When to use this tool:

  • Introducing new topics or guidelines to project

  • Expanding project documentation systematically

  • Adding configuration sections

  • Creating new instruction categories

  • Organizing content into new logical groups

Key features:

  • Flexible positioning (before/after/end)

  • Maintains document structure and flow

  • Non-destructive addition

  • Reference-based positioning for precision

You should:

  1. Choose meaningful section headers with "## " prefix

  2. Decide optimal position for the new section

  3. Use reference_header for precise placement

  4. Keep sections focused on single topics

  5. Follow existing section naming conventions

  6. Consider document flow and readability

  7. Add sections progressively, not all at once

DO NOT use when:

  • Section already exists (use update_project_section)

  • Content belongs in existing section

  • Unsure about section organization

Position options: "before", "after", "end" (default) Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content for the new section
positionNoWhere to insert the section (default: "end")
project_idYesThe project identifier
reference_headerNoThe section header to use as reference point for before/after positioning
section_headerYesThe new section header (e.g., "## Configuration")

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: 'Non-destructive addition' (safety), 'Maintains document structure and flow' (system behavior), 'Flexible positioning' (capabilities), and 'Returns: {success: bool, message?: str, error?: str}' (output format). It doesn't mention rate limits or authentication needs, but covers most essential aspects.

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

Conciseness4/5

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

The description is well-structured with clear sections (When to use, Key features, You should, DO NOT use, Position options, Returns) and front-loads the core purpose. While somewhat lengthy, each section earns its place by providing valuable guidance rather than redundant information.

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

Completeness5/5

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

For a tool with 5 parameters, no annotations, and no output schema, the description provides excellent completeness. It covers purpose, usage guidelines, behavioral traits, parameter context, and explicitly documents the return format. Given the complexity and lack of structured metadata, this description leaves few gaps for the agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds some value by explaining 'Position options: "before", "after", "end" (default)' and suggesting 'Use reference_header for precise placement' in the guidelines, but doesn't provide significant additional parameter meaning beyond what the schema already documents.

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

Purpose5/5

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

The description clearly states the tool 'adds a new section to the project main.md file with precise positioning control.' It specifies the exact resource (project main.md file), action (add section), and distinguishes from sibling tools like update_project_section and remove_project_section by emphasizing creation rather than modification or deletion.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' with 5 specific scenarios and 'DO NOT use when' with 3 clear exclusions, including naming the alternative tool (update_project_section). This gives comprehensive guidance on when to choose this tool versus alternatives.

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

add_todo_taskAdd TODO TaskA

Add a new task to an existing TODO list with full markdown support.

When to use this tool:

  • Expanding existing TODO with new tasks

  • Adding discovered subtasks during work

  • Including additional requirements

  • Appending follow-up tasks

  • Adding clarifications or details

Key features:

  • Full markdown support in content

  • Can include code blocks and examples

  • Auto-incrementing task numbers

  • Preserves existing task order

  • Rich formatting capabilities

You should:

  1. Verify TODO exists first

  2. Use clear, actionable task titles (max 200 chars)

  3. Include implementation details in content

  4. Add code examples where helpful

  5. Position task logically in sequence

  6. Keep task scope focused

  7. Use markdown formatting effectively

DO NOT use when:

  • TODO doesn't exist

  • Task duplicates existing one

  • Task is too vague or broad

Returns: {success: bool, task_number: int, message: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNoFull markdown content with implementation details, code examples, etc.
project_idYesThe project identifier
titleYesBrief task title (max 200 chars, used in filename)
todo_numberYesThe TODO list number

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the tool auto-increments task numbers, preserves existing task order, supports rich formatting, and returns a structured response with success status, task number, and messages. It also implies mutation (adding tasks) and includes implementation guidance. The only minor gap is lack of explicit mention of permissions or rate limits.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, usage guidelines, features, instructions, exclusions, returns) and front-loaded key information. While comprehensive, some sections like the 7-point 'You should' list could be more concise. Overall, most sentences earn their place by adding value.

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

Completeness5/5

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

Given the tool's complexity (mutation operation with 4 parameters, no annotations, no output schema), the description provides excellent completeness. It covers purpose, usage scenarios, behavioral traits, parameter guidance, exclusions, and return format. The explicit return format description compensates for the lack of output schema, making this highly complete for agent use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description adds some context about parameter usage (e.g., 'Use clear, actionable task titles (max 200 chars)' for the title parameter, 'Include implementation details in content' for content), but doesn't provide significant semantic value beyond what's in the schema. 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.

Purpose5/5

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

The description clearly states the tool's purpose with specific verb ('Add') and resource ('new task to an existing TODO list'), distinguishing it from siblings like 'create_todo' (creates new TODO lists) and 'complete_todo_task' (marks tasks as done). The mention of 'full markdown support' adds further specificity.

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

Usage Guidelines5/5

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

The description provides explicit guidance with dedicated 'When to use this tool' and 'DO NOT use when' sections, listing specific scenarios for use (e.g., 'Expanding existing TODO with new tasks') and clear exclusions (e.g., 'TODO doesn't exist', 'Task duplicates existing one'). This gives comprehensive context for when to choose this tool over alternatives.

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

complete_todo_taskComplete TODO TaskA

Mark a task as completed in a TODO list.

When to use this tool:

  • Task implementation is fully complete

  • Task requirements are met

  • Moving to next task in sequence

  • Updating progress status

  • Recording completion for tracking

Key features:

  • Marks task with completion timestamp

  • Updates TODO completion percentage

  • Preserves task content and history

  • Cannot be undone

You should:

  1. ONLY mark complete when truly finished

  2. Verify task is actually done

  3. Test/validate before marking complete

  4. Complete tasks as you finish them

  5. Don't batch completions

  6. Move to next task after completing

DO NOT use when:

  • Task is partially complete

  • Work is blocked or paused

  • Need to revisit later

  • Implementation failed

Returns: {success: bool, message: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier
task_numberYesThe task number to complete
todo_numberYesThe TODO list number

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: marks task with completion timestamp, updates TODO completion percentage, preserves task content and history, and explicitly states 'Cannot be undone'. This provides crucial context about the tool's effects beyond basic functionality.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, key features, guidelines, exclusions, returns). While comprehensive, some sections like the numbered 'You should' list could be more concise. Overall, it's appropriately sized for the tool's complexity.

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

Completeness5/5

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

Given the mutation nature of the tool (completing tasks), no annotations, and no output schema, the description provides excellent contextual completeness. It covers purpose, usage scenarios, behavioral effects, guidelines, exclusions, and return format. This is comprehensive for a tool with this level of complexity.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents all three parameters. The description doesn't add any additional parameter-specific information beyond what's in the schema. It focuses on usage guidelines and behavioral context rather than parameter semantics.

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

Purpose5/5

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

The description clearly states the specific action ('Mark a task as completed') and resource ('in a TODO list'), distinguishing it from sibling tools like 'add_todo_task', 'remove_todo_task', or 'get_todo_tasks'. It goes beyond the tool name/title by specifying the exact operation.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' and 'DO NOT use when' sections with detailed scenarios, including alternatives (e.g., not using when task is partially complete). It gives clear context for when this tool is appropriate versus when it should be avoided.

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

create_knowledge_fileCreate Knowledge FileA

Create a structured knowledge document with rich metadata and chapters.

When to use this tool:

  • Documenting specific technical topics or APIs

  • Creating reference guides for project components

  • Building troubleshooting or how-to guides

  • Organizing domain-specific knowledge

  • Archiving important technical decisions

Key features:

  • Structured with chapters for easy navigation

  • Searchable via keywords

  • Automatic filename sanitization (spaces→hyphens)

  • Metadata for context and discovery

  • Supports up to 50 chapters per document

You should:

  1. Search first to avoid creating duplicates

  2. Choose descriptive, specific filenames

  3. Include 3-5 relevant keywords minimum

  4. Structure content into logical chapters

  5. Write clear chapter titles (max 200 chars)

  6. Include practical examples in content

  7. Add .md extension to filename

  8. Keep chapters focused and concise

  9. Consider future searchability

DO NOT use when:

  • Content belongs in main.md

  • Document already exists (search first!)

  • Information is temporary or transient

  • Creating index/navigation files

Chapters require 'title' and 'content' keys Returns: {success: bool, document_id?: str, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
chaptersYesList of chapter objects with title and content
filenameYesDesired filename (will be slugified, .md extension optional)
introductionYesOpening text that appears before any chapters
keywordsYesList of searchable keywords
project_idYesThe project identifier
titleYesHuman-readable document title for the metadata

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: automatic filename sanitization (spaces→hyphens), support for up to 50 chapters, and the return format (success, document_id, message, error). However, it lacks details on permissions, rate limits, or error conditions beyond the return structure.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, key features, guidelines, exclusions) and uses bullet points for readability. It is appropriately sized but could be slightly more concise by integrating some repetitive elements like the chapter requirements.

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

Completeness4/5

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

Given the complexity (6 required parameters, no annotations, no output schema), the description is largely complete. It covers purpose, usage, behaviors, and return format. However, it lacks explicit details on error handling or system constraints, which would enhance completeness for a creation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters thoroughly. The description adds minimal parameter-specific semantics, only noting that chapters require 'title' and 'content' keys and that filenames get slugified with .md extension optional. This meets the baseline for high schema coverage without significant added value.

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

Purpose5/5

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

The description clearly states the tool creates a 'structured knowledge document with rich metadata and chapters', specifying both the verb ('create') and resource ('knowledge document') with distinctive features like chapters and metadata. It differentiates from siblings like 'add_chapter' or 'update_chapter' by focusing on initial document creation.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' with five specific scenarios (e.g., documenting technical topics, creating reference guides) and 'DO NOT use when' with four clear exclusions (e.g., content belongs in main.md, document already exists). It also mentions searching first to avoid duplicates, offering practical alternatives.

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

create_todoCreate TODOA

Create a new TODO list with optional initial tasks and rich markdown support.

When to use this tool:

  • User explicitly requests "create a TODO"

  • Planning multi-step implementation tasks

  • Organizing feature development work

  • Tracking bug fixes or improvements

  • Creating task lists for later execution

Key features:

  • Rich markdown support in task content

  • Optional initial task list

  • Auto-incrementing TODO numbers

  • Task content supports code blocks

  • Hierarchical task organization

You should:

  1. ONLY create when user explicitly requests

  2. Include clear, actionable task descriptions

  3. Break complex work into subtasks

  4. Use markdown for code examples in tasks

  5. Number tasks logically

  6. Keep descriptions concise but complete

  7. Group related tasks together

DO NOT use when:

  • User hasn't explicitly asked for TODO

  • Tasks are trivial or single-step

  • Work will be done immediately

  • TODO already exists for this work

Tasks need {title: str, content?: str} format Returns: {success: bool, todo_number: int, message: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesDescription of the TODO list
project_idYesThe project identifier
tasksNoOptional initial tasks as {title, content} objects

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and discloses key behavioral traits: it creates new items (implies mutation), supports markdown and hierarchical organization, auto-increments TODO numbers, and returns a specific response format. It doesn't cover permissions or rate limits, but provides substantial operational context.

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

Conciseness4/5

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

The description is well-structured with sections (key features, usage guidelines, do-not-use cases) and bullet points, but could be more front-loaded. Some sentences (e.g., 'Break complex work into subtasks') are more user guidance than tool description, slightly reducing efficiency.

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

Completeness4/5

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

For a creation tool with no annotations and no output schema, the description is fairly complete: it explains purpose, usage, behavioral traits, and return format. It could benefit from more detail on error handling or permissions, but covers core aspects adequately given the context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description mentions 'optional initial tasks' and 'tasks need {title: str, content?: str} format', which aligns with but doesn't add significant meaning beyond the schema. 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.

Purpose5/5

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

The description clearly states the tool creates a new TODO list with optional initial tasks and rich markdown support. It distinguishes from siblings like 'add_todo_task' (which adds to existing lists) and 'list_todos' (which retrieves lists), making the purpose specific and differentiated.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' scenarios (e.g., user explicitly requests, planning multi-step tasks) and 'DO NOT use when' exclusions (e.g., user hasn't explicitly asked, trivial tasks). It also implicitly distinguishes from siblings by focusing on creation rather than modification or retrieval.

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

delete_knowledge_fileDelete Knowledge FileA

Permanently delete a knowledge document - this action cannot be undone.

When to use this tool:

  • Document is obsolete or incorrect

  • Consolidating duplicate documents

  • Removing outdated information

  • Explicit request to delete

Key features:

  • Complete removal of document

  • Removes from search index

  • Permanent deletion

You should:

  1. Verify document exists first

  2. Check if content should be preserved elsewhere

  3. Confirm filename is correct (with .md extension)

  4. Understand deletion is permanent

  5. Consider if update would be better

DO NOT use when:

  • Document might be useful later

  • Should be updated instead

  • Unsure about the impact

Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesFull filename including .md extension
project_idYesThe project identifier

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: the action is permanent/cannot be undone, removes from search index, and requires verification steps. It doesn't mention authentication needs, rate limits, or error handling specifics, but covers the critical destructive nature thoroughly.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, usage guidelines, features, steps, exclusions, returns) and front-loaded with the most critical information. Some redundancy exists (e.g., '.md extension' appears twice), but overall it's appropriately sized with each section earning its place.

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

Completeness4/5

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

For a destructive tool with no annotations and no output schema, the description provides substantial context: clear purpose, usage guidelines, behavioral transparency about permanence, and return value documentation. It doesn't fully explain error scenarios or authentication requirements, but covers the essential aspects given the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds minimal value beyond the schema - it mentions '.md extension' for filename (already in schema) and suggests verifying document existence, but doesn't provide additional semantic context about parameters like project_id significance.

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

Purpose5/5

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

The description clearly states the specific action ('permanently delete') and resource ('knowledge document'), distinguishing it from sibling tools like 'create_knowledge_file' or 'update_chapter'. It goes beyond just restating the name/title by emphasizing the irreversible nature of the action.

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

Usage Guidelines5/5

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

The description provides explicit guidance with 'When to use this tool' (four specific scenarios) and 'DO NOT use when' (three explicit exclusions). It also mentions alternatives like updating instead of deleting, helping the agent choose between this and tools like 'update_chapter' or 'update_project_main'.

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

delete_projectDelete ProjectA

Permanently delete a project and all its content - USE WITH EXTREME CAUTION.

When to use this tool:

  • Project is completely obsolete

  • Cleaning up test or temporary projects

  • Project has been migrated elsewhere

  • Explicit user request to delete

Key features:

  • Removes entire project directory

  • Deletes from index

  • IRREVERSIBLE operation

  • Includes all knowledge files and TODOs

You should:

  1. ALWAYS confirm with user before deletion

  2. Verify project_id is correct

  3. Consider backing up important content first

  4. Understand this is permanent

  5. Check if project has valuable knowledge files

  6. Document reason for deletion

DO NOT use when:

  • Any doubt about deletion

  • Project might be needed later

  • Haven't backed up important content

  • User hasn't explicitly confirmed

⚠️ This action CANNOT be undone! Returns: {success: bool, project_id: str, message: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier to delete

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden and excels. It discloses critical behavioral traits: 'IRREVERSIBLE operation', 'Permanently delete', 'This action CANNOT be undone', and details what gets destroyed (project directory, index, knowledge files, TODOs). It also includes safety guidance like requiring user confirmation and backup considerations.

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

Conciseness4/5

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

The description is well-structured with clear sections (warning, usage guidelines, features, action items, exclusions) and every sentence earns its place. It's appropriately sized for a high-risk operation, though slightly verbose with numbered lists that could be more concise.

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

Completeness5/5

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

For a destructive tool with no annotations and no output schema, the description provides exceptional completeness. It covers purpose, usage scenarios, behavioral consequences, safety protocols, exclusions, and even specifies the return format despite no output schema. This fully compensates for the lack of structured metadata.

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

Parameters4/5

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

Schema description coverage is 100% with one parameter clearly documented. The description adds meaningful context beyond the schema by emphasizing 'Verify project_id is correct' and linking it to the irreversible nature of the operation. However, it doesn't provide additional format or validation details beyond what the schema already specifies.

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

Purpose5/5

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

The description explicitly states 'Permanently delete a project and all its content' - a specific verb ('delete') with clear resource ('project and all its content'). It distinguishes from sibling tools like delete_knowledge_file and delete_todo by specifying it removes the entire project directory, index, knowledge files, and TODOs.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' with four specific scenarios and 'DO NOT use when' with four clear exclusions. It offers comprehensive guidance on when to choose this tool versus alternatives like backup or confirmation steps.

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

delete_todoDelete TODOA

Delete an entire TODO list and all its tasks permanently.

When to use this tool:

  • TODO is completely finished

  • TODO is obsolete or cancelled

  • Cleaning up old TODOs

  • Consolidating duplicate TODOs

  • User explicitly requests deletion

Key features:

  • Removes entire TODO list

  • Deletes all associated tasks

  • Permanent removal

  • Frees up TODO number

You should:

  1. Verify all tasks are complete or obsolete

  2. Confirm TODO number is correct

  3. Understand deletion is permanent

  4. Consider if TODO has value for history

  5. Check no active work depends on it

DO NOT use when:

  • TODO has incomplete relevant tasks

  • Might need TODO for reference

  • Unsure about deletion impact

Returns: {success: bool, message: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier
todo_numberYesThe TODO list number to delete

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a destructive operation ('permanent removal'), removes all associated tasks, frees up TODO numbers, and requires verification steps. It doesn't mention rate limits, authentication needs, or error handling specifics, but covers the critical destructive nature adequately.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, usage guidelines, features, steps, exclusions, returns) and front-loaded with the core action. Some redundancy exists (e.g., 'permanent removal' repeated), but overall it's efficient with every sentence adding value.

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

Completeness4/5

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

For a destructive tool with no annotations and no output schema, the description provides strong context: clear purpose, detailed usage guidelines, behavioral transparency about permanence, and return value documentation. It doesn't specify error conditions or response formats beyond the basic return structure, but covers most critical aspects given the complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('project_id' and 'todo_number'). The description doesn't add any parameter-specific semantics beyond what the schema provides (e.g., no clarification on TODO number uniqueness or project context). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the specific action ('Delete an entire TODO list and all its tasks permanently'), identifies the resource ('TODO list'), and distinguishes it from sibling tools like 'remove_todo_task' which only removes individual tasks. It goes beyond the tool name/title by specifying the scope of deletion.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' with five specific scenarios, 'DO NOT use when' with three clear exclusions, and implicit alternatives (e.g., 'remove_todo_task' for partial deletion). This comprehensive guidance helps the agent choose appropriately among sibling tools.

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

get_chapterGet ChapterA

Retrieve a single chapter's content by title or index.

When to use this tool:

  • Reading specific chapter content

  • Reviewing targeted information

  • Updating specific chapter (read first)

  • Accessing chapter without loading entire document

  • Efficient partial document access

Key features:

  • Access by title OR index (0-based)

  • Returns navigation info (has_next, has_previous)

  • Memory-efficient for large documents

  • Includes chapter summary

You should:

  1. Use chapter_title for known chapters

  2. Use chapter_index for sequential reading

  3. Specify either title OR index, not both

  4. Use exact title match (case-sensitive)

  5. Consider using get_next_chapter for sequences

  6. Cache results if accessing multiple times

DO NOT use when:

  • Need multiple chapters (batch operations)

  • Don't know chapter title or index

  • Need full document context

Returns: {success: bool, title: str, content: str, summary: str, index: int, total_chapters: int, has_next: bool, has_previous: bool}

ParametersJSON Schema
NameRequiredDescriptionDefault
chapter_indexNoZero-based index of the chapter (use this OR chapter_title)
chapter_titleNoTitle of the chapter to retrieve (use this OR chapter_index)
filenameYesKnowledge file name (must include .md extension)
project_idYesThe project identifier

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and delivers substantial behavioral context. It discloses key traits: memory efficiency for large documents, case-sensitive exact title matching, navigation info in returns, and caching recommendations. It doesn't mention error handling or performance characteristics, keeping it from a perfect score.

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

Conciseness5/5

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

The description is well-structured with clear sections (purpose, when to use, key features, instructions, exclusions, returns) and every sentence earns its place. It's comprehensive yet avoids redundancy, with the most critical information (purpose and basic usage) appearing first.

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

Completeness5/5

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

For a read operation with no annotations but 100% schema coverage, this description provides excellent contextual completeness. It explains when to use the tool, behavioral characteristics, parameter usage rules, sibling relationships, and detailed return structure (even without an output schema), leaving minimal gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description adds some value by explaining the title/index mutual exclusivity ('Specify either title OR index, not both') and providing usage guidance ('Use chapter_title for known chapters'), but doesn't add significant semantic details beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('Retrieve a single chapter's content') and resources ('by title or index'), distinguishing it from siblings like list_chapters (which lists multiple chapters) and get_knowledge_file (which retrieves entire documents). The opening sentence provides precise, actionable intent.

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

Usage Guidelines5/5

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

The description includes explicit 'When to use this tool' and 'DO NOT use when' sections, providing clear positive and negative guidance. It names alternatives (get_next_chapter for sequences) and specifies prerequisites (knowing chapter title or index), making it highly actionable for an AI agent.

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

get_knowledge_fileGet Knowledge FileA

Retrieve complete content of a knowledge document including all metadata and chapters.

When to use this tool:

  • Needing full document for comprehensive review

  • Backing up or exporting documents

  • Migrating content between projects

  • Loading small documents completely

Key features:

  • Returns complete document with all chapters

  • Includes metadata (title, keywords, introduction)

  • Preserves document structure

  • Full content access

You should:

  1. Consider using chapter operations for large documents

  2. Check document exists first

  3. Include .md extension in filename

  4. Be aware this loads entire document into memory

  5. Use chapter iteration for partial access

  6. Cache result if accessing multiple times

DO NOT use when:

  • Only need specific chapters (use get_chapter)

  • Document is very large (use chapter operations)

  • Just need to search content (use search_knowledge)

Returns: {success: bool, document?: object, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesKnowledge file name (must include .md extension)
project_idYesThe project identifier

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and adds valuable behavioral context beyond basic functionality. It discloses memory implications ('loads entire document into memory'), performance considerations for large documents, caching advice, and prerequisites like checking document existence. However, it doesn't mention error handling or rate limits, leaving some gaps.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, usage guidelines, features, recommendations, exclusions, returns) and front-loaded key information. While comprehensive, some sentences could be more concise (e.g., 'Returns complete document with all chapters' and 'Full content access' are somewhat redundant). Overall, it's efficient but has minor verbosity.

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

Completeness4/5

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

For a tool with no annotations and no output schema, the description does an excellent job covering behavioral aspects, usage scenarios, and limitations. It explains what the tool returns (including the return structure) and provides practical guidance. The main gap is the lack of explicit error handling details, but otherwise it's nearly complete for this context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (filename, project_id) with their constraints. The description adds minimal value beyond the schema: it reiterates the .md extension requirement (already in schema) and mentions checking document existence (not parameter-specific). 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.

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('retrieve complete content') and resources ('knowledge document'), distinguishing it from siblings like get_chapter (partial content) and search_knowledge (searching). It explicitly mentions what it returns (metadata, chapters, structure), making its scope unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance with dedicated sections: 'When to use this tool' lists four specific scenarios, 'You should' offers six actionable recommendations, and 'DO NOT use when' names three alternatives (get_chapter, chapter operations, search_knowledge). This clearly defines when to use this tool versus siblings.

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

get_next_chapterGet Next ChapterA

Get the next chapter after the current one in sequence.

When to use this tool:

  • Reading document sequentially

  • Continuing from current position

  • Implementing pagination through document

  • Following document flow naturally

Key features:

  • Automatic progression to next chapter

  • Returns null if at end

  • Maintains reading context

  • Efficient sequential access

You should:

  1. Use current_chapter_title OR current_index

  2. Check has_next before calling

  3. Use for sequential document traversal

  4. Handle end-of-document gracefully

  5. Consider document flow and continuity

DO NOT use when:

  • Need specific non-sequential chapter

  • At the last chapter already

  • Random access is needed

Returns: {success: bool, title?: str, content?: str, summary?: str, index?: int, total_chapters: int, has_next: bool}

ParametersJSON Schema
NameRequiredDescriptionDefault
current_chapter_titleNoTitle of the current chapter (use this OR current_index)
current_indexNoZero-based index of current chapter (use this OR current_chapter_title)
filenameYesKnowledge file name (must include .md extension)
project_idYesThe project identifier

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: 'Returns null if at end,' 'Maintains reading context,' 'Efficient sequential access,' and the return structure. However, it lacks details on 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.

Conciseness4/5

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

The description is well-structured with clear sections (purpose, usage, features, instructions, exclusions, returns) and uses bullet points for readability. It is slightly verbose in the 'You should' section but overall front-loaded and efficient.

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

Completeness4/5

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

For a tool with no annotations and no output schema, the description provides substantial context: clear purpose, usage guidelines, behavioral traits, and a detailed return structure. It compensates well for the lack of structured data, though it could mention error cases or dependencies.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value beyond the schema, mentioning 'Use current_chapter_title OR current_index' but not explaining the relationship further. 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.

Purpose5/5

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

The description clearly states the tool's purpose as 'Get the next chapter after the current one in sequence,' which is a specific verb+resource combination. It distinguishes itself from siblings like 'get_chapter' (specific chapter access) and 'list_chapters' (bulk listing) by focusing on sequential progression.

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

Usage Guidelines5/5

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

The description provides explicit guidance with a 'When to use this tool' section listing four scenarios and a 'DO NOT use when' section with three clear exclusions. It distinguishes usage from alternatives like 'get_chapter' for non-sequential access, offering comprehensive context.

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

get_next_todo_taskGet Next TODO TaskA

Get the next incomplete task in a TODO list for sequential execution.

When to use this tool:

  • Working through TODO sequentially

  • Finding next task to implement

  • Checking for remaining work

  • Continuing interrupted work

  • Following task order

Key features:

  • Returns first incomplete task

  • Provides task number and description

  • Indicates when all complete

  • Maintains task sequence

You should:

  1. Use after completing current task

  2. Follow sequential task order

  3. Handle "all complete" case

  4. Read full task details if needed

  5. Mark complete before getting next

DO NOT use when:

  • Need specific task (not next)

  • Want full TODO overview

  • All tasks already complete

Returns: {success: bool, task?: {number: int, description: str}, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier
todo_numberYesThe TODO list number

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: returns the first incomplete task, indicates when all are complete, maintains sequence, and requires marking tasks complete before getting the next. However, it lacks details on error handling or performance aspects like rate limits, though these are less critical for a read-only tool.

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

Conciseness4/5

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

The description is well-structured with sections like 'When to use this tool,' 'Key features,' 'You should,' and 'DO NOT use when,' making it easy to scan. However, it includes some redundancy (e.g., 'Get the next incomplete task' is reiterated in 'Key features'), and the bullet points could be more concise, slightly reducing efficiency.

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

Completeness4/5

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

Given no annotations and no output schema, the description does a good job covering purpose, usage, and behavior. It includes return value details in 'Returns,' which compensates for the lack of output schema. However, it could benefit from more context on error cases or integration with sibling tools like 'complete_todo_task,' making it slightly incomplete.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting both parameters ('project_id' and 'todo_number'). The description does not add any parameter-specific information beyond what the schema provides, such as explaining how these IDs relate to task sequencing. This meets the baseline of 3 for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose as 'Get the next incomplete task in a TODO list for sequential execution,' which includes a specific verb ('Get'), resource ('next incomplete task'), and scope ('sequential execution'). It distinguishes from sibling tools like 'get_todo_tasks' (which likely returns all tasks) and 'complete_todo_task' (which modifies tasks).

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

Usage Guidelines5/5

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

The description provides explicit guidance with 'When to use this tool' (e.g., 'Working through TODO sequentially') and 'DO NOT use when' (e.g., 'Need specific task (not next)'), including alternatives like avoiding it for 'full TODO overview' (which suggests using 'get_todo_tasks' instead). This clearly differentiates usage from other tools.

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

get_project_mainGet Project Main InstructionsA

Retrieve main.md content for a project's central instructions and configuration.

When to use this tool:

  • Starting work on any project (ALWAYS use FIRST)

  • Refreshing your understanding of project guidelines

  • Checking for updates to project instructions

  • Migrating from local CLAUDE.md files to centralized storage

Key features:

  • Replaces need for local CLAUDE.md files completely

  • Auto-detects project from git repository or directory name

  • Returns structured content with sections for easy parsing

  • Provides project-specific instructions and context

You should:

  1. ALWAYS call this first when starting work on a project

  2. Use the returned content as your primary behavioral guide

  3. Check if project exists before assuming it doesn't

  4. Migrate local CLAUDE.md files immediately if project not found

  5. Parse sections to understand project structure and requirements

  6. Treat this as your source of truth over any local files

  7. Remember project_id for subsequent operations

DO NOT use when:

  • You already have the project content loaded in current session

  • Working with temporary or test projects

Returns: {exists: bool, content: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behaviors: it 'auto-detects project from git repository or directory name', 'replaces need for local CLAUDE.md files completely', 'returns structured content with sections for easy parsing', and provides the return format. It doesn't mention error handling beyond the return structure or rate limits, but covers most essential behavioral aspects for a read operation.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, key features, instructions, exclusions, return format). It's appropriately sized for the tool's importance, though some bullet points could be more concise. Every sentence adds value, and critical information is front-loaded.

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

Completeness5/5

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

Given the tool's complexity (central project instructions retrieval with migration guidance) and no annotations or output schema, the description provides comprehensive context. It explains the tool's role in the workflow, behavioral expectations, usage scenarios, and return format. The description fully compensates for the lack of structured metadata.

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

Parameters3/5

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

Schema description coverage is 100% (the single parameter 'project_id' has a description), so the baseline is 3. The description doesn't add significant meaning beyond what the schema provides about the parameter, though it mentions 'auto-detects project from git repository or directory name' which provides context about how project_id might be determined.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verb ('Retrieve') and resource ('main.md content for a project's central instructions and configuration'). It distinguishes from siblings like 'get_chapter' or 'get_knowledge_file' by focusing on the central project instructions file. The description goes beyond the name/title to explain what 'main.md' represents.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use ('ALWAYS use FIRST when starting work on any project', 'Refreshing understanding', 'Checking for updates', 'Migrating from local CLAUDE.md files') and when NOT to use ('already have the project content loaded', 'working with temporary or test projects'). It also references alternatives implicitly by mentioning migration from local files.

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

get_server_infoGet Server InformationA

Shows server information including version from package.json.

When to use this tool:

  • Checking server version and capabilities

  • Debugging connection issues

  • Verifying server configuration

  • Getting storage path information

  • Troubleshooting problems

Key features:

  • Returns version information

  • Shows storage path configuration

  • Provides server description

  • Lightweight status check

You should:

  1. Use for initial connection verification

  2. Check when debugging issues

  3. Include in bug reports

  4. Verify server is responding

DO NOT use when:

  • Need git status (use get_storage_status)

  • Need to sync storage

  • Information already known

Returns: {success: bool, name: str, version: str, storage_path: str, description: str}

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key features (e.g., returns version information, shows storage path configuration, provides server description, lightweight status check) and usage behaviors (e.g., use for initial connection verification, include in bug reports), though it could add more on error handling or performance. No contradictions with annotations exist.

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

Conciseness3/5

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

The description is well-structured with sections like 'When to use this tool', 'Key features', 'You should', and 'DO NOT use when', but it is somewhat verbose with repetitive points (e.g., debugging mentioned multiple times). Some sentences could be condensed to improve efficiency without losing clarity.

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

Completeness4/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete, covering purpose, usage, and return values. However, it lacks details on error cases or specific server capabilities, which could enhance context for an AI agent in edge scenarios.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on usage and output without redundant parameter details, earning a baseline score of 4 for handling this efficiently.

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

Purpose4/5

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

The description clearly states the tool's purpose as showing server information including version from package.json, which is a specific verb+resource combination. However, it doesn't explicitly distinguish this from sibling tools like 'get_storage_status' beyond the 'DO NOT use when' section, which mentions it but doesn't fully articulate the functional difference.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool (e.g., checking server version, debugging connection issues, initial connection verification) and when not to use it (e.g., when needing git status, to sync storage, or if information is already known), including a named alternative ('get_storage_status'). This covers both positive and negative scenarios comprehensively.

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

get_storage_statusGet Storage StatusA

Shows git status of the knowledge datastore.

When to use this tool:

  • Checking for uncommitted changes

  • Verifying sync status with remote

  • Debugging storage issues

  • Understanding current branch

  • Reviewing repository state

Key features:

  • Shows uncommitted file count

  • Displays current branch

  • Shows last commit info

  • Indicates remote sync status

  • Provides detailed git status

You should:

  1. Use before sync operations

  2. Check when changes aren't persisting

  3. Verify remote configuration

  4. Monitor uncommitted changes

  5. Debug sync failures

DO NOT use when:

  • Just need server info

  • Don't need git details

  • Already know status

Returns: {success: bool, storage_path: str, has_changes: bool, current_branch: str, last_commit: str, remote_status: str, uncommitted_files: int, status_details: str}

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well. It explains what information the tool provides (uncommitted file count, current branch, etc.), when to use it (before sync operations, debugging), and what it returns. It doesn't mention rate limits or authentication needs, but for a read-only status tool, this is acceptable.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, key features, usage instructions, exclusions, return values). While somewhat lengthy, every section adds value. The information is front-loaded with the core purpose first.

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

Completeness5/5

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

For a 0-parameter tool with no annotations and no output schema, the description provides excellent completeness. It explains the tool's purpose, when to use it, what information it provides, and details the return structure. This fully compensates for the lack of structured metadata.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, which is correct for this case.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Shows git status of the knowledge datastore.' It specifies the exact resource (knowledge datastore) and action (shows git status). It distinguishes from siblings like 'get_server_info' by focusing specifically on git status rather than general server information.

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

Usage Guidelines5/5

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

The description provides explicit guidance with 'When to use this tool' (5 specific scenarios) and 'DO NOT use when' (3 exclusion criteria). It clearly differentiates from alternatives like 'get_server_info' by stating not to use when 'Just need server info' or 'Don't need git details.'

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

get_todo_tasksGet TODO TasksA

Get all tasks in a TODO list with their completion status and full content.

When to use this tool:

  • Reviewing full TODO list details

  • Planning task execution order

  • Checking task completion status

  • Understanding task requirements

  • Getting comprehensive task view

Key features:

  • Returns all tasks with content

  • Shows completion status per task

  • Includes rich markdown content

  • Provides task numbers and order

  • Full TODO context

You should:

  1. Use TODO number from list_todos

  2. Review all tasks before starting

  3. Note incomplete task numbers

  4. Plan execution strategy

  5. Check task dependencies

  6. Identify complex tasks needing breakdown

DO NOT use when:

  • Only need next task

  • TODO doesn't exist

  • Just need TODO overview

Returns: {success: bool, todo: {...}, tasks: [...], error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier
todo_numberYesThe TODO list number

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it returns all tasks with content, completion status, rich markdown, task numbers, and order. It also outlines prerequisites ('Use TODO number from list_todos') and operational guidance (e.g., 'Review all tasks before starting', 'Check task dependencies'). However, it lacks details on error handling, rate limits, or authentication needs, which are important for a tool with no annotations.

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

Conciseness3/5

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

The description is well-structured with sections like 'When to use this tool', 'Key features', 'You should', and 'DO NOT use when', making it easy to scan. However, it is verbose with redundant points (e.g., 'Returns all tasks with content' and 'Provides task numbers and order' overlap with 'Key features'). Some sentences, like 'Understanding task requirements' and 'Getting comprehensive task view', add little value and could be condensed for better conciseness.

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

Completeness4/5

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

Given the tool's complexity (2 parameters, no annotations, no output schema), the description provides substantial context: it explains the tool's purpose, usage guidelines, behavioral traits, and even includes a return value example ('Returns: {success: bool, todo: {...}, tasks: [...], error?: str}'). This compensates well for the lack of structured fields. However, it could improve by detailing error conditions or response formats more explicitly, especially without an output schema.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear documentation for both parameters ('project_id' and 'todo_number'). The description does not add any parameter-specific information beyond what the schema provides, such as format examples or constraints. However, it implies the need for a valid 'todo_number' from 'list_todos', which adds minimal context. Given the high schema coverage, a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get all tasks in a TODO list with their completion status and full content.' It specifies the verb ('Get'), resource ('tasks in a TODO list'), and key attributes ('completion status and full content'). It distinguishes from sibling tools like 'get_next_todo_task' by emphasizing it returns 'all tasks' rather than just the next one.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use and when not to use this tool. It lists specific use cases (e.g., 'Reviewing full TODO list details', 'Planning task execution order') and explicitly states 'DO NOT use when: - Only need next task - TODO doesn't exist - Just need TODO overview'. It also references sibling tool 'list_todos' for obtaining TODO numbers, offering clear alternatives.

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

list_chaptersList ChaptersA

List all chapters in a knowledge document with titles and summaries only.

When to use this tool:

  • Getting document overview without loading all content

  • Planning which chapters to read or update

  • Understanding document structure

  • Checking chapter organization

  • Finding specific chapters efficiently

Key features:

  • Lightweight operation (no content loading)

  • Returns titles and summaries only

  • Shows chapter count and order

  • Enables informed navigation

You should:

  1. Use this before get_knowledge_file for large documents

  2. Identify relevant chapters before reading

  3. Check document structure before modifications

  4. Use for navigation planning

  5. Include .md extension in filename

DO NOT use when:

  • Need actual chapter content

  • Document is very small

  • Already know exact chapter needed

Returns: {success: bool, project_id: str, filename: str, total_chapters: int, chapters: array}

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesKnowledge file name (must include .md extension)
project_idYesThe project identifier

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: 'Lightweight operation (no content loading)', 'Returns titles and summaries only', 'Shows chapter count and order', and 'Enables informed navigation'. It doesn't mention error conditions or performance characteristics, keeping it from a perfect score.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, key features, guidelines, exclusions, returns) but could be more concise. Some bullet points could be combined (e.g., 'Getting document overview' and 'Understanding document structure' are similar). Every sentence adds value, but there's minor redundancy.

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

Completeness5/5

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

For a read-only list operation with 2 parameters and 100% schema coverage, the description is exceptionally complete. It provides comprehensive usage guidance, behavioral context, and explicitly documents the return structure despite no output schema. The description fully compensates for the lack of annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds minimal value beyond the schema by mentioning '.md extension in filename' in the 'You should' section, but doesn't provide additional semantic context about parameter usage or interactions.

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

Purpose5/5

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

The description clearly states the specific action ('List all chapters') and resource ('in a knowledge document'), specifying what information is returned ('titles and summaries only'). It distinguishes from sibling tools like get_knowledge_file and get_chapter by emphasizing it doesn't load content.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' with 5 specific scenarios, a 'You should' section with 5 actionable guidelines, and a 'DO NOT use when' section with 3 clear exclusions. It explicitly contrasts with get_knowledge_file for large documents.

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

list_todosList TODOsA

List all TODO lists in a project with their completion status.

When to use this tool:

  • Getting overview of all project tasks

  • Checking TODO completion progress

  • Finding specific TODO lists

  • Planning task execution

  • Reviewing project task status

Key features:

  • Shows all TODO lists with descriptions

  • Includes completion statistics

  • Returns TODO numbers for reference

  • Lightweight overview operation

You should:

  1. Use before creating new TODOs

  2. Check for existing related TODOs

  3. Note TODO numbers for operations

  4. Review completion percentages

  5. Use to avoid duplicate TODOs

DO NOT use when:

  • Need specific task details (use get_todo_tasks)

  • Already know TODO number

  • No TODOs exist in project

Returns: {success: bool, todos: [...], error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: it's a 'lightweight overview operation' that returns 'completion statistics' and 'TODO numbers for reference.' However, it lacks details on permissions, rate limits, error handling, or pagination. The description adds value but does not fully compensate for the absence of annotations.

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

Conciseness3/5

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

The description is structured with sections like 'When to use this tool,' 'Key features,' 'You should,' and 'DO NOT use when,' which aids readability. However, it is verbose with repetitive points (e.g., multiple mentions of 'TODO numbers' and 'completion'), and some sentences could be more concise. It is front-loaded with the core purpose, but the length is excessive for the tool's simplicity.

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

Completeness4/5

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

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is quite complete. It covers purpose, usage guidelines, behavioral traits, and return format. However, it lacks details on error cases or advanced behaviors, and the output format is described but not in a structured schema. For a simple list tool, it provides sufficient context.

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

Parameters3/5

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

The input schema has 100% description coverage, with the single parameter 'project_id' documented as 'The project identifier.' The description does not add any meaning beyond this, as it does not mention parameters at all. With high schema coverage, the baseline score of 3 is appropriate, as the description does not enhance parameter understanding.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all TODO lists in a project with their completion status.' It specifies the verb ('List'), resource ('TODO lists'), and scope ('in a project'), but does not explicitly differentiate from sibling tools like 'get_todo_tasks' beyond the 'DO NOT use when' section. The purpose is clear but sibling differentiation is not fully integrated into the core description.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines with 'When to use this tool' listing five scenarios, 'You should' with five numbered recommendations, and 'DO NOT use when' with three exclusions including a named alternative ('get_todo_tasks'). This comprehensive guidance clearly indicates when to use this tool versus alternatives.

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

remove_chapterRemove ChapterA

Remove a specific chapter from a knowledge document.

When to use this tool:

  • Removing outdated or incorrect chapters

  • Consolidating overlapping content

  • Streamlining document structure

  • Eliminating redundant information

Key features:

  • Precise chapter removal

  • Preserves all other chapters

  • Maintains document integrity

You should:

  1. Verify chapter exists with exact title

  2. Consider if content should be preserved

  3. Check for references from other chapters

  4. Use case-sensitive chapter title

  5. Understand removal is permanent

DO NOT use when:

  • Chapter should be updated instead

  • Content is still relevant

  • Unsure about the impact

Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
chapter_titleYesExact title of the chapter to remove
filenameYesKnowledge file name (must include .md extension)
project_idYesThe project identifier

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it specifies that removal is permanent, preserves other chapters, maintains document integrity, requires case-sensitive chapter titles, and suggests verification steps. It doesn't mention authentication needs, rate limits, or error handling details, keeping it from a perfect score.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, usage guidelines, features, instructions, exclusions, returns) and front-loaded key information. It's appropriately sized but could be slightly more concise by integrating some bullet points into flowing text without losing clarity.

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

Completeness4/5

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

For a destructive tool with no annotations and no output schema, the description does well by covering purpose, usage context, behavioral traits, and return format. It lacks details on error scenarios or system-level constraints, but given the tool's moderate complexity, it provides sufficient context for effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value beyond the schema by implying the 'chapter_title' must be exact and case-sensitive, but doesn't provide additional context for 'filename' or 'project_id'. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the specific action ('Remove a specific chapter') and resource ('from a knowledge document'), distinguishing it from siblings like 'delete_knowledge_file' (whole file deletion) and 'update_chapter' (modification rather than removal). It precisely defines the tool's function without ambiguity.

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

Usage Guidelines5/5

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

The description provides explicit guidance with dedicated 'When to use this tool' and 'DO NOT use when' sections, listing specific scenarios like removing outdated content or consolidating overlapping chapters, and warning against use when chapters should be updated instead. It clearly differentiates from alternatives like 'update_chapter' for content modification.

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

remove_project_sectionRemove Project SectionA

Remove a specific section from the project main.md file.

When to use this tool:

  • Removing deprecated or obsolete sections

  • Cleaning up redundant information

  • Restructuring document by removing sections

  • Eliminating outdated guidelines

Key features:

  • Precise section removal

  • Preserves all other content

  • Clean removal without traces

You should:

  1. Verify section exists before removal

  2. Consider if content should be moved elsewhere

  3. Check for references to this section

  4. Document why section is being removed

  5. Use exact section header with "## " prefix

DO NOT use when:

  • Section contains important information

  • Should be updated instead of removed

  • Unsure about the impact

Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier
section_headerYesThe exact section header to remove (e.g., "## Deprecated")

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well: it discloses behavioral traits like 'Precise section removal', 'Preserves all other content', and 'Clean removal without traces'. It also provides implementation guidance (e.g., 'Verify section exists before removal'). However, it doesn't mention error conditions, permissions needed, or rate limits, leaving some behavioral aspects uncovered.

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

Conciseness4/5

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

The description is well-structured with clear sections ('When to use', 'Key features', 'You should', 'DO NOT use', 'Returns'), but could be more concise. Some points in 'You should' (e.g., 'Document why section is being removed') are implementation advice rather than essential tool description, slightly reducing efficiency.

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

Completeness4/5

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

For a destructive tool with no annotations and no output schema, the description does well by explaining the tool's behavior, usage guidelines, and return format. However, it lacks details on error handling (beyond the return structure) and doesn't explicitly state this is a mutation operation, though that's implied by 'Remove'. Given the complexity, it's mostly complete but has minor gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema: it mentions 'exact section header with "## " prefix' which is already in the schema's pattern, and implies the section must exist (in 'You should' list). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool removes a specific section from the project main.md file, using the specific verb 'remove' with the resource 'section from project main.md file'. It distinguishes from siblings like 'update_project_section' (which modifies rather than removes) and 'delete_project' (which deletes the entire project).

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' with four specific scenarios (e.g., 'Removing deprecated or obsolete sections') and 'DO NOT use when' with three clear exclusions (e.g., 'Section contains important information'). It also implicitly distinguishes from alternatives like 'update_project_section' by emphasizing removal rather than updating.

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

remove_todo_taskRemove TODO TaskA

Remove a task from a TODO list.

When to use this tool:

  • Task is no longer relevant

  • Removing duplicate tasks

  • Task was added by mistake

  • Consolidating similar tasks

  • Cleaning up TODO list

Key features:

  • Permanent task removal

  • Preserves other tasks

  • Updates task numbering

You should:

  1. Verify task exists first

  2. Consider if task is truly unnecessary

  3. Check task number is correct

  4. Understand removal is permanent

  5. Document why removing if significant

DO NOT use when:

  • Task should be completed instead

  • Task might be needed later

  • Unsure about removal impact

Returns: {success: bool, message: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier
task_numberYesThe task number to remove
todo_numberYesThe TODO list number

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does so effectively. It discloses key behavioral traits: 'Permanent task removal' (destructive nature), 'Preserves other tasks' (scope limitation), 'Updates task numbering' (side effect), and 'Document why removing if significant' (audit consideration). It doesn't cover rate limits or authentication needs, but provides substantial operational context.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, key features, guidelines, exclusions, returns) and every sentence adds value. It's slightly verbose at 15 sentences, but the information density is high with minimal repetition. The structure helps with quick scanning.

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

Completeness4/5

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

For a destructive operation with no annotations and no output schema, the description provides excellent context: clear purpose, usage guidelines, behavioral transparency, and return value documentation. It covers the essential 'what, when, why, and consequences' needed for safe tool invocation. The only minor gap is lack of explicit error handling guidance beyond the return structure.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (project_id, todo_number, task_number) with their types and constraints. The description adds no specific parameter information beyond what's in the schema, but mentions 'Check task number is correct' which reinforces parameter importance. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the specific action ('Remove a task from a TODO list'), identifies the resource ('TODO list'), and distinguishes it from sibling tools like 'delete_todo' (which removes entire lists) and 'complete_todo_task' (which marks tasks as done). The verb 'remove' is precise and differentiates from deletion operations.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' scenarios (e.g., 'Task is no longer relevant', 'Removing duplicate tasks') and 'DO NOT use when' conditions (e.g., 'Task should be completed instead', 'Task might be needed later'). It clearly distinguishes this from alternatives like 'complete_todo_task' and addresses common decision points.

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

search_knowledgeSearch KnowledgeA

Search project knowledge documents for keywords with intelligent result grouping.

When to use this tool:

  • Finding information across multiple documents

  • Locating specific technical details

  • Discovering related content

  • Checking if topic is already documented

  • Researching before creating new content

Key features:

  • Case-insensitive full-text search

  • Searches document body, titles, and content

  • Groups results by document

  • Returns matching chapters with context

  • Space-separated keyword support

You should:

  1. Use specific keywords for better results

  2. Try multiple search terms if needed

  3. Search before creating new documents

  4. Use 2-3 word phrases for precision

  5. Review all results before concluding

  6. Consider variations of technical terms

  7. Check both titles and content matches

DO NOT use when:

  • Know exact document and chapter

  • Need complete document listing

  • Searching for project main content

Returns: {success: bool, total_documents: int, total_matches: int, results: [...], error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe project identifier
queryYesSpace-separated keywords to search for

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key features like case-insensitive full-text search, scope (document body, titles, content), result grouping by document, and return format details. It also provides usage recommendations (e.g., use specific keywords, try multiple terms). However, it lacks explicit mention of potential limitations like rate limits or authentication needs, which would be helpful for a search tool.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, key features, usage advice, exclusions, returns). While comprehensive, it could be more front-loaded by placing the return format earlier. Some sentences in the 'You should' list are slightly redundant (e.g., points about using specific keywords and 2-3 word phrases overlap), but overall it's efficient and informative.

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

Completeness4/5

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

Given the tool's moderate complexity (search functionality with 2 parameters), no annotations, and no output schema, the description does a good job of covering behavior, usage, and return format. It explains what the tool does, when to use it, and what to expect in the response. However, it could improve by explicitly mentioning error handling or performance considerations, which would make it more complete for an agent.

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

Parameters3/5

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

The input schema has 100% description coverage, providing clear documentation for both parameters ('project_id' and 'query'). The description adds some context by mentioning 'space-separated keyword support' and advising on keyword strategies, but it doesn't significantly enhance the parameter semantics beyond what the schema already defines. This meets the baseline of 3 for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose as 'Search project knowledge documents for keywords with intelligent result grouping', which is a specific verb+resource+scope combination. It distinguishes itself from sibling tools like 'get_knowledge_file' (retrieves a specific file) and 'list_chapters' (lists all chapters without search) by emphasizing search functionality across multiple documents with grouping.

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

Usage Guidelines5/5

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

The description provides explicit 'When to use this tool' scenarios (e.g., finding information across documents, locating technical details) and 'DO NOT use when' exclusions (e.g., when you know the exact document/chapter, need complete document listing). It also includes a 'You should' section with practical advice, offering clear guidance on when to use this tool versus alternatives like 'get_knowledge_file' for known documents.

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

sync_storageSync StorageA

Force git add, commit, and push all changes in the knowledge datastore.

When to use this tool:

  • Manually triggering backup to remote

  • Ensuring changes are persisted

  • Before major operations

  • Resolving sync issues

  • Explicit backup request

Key features:

  • Commits ALL uncommitted changes

  • Pushes to configured remote

  • Auto-generates commit message

  • Handles push failures gracefully

  • Forces synchronization

You should:

  1. Check storage_status first

  2. Use when auto-sync fails

  3. Verify remote is configured

  4. Handle push failures appropriately

  5. Use sparingly (auto-sync usually works)

DO NOT use when:

  • No changes to commit

  • Remote not configured

  • Auto-sync is working fine

Returns: {success: bool, message: str, files_committed: int, pushed: bool, push_error?: str, commit_message: str}

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: commits ALL uncommitted changes, pushes to remote, auto-generates commit messages, handles push failures gracefully, and forces synchronization. It also mentions operational considerations like using sparingly and checking remote configuration. The only minor gap is lack of explicit rate limit or permission requirements.

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

Conciseness5/5

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

The description is well-structured with clear sections (purpose, when to use, key features, recommendations, exclusions, return format). Every sentence adds value—no repetition or fluff. It's front-loaded with the core purpose and efficiently organized for quick scanning.

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

Completeness5/5

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

Given the tool's complexity (mutating synchronization operation), no annotations, and no output schema, the description provides excellent completeness. It covers purpose, usage scenarios, behavioral traits, precautions, and explicitly documents the return value structure. This compensates fully for the lack of structured metadata.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so the baseline would be 3. The description adds value by implicitly confirming no parameters are needed ('Force... all changes'), which aligns with the schema. However, it doesn't explicitly state 'no parameters required,' which would have made it perfect.

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

Purpose5/5

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

The description clearly states the specific action: 'Force git add, commit, and push all changes in the knowledge datastore.' It uses precise verbs (add, commit, push) and specifies the resource (knowledge datastore). It distinguishes itself from siblings like 'get_storage_status' by being an active synchronization tool rather than a status check.

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

Usage Guidelines5/5

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

The description provides explicit guidance with 'When to use this tool' (5 scenarios), 'You should' (5 recommendations), and 'DO NOT use when' (3 exclusions). It clearly differentiates from auto-sync and references sibling tools like 'get_storage_status' for prerequisite checks, offering comprehensive usage context.

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

update_chapterUpdate ChapterA

Update a specific chapter within a knowledge document efficiently.

When to use this tool:

  • Correcting information in a specific chapter

  • Expanding chapter with new content

  • Updating code examples or commands

  • Refreshing outdated chapter content

  • Adding clarifications or improvements

Key features:

  • Preserves all other chapters intact

  • Maintains document structure

  • Updates chapter summary for search

  • Efficient partial document update

You should:

  1. Use exact chapter title (case-sensitive match)

  2. Read current chapter first if needed

  3. Preserve chapter's role in document flow

  4. Update summary if content focus changes

  5. Keep consistent formatting with other chapters

  6. Consider impact on related chapters

  7. Include .md extension in filename

DO NOT use when:

  • Chapter doesn't exist (use add_chapter)

  • Need to update multiple chapters

  • Restructuring entire document

Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
chapter_titleYesExact title of the chapter to update (case-sensitive)
filenameYesKnowledge file name (must include .md extension)
new_contentYesNew content for the chapter (without ## heading)
new_summaryNoOptional chapter summary for search results
project_idYesThe project identifier

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it preserves other chapters and document structure, updates chapter summaries, and is an efficient partial update. However, it lacks details on permissions, error handling, or rate limits, which are important for a mutation tool.

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

Conciseness4/5

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

The description is well-structured with clear sections (e.g., 'When to use this tool', 'Key features', 'You should', 'DO NOT use when'), making it easy to scan. It is appropriately sized, with each sentence adding value, though it could be slightly more concise by integrating some points.

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

Completeness4/5

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

Given the tool's complexity (a mutation tool with 5 parameters) and no annotations or output schema, the description does a good job covering usage, behavior, and exclusions. It explains the return format ({success: bool, message?: str, error?: str}), compensating for the lack of output schema, but could benefit from more detail on error cases or side effects.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, such as implying case-sensitivity for chapter_title and the .md extension requirement, but does not provide significant additional semantic context. 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.

Purpose5/5

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

The description clearly states the tool's purpose: 'Update a specific chapter within a knowledge document efficiently.' It specifies the verb ('update'), resource ('chapter'), and scope ('within a knowledge document'), and distinguishes it from sibling tools like add_chapter and remove_chapter by focusing on modification rather than creation or deletion.

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

Usage Guidelines5/5

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

The description provides explicit guidance with 'When to use this tool' (e.g., correcting information, expanding content) and 'DO NOT use when' (e.g., chapter doesn't exist, need to update multiple chapters), including named alternatives like add_chapter. This clearly defines the tool's context and exclusions.

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

update_project_mainUpdate Project MainA

Create or completely replace main.md content for a project.

When to use this tool:

  • Migrating CLAUDE.md content to centralized MCP storage

  • Creating a new project's instruction set

  • Completely rewriting project guidelines

  • Setting up initial project configuration

Key features:

  • Creates project if it doesn't exist (auto-initialization)

  • Completely replaces existing content (destructive update)

  • Automatically commits changes to git

  • Validates markdown structure

You should:

  1. Check if project exists first with get_project_main

  2. Preserve important sections when doing full updates

  3. Use update_project_section for partial changes instead

  4. Include all necessary sections in the new content

  5. Validate markdown formatting before submission

  6. Consider the impact of complete replacement

  7. Document why full replacement is necessary

DO NOT use when:

  • Making small updates (use update_project_section instead)

  • You haven't read the existing content first

  • Uncertain about losing existing content

Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe new markdown content for main.md
project_idYesThe project identifier

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits beyond the input schema. It details auto-initialization, destructive updates, git commits, and markdown validation. It also warns about impact ('Consider the impact of complete replacement') and provides actionable steps, adding significant value for a mutation tool.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, usage, features, guidelines, exclusions) and uses bullet points for readability. It is appropriately sized but could be slightly more concise by integrating some points; however, every sentence adds value, earning a high score.

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

Completeness5/5

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

Given the tool's complexity (destructive update with auto-initialization), no annotations, and no output schema, the description provides comprehensive context. It explains behavior, usage scenarios, alternatives, precautions, and even hints at return values ('Returns: {success: bool...}'), making it complete enough for effective agent use.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents both parameters ('content' and 'project_id'). The description implies parameter usage (e.g., 'new markdown content' and 'project identifier') but doesn't add syntax or format details beyond the schema. This meets the baseline of 3 when schema coverage is high.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('Create or completely replace') and resource ('main.md content for a project'). It distinguishes from sibling tools like 'update_project_section' by emphasizing complete replacement versus partial updates, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance with dedicated 'When to use this tool' and 'DO NOT use when' sections, listing specific scenarios like migrating content or creating new projects. It names alternatives (e.g., 'use update_project_section for partial changes') and includes prerequisites (e.g., 'Check if project exists first with get_project_main'), offering comprehensive usage context.

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

update_project_sectionUpdate Project SectionA

Update a specific section within the project main.md file efficiently.

When to use this tool:

  • Modifying a single section without affecting others

  • Adding new configuration or guidelines to existing section

  • Fixing errors in specific sections

  • Updating outdated information in targeted areas

  • Making incremental improvements

Key features:

  • Preserves all other sections intact (non-destructive)

  • More efficient than full file replacement

  • Maintains document structure

  • Atomic section-level updates

You should:

  1. Identify the exact section header including "## " prefix

  2. Read the current section content first if needed

  3. Preserve section formatting conventions

  4. Use this instead of update_project_main for small changes

  5. Verify section exists before attempting update

  6. Keep section content focused and relevant

  7. Consider impact on related sections

DO NOT use when:

  • Section doesn't exist (use add_project_section)

  • Need to update multiple sections (batch operations)

  • Restructuring entire document

Section header must match exactly (e.g., "## Installation") Returns: {success: bool, message?: str, error?: str}

ParametersJSON Schema
NameRequiredDescriptionDefault
new_contentYesThe new content for this section (without the header)
project_idYesThe project identifier
section_headerYesThe exact section header to update (e.g., "## Installation")

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: 'Preserves all other sections intact (non-destructive),' 'More efficient than full file replacement,' 'Maintains document structure,' 'Atomic section-level updates,' and the return format. It also includes practical steps like verifying section existence and preserving formatting. However, it doesn't mention potential side effects like versioning or backup behavior.

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

Conciseness4/5

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

The description is well-structured with clear sections ('When to use this tool,' 'Key features,' 'You should,' 'DO NOT use when'), making it easy to scan. Each sentence adds value, such as distinguishing from sibling tools and providing actionable steps. However, it could be slightly more concise by integrating some bullet points into flowing text without losing clarity.

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

Completeness5/5

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

Given the tool's complexity (section-level updates in a file) and the absence of annotations and output schema, the description provides comprehensive context. It covers purpose, usage scenarios, behavioral traits, parameter nuances, and return values ('Returns: {success: bool, message?: str, error?: str}'). This is complete enough for an agent to understand and use the tool effectively without relying on other structured fields.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds meaningful context beyond the schema: it explains that 'section_header' must include the '## ' prefix and match exactly, and provides examples like '## Installation.' It also clarifies that 'new_content' should be without the header and advises reading current content first. This enhances understanding beyond the basic schema definitions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Update a specific section within the project main.md file efficiently.' It specifies the verb ('update'), resource ('section within the project main.md file'), and distinguishes it from sibling tools like 'update_project_main' by focusing on section-level updates rather than full file replacement.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('Modifying a single section without affecting others,' 'Adding new configuration,' etc.) and when not to use it ('Section doesn't exist (use add_project_section),' 'Need to update multiple sections,' 'Restructuring entire document'). It also names alternatives like 'add_project_section' and 'update_project_main' for different scenarios.

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

Tool Schema Changelog

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

  1. 27 tool updatesv1.0.0
    • First observedadd_chapter
    • First observedadd_project_section
    • First observedadd_todo_task
    • First observedcomplete_todo_task
    • First observedcreate_knowledge_file
    • First observedcreate_todo
    • First observeddelete_knowledge_file
    • First observeddelete_project
    • First observeddelete_todo
    • First observedget_chapter
    • First observedget_knowledge_file
    • First observedget_next_chapter
    • First observedget_next_todo_task
    • First observedget_project_main
    • First observedget_server_info
    • First observedget_storage_status
    • First observedget_todo_tasks
    • First observedlist_chapters
    • First observedlist_todos
    • First observedremove_chapter
    • First observedremove_project_section
    • First observedremove_todo_task
    • First observedsearch_knowledge
    • First observedsync_storage
    • First observedupdate_chapter
    • First observedupdate_project_main
    • First observedupdate_project_section

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, with clear boundaries between knowledge files, chapters, TODOs, and project sections. However, there is some overlap between add_chapter/add_project_section and update_chapter/update_project_section, which could cause confusion about when to use each. The descriptions help clarify, but the similar naming and functionality create minor ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, with clear action-object pairs like create_knowledge_file, delete_todo, update_chapter, and get_server_info. All tools use snake_case consistently, and verbs like create, delete, update, get, list, add, remove, search, and sync are used predictably across different resource types.

Tool Count2/5

With 27 tools, this server feels overloaded for a knowledge management system. While the domain is broad (knowledge files, chapters, TODOs, projects, and storage operations), many tools could be consolidated or simplified. The high count increases cognitive load and makes it harder for agents to navigate the complete tool surface efficiently.

Completeness5/5

The tool surface provides comprehensive CRUD/lifecycle coverage for all major resource types: knowledge files (create, get, delete, search), chapters (add, get, update, remove, list), TODOs (create, get tasks, complete, delete), and project sections (add, update, remove). There are no obvious gaps, and tools like sync_storage and get_server_info provide necessary infrastructure operations.

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

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sven-borkert/knowledge-mcp'

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