Developer MCP server: code analysis, JSON repair, imports, diffs, regex, format conversion.
Part of the ellmos-ai family.
[!NOTE] For AI Assistants & LLMs: Machine-readable indexing documentation for this repository is available at
llms.txt. The server exposes 23 specialized tools under thecc_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.
23 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.
While FileCommander handles filesystem operations and system processes, CodeCommander focuses specifically on code intelligence and developer precision:
.py files explicitly instead of producing Python-shaped false findings.CodeCommander MCP is engineered to address key bottlenecks in modern autonomous AI coding, local multi-agent swarms, and safety-compliant developer tooling:
[PERSONA-01] ([PERSONA-1]) Autonomous AI Coding Agents & LLM Pair-Programmers
cc_extract_classes, cc_analyze_methods), preview-safe structural editing with unified diffs (cc_python_structural_edit), automatic indentation checking (cc_check_indentation), and deterministic JSON repair (cc_fix_json).[PERSONA-02] ([PERSONA-2]) Full-Stack & Python/TypeScript Software Engineers
cc_convert_format), non-destructive encoding and umlaut repair (cc_fix_encoding, cc_fix_umlauts), isolated runtime import diagnostics (cc_runtime_import_diagnose), and interactive regex tester (cc_regex_test).[PERSONA-03] ([PERSONA-3]) Enterprise AI Safety, SecOps & Code Governance Officers
INV-LOCAL-01), unprivileged user-space execution (INV-SEC-02), mandatory timestamped .bak backups before mutations (INV-BAK-04), dry-run diff preview safety (INV-PREV-03), and isolated subprocess timeouts (INV-ISOL-05).[PERSONA-04] ([PERSONA-4]) Open-Source Ecosystem Architects & MCP Tool Developers
package.json, server.json, glama.json, smithery.yaml, and llms.txt, verified by automated contract tests and a complete open-source license audit (THIRD_PARTY_LICENSES.md).mcp code analysis servermodel context protocol python ast toolsmcp server codecommanderpython structural edit mcpclaude code developer mcp servermcp json repair and encoding fixlocal-first mcp tools for codingmcp python runtime import diagnoseformat converter mcp json yaml toml toonoffline code intelligence mcp serverThe following matrix compares CodeCommander MCP against alternative developer tooling approaches across 10 critical operational dimensions:
| Dimension / Capability | Generic File MCP | Raw Shell / Ad-Hoc Scripts | Heavyweight Cloud LLMOps | Traditional IDE Plugins | ellmos CodeCommander MCP |
|---|---|---|---|---|---|
| 1. AST Code Intelligence | None (raw text reads) | Requires custom python scripts | Cloud parser required | Built-in (GUI only) | Native AST & regex JS/TS (cc_analyze_code) |
| 2. Safe Structural Edit Preview | None (blind overwrite) | High risk (sed/awk) | Cloud gateway dependent | Interactive dialog | Preview-safe diffs (mode: "preview") |
| 3. Mandatory Pre-Mutation Backups | None | Manual scripting | None | Local history (opaque) | Automatic .bak creation (INV-BAK-04) |
| 4. Runtime Import Diagnostics | None | Unsafe direct execution | None | Partial / static only | Isolated subprocess + timeout (INV-ISOL-05) |
| 5. Encoding & Mojibake Recovery | None | Fragile iconv calls | None | Basic encoding switch | 27+ Mojibake, 70+ Umlauts (cc_fix_encoding) |
| 6. Universal Format Conversion | None | Multiple disparate CLI tools | SaaS conversion API | Multi-plugin setup | Lossless 7 formats (JSON/YAML/TOML/XML/TOON) |
| 7. Diff Engine & Regex Workbench | None | Basic diff/grep | None | GUI panel only | LCS Unified Diff & Regex with groups/replace |
| 8. Local-First & Zero-Egress | Host-dependent | Local | Cloud egress / telemetry | Often connects to cloud | 100% Offline Stdio JSON-RPC (INV-LOCAL-01) |
| 9. Multi-Language (i18n) Support | English only | None | English only | Language packs | Dynamic 6 languages (cc_set_language) |
| 10. Registry & Manifest Parity | Minimal | None | Proprietary | Marketplace specific | npm, Glama, Smithery, MCP Registry, llms.txt |
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 (23 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"]
E4["cc_get_language"]
end
end
Client -->|Stdio JSON-RPC| Server
Server --> CodeIntel
Server --> Imports
Server --> Repair
Server --> Utility
Server --> Export
sequenceDiagram
autonumber
actor Developer as Developer / LLM Client
participant Stdio as CodeCommander Server (stdio)
participant Core as AST & Code Intelligence Core
participant Disk as Local Filesystem
Developer->>Stdio: cc_python_structural_edit (mode: "preview" / "apply")
Stdio->>Core: Parse Python AST & Validate Syntax
alt Validation Failed
Core-->>Stdio: Syntax / Parsing Diagnostics
Stdio-->>Developer: Error Diagnostics & Line References
else Validation Passed
Core->>Disk: Read Original File
Core->>Core: Compute Unified Structural Diff
alt Mode == "preview"
Core-->>Stdio: Return Diff Preview (Zero File Mutations)
Stdio-->>Developer: Structural Diff Preview
else Mode == "apply"
Core->>Disk: Create .bak Backup File
Core->>Disk: Write Modified AST Code In-Place
Core-->>Stdio: Confirmation with Applied Diff & Backup Path
Stdio-->>Developer: Success Payload
end
end
ellmos-codecommander-mcp guarantees 10 core architectural and runtime invariants across all platforms:
| Invariant ID | Classification | Architectural Guarantee & Verification Mechanism |
|---|---|---|
INV-LOCAL-01 | Zero-Egress Privacy | Pure local stdio JSON-RPC transport; zero network telemetry, cloud beacons, or remote egress. |
INV-SEC-02 | Unprivileged Security | Standard user-space execution (RunAsInvoker) requiring zero root or administrative elevation. |
INV-PREV-03 | Preview Safety | Structural edits default to non-mutating preview mode (mode: "preview") with unified diff generation. |
INV-BAK-04 | Automatic Backups | File modifications automatically generate timestamped .bak files before in-place disk writes. |
INV-ISOL-05 | Subprocess Isolation | Python runtime import diagnosis executes in isolated, timeout-bounded child processes. |
INV-GATE-06 | Explicit Language Gates | Python-specific path tools reject non-.py files explicitly; JS/TS analysis is read-only and regex-based. |
INV-ENC-07 | Non-Destructive Encoding | Repaired text restores 27+ Mojibake and 70+ German umlaut patterns without loss or binary corruption. |
INV-FMT-08 | Format Interchange Parity | Lossless format conversions across JSON, CSV, INI, YAML, TOML, XML, and TOON with schema preservation. |
INV-I18N-09 | Runtime Multi-Language | Dynamic runtime language switching across 6 languages (EN, DE, ES, ZH, JA, RU) via cc_set_language. |
INV-SLA-10 | 48h Security Response SLA | Verified across Ubuntu, Windows, macOS on Node 20, 22, 24 with public 48h response / 5-day triage commitment. |
| Tool | Description |
|---|---|
cc_analyze_code | Read-only Python or regex-based JavaScript/TypeScript analysis: classes, functions, imports, LOC, complexity |
cc_analyze_methods | Read-only Python or regex-based JavaScript/TypeScript method analysis; Python retains its BACH guardrails |
cc_extract_classes | Extract Python classes/functions as separate text blocks, optionally including pycutter-style inline content |
| Tool | Description |
|---|---|
cc_organize_imports | Sort & deduplicate Python imports per PEP 8 |
cc_diagnose_imports | Read-only Python or regex-based JavaScript/TypeScript import diagnostics |
cc_runtime_import_diagnose | Run isolated Python runtime imports with timeouts, __init__.py analysis, and circular-import hints |
| Tool | Description |
|---|---|
cc_fix_json | Repair broken JSON (BOM, trailing commas, comments, single quotes) |
cc_validate_json | Validate JSON with detailed error position and context |
| Tool | Description |
|---|---|
cc_fix_encoding | Fix Mojibake / double-encoded UTF-8 (27+ patterns) |
cc_cleanup_file | Remove BOM, NUL bytes, trailing whitespace, normalize line endings |
cc_fix_umlauts | Repair broken German umlauts (70+ patterns, HTML entities, escapes) |
| Tool | Description |
|---|---|
cc_scan_emoji | Scan files for emojis with codepoint info |
| Tool | Description |
|---|---|
cc_convert_format | Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON formats |
cc_generate_licenses | Generate third-party license file (npm/pip) |
| Tool | Description |
|---|---|
cc_diff_files | Compare two files with unified diff output (configurable context lines) |
cc_regex_test | Test regex patterns against text/files with match details, groups, and replace preview |
| Tool | Description |
|---|---|
cc_check_indentation | Detect missing colons, unindented return/yield statements, and mixed tab/space indentation |
cc_generate_python_code | Generate Python functions, classes, dataclasses, CLI stubs, tests, exceptions, and modules from templates |
cc_python_structural_edit | Inspect and apply structural Python edits with preview, test-file, syntax-check and backup modes |
| Tool | Description |
|---|---|
cc_md_to_html | Markdown to standalone HTML with CSS styling (headers, code blocks, tables, nested lists, blockquotes, images, checkboxes) |
cc_md_to_pdf | Markdown to PDF via headless browser (Edge/Chrome). Falls back to HTML if no browser is available |
| Tool | Description |
|---|---|
cc_set_language | Switch active runtime language (en, de, es, zh, ja, ru) |
cc_get_language | Query currently active language and supported locale codes |
Total: 23 developer tools available under the cc_ prefix.
7 tools exist in both FileCommander and CodeCommander for convenience:
| FileCommander | CodeCommander | Function |
|---|---|---|
fc_fix_json | cc_fix_json | JSON repair |
fc_validate_json | cc_validate_json | JSON validation |
fc_fix_encoding | cc_fix_encoding | Encoding repair |
fc_cleanup_file | cc_cleanup_file | File cleanup |
fc_convert_format | cc_convert_format | Format conversion (JSON/CSV/INI/YAML/TOML/XML/TOON) |
fc_md_to_html | cc_md_to_html | Markdown to HTML export |
fc_md_to_pdf | cc_md_to_pdf | Markdown to PDF export |
All tools in CodeCommander use the cc_ prefix to guarantee seamless coexistence with FileCommander's fc_ namespace.
npm install -g ellmos-codecommander-mcp
git clone https://github.com/ellmos-ai/ellmos-codecommander-mcp.git
cd ellmos-codecommander-mcp
npm install
npm run build
Add to your claude_desktop_config.json:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"codecommander": {
"command": "ellmos-codecommander"
}
}
}
{
"mcpServers": {
"codecommander": {
"command": "node",
"args": ["/absolute/path/to/ellmos-codecommander-mcp/dist/index.js"]
}
}
}
FileCommander and CodeCommander are designed to run concurrently:
{
"mcpServers": {
"filecommander": {
"command": "ellmos-filecommander"
},
"codecommander": {
"command": "ellmos-codecommander"
}
}
}
CodeCommander natively supports 6 languages for all tool descriptions, output notices, and diagnostic messages:
en — English (Default)de — Deutsch (German)es — Español (Spanish)zh — 简体中文 (Chinese Simplified)ja — 日本語 (Japanese)ru — Русский (Russian)Use cc_get_language to check the current language or cc_set_language to dynamically change it during an active MCP session.
npm install
npm run dev # TypeScript watch mode
npm run build # Compile TypeScript to dist/
npm start # Run built server via stdio
npm test # Run Vitest unit suite (201 tests)
npm run test:integration # Real MCP stdio test suite (52 assertions, build first)
npm run test:i18n # Translation parity test suite (43 assertions)
npm run test:all # Run full QA pipeline (build + vitest + integration + i18n)
The test gates are deliberately separated and automated in CI across Ubuntu, macOS, and Windows on Node.js 20, 22, and 24 (totaling 296 automated assertions, 100% green).
Part of the ellmos-ai and open-bricks family of local-first tools:
| Server | Tools | Focus | npm |
|---|---|---|---|
| FileCommander | 50 | Filesystem, process management, interactive sessions, cloud-lock-safe operations | ellmos-filecommander-mcp |
| CodeCommander | 23 | Code analysis, AST edits, JSON repair, diff, regex | ellmos-codecommander-mcp |
| Clatcher | 12 | File repair, format conversion, batch operations | ellmos-clatcher-mcp |
| n8n Manager | 19 | n8n workflow management via AI assistants | n8n-manager-mcp |
| ControlCenter | 34 | MCP stack discovery, profile management, control plane | ellmos-controlcenter-mcp |
| Homebase | 51 | Local-first LLM memory, knowledge, state, routing, swarm orchestration | ellmos-homebase-mcp (alpha) |
| ServerCommander | 8 | Server operations: health checks, log analysis, deploy dry-runs, mail diagnostics | ellmos-servercommander-mcp (alpha) |
| Blender Use | 4 | Headless Blender asset QA and FBX reimport verification | ellmos-blender-use-mcp (alpha) |
| Open Compute | 16 | Model-agnostic computer use: capture, safety-gated actions, Windows UIA | open-compute-mcp (alpha) |
| Ecosystem | Tool / Project | Focus & Capabilities |
|---|---|---|
| ellmos-ai | sqlite-transit-sync | Offline SQLite change distribution with HMAC verification |
| ellmos-ai | policy-registry | Cryptographically signed delegation policies for AI agents |
| ellmos-ai | clutch | Provider-neutral LLM orchestration with auto-routing and budget tracking |
| ellmos-ai | BACH | Local-first text-based OS for LLM agents — 113+ handlers, 550+ tools |
| dev-bricks | DevCenter | PySide6 Developer Desktop Suite & offline secret vault |
| dev-bricks | CodeBox | Fast desktop code snippet manager & local AST indexing |
| dev-bricks | MethodenAnalyser | Method flow & complexity diagnostic engine |
| doc-bricks | PDFtoPDFocr | Desktop OCR pipeline for searchable PDFs with Tesseract |
| doc-bricks | DokuReader | Multi-format document workspace & offline PDF export |
| file-bricks | ProFiler | Multi-pane file management & bulk batch operations |
| open-bricks | open-bricks | Umbrella organization for AI-native desktop applications |
This project strictly adheres to open-source transparency:
THIRD_PARTY_LICENSES.md.npm audit --omit=dev --json, checked 2026-09-20) reports 5 vulnerable package nodes (3 high, 2 moderate); remediation is tracked in TASKPLAN #2198.MARKETING-LOG.txt.Please review SECURITY.md for full vulnerability disclosure procedures.
.bak backups and support non-mutating preview.RunAsInvoker).security@ellmos.ai and support@lukasgeiger.com with a guaranteed 48-hour initial response SLA and 5-day triage commitment.See CHANGELOG.md for release notes and version history.
This project is licensed under the MIT License — Copyright © 2026 Lukas Geiger (ellmos-ai).
See NOTICE for open-bricks umbrella attribution and THIRD_PARTY_LICENSES.md for the Level 1 SBOM invariant inventory.
Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB (Gefälligkeitsrecht). Die Haftung des Urhebers und der Mitwirkenden 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.
Sicherheitsrelevante Vorfälle und Schwachstellen werden über das verbindliche 48-Stunden-SLA unter security@open-bricks.org, security@ellmos.ai und support@lukasgeiger.com entgegengenommen und innerhalb von 5 Werktagen triagiert.
This project is an unpaid open-source donation under German law (§§ 516 et seq. BGB). Liability is strictly limited to intent and gross negligence (§ 521 German Civil Code). The MIT license disclaimer applies complementarily. Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.
Security incidents and vulnerabilities are handled under a binding 48-hour response SLA via security@open-bricks.org, security@ellmos.ai and support@lukasgeiger.com with formal triage within 5 business days.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y ellmos-codecommander-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-ellmos-ai-ellmos-codecommander-mcp": {
"command": "npx",
"args": [
"-y",
"ellmos-codecommander-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceellmos-codecommander-mcpnpmellmos CodeCommander works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.