Skip to main content
Glama
ellmos-ai

ellmos-codecommander-mcp

ellmos CodeCommander MCP Server

🇩🇪 Deutsche Version

Part of the ellmos-ai family.

License: MIT npm version CodeCommander tests Vitest Node.js Platform Privacy Security Ecosystem Umbrella LLM Indexing

NOTE

For AI Assistants & LLMs: Machine-readable indexing documentation for this repository is available at llms.txt. The server exposes 22 specialized tools under the cc_ prefix.

A developer-focused Model Context Protocol (MCP) server that gives AI assistants code analysis, structural Python editing, JSON repair, encoding fix, import organization, format conversion, file diff, and regex testing capabilities.

22 tools optimized for developers - the coding companion to FileCommander.

Discoverability: Published on npm as ellmos-codecommander-mcp, visible on Glama, and prepared for the official MCP Registry with server.json under io.github.ellmos-ai/ellmos-codecommander-mcp. Registry and directory manifests server.json, glama.json, smithery.yaml, and llms.txt are maintained in full parity.


Architecture Overview

graph TD
    Client["MCP Clients<br/>(Claude Desktop / Claude Code / Cursor / Windsurf)"]
    Server["ellmos CodeCommander MCP Server<br/>(stdio transport • Node.js)"]

    subgraph Tools["Developer Tool Suites (22 Tools)"]
        subgraph CodeIntel["Code & Python Intelligence"]
            C1["cc_analyze_code"]
            C2["cc_analyze_methods"]
            C3["cc_extract_classes"]
            C4["cc_check_indentation"]
            C5["cc_generate_python_code"]
            C6["cc_python_structural_edit"]
        end

        subgraph Imports["Import Management"]
            I1["cc_organize_imports"]
            I2["cc_diagnose_imports"]
            I3["cc_runtime_import_diagnose"]
        end

        subgraph Repair["Text, JSON & Encoding Repair"]
            R1["cc_fix_json"]
            R2["cc_validate_json"]
            R3["cc_fix_encoding"]
            R4["cc_cleanup_file"]
            R5["cc_fix_umlauts"]
        end

        subgraph Utility["Utilities & Conversion"]
            U1["cc_convert_format (JSON/CSV/YAML/TOML/XML/TOON)"]
            U2["cc_diff_files (Unified Diff)"]
            U3["cc_regex_test (Regex Tester)"]
            U4["cc_scan_emoji"]
            U5["cc_generate_licenses"]
        end

        subgraph Export["Export & i18n"]
            E1["cc_md_to_html"]
            E2["cc_md_to_pdf"]
            E3["cc_set_language"]
        end
    end

    Client -->|Stdio JSON-RPC| Server
    Server --> CodeIntel
    Server --> Imports
    Server --> Repair
    Server --> Utility
    Server --> Export

Code Intelligence & Safe Structural Edit Lifecycle

sequenceDiagram
    autonumber
    actor Developer as Developer / LLM Client
    participant Stdio as CodeCommander Server (stdio)
    participant Core as AST & Code Intelligence Core
    participant Disk as Local Filesystem

    Developer->>Stdio: cc_python_structural_edit (mode: "preview" / "apply")
    Stdio->>Core: Parse Python AST & Validate Syntax
    alt Validation Failed
        Core-->>Stdio: Syntax / Parsing Diagnostics
        Stdio-->>Developer: Error Diagnostics & Line References
    else Validation Passed
        Core->>Disk: Read Original File
        Core->>Core: Compute Unified Structural Diff
        alt Mode == "preview"
            Core-->>Stdio: Return Diff Preview (Zero File Mutations)
            Stdio-->>Developer: Structural Diff Preview
        else Mode == "apply"
            Core->>Disk: Create .bak Backup File
            Core->>Disk: Write Modified AST Code In-Place
            Core-->>Stdio: Confirmation with Applied Diff & Backup Path
            Stdio-->>Developer: Success Payload
        end
    end

Related MCP server: mcp-dev-utils

Why CodeCommander?

While FileCommander handles filesystem operations, CodeCommander focuses on code intelligence:

  • Python Code Analysis - AST-based class/method extraction, complexity metrics, import analysis

  • BACH-derived Python Helpers - runtime import diagnostics, structural edits, indentation checks, and template-based code generation

  • JSON Repair - Fix broken JSON automatically (trailing commas, single quotes, BOM, comments)

  • Import Organization - Sort and deduplicate Python imports per PEP 8

  • Encoding Fix - Repair Mojibake and double-encoded UTF-8 (27+ patterns)

  • Umlaut Repair - Fix broken German characters (70+ patterns)

  • Format Conversion - Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON

  • File Diff - Compare two files with unified diff output (LCS algorithm)

  • Regex Tester - Test regular expressions with match details, groups, and replace preview

  • Markdown Export - Convert Markdown to professional HTML/PDF with code blocks, tables, nested lists, blockquotes

  • Cross-platform - Works on Windows, macOS, and Linux


Installation

Prerequisites

Option 1: Install from NPM

npm install -g ellmos-codecommander-mcp

Option 2: Install from Source

git clone https://github.com/ellmos-ai/ellmos-codecommander-mcp.git
cd ellmos-codecommander-mcp
npm install
npm run build

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

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

If installed globally via NPM:

{
  "mcpServers": {
    "codecommander": {
      "command": "ellmos-codecommander"
    }
  }
}

If installed from source:

{
  "mcpServers": {
    "codecommander": {
      "command": "node",
      "args": ["/absolute/path/to/ellmos-codecommander-mcp/dist/index.js"]
    }
  }
}

Using Both Servers Together

FileCommander and CodeCommander are designed to work side by side:

{
  "mcpServers": {
    "filecommander": {
      "command": "ellmos-filecommander"
    },
    "codecommander": {
      "command": "ellmos-codecommander"
    }
  }
}

Tools Overview

Code Analysis (3 tools)

Tool

Description

cc_analyze_code

Full code analysis: classes, functions, imports, LOC, complexity

cc_analyze_methods

Detailed method analysis: params, decorators, visibility, data flow, BACH guardrails

cc_extract_classes

Extract Python classes/functions as separate text blocks, optionally including pycutter-style inline content

Import Management (3 tools)

Tool

Description

cc_organize_imports

Sort & deduplicate Python imports per PEP 8

cc_diagnose_imports

Detect unused imports, duplicates, circular import risks

cc_runtime_import_diagnose

