使用说明
mcp服务器git:git mcp服务器
概述
用于Git存储库交互和自动化的模型上下文协议服务器。此服务器提供通过大型语言模型读取、搜索和操作Git存储库的工具。
请注意,mcp服务器git目前处于早期开发阶段。随着我们不断开发和改进服务器,功能和可用工具可能会发生变化和扩展。
工具
-
git_status- 显示工作树状态
- 输入:
repo_path(string):Git存储库的路径
- 返回:工作目录的当前状态作为文本输出
-
git_diff_unstaged- 显示尚未暂存的工作目录中的更改
- 输入:
repo_path(string):Git存储库的路径context_lines(数字,可选):要显示的上下文行数(默认值:3)
- 返回值:未暂存更改的差异输出
-
git_diff_staged- 显示已提交的更改
- 输入:
repo_path(string):Git存储库的路径context_lines(数字,可选):要显示的上下文行数(默认值:3)
- 返回值:分阶段更改的差异输出
-
git_diff- 显示分支或提交之间的差异
- 输入:
repo_path(string):Git存储库的路径target(string):目标分支或提交进行比较context_lines(数字,可选):要显示的上下文行数(默认值:3)
- 返回:将当前状态与目标进行比较的Diff输出
-
git_commit- 记录对存储库的更改
- 输入:
repo_path(string):Git存储库的路径message(string):提交消息
- 返回:使用新的提交哈希进行确认
-
git_add- 将文件内容添加到暂存区
- 输入:
repo_path(string):Git存储库的路径files(string[]):到stage的文件路径数组
- 返回:暂存文件的确认
-
git_reset- 取消所有阶段性变化
- 输入:
repo_path(string):Git存储库的路径
- 返回:重置操作确认
-
git_log- 显示提交日志
- 输入:
repo_path(string):Git存储库的路径max_count(number,可选):要显示的最大提交数(默认值:10)
- 返回:包含哈希、作者、日期和消息的提交条目数组
-
git_create_branch- 创建新分支
- 输入:
repo_path(string):Git存储库的路径branch_name(string):新分支的名称base_branch(字符串,可选):新分支的起点
- 返回:分支创建确认
-
git_checkout
- 切换分支
- 输入:
repo_path(string):Git存储库的路径branch_name(string):要结账的分行名称
- 返回:分支切换确认
git_show
- 显示提交的内容
- 输入:
repo_path(string):Git存储库的路径revision(string):要显示的修订(提交哈希、分支名称、标签)
- 返回:指定提交的内容
git_init
- 初始化Git存储库
- 输入:
repo_path(string):初始化git repo的目录路径
- 返回:确认存储库初始化
git_branch
- 列出Git分支
- 输入:
repo_path(string):Git存储库的路径。branch_type(string):是列出本地分支('local')、远程分支('remote')还是所有分支('all')。contains(string,可选):该分支应包含的commit-sha。如果没有指定commit-sha,则不要向此参数传递任何内容not_contains(string,可选):该分支不应包含的commit sha。如果没有指定commit-sha,则不要向此参数传递任何内容
- 返回:分支列表
git_cherry_pick
- Cherry选择当前分支的承诺
- 输入:
repo_path(string):Git存储库的路径commit_sha(string):樱桃采摘的提交哈希no_commit(boolean,可选):如果为true,则选择樱桃而不提交(默认值:false)
- 退货:确认樱桃采摘操作
git_list_remotes
- 列出已配置的遥控器
- 输入:
repo_path(string):Git存储库的路径verbose(布尔值,可选):如果为true,则显示远程URL(默认值:false)
- 返回:已配置的遥控器列表
git_pull
- 从远程存储库中提取更改
- 输入:
repo_path(string):Git存储库的路径remote(string):远程设备的名称branch(string):要拉取的分支的名称
- 返回:拉取操作确认
git_push
- 将更改推送到远程存储库
- 输入:
repo_path(string):Git存储库的路径remote(string):远程设备的名称branch(string):要推送的分支的名称force(布尔值,可选):如果为true,则强制推送(默认值:false)
- 返回:推送操作确认
git_fetch
- 从远程存储库获取更改
- 输入:
repo_path(string):Git存储库的路径remote(string):远程设备的名称branch(字符串,可选):要获取的特定分支(默认:所有分支)all_remotes(boolean,可选):如果为true,则从所有远程获取(默认值:false)
- 返回:确认获取操作
git_switch_create
- 切换到新分支或从可选的基分支创建新分支
- 输入:
repo_path(string):Git存储库的路径branch_name(string):要创建和切换到的分支的名称base_branch(string,可选):新分支的基础分支
- 返回:分支创建和切换确认
安装
使用紫外线(推荐)
使用时 uv 不需要特定的安装。我们将
使用 uvx 直接运行 mcp服务器git.
使用PIP
或者,您可以安装 mcp-server-git 通过pip:
pip install mcp-server-git
安装后,您可以使用以下命令将其作为脚本运行:
python -m mcp_server_git
配置
使用Claude Desktop
将此添加到您的 claude_desktop_config.json:
Using uvx
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
}
Using docker (secure configuration)
- 注意:将“/Users/username/projects”替换为您希望访问的特定项目路径
- 为了安全起见,只挂载您需要的特定目录,而不是整个用户目录
"mcpServers": {
"git": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--security-opt=no-new-privileges:true",
"--read-only",
"--tmpfs", "/tmp:rw,noexec,nosuid,size=100m",
"--mount", "type=bind,src=/Users/username/projects,dst=/workspace,readonly",
"--user", "1000:1000",
"mcp/git",
"--repository", "/workspace/your-repo"
]
}
}
Using pip installation
"mcpServers": {
"git": {
"command": "python",
"args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"]
}
}
使用VS代码
为了快速安装,请使用下面的一键安装按钮之一。..
对于手动安装,请将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open Settings (JSON).
您可以选择将其添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。
请注意
mcp中不需要密钥.vscode/mcp.json文件。
{
"mcp": {
"servers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git"]
}
}
}
}
对于Docker安装(安全配置):
{
"mcp": {
"servers": {
"git": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--security-opt=no-new-privileges:true",
"--read-only",
"--tmpfs",
"/tmp:rw,noexec,nosuid,size=100m",
"--mount",
"type=bind,src=${workspaceFolder},dst=/workspace",
"--user",
"1000:1000",
"mcp/git",
"--repository",
"/workspace"
]
}
}
}
}
使用方法 泽德
添加到您的Zed settings.json:
Using uvx
"context_servers": [
"mcp-server-git": {
"command": {
"path": "uvx",
"args": ["mcp-server-git"]
}
}
],
Using pip installation
"context_servers": {
"mcp-server-git": {
"command": {
"path": "python",
"args": ["-m", "mcp_server_git"]
}
}
},
使用方法 Zencoder
- 转到Zencoder菜单(…)
- 从下拉菜单中,选择
Agent Tools - 点击
Add Custom MCP - 从下面添加名称(即git)和服务器配置,并确保点击
Install按钮
Using uvx
{
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
调试
您可以使用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 将显示服务器的日志,并可能
帮助您调试任何问题。
发展
如果您正在进行本地开发,有两种方法可以测试您的更改:
-
运行MCP检查器以测试您的更改。看 调试 用于运行说明。
-
使用Claude桌面应用程序进行测试。将以下内容添加到您的
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"
]
}
}
}
UVX
{
"mcpServers": {
"git": {
"command": "uv",
"args": [
"--directory",
"/<path to mcp-servers>/mcp-servers/src/git",
"run",
"mcp-server-git"
]
}
}
}
构建
Docker构建:
cd src/git
docker build -t mcp/git .
许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。
