/ Directory / Playground / codemcp
● Community ezyang ⚡ Instant

codemcp

by ezyang · ezyang/codemcp

Minimal MCP coding agent for Claude Desktop — read/write/run, nothing else.

codemcp turns Claude Desktop into a usable coding agent without paying for Claude Code. It exposes just enough to be productive: a file reader/writer, a shell runner, and a project init step. Designed to be small, auditable, and easy to bring your own restrictions.

Why use it

Key features

Live Demo

What it looks like in practice

codemcp.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "codemcp": {
      "command": "uvx",
      "args": [
        "codemcp"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "codemcp": {
      "command": "uvx",
      "args": [
        "codemcp"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "codemcp": {
      "command": "uvx",
      "args": [
        "codemcp"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "codemcp": {
      "command": "uvx",
      "args": [
        "codemcp"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "codemcp",
      "command": "uvx",
      "args": [
        "codemcp"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "codemcp": {
      "command": {
        "path": "uvx",
        "args": [
          "codemcp"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add codemcp -- uvx codemcp

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use codemcp

Use Claude Desktop as a free Claude Code replacement

👤 Devs on Claude Pro (not Max) who want agentic coding ⏱ ~15 min intermediate

When to use: You don't want to pay for Claude Code but want the same loop in Desktop.

Prerequisites
  • Server/skill installed and authenticated — See repo README
Flow
  1. Init a project
    Initialize codemcp in /repos/my-project. Whitelist pytest and ruff only.✓ Copied
    → codemcp.toml written with those two commands
  2. Iterate
    Add a /healthz endpoint and a test for it. Run pytest after.✓ Copied
    → File edits + green test output, auto-committed

Outcome: Coding-agent workflow in plain Claude Desktop — every step a git commit.

Pitfalls
  • RunCommand only runs what's whitelisted in codemcp.toml — RunCommand only runs what's whitelisted in codemcp.toml — list every command you'll need upfront.
Combine with: github · filesystem

Combinations

Pair with other MCPs for X10 leverage

codemcp + github

Pair with github for complementary capabilities

Use this server together with github to complete a multi-step task.✓ Copied
codemcp + filesystem

Pair with filesystem for complementary capabilities

Use this server together with filesystem to complete a multi-step task.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
ReadFile path: str Inspect code before editing free
EditFile path, old, new Make a surgical change free
RunCommand command: str Run tests or scripts whitelisted in codemcp.toml free

Cost & Limits

What this costs to run

API quota
See provider docs for rate limits
Tokens per call
Varies by tool
Monetary
See repo README for pricing details
Tip
Cache tool results and avoid repeated identical calls.

Security

Permissions, secrets, blast radius

Credential storage: Use environment variables; never commit secrets
Data egress: Tool calls go to the provider's API as documented

Troubleshooting

Common errors and fixes

command not in allowlist

Add the command to codemcp.toml under [commands] before asking Claude to run it.

Verify: cat codemcp.toml
edit didn't match

EditFile uses exact match. Read the file first and copy the exact old string including whitespace.

Verify: ReadFile and compare

Alternatives

codemcp vs others

AlternativeWhen to use it insteadTradeoff
Claude CodeYou're on Claude Max and want first-party integrationPaid; codemcp is free + open source

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills