如何用 uvx 运行 Git MCP Server 并通过 --repository 绑定本地仓库供 Claude Desktop 使用
【免费下载链接】serversModel Context Protocol Servers项目地址: https://gitcode.com/GitHub_Trending/se/servers
如果你希望让 Claude Desktop 能够查询和操作你本机的某个 Git 仓库——查看工作区状态、对比未暂存/已暂存改动、提交、切分支、看提交历史——servers 仓库中的 Git MCP Server(包名mcp-server-git)可以承担这个任务。README 推荐的运行方式是直接用uvx执行,无需单独安装;再通过启动参数--repository指定要绑定的本地仓库,最后把这段启动命令写进 Claude Desktop 的claude_desktop_config.json即可。本文覆盖从写配置到验证、排障的完整路径。
准备条件
- 已安装 Claude Desktop,且能找到它的配置文件
claude_desktop_config.json(README 只说明“把配置加到这个文件里”,未给出完整路径,按你系统上的实际位置操作)。 - 系统上可用
uv提供的uvx命令。README 明确说明:使用uv时不需要专门安装mcp-server-git,直接用uvx运行即可。 - 目标仓库已经 clone 到本地,是一个有效的 Git 仓库。
--repository接收的就是这个仓库的目录路径。 - 若走文档给出的 pip 替代路线(见后文可选分支),环境需要 Python
>=3.10(见 src/git/pyproject.toml 中的requires-python)。uvx 路线无需关心这一条。
--repository参数做什么
在写入配置前,先明确这个参数的行为边界,它能帮你理解配置写错时会发生什么:
mcp-server-git的命令行入口定义了一个--repository(可缩写为-r)选项,类型为路径,帮助文本为 "Git repository path"(见 src/git/src/mcp_server_git/init.py)。- 服务启动时会用
git.Repo(repository)校验该路径是否是有效 Git 仓库。校验失败时记录错误日志{repository} is not a valid Git repository,然后直接返回,服务不会进入运行状态(见 src/git/src/mcp_server_git/server.py 的serve函数)。 - 校验通过后,所有工具调用传入的
repo_path都会被限制在绑定仓库内部(validate_repo_path):如果工具收到的路径越界,会抛出Repository path '...' is outside the allowed repository '...'。也就是说,绑定了--repository后,这个 server 只会操作这一个仓库。 - 不带
--repository时,server 也会尝试通过客户端的 roots 能力发现仓库;本文场景是显式绑定单个本地仓库,使用--repository即可。
写入 Claude Desktop 配置
打开claude_desktop_config.json,加入下面来自 src/git/README.md 的 uvx 配置。其中path/to/git/repo是文档中的占位符,替换为你本地仓库的实际路径:
"mcpServers": { "git": { "command": "uvx", "args": ["mcp-server-git", "--repository", "path/to/git/repo"] } }要点:
command固定为uvx,第一个参数是包名mcp-server-git,uvx会直接拉取并运行该包。--repository后的值必须是本地已存在的 Git 仓库路径;按上一节的行为,指错目录时 server 会打印错误日志并退出,Claude Desktop 侧表现为工具加载不出来。
可选分支:pip 方式
README 同时给出了 pip 路线,适合不便使用 uvx 的环境。先安装:
pip install mcp-server-git然后配置改为用 Python 直接以模块方式运行:
"mcpServers": { "git": { "command": "python", "args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"] } }pip 路线对 Python 版本有>=3.10的要求;两条路线的--repository用法完全一致。
验证 server 是否正常工作
README 的 Debugging 一节给出了两种验证/排障手段:
- 用 MCP inspector 直接调试 server(uvx 安装方式对应的命令):
npx @modelcontextprotocol/inspector uvx mcp-server-git通过 inspector 可以确认 server 能否正常启动、工具列表是否正常返回。
- 查看 Claude 侧记录的 server 日志:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log注意日志路径~/Library/Logs/Claude/是文档原样给出的写法(macOS 风格路径),按你的系统实际位置替换目录。
还有一个细节帮助你在日志中确认绑定结果:入口脚本默认日志级别为WARN,在启动命令中加-v会输出INFO级别、加两次-v输出DEBUG级别。server 在校验通过后会记录Using repository at {repository}这条 INFO 日志,所以想亲眼看到它,启动时需要带上-v。
配置生效后有哪些工具可用
server 注册了以下工具(完整参数说明见 src/git/README.md):
- 只读类:
git_status、git_diff_unstaged、git_diff_staged、git_diff、git_log、git_show、git_branch - 会改动仓库类:
git_commit、git_add、git_reset、git_create_branch、git_checkout
除git_branch外,所有工具的输入参数都包含repo_path(仓库路径),绑定了--repository时该路径必须落在绑定仓库内;diff 类工具的context_lines默认值为 3,git_log的max_count默认为 10,git_log还支持 ISO 8601、相对日期或绝对日期格式的start_timestamp/end_timestamp过滤。
限制说明
- README 明确声明 mcp-server-git 目前处于早期开发阶段(early development),功能与可用工具可能随版本变化。
--repository指向无效目录时 server 不会进入服务状态,只留一条错误日志——排查“工具没出现”时,先看这条日志和mcp*.log,而不是怀疑 Claude Desktop。- 本文只覆盖 uvx + Claude Desktop 路径;README 中另有 VS Code、Zed、Zencoder 和 Docker 的配置示例,需要时按同一
--repository语义自行套用即可,不展开。
参考资料:src/git/README.md、src/git/src/mcp_server_git/server.py、src/git/src/mcp_server_git/init.py、src/git/pyproject.toml。
【免费下载链接】serversModel Context Protocol Servers项目地址: https://gitcode.com/GitHub_Trending/se/servers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考