
Deskaid
Coding assistant MCP for Claude Desktop. Contribute to ezyang/codemcp development by creating an account on GitHub.
README
Make Claude Desktop a pair programming assistant by installing codemcp. With it, you can directly ask Claude to implement features, fix bugs and do refactors on a codebase on your computer; Claude will directly edit files and run tests. Say goodbye to copying code in and out of Claude's chat window!
codemcp offers similar functionality to other AI coding software (Claude Code, Cursor, Cline, Aider), but it occupies a unique point in the design space:
-
It's intended to be used with Claude Pro, Anthropic's $20/mo subscription offering. Say goodbye to giant API bills. (Say hello to time-based rate limits.)
-
It's built around safe agentic AI by providing a limited set of tools that helpful, honest and harmless LLMs are unlikely to misuse, and enforcing best practices like use of Git version control to ensure all code changes can be rolled back. As a result, you can safely unleash the AI and only evaluate at the end if you want to accept the changes or not.
-
It's IDE agnostic: you ask Claude to make changes, it makes them, and then you can use your favorite IDE setup to review the changes and make further edits.
Getting started
First, Install uv.
Then, in claude_desktop_config.json
{ "mcpServers": { "codemcp": { "command": "uvx", "args": [ "--from", "git+https://github.com/ezyang/codemcp@prod", "codemcp", ] } } }
Usage
First, you must create a codemcp.toml
file in the Git repository checkout you want to work on. If you want the agent to be able to do things like run your formatter or run tests, add the commands to execute them in the commands section (note: these commands need to appropriately setup any virtual environment they need):
format = ["./run_format.sh"] test = ["./run_test.sh"]
Next, in Claude Desktop, we recommend creating a Project and putting this in the Project Instructions:
Initialize codemcp with $PROJECT_DIR
Where $PROJECT_DIR
is the path to the project you want to work on.
Then chat with Claude about what changes you want to make to the project. Every time codemcp makes a change to your code, it will generate a commit.
To see some sample transcripts using this tool, check out:
codemcp will generate a commit per chat and amend it as it is working on your feature.
Philosophy
-
When you get rate limited, take the time to do something else (review Claude's code, review someone else's code, make plans, do some meetings)
-
This is not an autonomous agent. At minimum, you have to intervene after every chat to review the changes and request the next change. While you can ask for a long list of things to be done in a single chat, you will likely hit Claude Desktop's output limit and have to manually "continue" the agent anyway. Embrace it, and use the interruptions to make sure Claude is doing the right thing.
-
When Claude goes off the rails, it costs you time rather than dollars. Behave accordingly: if time is the bottleneck, watch Claude's incremental output carefully.
Configuration
Here are all the config options supported by 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"]
The project_prompt
will be loaded when you initialize the project in chats.
The commands
section allows you to configure commands for specific tools. The names are told to the LLM, who will decide when it wants to run them. You can add instructions how to use tools in the project_prompt
; we also support a more verbose syntax where you can give specific instructions on a tool-by-tool basis:
[commands.test]
command = ["./run_test.sh"]
doc = "Accepts a pytest-style test selector as an argument to run a specific test."
Troubleshooting
To run the server with inspector, use:
PYTHONPATH=. mcp dev codemcp/__main__.py
Logs are written to ~/.codemcp/codemcp.log
. The log level can be set in a global configuration file at ~/.codemcprc
:
[logger] verbosity = "INFO" # Can be DEBUG, INFO, WARNING, ERROR, or CRITICAL
Logging is not configurable on a per project basis, but this shouldn't matter much because it's difficult to use Claude Desktop in parallel on multiple projects anyway.
推荐服务器
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Excel MCP Server
一个模型上下文协议服务器,使 AI 助手能够读取和写入 Microsoft Excel 文件,支持诸如 xlsx、xlsm、xltx 和 xltm 等格式。
Playwright MCP Server
提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。
DuckDuckGo MCP Server
一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。
YouTube Transcript MCP Server
这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。
Tavily MCP Server
使用 Tavily 的搜索 API 提供 AI 驱动的网络搜索功能,使 LLM 能够执行复杂的网络搜索、获得问题的直接答案以及搜索最近的新闻文章。

Azure MCP Server
通过 Claude Desktop 实现与 Azure 服务的自然语言交互,支持资源管理、订阅处理和租户选择,并提供安全身份验证。

Settlemint
Leverage SettleMint's Model Context Protocol server to seamlessly interact with enterprise blockchain infrastructure. Build, deploy, and manage smart contracts through AI-powered assistants, streamlining your blockchain development workflow for maximum efficiency.