Run isolated Python runtime imports with timeouts, init.py analysis, and circular-import hints

JSON Tools (2 tools)

Tool

Description

cc_fix_json

Repair broken JSON (BOM, trailing commas, comments, single quotes)

cc_validate_json

Validate JSON with detailed error position and context

Encoding & Text (3 tools)

Tool

Description

cc_fix_encoding

Fix Mojibake / double-encoded UTF-8 (27+ patterns)

cc_cleanup_file

Remove BOM, NUL bytes, trailing whitespace, normalize line endings

cc_fix_umlauts

Repair broken German umlauts (70+ patterns, HTML entities, escapes)

Scanning (1 tool)

Tool

Description

cc_scan_emoji

Scan files for emojis with codepoint info

Format & Documentation (2 tools)

Tool

Description

cc_convert_format

Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON formats

cc_generate_licenses

Generate third-party license file (npm/pip)

Developer Utilities (2 tools)

Tool

Description

cc_diff_files

Compare two files with unified diff output (configurable context lines)

cc_regex_test

Test regex patterns against text/files with match details, groups, and replace preview

Python Assistance (3 tools)

Tool

Description

cc_check_indentation

Detect missing colons, unindented return/yield statements, and mixed tab/space indentation

cc_generate_python_code

Generate Python functions, classes, dataclasses, CLI stubs, tests, exceptions, and modules from templates

cc_python_structural_edit

Inspect and apply structural Python edits with preview, test-file, syntax-check and backup modes

Export (2 tools)

Tool

Description

cc_md_to_html

Markdown to standalone HTML with CSS styling (headers, code blocks, tables, nested lists, blockquotes, images, checkboxes)

cc_md_to_pdf

Markdown to PDF via headless browser (Edge/Chrome). Falls back to HTML if no browser is available

Total: 22 developer tools (cc_set_language is also available for runtime language switching)


Shared Tools

7 tools exist in both FileCommander and CodeCommander for convenience:

FileCommander

CodeCommander

Function

fc_fix_json

cc_fix_json

JSON repair

fc_validate_json

cc_validate_json

JSON validation

fc_fix_encoding

cc_fix_encoding

Encoding repair

fc_cleanup_file

cc_cleanup_file

File cleanup

fc_convert_format

cc_convert_format

Format conversion (JSON/CSV/INI/YAML/TOML/XML/TOON)

fc_md_to_html

cc_md_to_html

Markdown to HTML export

fc_md_to_pdf

cc_md_to_pdf

Markdown to PDF export


Tool Prefix

All tools use the cc_ prefix (CodeCommander) to avoid conflicts with FileCommander's fc_ prefix and other MCP servers.


Security

See SECURITY.md for detailed security information.

Key points:

  • File-modifying tools support preview/dry-run modes where applicable

  • Backup creation is enabled by default for destructive operations

  • Pure stdio JSON-RPC transport with Zero-Egress guarantees

  • Designed for local development use with standard unprivileged user permissions


Development

npm install
npm run dev    # Watch mode
npm run build  # One-time build
npm start      # Start server
npm test       # Run test suite (vitest)
npm run test:integration  # 35 real MCP stdio assertions (after build)
npm run test:i18n         # 43 translation assertions

Testing

The supported gates are deliberately separated: npm test runs the 183-test Vitest suite, npm run test:integration runs 35 real MCP stdio assertions against dist/index.js, and npm run test:i18n runs 43 translation assertions (261 automated test assertions total).

npm test                  # Run Vitest unit tests (183 tests)
npm run test:integration  # Real MCP stdio test (35 assertions, build first)
npm run test:i18n         # i18n assertions (43 assertions)
npm run test:all          # Run full test suite (build + vitest + integration + i18n)

Tests are verified on Windows, macOS, and Linux.

GitHub Actions runs the build, all three test gates (183 Vitest, 35 MCP stdio, 43 i18n assertions — 261 assertions total), and npm package check on Node.js 20, 22, and 24.


Changelog

See CHANGELOG.md for the full version history.


License

MIT - Lukas Geiger (ellmos-ai)


History

This project was originally developed as BACH CodeCommander (bach-codecommander-mcp). It has been renamed to ellmos CodeCommander (ellmos-codecommander-mcp) as part of the ellmos-ai organization.

The legacy package name bach-codecommander-mcp is deprecated. Please use ellmos-codecommander-mcp instead:

npm uninstall -g bach-codecommander-mcp
npm install -g ellmos-codecommander-mcp

ellmos-ai Ecosystem

This MCP server is part of the ellmos-ai ecosystem — AI infrastructure, MCP servers, and intelligent tools.

MCP Server Family

Server

Tools

Focus

npm

FileCommander

46

Filesystem, process management, interactive sessions, cloud-lock-safe operations

ellmos-filecommander-mcp

CodeCommander

22

Code analysis, JSON repair, imports, diffs, regex

ellmos-codecommander-mcp

Clatcher

12

File repair, format conversion, batch operations

ellmos-clatcher-mcp

n8n Manager

18

n8n workflow management via AI assistants

n8n-manager-mcp

ControlCenter

20

MCP stack discovery, profile management, control plane

ellmos-controlcenter-mcp

Homebase

45

Local-first LLM memory, knowledge, state, routing, swarm orchestration

ellmos-homebase-mcp (alpha)

ServerCommander

8

Server operations: health checks, log analysis, deploy dry-runs, mail diagnostics

ellmos-servercommander-mcp (alpha)

Blender Use

3

Headless Blender asset QA and FBX reimport verification

ellmos-blender-use-mcp (alpha)

Open Compute

10

Model-agnostic computer use: capture, safety-gated actions, Windows UIA

open-compute-mcp (alpha)

Sibling Developer, File & Document Tools

Ecosystem

Tool / Project

Focus & Capabilities

ellmos-ai

sqlite-transit-sync

Offline SQLite change distribution with HMAC verification

ellmos-ai

policy-registry

Cryptographically signed delegation policies for AI agents

ellmos-ai

clutch

Provider-neutral LLM orchestration with auto-routing and budget tracking

ellmos-ai

BACH

Local-first text-based OS for LLM agents — 113+ handlers, 550+ tools

dev-bricks

DevCenter

PySide6 Developer Desktop Suite & offline secret vault

dev-bricks

CodeBox

Fast desktop code snippet manager & local AST indexing

dev-bricks

automation-master

Event-sourced automation orchestration & 30-day receipts

dev-bricks

