ellmos-codecommander-mcp
ellmos CodeCommander MCP provides 17 developer-focused tools for code analysis, repair, format conversion, and documentation.
Code Analysis
cc_analyze_code– Full Python file analysis: classes, functions, imports, LOC, and complexity metricscc_analyze_methods– Method-level analysis: parameters, decorators, visibility, and data flowcc_extract_classes– Extract Python classes/functions as separate text blocks (optionally saved to disk)
Import Management
cc_organize_imports– Sort, deduplicate, and group Python imports per PEP 8 (dry-run supported)cc_diagnose_imports– Detect unused, missing, duplicate, or circular imports
JSON Tools
cc_fix_json– Auto-repair broken JSON (BOM, trailing commas, single quotes, comments, NUL bytes) with backup supportcc_validate_json– Validate JSON with detailed error position and context
Encoding & Text Repair
cc_fix_encoding– Fix Mojibake and double-encoded UTF-8 (27+ patterns for German, French, Spanish)cc_cleanup_file– Remove BOM, NUL bytes, trailing whitespace, and normalize line endingscc_fix_umlauts– Repair broken German umlauts using 70+ patterns including HTML entities and escape sequences
Format Conversion & Documentation
cc_convert_format– Convert between JSON, CSV, INI, YAML, TOML, XML, and TOONcc_generate_licenses– Generate third-party license files for npm or Python projects (text, JSON, or CSV)cc_md_to_html– Convert Markdown to standalone CSS-styled HTMLcc_md_to_pdf– Convert Markdown to PDF via headless browser (falls back to HTML if unavailable)
Developer Utilities
cc_scan_emoji– Scan files/directories for emojis with Unicode codepoint info and ASCII alternativescc_diff_files– Compare two files using unified diff with configurable context linescc_regex_test– Test regex patterns against text or file content, with match details, capture groups, and replace preview
Configuration
cc_set_language– Set output language for all tools (enorde)
All modifying tools support dry-run mode and optional backups.
Converts Markdown files to standalone HTML or PDF with styling support for code blocks, tables, lists, and blockquotes.
Generates third-party license files for npm projects by reading package.json and collecting license information.
Analyzes Python code to extract classes, methods, imports, and complexity metrics; also organizes imports per PEP 8 and diagnoses import issues.
Supports conversion between TOML and other formats such as JSON, CSV, INI, YAML, XML, and TOON.
Supports conversion between XML and other formats such as JSON, CSV, INI, YAML, TOML, and TOON.
Supports conversion between YAML and other formats such as JSON, CSV, INI, TOML, XML, and TOON.
ellmos CodeCommander MCP Server
Part of the ellmos-ai family.
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 --> ExportCode 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
endRelated 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
Node.js 20 or higher
Option 1: Install from NPM
npm install -g ellmos-codecommander-mcpOption 2: Install from Source
git clone https://github.com/ellmos-ai/ellmos-codecommander-mcp.git
cd ellmos-codecommander-mcp
npm install
npm run buildConfiguration
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 |
| Full code analysis: classes, functions, imports, LOC, complexity |
| Detailed method analysis: params, decorators, visibility, data flow, BACH guardrails |
| Extract Python classes/functions as separate text blocks, optionally including pycutter-style inline content |
Import Management (3 tools)
Tool | Description |
| Sort & deduplicate Python imports per PEP 8 |
| Detect unused imports, duplicates, circular import risks |
| Run isolated Python runtime imports with timeouts, init.py analysis, and circular-import hints |
JSON Tools (2 tools)
Tool | Description |
| Repair broken JSON (BOM, trailing commas, comments, single quotes) |
| Validate JSON with detailed error position and context |
Encoding & Text (3 tools)
Tool | Description |
| Fix Mojibake / double-encoded UTF-8 (27+ patterns) |
| Remove BOM, NUL bytes, trailing whitespace, normalize line endings |
| Repair broken German umlauts (70+ patterns, HTML entities, escapes) |
Scanning (1 tool)
Tool | Description |
| Scan files for emojis with codepoint info |
Format & Documentation (2 tools)
Tool | Description |
| Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON formats |
| Generate third-party license file (npm/pip) |
Developer Utilities (2 tools)
Tool | Description |
| Compare two files with unified diff output (configurable context lines) |
| Test regex patterns against text/files with match details, groups, and replace preview |
Python Assistance (3 tools)
Tool | Description |
| Detect missing colons, unindented return/yield statements, and mixed tab/space indentation |
| Generate Python functions, classes, dataclasses, CLI stubs, tests, exceptions, and modules from templates |
| Inspect and apply structural Python edits with preview, test-file, syntax-check and backup modes |
Export (2 tools)
Tool | Description |
| Markdown to standalone HTML with CSS styling (headers, code blocks, tables, nested lists, blockquotes, images, checkboxes) |
| 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 |
|
| JSON repair |
|
| JSON validation |
|
| Encoding repair |
|
| File cleanup |
|
| Format conversion (JSON/CSV/INI/YAML/TOML/XML/TOON) |
|
| Markdown to HTML export |
|
| 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 assertionsTesting
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-mcpellmos-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 |
46 | Filesystem, process management, interactive sessions, cloud-lock-safe operations | ||
22 | Code analysis, JSON repair, imports, diffs, regex | ||
12 | File repair, format conversion, batch operations | ||
18 | n8n workflow management via AI assistants | ||
20 | MCP stack discovery, profile management, control plane | ||
45 | Local-first LLM memory, knowledge, state, routing, swarm orchestration |
| |
8 | Server operations: health checks, log analysis, deploy dry-runs, mail diagnostics |
| |
3 | Headless Blender asset QA and FBX reimport verification |
| |
10 | Model-agnostic computer use: capture, safety-gated actions, Windows UIA |
|
Sibling Developer, File & Document Tools
Ecosystem | Tool / Project | Focus & Capabilities |
ellmos-ai | Offline SQLite change distribution with HMAC verification | |
ellmos-ai | Cryptographically signed delegation policies for AI agents | |
ellmos-ai | Provider-neutral LLM orchestration with auto-routing and budget tracking | |
ellmos-ai | Local-first text-based OS for LLM agents — 113+ handlers, 550+ tools | |
dev-bricks | PySide6 Developer Desktop Suite & offline secret vault | |
dev-bricks | Fast desktop code snippet manager & local AST indexing | |
dev-bricks | Event-sourced automation orchestration & 30-day receipts | |
dev-bricks | Method flow & complexity diagnostic engine | |
doc-bricks | Desktop OCR pipeline for searchable PDFs with Tesseract | |
doc-bricks | Multi-format document workspace & offline PDF export | |
file-bricks | Multi-pane file management & bulk batch operations | |
open-bricks | Umbrella organization for AI-native desktop applications |
AI Infrastructure
Project | Description |
Local-first text-based OS for LLM agents — 113+ handlers, 550+ tools, SQLite memory | |
Model-agnostic computer-use core powering Open Compute MCP | |
Provider-neutral LLM orchestration with auto-routing and budget tracking | |
Lightweight agent memory, connectors, and automation infrastructure | |
Self-hosted AI research stack (Ollama + n8n + Rinnsal + KnowledgeDigest) | |
Autonomous agent chain framework for Claude Code | |
Minimalist database-driven LLM OS prototype (4 functions, 1 table) | |
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 toolscc_analyze_codeAnalyze CodeBRead-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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the Python file |
TDQS
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.
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.
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.
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.
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.
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 MethodsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the Python file | |
| class_name | No | Only analyze this class |
TDQS
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.
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.
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.
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.
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.
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 IndentationBRead-onlyIdempotent
Prüft Python-Dateien auf fehlende Doppelpunkte, unindentierte return/yield-Zeilen und gemischte Tab-/Leerzeichen-Einrückung
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Python file or directory to check | |
| recursive | No | Recurse into subdirectories when path is a directory | |
| max_issues | No | Maximum number of issues to include |
TDQS
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.
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.
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.
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.
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.
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 FileAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the file | |
| dry_run | No | Preview only | |
| remove_bom | No | Remove BOM | |
| remove_nul_bytes | No | NUL bytes | |
| normalize_line_endings | No | Line endings | |
| remove_trailing_whitespace | No | Trailing whitespace |
TDQS
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.
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.
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.
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.
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.
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 FormatAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | Source file | |
| json_indent | No | JSON indentation | |
| output_path | Yes | Target file | |
| input_format | Yes | Input format | |
| output_format | Yes | Output format |
TDQS
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.
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.
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.
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.
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.
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 ImportsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the Python file |
TDQS
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.
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.
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.
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.
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.
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 FilesARead-onlyIdempotent
Vergleicht zwei Dateien und zeigt Unterschiede im Unified-Diff-Format
| Name | Required | Description | Default |
|---|---|---|---|
| file_a | Yes | Path to first file | |
| file_b | Yes | Path to second file | |
| context_lines | No | Number of context lines (default: 3) |
TDQS
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.
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.
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.
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.
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.
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 ClassesAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the Python file | |
| max_chars | No | Maximum characters of included extracted content | |
| output_dir | No | Output directory | |
| include_content | No | Include extracted class/helper content in the MCP response |
TDQS
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.
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.
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.
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.
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.
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 EncodingAIdempotent
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).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the file | |
| dry_run | No | Preview only | |
| create_backup | No | Create backup |
TDQS
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.
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.
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.
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.
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.
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 JSONAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the JSON file | |
| dry_run | No | Preview only | |
| create_backup | No | Create backup |
TDQS
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.
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.
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.
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.
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.
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 UmlautsAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the file | |
| dry_run | No | Preview only | |
| create_backup | No | Create backup |
TDQS
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.
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.
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.
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.
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.
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 LicensesAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format | text |
| output_path | Yes | Output file | |
| project_dir | Yes | Project directory |
TDQS
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.
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.
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.
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.
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.
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 CodeBRead-onlyIdempotent
Generiert Python-Code-Snippets aus BACH-abgeleiteten Templates ohne Dateien zu schreiben
| Name | Required | Description | Default |
|---|---|---|---|
| act | No | Act block for test generation | |
| base | No | Base exception class for exception generation | |
| body | No | Function or method body | |
| kind | No | Template kind | |
| name | No | Generated item name | |
| target | No | Target name for test generation | |
| arrange | No | Arrange block for test generation | |
| content | No | Module content | |
| docstring | No | Docstring | |
| main_body | No | CLI main body | |
| spec_json | No | Optional full JSON spec. If set, it is merged with the explicit fields. | |
| assertions | No | Assert block for test generation | |
| bases_json | No | JSON array of class base names | |
| description | No | Module or CLI description | |
| fields_json | No | JSON array of dataclass fields | |
| params_json | No | JSON array of parameters: [{"name":"x","type":"int","default":"0"}] | |
| return_type | No | Return type annotation for functions | |
| imports_json | No | JSON array of import lines for module generation | |
| init_params_json | No | JSON array of __init__ parameters for classes |
TDQS
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.
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.
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.
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.
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.
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 HTMLAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Document title | |
| input_path | Yes | Markdown file | |
| output_path | Yes | HTML output |
TDQS
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.
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.
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.
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.
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.
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 PDFAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Document title | |
| input_path | Yes | Markdown file | |
| output_path | Yes | PDF output |
TDQS
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.
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.
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.
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.
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.
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 ImportsAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the Python file | |
| dry_run | No | Preview only |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| line | No | 1-based line for position=line or replace_line | |
| mode | No | preview returns a diff, test writes a .test.py file, apply writes the source | preview |
| path | Yes | Python file to inspect or edit | |
| content | No | Inserted code or replacement line content | |
| element | No | Class/function/method name, e.g. MyClass.method | |
| elements | No | Comma-separated element names for create_edit_file | |
| position | No | Insert position for operation=insert | |
| edit_file | No | Edit file path for merge_edit_file | |
| operation | Yes | Structural edit operation | |
| class_name | No | Target class for position=in_class | |
| output_path | No | Optional output path for test or edit-file modes | |
| python_path | No | Python executable path for syntax checks | |
| syntax_check | No | Compile-check edited Python before writing | |
| create_backup | No | Create a backup when mode=apply | |
| indent_spaces | No | Indent inserted non-empty lines |
TDQS
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.
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.
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.
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.
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.
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 TesterBRead-onlyIdempotent
Testet reguläre Ausdrücke gegen Text oder Dateiinhalt
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text to test against (or use file_path) | |
| flags | No | Regex flags (g, i, m, s, u) | g |
| pattern | Yes | Regular expression pattern | |
| file_path | No | File to test against (alternative to text) | |
| replace_with | No | Optional replacement string |
TDQS
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.
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.
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.
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.
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.
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 DiagnoseBRead-only
Führt BACH-abgeleitete Python-Runtime-Importdiagnosen in isolierten Subprozessen aus
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Python project directory or file | |
| modules | No | Optional module list: package.mod:Class,other.module | |
| max_modules | No | Maximum auto-discovered modules to import | |
| python_path | No | Python executable path; defaults to PYTHON/PYTHON_EXECUTABLE/python | |
| timeout_seconds | No | Timeout per isolated import subprocess |
TDQS
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.
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.
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.
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.
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.
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 EmojiARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path | |
| recursive | No | Recursive | |
| extensions | No | Extensions | .py,.js,.ts,.json,.md,.txt |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| language | Yes | Language code |
TDQS
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.
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.
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.
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.
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.
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 JSONBRead-onlyIdempotent
Validates JSON with detailed error information and position.
Args:
path (string): Path to the JSON file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the JSON file |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v1.3.16- Added
cc_check_indentation - Changed
cc_extract_classes2 fields changed- added
Input schema / properties / include_contentAdded value: +{ + "default": false, + "description": "Include extracted class/helper content in the MCP response", + "type": "boolean" +} - added
Input schema / properties / max_charsAdded value: +{ + "default": 12000, + "description": "Maximum characters of included extracted content", + "maximum": 100000, + "minimum": 1000, + "type": "integer" +}
- Added
cc_generate_python_code - Added
cc_python_structural_edit - Added
cc_runtime_import_diagnose - Changed
cc_set_language1 field changed- changed
Input schema / properties / language / enumPrevious value: -[ - "de", - "en" -]New value: +[ + "de", + "en", + "es", + "zh", + "ja", + "ru" +]
18 tool updates
v1.3.8- First observed
cc_analyze_code - First observed
cc_analyze_methods - First observed
cc_cleanup_file - First observed
cc_convert_format - First observed
cc_diagnose_imports - First observed
cc_diff_files - First observed
cc_extract_classes - First observed
cc_fix_encoding - First observed
cc_fix_json - First observed
cc_fix_umlauts - First observed
cc_generate_licenses - First observed
cc_md_to_html - First observed
cc_md_to_pdf - First observed
cc_organize_imports - First observed
cc_regex_test - First observed
cc_scan_emoji - First observed
cc_set_language - First observed
cc_validate_json
TDQS
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.
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.
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.
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
Related MCP Connectors
238+ dev tools via MCP: JSON, QR, PDF, DNS, hash, UUID, code review, JWT, SSL, WHOIS, and more
Remote MCP server: 10 developer utilities (base64, JWT, DNS, UUID, URL, JSON, UA, IP lookup).
A MCP server built for developers enabling Git based project management with project and personal…
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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.-
- FlicenseAqualityCmaintenanceA 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-
- FlicenseBqualityDmaintenanceMCP 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-
- AlicenseNot gradedqualityBmaintenanceA 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.15MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ellmos-ai/ellmos-codecommander-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server