Skip to main content
Glama
README.zh-CN.md8.71 kB
# MCP MGit 服务器 一个支持多实例的 MCP 服务器,用于执行 `mgit push` 操作。 ## 前置要求 **⚠️ 重要提示:** 此 MCP 服务器需要在您的系统上安装并配置 [MGit](https://github.com/liliangshan/mgit) 工具。 MGit 是一个用于管理多个 Git 项目的命令行工具。它可以帮助您高效地管理、同步和更新多个 Git 仓库。 ### MGit 安装和设置 在使用此 MCP 服务器之前,请: 1. **安装 MGit**:从 [https://github.com/liliangshan/mgit/releases](https://github.com/liliangshan/mgit/releases) 下载并安装 MGit 2. **初始化 MGit**:按照 [MGit README](https://github.com/liliangshan/mgit/blob/main/README.md) 中的 MGit 设置说明进行操作 3. **配置项目**:使用 `mgit init` 将您的 Git 仓库添加到 MGit 4. **验证设置**:使用 `mgit list` 查看可用的仓库名称 有关详细的 MGit 使用说明、功能和配置,请参考 [MGit README](https://github.com/liliangshan/mgit/blob/main/README.md)。 ### MGit 主要功能 - 多项目管理:一键管理多个 Git 项目 - 多语言支持:支持中文(简体/繁体)、英语、日语、韩语、法语等多种语言 - 远程数据库同步:支持跨多个设备的项目配置同步 - 智能分支管理:自动检测和切换分支以避免冲突 - 批量操作:支持同时拉取/推送多个项目的更改 ## 功能特性 - ✅ 为仓库执行 `mgit push` 命令 - ✅ 可配置的 mgit 命令(默认:`mgit`) - ✅ 支持多实例,使用仓库名称隔离 - ✅ 操作日志记录 - ✅ 错误处理和恢复 ## 安装 ### 全局安装(推荐) ```bash npm install -g @liangshanli/mcp-server-mgit ``` ### 本地安装 ```bash npm install @liangshanli/mcp-server-mgit ``` ### 从源码安装 ```bash git clone https://github.com/liliangshan/mcp-server-mgit.git cd mcp-server-mgit npm install ``` ## 配置 设置环境变量: ```bash # 必需:仓库名称(使用 'mgit list' 查看可用的仓库名称) export REPO_NAME="my-repo" # 可选:MGit 命令(默认:mgit) export MGIT_CMD="mgit" # 可选:语言设置(默认:en) # 支持的值:en(英语)、zh(中文)、zh-CN(简体中文)、zh-TW(繁体中文) export LANGUAGE="zh-CN" # 可选:项目标识 export PROJECT_NAME="MyProject" ``` ## 使用方法 ### 1. 直接运行(全局安装) ```bash mcp-server-mgit ``` ### 2. 使用 npx(推荐) ```bash npx @liangshanli/mcp-server-mgit ``` ### 3. 直接启动(源码安装) ```bash npm start ``` ### 4. 托管启动(生产环境推荐) ```bash npm run start-managed ``` 托管启动提供: - 自动重启(最多 10 次) - 错误恢复 - 进程管理 - 日志记录 ### 5. 开发模式 ```bash npm run dev ``` ## 编辑器集成 ### Cursor 编辑器配置 1. 在项目根目录创建 `.cursor/mcp.json` 文件: ```json { "mcpServers": { "mgit": { "command": "npx", "args": ["@liangshanli/mcp-server-mgit"], "env": { "REPO_NAME": "my-repo", "MGIT_CMD": "mgit", "LANGUAGE": "zh-CN", "PROJECT_NAME": "MyProject" } } } } ``` ### VS Code 配置 1. 为 VS Code 安装 MCP 扩展 2. 创建 `.vscode/settings.json` 文件: ```json { "mcp.servers": { "mgit": { "command": "npx", "args": ["@liangshanli/mcp-server-mgit"], "env": { "REPO_NAME": "my-repo", "MGIT_CMD": "mgit", "LANGUAGE": "zh-CN", "PROJECT_NAME": "MyProject" } } } } ``` ### 多实例 MGit 服务器支持 您可以配置多个具有不同 `REPO_NAME` 和 `PROJECT_NAME` 的 MGit 服务器实例,以隔离工具和配置。每个实例必须具有唯一的 `REPO_NAME`(必需)。这在您需要推送到不同仓库或管理不同项目组时非常有用。使用 `mgit list`(或 `${MGIT_CMD} list`)查看可用的仓库名称。 **示例:Cursor 编辑器配置** 创建 `.cursor/mcp.json` 文件: ```json { "mcpServers": { "mgit-local": { "disabled": false, "timeout": 60, "command": "npx", "args": ["@liangshanli/mcp-server-mgit"], "env": { "REPO_NAME": "local-repo", "MGIT_CMD": "mgit", "LANGUAGE": "zh-CN", "PROJECT_NAME": "local-mgit" } }, "mgit-custom": { "disabled": false, "timeout": 60, "command": "npx", "args": ["@liangshanli/mcp-server-mgit"], "env": { "REPO_NAME": "custom-repo", "MGIT_CMD": "/path/to/custom-mgit", "LANGUAGE": "zh-CN", "PROJECT_NAME": "custom-mgit" } } } } ``` **多实例的优势:** - **工具隔离**:每个实例都有自己的工具名称(例如:`local-repo_mgit_push`、`custom-repo_mgit_push`) - **配置隔离**:日志存储在单独的目录中(例如:`./.setting.local-repo/`、`./.setting.custom-repo/`) - **不同命令**:为每个实例配置不同的 mgit 命令 - **项目标识**:每个实例可以有自己的项目名称以便更好地识别 **注意**:使用多实例时,工具名称会以 `REPO_NAME` 作为前缀。例如: - `local-repo_mgit_push` - 为 local-repo 使用本地 mgit 命令 - `custom-repo_mgit_push` - 为 custom-repo 使用自定义 mgit 命令 ### 作为 MCP 服务器 服务器启动后通过 stdin/stdout 与 MCP 客户端通信: ```json {"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18"}} ``` ### 可用工具 1. **mgit_push**:为通过 REPO_NAME 环境变量配置的仓库执行 mgit push 命令 ```json { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "mgit_push", "arguments": { "message": "更新项目文件" } } } ``` 2. **get_operation_logs**:获取操作日志 ```json { "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "get_operation_logs", "arguments": { "limit": 50, "offset": 0 } } } ``` ## 日志记录 ### 常规日志 日志文件位置:`./.setting/mcp-mgit.log`(如果设置了 REPO_NAME,则为 `./.setting.<REPO_NAME>/mcp-mgit.log`) 记录内容: - 所有请求和响应 - MGit 操作记录 - 错误消息 - 服务器状态更改 ## 错误处理 - 单个请求错误不会影响整个服务器 - 进程异常会自动重启(托管模式) - 日志中提供详细的错误消息 ## 环境变量 | 变量 | 默认值 | 说明 | |----------|---------|-------------| | REPO_NAME | | **必需** 用于推送操作的仓库名称。使用 `mgit list`(或 `${MGIT_CMD} list`)查看可用的仓库名称。示例:`export REPO_NAME="my-repo"` | | MGIT_CMD | mgit | 可选的要执行的 mgit 命令(可以是完整路径) | | LANGUAGE | en | 可选的提交消息语言设置。支持的值:`en`(英语)、`zh` 或 `zh-CN`(简体中文)、`zh-TW`(繁体中文)。工具会提示用户以配置的语言提供提交消息。 | | PROJECT_NAME | | 可选的工具描述项目标识 | | MCP_LOG_DIR | ./.setting(如果设置了 REPO_NAME,则为 ./.setting.<REPO_NAME>) | 日志目录 | | MCP_LOG_FILE | mcp-mgit.log | 日志文件名 | ## 开发 ### 项目结构 ``` mcp-server-mgit/ ├── src/ │ └── server-final.js # 主服务器文件 ├── bin/ │ └── cli.js # CLI 入口点 ├── start-server.js # 托管启动脚本 ├── package.json └── README.md ``` ### 测试 ```bash npm test ``` ## 快速开始 ### 1. 安装包 ```bash npm install -g @liangshanli/mcp-server-mgit ``` ### 2. 配置环境变量 ```bash # 必需:仓库名称 export REPO_NAME="my-repo" # 可选:MGit 命令(默认:mgit) export MGIT_CMD="mgit" # 可选:语言设置(默认:en) export LANGUAGE="zh-CN" # 可选:项目标识 export PROJECT_NAME="MyProject" ``` ### 3. 运行服务器 ```bash mcp-server-mgit ``` ## 使用示例 ### 使用 mgit_push 工具 `mgit_push` 工具执行命令:`${MGIT_CMD} push ${REPO_NAME} "<message>"` **注意:** 仓库名称通过 `REPO_NAME` 环境变量配置(必需)。使用 `mgit list`(或 `${MGIT_CMD} list`)查看可用的仓库名称。 **参数:** - `message`(必需):推送操作的提交消息 **示例:** ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "mgit_push", "arguments": { "message": "更新文档" } } } ``` 如果 `REPO_NAME="my-project"` 且 `MGIT_CMD="mgit"`,这将执行:`mgit push my-project "更新文档"` ## 许可证 MIT

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/liliangshan/mcp-server-mgit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server