MethodenAnalyser

Method flow & complexity diagnostic engine

doc-bricks

PDFtoPDFocr

Desktop OCR pipeline for searchable PDFs with Tesseract

doc-bricks

DokuReader

Multi-format document workspace & offline PDF export

file-bricks

ProFiler

Multi-pane file management & bulk batch operations

open-bricks

open-bricks

Umbrella organization for AI-native desktop applications

AI Infrastructure

Project

Description

BACH

Local-first text-based OS for LLM agents — 113+ handlers, 550+ tools, SQLite memory

open-compute

Model-agnostic computer-use core powering Open Compute MCP

clutch

Provider-neutral LLM orchestration with auto-routing and budget tracking

rinnsal

Lightweight agent memory, connectors, and automation infrastructure

ellmos-stack

Self-hosted AI research stack (Ollama + n8n + Rinnsal + KnowledgeDigest)

MarbleRun

Autonomous agent chain framework for Claude Code

gardener

Minimalist database-driven LLM OS prototype (4 functions, 1 table)

ellmos-tests

Testing framework for LLM operating systems (7 dimensions)

Desktop Software

Our partner organization open-bricks bundles AI-native desktop applications — a modern, open-source software suite built for the age of AI. Categories include file management, document tools, developer utilities, and more.

Liability

Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß § 521 BGB auf Vorsatz und grobe Fahrlässigkeit beschränkt. Ergänzend gilt der Haftungsausschluss der MIT-Lizenz.

Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.

This project is an unpaid open-source donation under German law. Liability is limited to intent and gross negligence (§ 521 German Civil Code), supplemented by the MIT License warranty disclaimer. Use at your own risk.

Available Tools

22 tools
cc_analyze_codeAnalyze CodeB
Read-onlyIdempotent

Analyzes a Python file: classes, functions, imports, metrics.

Args:

  • path (string): Path to the Python file

Returns:

  • Classes with methods, functions, import analysis, LOC, complexity

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the Python file

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint true, destructiveHint false, idempotentHint true. Description adds return value details (classes, methods, etc.) which is helpful but does not disclose behavior beyond what annotations provide. No contradiction.

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?

Description is concise at 2 sentences plus a bullet list of return values. Essential information is front-loaded. Could potentially be more concise by removing the bullet list if not needed, but overall efficient.

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

Completeness3/5

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

Given the tool has 1 parameter with full schema coverage, no output schema, and rich annotations, the description adequately states the analysis scope and return value. However, it lacks details on error conditions (e.g., file not found) and implicit dependencies like Python installed. Lacking that, it's minimally complete.

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

Parameters3/5

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

The single parameter 'path' is fully described in the input schema (100% coverage). Description repeats the parameter description but adds no new meaning beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

Description clearly states it analyzes a Python file with specific elements (classes, functions, etc.) and metrics. Differentiates from sibling by mentioning 'Python file' and specific analysis outputs, but could be more distinct from cc_analyze_methods.

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

Usage Guidelines3/5

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

Description implies use for investigating Python code structure and metrics. No mention of when to use alternatives like cc_analyze_methods or cc_diagnose_imports, but the scope is clear.

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

cc_analyze_methodsAnalyze MethodsA
Read-onlyIdempotent

Detailed method analysis of a Python file.

Args:

  • path (string): Path to the Python file

  • class_name (string, optional): Only methods of this class

Returns:

  • Methods with parameters, decorators, complexity, data flow

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the Python file
class_nameNoOnly analyze this class

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate this is read-only and idempotent. The description adds value by detailing what analysis is performed (parameters, decorators, complexity, data flow), which goes beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is extremely concise: a one-line summary followed by organized Args and Returns sections. Every sentence is informative and earns its place.

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

Completeness4/5

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

Given the tool's complexity (method analysis), the description is fairly complete. It covers inputs, optional filter, and output. However, it does not mention performance considerations for large files, which would be helpful.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds minimal extra beyond the schema. It repeats parameter descriptions but does not provide deeper semantics like file size limits or encoding requirements.

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 performs detailed method analysis of a Python file, listing what is returned (methods with parameters, decorators, complexity, data flow). It is distinct from sibling tools like cc_analyze_code and cc_extract_classes.

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

Usage Guidelines4/5

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

The description includes explicit parameters (path and optional class_name) and the return format, but lacks guidance on when to use this tool versus alternatives like cc_analyze_code or cc_extract_classes. It is clear but does not exclude other tools.

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

cc_check_indentationCheck Python IndentationB
Read-onlyIdempotent

Prüft Python-Dateien auf fehlende Doppelpunkte, unindentierte return/yield-Zeilen und gemischte Tab-/Leerzeichen-Einrückung

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPython file or directory to check
recursiveNoRecurse into subdirectories when path is a directory
max_issuesNoMaximum number of issues to include

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds the specific checks performed, which is useful context but does not disclose return format, error behavior, or how results are reported.

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

Conciseness4/5

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

The description is a single sentence that efficiently communicates the tool's purpose with no redundant information. However, being in German may reduce clarity for English-speaking agents, but conciseness is otherwise excellent.

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

Completeness2/5

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

The tool has no output schema, so the description should explain what the tool returns (e.g., list of issues, file paths). It does not, leaving the agent uncertain about the result format. With moderate schema richness, this is a significant gap.

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

Parameters3/5

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

Schema coverage is 100% with good descriptions for path, recursive, and max_issues. The description does not add additional parameter meaning beyond the schema, so 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 checks Python files for specific indentation issues like missing colons, unindented return/yield, and mixed tabs/spaces. The verb 'Prüft' and resource 'Python-Dateien' are specific, and the listed issues distinguish it from general code analysis siblings like cc_analyze_code.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., cc_analyze_code). It merely states what it does, leaving the agent without context for selection.

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

cc_cleanup_fileCleanup FileA
Idempotent

Cleans up source code files: BOM, NUL bytes, trailing whitespace, line endings.

Args:

  • path (string): Path to the file

  • remove_bom (boolean): Remove BOM

  • remove_trailing_whitespace (boolean): Trailing whitespace

  • normalize_line_endings (string): "lf" | "crlf"

  • remove_nul_bytes (boolean): Remove NUL bytes

  • dry_run (boolean): Preview only

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file
dry_runNoPreview only
remove_bomNoRemove BOM
remove_nul_bytesNoNUL bytes
normalize_line_endingsNoLine endings
remove_trailing_whitespaceNoTrailing whitespace

