About Codemoder
Codemoder is an MCP server in the Communication category: scriptable tool calls for any MCP server.
Install
git clone https://github.com/diodeinc/codemoderThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Codemoder
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Codemoder
An MCP proxy server that adds "code mode" capability to any MCP server. This lets AI models write JavaScript code that can call multiple tools in a single execution, instead of calling tools one at a time.
How it Works
┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ MCP Client │────▶│ codemoder │────▶│ Downstream MCP │
│ (Claude, etc) │ │ │ │ Server │
└─────────────────┘ └──────────────────┘ └────────────────────┘
The proxy:
- Spawns and connects to a downstream MCP server
- Intercepts
list_toolsand adds anexecute_toolstool - Generates TypeScript interface definitions for all tools
- When
execute_toolsis called, runs JavaScript code that can call tools - Proxies regular tool calls through to the downstream server
Usage
# Proxy any MCP server (simple form)
codemoder ./my-mcp-server
# With options, use -- to separate codemoder args from the command
codemoder --mode replace -- ./my-mcp-server
# Custom tool name
codemoder --tool-name "run_script" -- ./my-mcp-server
# Only include specific tools
codemoder --include-tools "move_items,get_footprints" -- ./my-mcp-server
Options
| Option | Description | Default |
|---|---|---|
--mode |
add exposes both execute_tools and original tools; replace only exposes execute_tools |
add |
--tool-name |
Name of the code execution tool | execute_tools |
--include-tools |
Comma-separated list of tools to include | all tools |
Example
When connected through the proxy, the model can write:
// Get all items and sum their values
var items = tools.get_items({}).items;
var total = 0;
for (var i = 0; i < items.length; i++) {
total += items[i].value;
}
({count: items.length, total: total})
Building
cargo build --release
The binary will be at target/release/codemoder.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.