🚀 mcp-server-git:一個用於Git的MCP服務器
mcp-server-git是一個用於與Git倉庫進行交互和自動化操作的Model Context Protocol(MCP)服務器。它藉助大語言模型,提供了讀取、搜索和操作Git倉庫的工具。
請注意,mcp-server-git目前處於早期開發階段。隨著服務器的持續開發和改進,其功能和可用工具可能會發生變化和擴展。
✨ 主要特性
- 提供一系列用於操作Git倉庫的工具,涵蓋狀態查看、差異比較、提交記錄、分支管理等常見操作。
- 支持多種安裝方式,包括使用
uv和pip。
- 可通過環境變量進行配置,支持從不同位置的
.env文件加載配置。
- 能與Claude Desktop、VS Code、Zed等工具集成使用。
- 提供調試和開發相關的支持,方便開發者進行測試和改進。
📦 安裝指南
使用uv(推薦)
當使用 uv 時,無需進行特定安裝。我們將使用 uvx 直接運行 mcp-server-git。
使用PIP
你也可以通過pip安裝 mcp-server-git:
pip install mcp-server-git
安裝完成後,你可以使用以下命令將其作為腳本運行:
python -m mcp_server_git
💻 使用示例
工具列表及使用說明
1. git_status
- 功能:顯示工作樹的狀態
- 輸入:
- 返回:以文本輸出形式呈現的工作目錄當前狀態
2. git_diff_unstaged
- 功能:顯示工作目錄中尚未暫存的更改
- 輸入:
- 返回:未暫存更改的差異輸出
3. git_diff_staged
- 功能:顯示已暫存待提交的更改
- 輸入:
- 返回:已暫存更改的差異輸出
4. git_diff
- 功能:顯示分支或提交之間的差異
- 輸入:
repo_path (字符串):Git倉庫的路徑
target (字符串):用於比較的目標分支或提交
- 返回:當前狀態與目標之間的差異輸出
5. git_commit
- 功能:將更改記錄到倉庫
- 輸入:
repo_path (字符串):Git倉庫的路徑
message (字符串):提交信息
- 返回:包含新提交哈希的確認信息
6. git_add
- 功能:將文件內容添加到暫存區
- 輸入:
repo_path (字符串):Git倉庫的路徑
files (字符串數組):要暫存的文件路徑數組
- 返回:已暫存文件的確認信息
7. git_reset
- 功能:取消所有已暫存的更改
- 輸入:
- 返回:重置操作的確認信息
8. git_log
- 功能:顯示提交日誌
- 輸入:
repo_path (字符串):Git倉庫的路徑
max_count (數字,可選):要顯示的最大提交數(默認值:10)
- 返回:包含哈希、作者、日期和信息的提交條目數組
9. git_create_branch
- 功能:創建一個新分支
- 輸入:
repo_path (字符串):Git倉庫的路徑
branch_name (字符串):新分支的名稱
start_point (字符串,可選):新分支的起始點
- 返回:分支創建的確認信息
10. git_checkout
- 功能:切換分支
- 輸入:
repo_path (字符串):Git倉庫的路徑
branch_name (字符串):要切換到的分支名稱
- 返回:分支切換的確認信息
11. git_show
- 功能:顯示提交的內容
- 輸入:
repo_path (字符串):Git倉庫的路徑
revision (字符串):要顯示的版本(提交哈希、分支名稱、標籤)
- 返回:指定提交的內容
12. git_init
- 功能:初始化一個Git倉庫
- 輸入:
repo_path (字符串):要初始化Git倉庫的目錄路徑
- 返回:倉庫初始化的確認信息
📚 詳細文檔
配置
環境變量
服務器支持從 .env 文件加載環境變量,優先級順序如下:
- 項目特定的.env文件 - 當前工作目錄中的
.env 文件
- 倉庫特定的.env文件 - 倉庫目錄中的
.env 文件(使用 --repository 參數時)
- ClaudeCode工作目錄的.env文件 - ClaudeCode工作區根目錄中的
.env 文件(自動檢測)
- 系統環境變量 - 標準環境變量
示例.env文件
在你的項目目錄或ClaudeCode工作區中創建一個 .env 文件:
GITHUB_TOKEN=your_github_token_here
注意:服務器啟動時會自動加載 .env 文件。服務器會從當前工作目錄和倉庫路徑(如果通過 --repository 參數提供)向上遍歷,智能檢測ClaudeCode工作區目錄。如果未找到 .env 文件,服務器將使用系統環境變量。
對於ClaudeCode用戶:如果你的 .env 文件位於ClaudeCode工作區根目錄(例如 /home/memento/ClaudeCode/.env),從該工作區內的任何子目錄運行MCP服務器時,它將自動檢測並加載該文件。
與Claude Desktop集成使用
將以下內容添加到你的 claude_desktop_config.json 中:
使用uvx
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
}
使用docker
- 注意:將
/Users/username 替換為你希望該工具可訪問的路徑
"mcpServers": {
"git": {
"command": "docker",
"args": ["run", "--rm", "-i", "--mount", "type=bind,src=/Users/username,dst=/Users/username", "mcp/git"]
}
}
使用pip安裝
"mcpServers": {
"git": {
"command": "python",
"args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"]
}
}
與VS Code集成使用
快速安裝
使用以下一鍵安裝按鈕之一:


手動安裝
將以下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 集成使用
將以下內容添加到你的Zed settings.json 中:
使用uvx
"context_servers": [
{
"mcp-server-git": {
"command": {
"path": "uvx",
"args": ["mcp-server-git"]
}
}
}
],
使用pip安裝
"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 將顯示服務器的日誌,可能有助於你調試任何問題。
開發
如果你正在進行本地開發,有兩種方法可以測試你的更改:
- 運行MCP檢查器來測試你的更改。有關運行說明,請參閱 調試。
- 使用Claude桌面應用程序進行測試。將以下內容添加到你的
claude_desktop_config.json 中:
Docker
{
"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 文件。