TDQS

A3.9/5.0
Behavior4/5

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

Annotations indicate idempotency (idempotentHint=true) and non-destructive (destructiveHint=false). Description adds that dry_run is available for preview, making it safe to test. However, it doesn't mention file backup or undo behavior, which is acceptable given idempotency annotation.

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?

Description is concise and front-loaded with the purpose, followed by parameter list. The list format is clear. Minor waste: some descriptions are truncated (e.g., 'Trailing whitespace' could be more descriptive).

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 good schema coverage and annotations, the description is complete enough for a cleanup tool. It explains all operations and includes dry_run. No output schema, but the tool is simple and output is likely a success message or diff, which may be inferred.

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 covers all 6 parameters with descriptions (100% coverage). The description repeats parameter info from schema, adding no new semantics beyond what schema provides. Baseline 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 it cleans up source code files with specific operations (BOM, NUL bytes, trailing whitespace, line endings). It distinguishes from siblings like cc_fix_encoding and cc_organize_imports by focusing on whitespace and byte-level cleanup.

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

Usage Guidelines3/5

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

The description lists operations but does not provide guidance on when to use this tool vs alternatives (e.g., cc_fix_encoding for encoding issues). No explicit when-not-to-use or prerequisites mentioned.

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

cc_convert_formatConvert FormatA
Idempotent

Converts between JSON, CSV, INI, YAML, TOML, XML, and TOON formats.

Args:

  • input_path (string): Source file

  • output_path (string): Target file

  • input_format (string): "json" | "csv" | "ini" | "yaml" | "toml" | "xml" | "toon"

  • output_format (string): "json" | "csv" | "ini" | "yaml" | "toml" | "xml" | "toon"

  • json_indent (number): JSON indentation

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathYesSource file
json_indentNoJSON indentation
output_pathYesTarget file
input_formatYesInput format
output_formatYesOutput format

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already provide idempotentHint=true, indicating repeated calls are safe. Description adds that it converts formats, but doesn't disclose whether input/output files are overwritten, if temporary files are created, or error handling. No contradiction with annotations (idempotentHint=true is consistent with conversion). Annotation contradiction: false.

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?

Description is concise (3 lines) with bullet-like listing of args. However, the Args section is essentially a duplication of the schema. Could be trimmed to just the first sentence plus a note about optional json_indent. Still, no wasted sentences.

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 output schema, description lacks info on return value (e.g., success message, error handling). However, conversion tools typically return success/failure. Parameter coverage is complete. Suggestions for additional context: output file overwrite behavior or format conversion limitations.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by listing all parameters and their types, which is redundant but helpful in a quick look. It also mentions a non-schema item (json_indent with default) and provides format enums inline. Slight extra value beyond schema.

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 that the tool converts between multiple specific formats (JSON, CSV, INI, YAML, TOML, XML, TOON). The verb 'converts' and the list of formats provide high specificity. Sibling tools like cc_fix_json or cc_validate_json are related but distinct, and the description differentiates by covering many formats.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. For example, if the goal is only to validate JSON, cc_validate_json might be better. However, the tool's broad format support implies it is the go-to for general conversion. No exclusion criteria or alternatives mentioned.

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

cc_diagnose_importsDiagnose ImportsA
Read-onlyIdempotent

Diagnoses import issues: missing modules, circular imports, unused imports.

Args:

  • path (string): Path to the Python file

Detects: Missing modules, suspected circular imports, import issues

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the Python file

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the tool as readOnly and non-destructive, so the description need not restate that. It adds value by detailing the types of issues detected (missing modules, circular imports, etc.), which goes beyond the annotations.

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 short and front-loaded with purpose. The second sentence repeats 'path' information from schema, minor redundancy.

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 low complexity (one parameter, no nested objects), the description adequately covers purpose and detection. No output schema exists, but the tool's output (diagnosis list) is implicit and not critical.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'path', so baseline is 3. The description restates the parameter's purpose but adds no extra detail beyond what the schema already 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 it diagnoses import issues like missing modules, circular imports, and unused imports. It distinguishes itself from siblings like cc_analyze_code and cc_organize_imports by focusing on diagnosing problems rather than general analysis or organization.

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

Usage Guidelines3/5

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

The description implies usage when encountering import problems, but does not explicitly state when to use this tool versus others. No when-not-to-use or exclusion criteria are given, leaving the agent to infer context.

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

cc_diff_filesDiff FilesA
Read-onlyIdempotent

Vergleicht zwei Dateien und zeigt Unterschiede im Unified-Diff-Format

ParametersJSON Schema
NameRequiredDescriptionDefault
file_aYesPath to first file
file_bYesPath to second file
context_linesNoNumber of context lines (default: 3)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, so the tool is clearly a safe, read-only, idempotent operation. The description adds the specific output format (Unified-Diff-Format), which provides useful behavioral context beyond annotations.

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

Conciseness5/5

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

The description is a single, well-formed sentence that efficiently conveys the tool's purpose and output format. No unnecessary words or redundant information.

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

Completeness4/5

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

Given that the tool has simple inputs (two file paths and an optional context lines parameter), the description covers the core functionality. However, it does not mention any potential constraints like file existence or formats, but given the schema's completeness and the tool's simplicity, it is largely adequate.

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 the three parameters with descriptions. The description does not add any further semantic context beyond what the schema provides, but it also does not need to. Baseline 3 is appropriate here.

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 that the tool compares two files and shows differences in unified diff format. It is a specific verb ('vergleicht') plus resource ('zwei Dateien') with an explicit output format, which distinguishes it from siblings like cc_analyze_code or cc_cleanup_file.

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

Usage Guidelines3/5

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

The description implies usage for comparing two files, but it does not provide any guidance on when to use this tool versus other tools that might also handle file comparisons (none directly, but siblings like cc_analyze_code could be related). No alternatives or exclusions are mentioned.

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

cc_extract_classesExtract ClassesA
Idempotent

Extracts Python classes and functions from a file as separate text blocks.

Args:

  • path (string): Path to the Python file

  • output_dir (string, optional): Output directory (otherwise display only)

  • include_content (boolean, optional): Include pycutter-style code blocks in the response

  • max_chars (number, optional): Maximum response characters for included code

Useful for code review and documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the Python file
max_charsNoMaximum characters of included extracted content
output_dirNoOutput directory
include_contentNoInclude extracted class/helper content in the MCP response

TDQS

