代码辅助工具

codemcp是一款与Claude Pro配合使用的代码辅助工具,能够直接在本地代码库中实现功能开发、修复错误和进行重构,支持Git版本控制并限制命令执行范围。

  • by ezyang
  • Python
  • 本地部署
  • 1603 星标
  • 更新于
在 GitHub 查看 ezyang/codemcp

使用说明

注意:克洛德代码可通过Anthropic的每月20美元订阅获得,因此我考虑 codemcp完全过时了。然而,也有一些好的设计理念(尤其是围绕 Git版本控制方案),我最终想移植到当前一代 代理编码clis。

codemcp

通过安装codemcp使Claude Desktop成为结对编程助手。随着 它,你可以直接要求Claude实现功能、修复错误并执行 重构计算机上的代码库;Claude将直接编辑文件和 运行测试。告别在Claude的聊天窗口中复制代码!

codemcp提供与其他AI编码软件类似的功能(Claude Code, Cursor、Cline、Aider),但它在设计空间中占据了一个独特的位置:

  1. 它旨在与 克劳德·普罗Anthropic每月20美元 订阅服务。我喜欢用订阅计划为我的使用付费 因为这意味着 零边际成本 代理人行为;不再有感觉 糟糕的是,你在一个不起作用的变更集上浪费了五美元。

    请注意,如果您有Claude Max(100美元/月),也可以使用Claude Code 基于订阅的定价。codemcp的价值主张是 在这种情况下更模糊(在某些方面肯定不如克劳德代码 尊重),但如果你喜欢,你仍然可以与克劳德·马克斯一起使用codemcp 它所做的其他UI决策。(此外,它是开源的,所以你可以 如果你不喜欢它,就改变它,不像克劳德代码!)

  2. 它是围绕 默认情况下自动接受我希望我的经纪人能得到 只要没有我的监督,我就可以一次审查所有内容 结束。codemcp有两个关键的功能与大多数不同 编码代理:我们 禁止无限制外壳,而是要求您 代理可以使用的预定义命令 codemcp.toml,我们 Git 版本所有LLM编辑,因此您可以在上回滚代理更改 细粒度的基础,不必担心忘记提交 变化。

  3. 它是 IDE无关:你让克劳德做出改变,它就会做出改变 然后,您可以使用您最喜欢的IDE设置来查看更改并进行 进一步编辑。我使用vim作为我的日常驱动程序编辑器和编码环境 需要VSCode或特定编辑器的功能对我来说是关闭的。

重要提示:对于主用户-代币效率的重大变化

为了提高codemcp的令牌效率,在master上我正在处理 将codemcp改回多工具工具(而不是单个工具 当你初始化项目时,指令会被直接写入聊天中)。这意味着你有 手动批准工具使用。因为工具使用批准是持续的 多次聊天,我认为这是一个合理的权衡,但如果你 真的不喜欢,在提交bug 精致的克劳德 浏览器 支持自动批准工具使用的扩展。

安装

我推荐以下安装和使用codemcp的具体方法:

  1. 安装 uv 如果尚未安装git,则安装git。

  2. 安装 克劳德·麦克普 在您的浏览器上。 这使您能够直接从网站连接到SSE MCP服务器, 这意味着您不需要使用Claude Desktop,并且可以轻松地使用 多个聊天窗口并行运行。我们预计这次延期应该 很快就会被淘汰 集成.在 然而,Claude Pro用户尚未收到集成。

  3. 使用以下命令运行codemcp uvx --from git+https://github.com/ezyang/codemcp@prod codemcp serve. 您可以添加 --port 1234 如果你需要它在非标准端口上监听。

    专业提示:如果你喜欢危险的生活,你可以改变 prod 到 main.如果 如果要固定到特定版本,请将其替换为 0.3.0 或类似。

    专业提示:您可以远程运行codemcp!如果你使用 尾秤 并信任您Tailnet上的所有设备, 你可以通过传递来安全地做到这一点 --host 100.101.102.103 (替换 IP与节点的Tailscale IP地址。此IP通常位于 100.64.0.0/10的范围。) 警告: 任何有权访问此MCP的人都可以执行 在您的计算机上执行任意代码 极其 你不太可能想 绑定到0.0.0.0。

  4. 使用URL配置claude-mcp: http://127.0.0.1:8000/sse (必要时更换端口。)

  5. 不幸的是,web UI显示锤子图标的方式不一致。但是,您可以验证 MCP服务器正在通过在中查找“[MCP codemcp]SSE连接已打开”来工作 控制台,或者询问Claude它有什么可用的工具(它应该说 codemcp的工具可用。)

如果您更喜欢使用Claude Desktop或有特殊需求,请查看 安装.md 为了 各种非标准情况的安装说明。

用法

首先,您必须创建一个 codemcp.toml Git存储库签出中的文件 你想工作。如果你想让代理人能够做像跑步这样的事情 您的格式化程序或运行测试,在命令中添加执行命令 部分(注意:这些命令需要适当地设置任何虚拟 他们需要的环境):

format = ["./run_format.sh"]
test = ["./run_test.sh"]

这 format 指挥是特殊的;它总是在每次文件编辑后运行。

接下来,在Claude Desktop中,我们建议创建一个项目并将其放入 项目说明:

Initialize codemcp with $PROJECT_DIR

哪里 $PROJECT_DIR 是通往你想从事的项目的路径。

然后和克劳德谈谈你想对项目做什么改变。 每次codemcp对您的代码进行更改时,它都会生成一个提交。

要使用此工具查看一些示例成绩单,请查看:

codemcp将在每次聊天时生成一个提交,并在处理您的功能时对其进行修改。

哲学

  • 当你的利率受到限制时,花点时间做其他事情(复习 Claude的代码,审查别人的代码,制定计划,做一些会议)

  • 这是 不 自主代理。至少,你必须在以下情况下进行干预 每次聊天都要查看更改并请求下一次更改。当你 能 在一次聊天中要求完成一长串事情,你会 可能会达到Claude Desktop的输出限制,必须手动“继续” 不管怎样,特工。接受它,并利用干扰来确保克劳德 做正确的事。

  • 当克劳德出轨时,你花的是时间而不是金钱。 据此行事:如果时间是瓶颈,看克劳德的增量 小心输出。

配置

以下是支持的所有配置选项 codemcp.toml:

project_prompt = """
Before beginning work on this feature, write a short haiku.  Do this only once.
"""

[commands]
format = ["./run_format.sh"]
test = ["./run_test.sh"]

这 project_prompt 将在您在聊天中初始化项目时加载。

这 commands 部分允许您为特定工具配置命令。这 名字会被告知法学硕士,由其决定何时运营。您可以添加 如何使用工具的说明 project_prompt;我们还支持更详细的 语法,您可以逐个工具给出具体说明:

[commands.test]
command = ["./run_test.sh"]
doc = "Accepts a pytest-style test selector as an argument to run a specific test."

故障排除

要使用检查器运行服务器,请使用:

PYTHONPATH=. mcp dev codemcp/__main__.py

日志被写入 ~/.codemcp/codemcp.log日志级别可以在全局配置文件中设置 ~/.codemcprc:

[logger]
verbosity = "INFO"  # Can be DEBUG, INFO, WARNING, ERROR, or CRITICAL

日志记录不能按项目进行配置,但这应该没关系 这主要是因为很难在多个平台上并行使用Claude Desktop 项目无论如何。

贡献

看 贡献.md.