使用说明
mcp git服务器
最小的MCP-风格的HTTP服务器,通过HTTP API和VS代码Copilot的模型上下文协议(MCP)运行常见的Git操作。
特性
- 🔧 22 Git操作:克隆、状态、拉取、推送、提交、添加、签出、分支、日志、获取、合并、隐藏、重置、配置、还原,以及6个合并冲突解决工具
- 🤖 MCP集成:与VS Code Copilot无缝协作
- 🔐 自动令牌身份验证:自动注入GitHub和Azure DevOps令牌
- 🌐 交叉平台的:macOS、Linux和Windows支持
- 🚫 无凭证提示:禁用所有git凭据对话框
- ⏱️ 可配置超时:处理慢速网络或大型存储库
快速开始
- 安装依赖项:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- 配置令牌(可选):
export GITHUB_TOKEN=ghp_your_github_token
export ADO_PAT=your_azure_devops_pat
- 运行服务器:
python run_server.py --host 127.0.0.1 --port 5000
- 测试服务器:
curl http://127.0.0.1:5000/api/health
可用工具
服务器提供 22位数操作 可通过MCP工具(用于Copilot)或HTTP端点(用于直接API调用)访问:
核心操作(15个工具)
| # | 工具 | HTTP端点 | 说明 |
|---|---|---|---|
| 1 | git_clone |
POST /api/clone |
克隆存储库 |
| 2 | git_status |
POST /api/status |
获取存储库状态 |
| 3 | git_pull |
POST /api/pull |
从远程拉动(支架 --rebase) |
| 4 | git_push |
POST /api/push |
推到远程 |
| 5 | git_commit |
POST /api/commit |
提交分阶段更改 |
| 6 | git_add |
POST /api/add |
提交阶段文件 |
| 7 | git_checkout |
POST /api/checkout |
切换或创建分支 |
| 8 | git_branch |
POST /api/branch |
获取当前分支名称 |
| 9 | git_log |
POST /api/log |
显示提交历史记录 |
| 10 | git_fetch |
POST /api/fetch |
从远程获取 |
| 11 | git_merge |
POST /api/merge |
合并分支 |
| 12 | git_stash |
POST /api/stash |
管理存储(保存、列出、应用、弹出、删除、清除、显示) |
| 13 | git_reset |
POST /api/reset |
将HEAD重置为指定状态或取消暂存文件 |
| 14 | git_config |
POST /api/config |
获取、设置、取消设置或列出git配置 |
| 15 | git_restore |
POST /api/restore |
还原工作树文件或取消分级更改 |
合并冲突解决(6个工具)
| # | 工具 | HTTP端点 | 说明 |
|---|---|---|---|
| 16 | git_conflict_status |
POST /api/conflict_status |
检查合并状态并列出冲突文件 |
| 17 | git_show_conflicts |
POST /api/show_conflicts |
显示带有冲突标记的冲突文件 |
| 18 | git_diff_conflict |
POST /api/diff_conflict |
显示冲突文件的差异 |
| 19 | git_abort_merge |
POST /api/abort_merge |
中止合并、重基或樱桃采摘 |
| 20 | git_merge_continue |
POST /api/merge_continue |
手动解析后完成合并 |
| 21 | git_rebase_continue |
POST /api/rebase_continue |
冲突解决后继续重设基础 |
| 22 | git_rebase_abort |
POST /api/rebase_abort |
中止正在进行的重设基础 |
📖 有关详细的参数、示例和用法,请参阅 API_REFERENCE.md
文档
- API_REFERENCE.md -完整的API文档,包括参数、示例和错误处理
- MCP_SETUP.md -VS代码副本集成指南
- TOKEN_AUTH_GUIDE.md -令牌身份验证设置和故障排除
- 快速启动.md -快速入门指南和常见工作流程
- 风_兼容性.md -Windows特定的安装说明
示例用法
使用副印本(自然语言)
"Clone https://github.com/torvalds/linux.git to ~/projects"
"What's the status of my repo at ~/my-project?"
"Pull the latest changes with rebase"
"Commit all changes with message 'feat: add login'"
"Push to origin main"
使用HTTP API(直接)
# Check status
curl -X POST http://127.0.0.1:5000/api/status \
-H "Content-Type: application/json" \
-d '{"repo_path":"/path/to/repo"}'
# Pull with rebase
curl -X POST http://127.0.0.1:5000/api/pull \
-H "Content-Type: application/json" \
-d '{"repo_path":"/path/to/repo","rebase":true}'
# Merge branch
curl -X POST http://127.0.0.1:5000/api/merge \
-H "Content-Type: application/json" \
-d '{"repo_path":"/path/to/repo","branch":"feature-branch"}'
看 API_REFERENCE.md 获取完整的API文档。
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
GITHUB_TOKEN |
GitHub个人访问令牌 | - |
ADO_PAT |
Azure DevOps个人访问令牌 | - |
GIT_TIMEOUT |
操作超时(秒) | 30 |
GIT_PATH |
git可执行文件的路径 | 自动检测到 |
MCP_DEBUG |
启用MCP调试日志记录 | 0 |
GIT_TOOLS_DEBUG |
启用git工具调试日志记录 | 0 |
令牌认证
令牌在远程操作(pull、push、fetch)期间自动注入。在中配置 mcp.json 对于副驾驶:
{
"mcpServers": {
"git": {
"command": "python",
"args": ["-m", "mcp_git_server.mcp_server"],
"env": {
"GITHUB_TOKEN": "ghp_your_token",
"ADO_PAT": "your_ado_pat",
"GIT_TIMEOUT": "240"
}
}
}
}
看 TOKEN_AUTH_GUIDE.md 有关详细的设置说明。
许可证
MIT许可证-有关详细信息,请参阅许可证文件。