A4.1/5.0
Behavior4/5

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

Discloses that output_dir is optional and defaults to display only, which is behavioral. Annotations already mark it as idempotent and non-destructive, and description does not contradict. Adds value beyond annotations.

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?

Exceptionally concise: a single-sentence purpose, brief parameter list, and one-line usage note. No redundant or vague language, well-structured with clear front-loading.

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

Completeness3/5

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

Covers purpose and parameter basics but lacks explanation of output format (e.g., what 'separate text blocks' look like) and what 'pycutter-style code blocks' means. With no output schema, more detail would be helpful.

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 baseline is 3. The description's 'Args' section largely repeats schema descriptions without adding new semantics or clarifying edge cases.

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

Purpose5/5

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

The description uses a specific verb-resource pair 'Extracts Python classes and functions' and clearly distinguishes it from sibling tools like cc_analyze_code by emphasizing extraction of separate text blocks.

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

Usage Guidelines4/5

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

States 'Useful for code review and documentation', providing clear context. However, it does not explicitly mention when to avoid using this tool or how it differs from similar siblings (e.g., cc_analyze_methods).

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

cc_fix_encodingFix EncodingA
Idempotent

Repairs encoding errors (Mojibake, double UTF-8).

Args:

  • path (string): Path to the file

  • dry_run (boolean): Preview only

  • create_backup (boolean): Create backup

Repairs 27+ Mojibake patterns (German, French, Spanish).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file
dry_runNoPreview only
create_backupNoCreate backup

TDQS

A4/5.0
Behavior4/5

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

Annotations declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds context that it repairs 27+ patterns for specific languages, which goes beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is extremely concise: one sentence for purpose, a compact list of arguments, and a one-liner about patterns. Every word adds value; no filler.

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 low complexity (3 parameters, no output schema), the description is adequate: it explains the tool's purpose, parameters, and supported patterns. Could mention that it modifies files in-place (destructiveHint=false but still writes), but completeness is high for the scope.

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 parameters. The description briefly mentions the three params (path, dry_run, create_backup) but adds no extra context beyond what is in the schema.

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

Purpose5/5

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

The description states 'Repairs encoding errors (Mojibake, double UTF-8)' which is a specific verb-resource pair. It clearly distinguishes from siblings like cc_fix_json or cc_fix_umlauts by focusing on encoding issues.

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

Usage Guidelines3/5

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

The description implicitly suggests use for encoding errors but gives no explicit guidance on when to use vs alternatives like cc_fix_umlauts or cc_scan_emoji. No when-not or exclusion criteria provided.

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

cc_fix_jsonFix JSONA
Idempotent

Automatically repairs common JSON errors.

Args:

  • path (string): Path to the JSON file

  • dry_run (boolean): Only show issues

  • create_backup (boolean): Create backup

Repairs: BOM, trailing commas, single quotes, comments, NUL bytes

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the JSON file
dry_runNoPreview only
create_backupNoCreate backup

TDQS

A3.9/5.0
Behavior4/5

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

Annotations indicate idempotentHint=true and destructiveHint=false, which the description does not contradict. The description adds behavioral context by listing specific error types repaired, and mentions backup creation, which is useful. However, it doesn't disclose if repairs are lossy or if output is overwritten.

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 concise with bullet-listed parameter descriptions and a clear summary of repairs. It could be slightly more structured, but it's effective and front-loaded.

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 (3 params, no output schema), the description covers the main use case and parameters. It lacks detail on return values and edge cases, but for a repair tool this is adequate. The annotations provide additional context like idempotency.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds minor clarity by listing the repairs and summarizing each parameter's purpose, but does not add further semantics beyond what the schema's descriptions provide.

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 repairs common JSON errors, listing specific issues (BOM, trailing commas, etc.). This distinguishes it from siblings like cc_validate_json and cc_convert_format by focusing on fixing rather than validating or converting.

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

Usage Guidelines3/5

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

The description implicitly suggests use when JSON files have common errors, but it does not explicitly state when to use this vs alternatives like cc_validate_json. No when-not-to-use or exclusionary conditions are provided.

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

cc_fix_umlautsFix UmlautsA
Idempotent

Repairs broken German umlauts in source code files.

Args:

  • path (string): Path to the file

  • dry_run (boolean): Preview only

  • create_backup (boolean): Create backup

Detects 70+ patterns of broken umlauts and replaces them correctly.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file
dry_runNoPreview only
create_backupNoCreate backup

TDQS

A3.7/5.0
Behavior4/5

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

Annotations indicate idempotentHint=true and destructiveHint=false, so the description aligns. It adds value by disclosing the 70+ patterns detected and replacement behavior, which is beyond annotations.

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?

Description is concise with three sentences, front-loading the core purpose. The Args list could be integrated into the first sentence to reduce redundancy, but overall 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?

The description is complete given no output schema and 100% schema coverage. It explains the tool's unique capability (70+ patterns) and parameter functions sufficiently for an agent.

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

Parameters3/5

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

Schema has 100% description coverage, so parameters are fully described in schema. The description only lists parameter names, adding no extra meaning beyond what schema provides.

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 fixes broken German umlauts in source code files, specifying the resource type (source code) and the scope (German umlauts). It distinguishes from sibling tools like cc_fix_encoding by targeting a specific encoding issue.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like cc_fix_encoding. It implies usage for German umlaut problems but lacks guidance on prerequisites or conditions.

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

cc_generate_licensesGenerate LicensesA
Idempotent

Generates a third-party license file for an npm or Python project.

Args:

  • project_dir (string): Project directory

  • output_path (string): Output file

  • format (string): "text" | "json" | "csv"

Reads package.json (npm) or pip packages and collects license info.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormattext
output_pathYesOutput file
project_dirYesProject directory

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already show idempotentHint=true (no side effects beyond output file) and destructiveHint=false. Description adds context: reads package.json or pip packages, so agent knows it doesn't modify project. No contradictions.

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?

Very concise: 4 lines with clear bullet for args and a short sentence on behavior. No fluff, front-loaded 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?

Given no output schema, description doesn't detail return value, but that's acceptable. Enumerates supported project types and formats. Could mention if output file is overwritten, but idempotent hint implies content generation. Complete for a simple license generator.

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

Parameters4/5

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

Schema coverage is 100% with basic descriptions. Description adds meaning beyond schema: lists allowed format values (text/json/csv) and explains project_dir is for npm or Python projects. Slightly improves on schema.

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?

Clearly states it generates a third-party license file for npm or Python projects. Specifies input (package.json or pip packages) and outputs (license info). Differentiates from siblings focusing on code analysis, conversion, or cleanup.

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

Usage Guidelines3/5

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

Implies usage for generating license files, but no explicit guidance on when to use this vs alternatives. No mention of prerequisites (e.g., presence of package.json) or when not to use.

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

cc_generate_python_codeGenerate Python CodeB
Read-onlyIdempotent

Generiert Python-Code-Snippets aus BACH-abgeleiteten Templates ohne Dateien zu schreiben

ParametersJSON Schema
NameRequiredDescriptionDefault
actNoAct block for test generation
baseNoBase exception class for exception generation
bodyNoFunction or method body
kindNoTemplate kind
nameNoGenerated item name
targetNoTarget name for test generation
arrangeNoArrange block for test generation
contentNoModule content
docstringNoDocstring
main_bodyNoCLI main body
spec_jsonNoOptional full JSON spec. If set, it is merged with the explicit fields.
assertionsNoAssert block for test generation
bases_jsonNoJSON array of class base names
descriptionNoModule or CLI description
fields_jsonNoJSON array of dataclass fields
params_jsonNoJSON array of parameters: [{"name":"x","type":"int","default":"0"}]
return_typeNoReturn type annotation for functions
imports_jsonNoJSON array of import lines for module generation
init_params_jsonNoJSON array of __init__ parameters for classes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it does not write files, which aligns with readOnly. However, it does not disclose other behavioral traits such as error handling, performance implications, or dependencies on external templates. With annotations providing the safety profile, the description adds minimal but useful 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 a single concise sentence in German with no wasted words. However, it lacks structure (e.g., bullet points, front-loading of key information). For its brevity, it is appropriate, but for a tool with 19 parameters, more structure would improve clarity.

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

Completeness2/5

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

Given the tool's complexity (19 parameters, no output schema), the description is insufficient. It does not explain how parameters interact (e.g., the relationship between kind and other fields), the purpose of spec_json merging, or expected output format. The agent would need to infer from parameter names and descriptions alone.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a description. The tool's description adds no additional meaning beyond what the schema already provides. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states it generates Python code snippets from BACH-derived templates without writing files. The name and title are self-explanatory, and the description adds the key constraint of not writing files. It does not explicitly distinguish from sibling tools, but no sibling directly competes with code generation, so purpose is sufficiently clear.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions 'BACH-abgeleiteten Templates' but does not explain what BACH is or in what scenarios this tool is preferable. There is no exclusion criteria or recommended context. The agent is left without usage direction.

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

cc_md_to_htmlMarkdown to HTMLA
Idempotent

Converts Markdown to formatted HTML (printable as PDF).

Args:

  • input_path (string): Path to the Markdown file

  • output_path (string): Path to the HTML output

  • title (string, optional): Document title

Produces standalone HTML with CSS styling, printable as PDF via browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoDocument title
input_pathYesMarkdown file
output_pathYesHTML output

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate idempotentHint=true and no destructive/readOnly concerns. Description adds value by specifying 'produces standalone HTML with CSS styling' and 'printable as PDF via browser', which are behavioral traits not captured by annotations. No contradictions.

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?

Description is very concise with a single line plus an argument list. Front-loaded with main action and key output detail. Every sentence adds value: conversion purpose, arguments, output format and use case.

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

Completeness3/5

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

The tool has 3 parameters, no output schema, and moderate complexity. Description adequately covers inputs and output format, but lacks details on error handling, encoding, or behavior for invalid inputs. Given the simplicity, it is mostly sufficient but could be more complete.

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

Parameters4/5

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

Schema coverage is 100% but descriptions are brief ('Markdown file', 'HTML output', 'Document title'). Description adds context by grouping parameters and noting the optional title. Provides additional meaning beyond schema for input_path and output_path by linking to the conversion process.

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?

Description clearly states verb 'Converts' and resource 'Markdown to formatted HTML'. Explicitly distinguishes from sibling 'cc_md_to_pdf' by noting HTML can be printed as PDF via browser, implying this tool is for HTML conversion while the sibling directly produces PDF.

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

Usage Guidelines4/5

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

Description provides clear context: converts markdown to HTML with CSS styling for PDF printing. However, it does not explicitly state when to use this over cc_md_to_pdf or when not to use it, missing a clear alternative exclusion.

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

cc_md_to_pdfMarkdown to PDFA
Idempotent

Converts Markdown to PDF using a headless browser (Edge/Chrome).

Args:

  • input_path (string): Path to the Markdown file

  • output_path (string): Path to the PDF output

  • title (string, optional): Document title

Uses the same Markdown parser as cc_md_to_html. Requires Edge or Chrome. Falls back to HTML if no browser is found.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoDocument title
input_pathYesMarkdown file
output_pathYesPDF output

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate idempotentHint=true and no destructiveness; description adds value by disclosing the browser dependency, fallback to HTML, and relation to cc_md_to_html. No contradictions found.

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 concise, with meaningful sections. It front-loads the main action and includes args list. Minor verbosity in the fallback line could be trimmed.

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

Completeness4/5

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

Given the simplicity (3 params, no output schema, idempotent), the description covers the core behavior, browser requirement, and fallback. However, it could mention possible errors or output location clarity.

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

Parameters2/5

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

Schema description coverage is 100% (all params described generically), but the description adds details like the optional title doc title and the browser dependency, which are useful but not essential. Score reduced because the description largely repeats parameter names without deeper 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 verb 'converts' and the resource 'Markdown to PDF', specifying the browser-based approach and distinguishing it from sibling cc_md_to_html by mentioning the same parser and fallback behavior.

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

Usage Guidelines4/5

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

The description indicates when to use this tool (for PDF conversion), mentions a prerequisite (Edge/Chrome), and a fallback (to HTML). However, it does not explicitly state when NOT to use it or compare with siblings like cc_convert_format.

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

cc_organize_importsOrganize ImportsA
Idempotent

Organizes Python imports per PEP 8: sorted, deduplicated, grouped.

Args:

  • path (string): Path to the Python file

  • dry_run (boolean): Preview only

Groups: 1) future 2) stdlib 3) third-party 4) local

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the Python file
dry_runNoPreview only

TDQS

A4.2/5.0
Behavior5/5

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

