通过安装codemcp,使Claude Desktop成为你的配对编程助手。有了它,你可以直接请求Claude在电脑上的代码库中实现功能、修复错误和进行重构;Claude可以直接编辑文件并运行测试。告别在Claude聊天窗口中复制粘贴代码的时代!

codemcp提供了类似于其他AI编码软件(如Claude Code、Cursor、Cline、Aider)的功能,但它在设计空间中占据了一个独特的点:
它旨在与Claude Pro配合使用,这是Anthropic提供的每月20美元的订阅服务。我喜欢通过订阅计划支付使用费用,因为这意味着代理操作的边际成本为零;不会再有浪费五美元在一个无法工作的更改集上的感觉。
需要注意的是,如果你有Claude Max(每月100美元),Claude Code也可以通过订阅定价使用。在这种情况下,codemcp的价值主张较为模糊(并且在某些方面确实劣于Claude Code),但如果你更喜欢它的一些UI决策,仍然可以使用codemcp与Claude Max一起工作。(此外,它是开源的,所以如果你不喜欢它,可以自行修改,不像Claude Code!)
它围绕默认自动接受构建。我希望我的代理能够在没有监督的情况下尽可能地进行操作,这样我可以在最后一次性审查所有内容。codemcp与其他大多数编码代理相比有两个关键的不同之处:我们禁止无限制的shell访问,而是要求你在codemcp.toml中预声明代理可以使用的命令,并且我们对LLM的所有编辑进行Git版本控制,这样你可以细粒度地回滚代理所做的更改,无需担心忘记提交更改。
它是IDE无关的:你请求Claude进行更改,它会执行这些更改,然后你可以使用自己最喜欢的IDE设置来审查更改并进行进一步编辑。我每天使用vim作为编辑器,而那些需要VSCode或其他特定编辑器的编码环境对我来说是一个障碍。
为了提高codemcp的代币效率,在master分支上,我正在将codemcp重新设计为一个多工具工具(而不是一个单一工具,其指令在InitProject时被批量发送到聊天)。这意味着你需要手动批准工具的使用。由于工具使用批准在多个聊天之间是持久的,我认为这是一个合理的权衡,但如果真的不喜欢,可以在refined-claude浏览器扩展中报告一个bug,以支持自动批准工具使用。
我推荐以下方式安装和使用codemcp:
如果尚未安装,请安装uv和git。
在浏览器上安装claude-mcp。这允许你直接从网站连接到SSE MCP服务器,这意味着你不需要使用Claude Desktop,并且可以轻松地同时打开多个聊天窗口。我们预计此扩展最终会被Integrations所取代。然而,撰写本文时,Claude Pro订阅者尚未获得Integrations。
使用uvx --from git+https://github.com/ezyang/codemcp@prod codemcp serve运行codemcp。如果需要监听非标准端口,可以添加--port 1234。
小贴士:如果你喜欢冒险,可以将prod改为main。如果你想固定到特定版本,可以用0.3.0或类似的版本号替换它。
小贴士:你可以远程运行codemcp!如果你使用Tailscale并且信任Tailnet中的所有设备,可以通过传递--host 100.101.102.103(用你的节点的Tailscale IP地址替换IP)安全地做到这一点。该IP通常位于100.64.0.0/10范围内。警告:任何人只要能访问这个MCP,就能在你的计算机上执行任意代码,绑定到0.0.0.0是非常不建议的。
使用URL配置claude-mcp:http://127.0.0.1:8000/sse(根据需要替换端口号)。
不幸的是,web UI不一致地显示锤子图标。但是,你可以在控制台中查找"[MCP codemcp] SSE连接已打开"来验证MCP服务器是否正常工作,或者询问Claude它有哪些可用的工具(它应该说来自codemcp的工具可用)。
如果你更喜欢使用Claude Desktop或有特殊需求,请查看INSTALL.md,了解各种非标准情况下的安装说明。
首先,必须在你想要工作的Git仓库检出中创建一个codemcp.toml文件。如果你想让代理能够执行诸如运行格式化程序或测试之类的操作,请在命令部分添加执行它们的命令(注意:这些命令需要适当地设置它们所需的虚拟环境):
format = ["./run_format.sh"]
test = ["./run_test.sh"]
format命令是特殊的;它会在每次文件编辑后始终运行。
接下来,在Claude Desktop中,我们建议创建一个项目,并在项目说明中放入以下内容:
使用$PROJECT_DIR初始化codemcp
其中$PROJECT_DIR是你想要工作的项目的路径。
然后,与Claude讨论你希望对项目进行的更改。每次codemcp对你的代码进行更改时,都会生成一个提交。
要查看使用此工具的一些样本对话记录,请参阅:
codemcp将在每次聊天中生成一个提交,并在处理你的功能时对其进行修正。
当你遇到速率限制时,花时间做其他事情(例如,审查Claude的代码、审查他人的代码、制定计划、开会)。
这不是一个自主代理。至少,你需要在每次聊天后介入,审查更改并请求下一次更改。虽然你可以要求在单次聊天中完成一系列任务,但你可能会达到Claude Desktop的输出限制,不得不手动“继续”代理。拥抱这种中断,确保Claude在做正确的事情。
当Claude偏离轨道时,它会耗费你的时间而不是金钱。相应地行事:如果时间是瓶颈,仔细观察Claude的增量输出。
以下是codemcp.toml支持的所有配置选项:
project_prompt = """
在开始这个功能的工作之前,写一首短俳句。仅需一次。
"""
[commands]
format = ["./run_format.sh"]
test = ["./run_test.sh"]
project_prompt将在你初始化项目聊天时加载。
commands部分允许你为特定工具配置命令。这些名称会被告知给LLM,由它决定何时运行它们。你可以在project_prompt中添加如何使用工具的说明;我们还支持一种更详细的语法,允许你针对每个工具提供具体的说明:
[commands.test]
command = ["./run_test.sh"]
doc = "接受pytest风格的测试选择器作为参数,以运行特定的测试。"
要使用inspector运行服务器,请使用:
PYTHONPATH=. mcp dev codemcp/__main__.py
日志写入~/.codemcp/codemcp.log。日志级别可以在全局配置文件~/.codemcprc中设置:
[logger]
verbosity = "INFO" # 可以是DEBUG、INFO、WARNING、ERROR或CRITICAL
日志不可按项目单独配置,但这通常不会造成太大影响,因为在多个项目上同时使用Claude Desktop本身就比较困难。
请参阅CONTRIBUTING.md。