mcp-server-git是一个用于与Git仓库进行交互和自动化操作的Model Context Protocol(MCP)服务器。它借助大语言模型,提供了读取、搜索和操作Git仓库的工具。
请注意,mcp-server-git目前处于早期开发阶段。随着服务器的持续开发和改进,其功能和可用工具可能会发生变化和扩展。
uv
和pip
。.env
文件加载配置。当使用 uv
时,无需进行特定安装。我们将使用 uvx
直接运行 mcp-server-git。
你也可以通过pip安装 mcp-server-git
:
pip install mcp-server-git
安装完成后,你可以使用以下命令将其作为脚本运行:
python -m mcp_server_git
git_status
repo_path
(字符串):Git仓库的路径git_diff_unstaged
repo_path
(字符串):Git仓库的路径git_diff_staged
repo_path
(字符串):Git仓库的路径git_diff
repo_path
(字符串):Git仓库的路径target
(字符串):用于比较的目标分支或提交git_commit
repo_path
(字符串):Git仓库的路径message
(字符串):提交信息git_add
repo_path
(字符串):Git仓库的路径files
(字符串数组):要暂存的文件路径数组git_reset
repo_path
(字符串):Git仓库的路径git_log
repo_path
(字符串):Git仓库的路径max_count
(数字,可选):要显示的最大提交数(默认值:10)git_create_branch
repo_path
(字符串):Git仓库的路径branch_name
(字符串):新分支的名称start_point
(字符串,可选):新分支的起始点git_checkout
repo_path
(字符串):Git仓库的路径branch_name
(字符串):要切换到的分支名称git_show
repo_path
(字符串):Git仓库的路径revision
(字符串):要显示的版本(提交哈希、分支名称、标签)git_init
repo_path
(字符串):要初始化Git仓库的目录路径服务器支持从 .env
文件加载环境变量,优先级顺序如下:
.env
文件.env
文件(使用 --repository
参数时).env
文件(自动检测)在你的项目目录或ClaudeCode工作区中创建一个 .env
文件:
# 用于GitHub集成功能的GitHub API令牌
# 从以下地址获取令牌:https://github.com/settings/tokens
GITHUB_TOKEN=your_github_token_here
# 可选:自定义GitHub API基本URL(用于GitHub Enterprise)
# GITHUB_API_BASE_URL=https://api.github.com
# 可选:调试日志级别
# LOG_LEVEL=INFO
注意:服务器启动时会自动加载 .env
文件。服务器会从当前工作目录和仓库路径(如果通过 --repository
参数提供)向上遍历,智能检测ClaudeCode工作区目录。如果未找到 .env
文件,服务器将使用系统环境变量。
对于ClaudeCode用户:如果你的 .env
文件位于ClaudeCode工作区根目录(例如 /home/memento/ClaudeCode/.env
),从该工作区内的任何子目录运行MCP服务器时,它将自动检测并加载该文件。
将以下内容添加到你的 claude_desktop_config.json
中:
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
}
/Users/username
替换为你希望该工具可访问的路径"mcpServers": {
"git": {
"command": "docker",
"args": ["run", "--rm", "-i", "--mount", "type=bind,src=/Users/username,dst=/Users/username", "mcp/git"]
}
}
"mcpServers": {
"git": {
"command": "python",
"args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"]
}
}
使用以下一键安装按钮之一:
将以下JSON块添加到VS Code的用户设置(JSON)文件中。你可以通过按下 Ctrl + Shift + P
并输入 Preferences: Open Settings (JSON)
来完成此操作。
可选地,你可以将其添加到工作区中名为 .vscode/mcp.json
的文件中。这样可以与他人共享配置。
注意,
.vscode/mcp.json
文件中不需要mcp
键。
{
"mcp": {
"servers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git"]
}
}
}
}
对于Docker安装:
{
"mcp": {
"servers": {
"git": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount", "type=bind,src=${workspaceFolder},dst=/workspace",
"mcp/git"
]
}
}
}
}
将以下内容添加到你的Zed settings.json
中:
"context_servers": [
{
"mcp-server-git": {
"command": {
"path": "uvx",
"args": ["mcp-server-git"]
}
}
}
],
"context_servers": {
"mcp-server-git": {
"command": {
"path": "python",
"args": ["-m", "mcp_server_git"]
}
}
},
你可以使用MCP检查器来调试服务器。对于uvx安装:
npx @modelcontextprotocol/inspector uvx mcp-server-git
或者,如果你将软件包安装在特定目录中或正在对其进行开发:
cd path/to/servers/src/git
npx @modelcontextprotocol/inspector uv run mcp-server-git
运行 tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
将显示服务器的日志,可能有助于你调试任何问题。
如果你正在进行本地开发,有两种方法可以测试你的更改:
claude_desktop_config.json
中:{
"mcpServers": {
"git": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
"--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
"--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
"mcp/git"
]
}
}
}
{
"mcpServers": {
"git": {
"command": "uv",
"args": [
"--directory",
"//mcp-servers/src/git" ,
"run",
"mcp-server-git"
]
}
}
}
Docker构建:
cd src/git
docker build -t mcp/git .
此MCP服务器采用MIT许可证。这意味着你可以自由使用、修改和分发该软件,但需遵守MIT许可证的条款和条件。有关更多详细信息,请参阅项目仓库中的 LICENSE
文件。