minkaworks

Mcptocodemode — Development skill for Claude Code

Development community

Stop flooding your agent's prompt with MCP tools: MCPtoCodeMode puts every MCP server behind 3 tools and a sandbox, for Codex, Claude Code, Cursor, Grok, OpenCode, Pi, or any MCP client.

How to install Mcptocodemode

This entry records only its repository, not the path inside it, so there is no exact command to give. Open minkaworks/mcptocodemode and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Mcptocodemode does

Stop flooding your agent's prompt with MCP tools: MCPtoCodeMode puts every MCP server behind 3 tools and a sandbox, for Codex, Claude Code, Cursor, Grok, OpenCode, Pi, or any MCP client.

Alternatives in Development

  • 11 MCP Integration — Prompt 11: MCP Client/Server Integration 2.2k ★
  • Mcpx — MCPX 是运行在开发环境中的 MCP Runtime(网关) 370 ★
  • Premiere Pro MCP — Adobe Premiere Pro MCP — independent, local-first server for supported workflows 292 ★

README

MCPtoCodeMode

[Specification](SPEC.md) · [Benchmarks](REPORT.md) · [CI](https://github.com/minkaworks/mcptocodemode/actions/workflows/ci.yml) · [MIT License](LICENSE) · [Changelog](CHANGELOG.md)

One MCP server in front of all the MCP servers you already use. Your model sees three tools instead of hundreds, and it writes one short program instead of making dozens of tool calls.

npx -y mcptocodemode list

That finds the MCP servers already configured on your machine (Claude Code, Codex, Cursor, Grok, OpenCode, Pi, VS Code), connects to them, and prints what the model will be able to call.

Why

Connect seven MCP servers and your client puts 55 tool definitions in every prompt. Then ask it something like *"read these 25 order files and total the paid ones"*. That is 26 tool calls and 26 model turns, and each turn re-reads every file that came before it.

With MCPtoCodeMode the model writes this once, and only the answer comes back:

const listing = await filesystem.list_directory({ path: "/data/orders" });
const names = listing.content.split("\n").map((line) => line.replace("[FILE] ", ""));
const orders = await Promise.all(
  names.map(async (name) => JSON.parse((await filesystem.read_text_file({ path: `/data/orders/${name}` })).content)),
);
const paid = orders.filter((order) => order.status === "paid");
return { paid: paid.length, total: paid.reduce((sum, order) => sum + order.total, 0) };

The code runs in a sandbox with no network, no filesystem, and no credentials. Its only way out is the MCP servers you configured.

Benchmarks

Seven official [reference servers](https://github.com/modelcontextprotocol/servers), 55 tools. Method, raw data, and caveats are in [REPORT.md](REPORT.md).

With Claude Sonnet 5.5 on real tasks, through OpenRouter:

Plain MCP MCPtoCodeMode
Correct answers, three tasks × 3 runs 9 / 9 9 / 9
Input tokens for those 9 runs 531,480 94,002 (5.7× fewer)
Cost for t