Annotations include idempotentHint: true, destructiveHint: false, readOnlyHint: false. Description mentions preview via dry_run, groups. No contradiction.

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?

Brief, includes parameters and groups. Well-structured with bullet 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 no output schema, description explains output implied (organized file). Could mention that modifying file side-effect, but annotations cover idempotency.

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

Parameters3/5

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

Schema coverage is 100%, so schema describes parameters well. Description adds grouping info and clarifies dry_run behavior, but baseline is 3.

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?

Description clearly states it organizes Python imports per PEP 8, sorted, deduplicated, grouped. Distinct from siblings like cc_analyze_code or cc_cleanup_file which have different purposes.

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

Usage Guidelines3/5

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

Gives a general usage context (organizing imports) but does not explicitly say when to use vs alternatives or when not to use. No mention of prerequisites.

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

cc_python_structural_editPython Structural EditA

Prüft und wendet BACH-abgeleitete strukturelle Python-Edits mit Vorschau, Testdatei und Backup-Schutz an

ParametersJSON Schema
NameRequiredDescriptionDefault
lineNo1-based line for position=line or replace_line
modeNopreview returns a diff, test writes a .test.py file, apply writes the sourcepreview
pathYesPython file to inspect or edit
contentNoInserted code or replacement line content
elementNoClass/function/method name, e.g. MyClass.method
elementsNoComma-separated element names for create_edit_file
positionNoInsert position for operation=insert
edit_fileNoEdit file path for merge_edit_file
operationYesStructural edit operation
class_nameNoTarget class for position=in_class
output_pathNoOptional output path for test or edit-file modes
python_pathNoPython executable path for syntax checks
syntax_checkNoCompile-check edited Python before writing
create_backupNoCreate a backup when mode=apply
indent_spacesNoIndent inserted non-empty lines

TDQS

A3.7/5.0
Behavior4/5

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

The description discloses key behaviors: it applies edits with preview, test file modes, and backup protection. Annotations provide no destructive hint, but the description clarifies the tool can modify files with safeguards. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single sentence that captures the core functionality. It is concise and front-loaded with the key idea, though it could be slightly more structured.

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

Completeness3/5

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

Given 15 parameters and no output schema, the description is relatively brief. While the schema covers parameter details, the description lacks guidance on how the different operations (inspect, insert, etc.) relate to each other or the overall workflow.

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

Parameters4/5

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

Schema coverage is 100% with all parameters having descriptions. The description does not add extra meaning beyond the schema, but the schema itself is thorough, so baseline 3 is elevated to 4.

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 it handles structural Python edits with preview, test file, and backup protection. The name also indicates Python structural editing. However, the phrase 'BACH-abgeleitete' is obscure and may not be understood by all agents.

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

Usage Guidelines3/5

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

The description implicitly suggests use for structural edits but provides no explicit guidance on when to use this tool versus sibling tools like cc_generate_python_code or cc_analyze_methods. No when-not-to-use or alternative comparisons are given.

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

cc_regex_testRegex TesterB
Read-onlyIdempotent

Testet reguläre Ausdrücke gegen Text oder Dateiinhalt

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to test against (or use file_path)
flagsNoRegex flags (g, i, m, s, u)g
patternYesRegular expression pattern
file_pathNoFile to test against (alternative to text)
replace_withNoOptional replacement string

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool's safety is clear. The description adds that it tests against text or file content but does not elaborate on return format or behavior beyond annotations. With annotations covering much, the description provides marginal extra transparency.

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

Conciseness4/5

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

The description is a single sentence, front-loaded, and to the point. It wastes no words, though it is in German, which may reduce clarity for English-speaking agents.

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

Completeness2/5

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

Given 5 parameters and no output schema, the description should indicate return format or provide usage hints. It lacks any mention of matches, results, or replacement functionality. Annotations are helpful but don't fill the completeness gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are well-documented in the schema. The description adds no new parameter semantics beyond what the schema provides; it merely restates 'text or file content'. Thus, baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool tests regular expressions against text or file content, which is specific and distinguishes it from sibling tools that focus on code analysis, JSON validation, or formatting. However, it could be more precise by mentioning pattern and flags.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or when not to use it. Sibling tools are unrelated, so context is missing.

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

cc_runtime_import_diagnoseRuntime Import DiagnoseB
Read-only

Führt BACH-abgeleitete Python-Runtime-Importdiagnosen in isolierten Subprozessen aus

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPython project directory or file
modulesNoOptional module list: package.mod:Class,other.module
max_modulesNoMaximum auto-discovered modules to import
python_pathNoPython executable path; defaults to PYTHON/PYTHON_EXECUTABLE/python
timeout_secondsNoTimeout per isolated import subprocess

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds that execution occurs in isolated subprocesses, which is useful behavioral context. However, it does not explain BACH or any potential side effects beyond the annotations.

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

Conciseness5/5

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

The description is a single concise sentence that immediately states the core function. There is no redundant information, and it is efficiently front-loaded.

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

Completeness2/5

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

With 5 parameters and no output schema, the description lacks explanation of return values or diagnostic results. The term 'BACH-abgeleitete' is undefined, and the tool's behavior beyond isolation is unclear. More context is needed for a diagnostic 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 baseline is 3. The description does not add additional meaning beyond the schema; it merely states parameters implicitly through the task. No enrichment of parameter semantics is provided.

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 specifies a concrete action: performing Python runtime import diagnostics in isolated subprocesses, derived from BACH. It distinguishes the tool from static analysis siblings like cc_diagnose_imports by emphasizing 'runtime' and 'subprocess', but does not explicitly compare with alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus siblings (e.g., cc_diagnose_imports). There is no mention of prerequisites, scenarios, or exclusions, leaving the agent to infer usage context entirely.

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

cc_scan_emojiScan EmojiA
Read-onlyIdempotent

Scans files for emojis and shows ASCII alternatives.

Args:

  • path (string): Path to the file or directory

  • recursive (boolean): Scan recursively

  • extensions (string): Only certain extensions

Useful for systems that don't support Unicode/Emoji.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath
recursiveNoRecursive
extensionsNoExtensions.py,.js,.ts,.json,.md,.txt

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the agent knows it is safe and non-destructive. The description adds that it 'shows ASCII alternatives' and that scanning can be recursive or filtered by extensions, providing behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is extremely concise—two short sentences plus a bullet list of args. Every sentence adds value, and the structure (one line summary, then args) is clear. No fluff.

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 (3 parameters, no output schema, single purpose), the description covers the essential aspects. The absence of output schema is fine; the result is likely a list of found emojis with alternatives, which the description implies. Could mention what 'shows ASCII alternatives' means (e.g., output format) but not critical.

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%, but the descriptions in the schema are minimal (e.g., 'Path', 'Recursive'). The tool description adds context: path is a file or directory, recursive is for recursive scanning, and extensions specifies which file types. This adds meaning beyond the raw schema.

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 scans files for emojis and shows ASCII alternatives, which is a specific verb+resource combination. This distinguishes it from siblings like cc_fix_encoding or cc_fix_umlauts which handle encoding/umlaut issues, not emoji detection.

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

Usage Guidelines4/5

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

The description mentions usefulness for systems that don't support Unicode/Emoji, giving a clear use case. It does not explicitly state when NOT to use it or mention alternatives, but the context is clear enough.

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

cc_set_languageB

Set the output language for CodeCommander tools

ParametersJSON Schema
NameRequiredDescriptionDefault
languageYesLanguage code

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description bears full responsibility. It only states a state change ('set') without disclosing persistence, scope, reversibility, or side effects, leaving key behavioral traits unspecified.

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

Conciseness4/5

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

The description is a single sentence that is front-loaded with the verb. It is concise, though it sacrifices some informative detail.

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

Completeness2/5

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

Given low complexity, the description should clearly explain the effect (e.g., affects all subsequent tool outputs) but fails to do so, leaving ambiguity about the tool's role.

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

Parameters3/5

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

Schema coverage is 100% with a clear enum description. The description adds no extra meaning beyond the schema, so it meets the baseline for high-coverage cases.

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

Purpose5/5

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

The description clearly specifies the action ('Set') and the resource ('output language for CodeCommander tools'), distinguishing it from siblings that perform other tasks like diffing files or scanning emoji.

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

Usage Guidelines3/5

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

No guidance is given on when to use this tool (e.g., before other tools) or alternatives, but its purpose is self-contained and differs from all listed siblings, reducing the need for explicit exclusions.

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

cc_validate_jsonValidate JSONB
Read-onlyIdempotent

Validates JSON with detailed error information and position.

Args:

  • path (string): Path to the JSON file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the JSON file

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, which already signal safe behavior. The description adds that it provides 'detailed error information and position', offering some behavioral context. However, it does not specify output format or behavior on non-existent files.

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 short and front-loaded, stating the core purpose in the first sentence. The Args section is concise but could be integrated. Overall efficient.

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

Completeness3/5

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

The tool is simple (one parameter, no output schema, clear annotations). The description covers the purpose and parameter but lacks details on return values or error handling, which is acceptable given the simplicity.

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

Parameters3/5

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

Schema coverage is 100% with one parameter. The description restates the parameter 'path' as 'Path to the JSON file', adding minimal value beyond the schema description. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states that the tool validates JSON and provides detailed error information with position. The verb 'validates' and resource 'JSON' are specific. While it does not explicitly differentiate from siblings like 'cc_fix_json' (which likely fixes JSON), the distinct name and title help distinguish it.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'cc_fix_json'. The description does not mention prerequisites (e.g., file existence) or scenarios where this tool is appropriate.

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. 6 tool updatesv1.3.16
    • Addedcc_check_indentation
    • Changedcc_extract_classes2 fields changed
      • addedInput schema / properties / include_content
        Added value: +{
        +  "default": false,
        +  "description": "Include extracted class/helper content in the MCP response",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_chars
        Added value: +{
        +  "default": 12000,
        +  "description": "Maximum characters of included extracted content",
        +  "maximum": 100000,
        +  "minimum": 1000,
        +  "type": "integer"
        +}
    • Addedcc_generate_python_code
    • Addedcc_python_structural_edit
    • Addedcc_runtime_import_diagnose
    • Changedcc_set_language1 field changed
      • changedInput schema / properties / language / enum
        Previous value: -[
        -  "de",
        -  "en"
        -]New value: +[
        +  "de",
        +  "en",
        +  "es",
        +  "zh",
        +  "ja",
        +  "ru"
        +]
  2. 18 tool updatesv1.3.8
    • First observedcc_analyze_code
    • First observedcc_analyze_methods
    • First observedcc_cleanup_file
    • First observedcc_convert_format
    • First observedcc_diagnose_imports
    • First observedcc_diff_files
    • First observedcc_extract_classes
    • First observedcc_fix_encoding
    • First observedcc_fix_json
    • First observedcc_fix_umlauts
    • First observedcc_generate_licenses
    • First observedcc_md_to_html
    • First observedcc_md_to_pdf
    • First observedcc_organize_imports
    • First observedcc_regex_test
    • First observedcc_scan_emoji
    • First observedcc_set_language
    • First observedcc_validate_json

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap among Python analysis tools (e.g., cc_analyze_code, cc_analyze_methods, cc_extract_classes). Descriptions help differentiate them, but an agent could still confuse them in edge cases.

Naming Consistency4/5

All tool names follow a consistent cc_verb_noun pattern in English. However, descriptions are mixed between English and German, which slightly reduces consistency from a user perspective.

Tool Count4/5

22 tools is on the higher side but still reasonable for a broad utility toolkit. Some tools are very niche (e.g., cc_scan_emoji), but overall the count is appropriate for the scope.

Completeness4/5

The tool set covers a wide range of code analysis and file manipulation tasks. There are minor gaps (e.g., no search/replace tool), but the domain is well-covered overall.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A modular MCP server that provides tools for file operations, regex-based code searching, and structural analysis of functions and classes across multiple programming languages. It also includes AI-powered features for intelligently updating files according to architectural changes.
    -
  • F
    license
    A
    quality
    C
    maintenance
    A lightweight MCP server providing everyday developer utilities such as JSON formatting, UUID generation, Base64 conversion, HTTP status lookup, and Unix timestamp conversion as tools and resources.
    5
    -
  • F
    license
    B
    quality
    D
    maintenance
    MCP server providing 37 developer tools for hashing, encoding, regex, JSON, SQL, cron, QR codes, UUID, JWT, and more, all powered by bmobot.ai APIs.
    37
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A unified developer toolbox MCP server providing utilities for base64, JWT, timestamps, UUID, JSON formatting, hashing, URL handling, case conversion, color conversion, number bases, string operations, and regex.
    15
    MIT

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/ellmos-ai/ellmos-codecommander-mcp'

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