🚀 Dev-Kit MCP Server
Dev-Kit MCP Server 是一個面向代理開發工具的模型上下文協議(MCP)服務器,可在根項目目錄中提供有作用域的授權操作。該軟件包支持安全地執行各種操作,如運行 makefile 命令、移動和刪除文件等,未來還計劃加入更多代碼編輯工具。它是 VS-Code Copilot 等 AI 輔助開發工具的理想 MCP 服務器。

🚀 快速開始
安裝
pip install dev-kit-mcp-server
運行服務器
dev-kit-mcp-server --root-dir=workdir
dev-kit-mcp-server --root-dir=workdir --commands-toml=custom_commands.toml
uv run python -m dev_kit_mcp_server.mcp_server --root-dir=workdir
python -m dev_kit_mcp_server.mcp_server --root-dir=workdir
--root-dir 參數指定了文件操作的目錄。出於安全考慮,該參數將文件操作限制在指定目錄內。
--commands-toml 參數允許你指定一個自定義的 TOML 文件來定義預定義命令,而不是使用默認的 pyproject.toml 文件。當你需要為不同目的定義一組獨立的命令時,這個參數非常有用。
可用工具
服務器提供以下工具:
文件操作
- create_dir:在授權的根目錄內創建目錄
- edit_file:通過用新文本替換指定起始行和結束行之間的內容來編輯文件
- move_dir:在授權的根目錄內移動文件和目錄
- remove_file:在授權的根目錄內刪除文件
- rename_file:在授權的根目錄內重命名文件和目錄
Git 操作
- git_status:獲取 Git 倉庫的狀態(如更改的文件、未跟蹤的文件等)
- git_add:將文件添加到 Git 索引(暫存區)
- git_commit:將更改提交到 Git 倉庫
- git_push:將更改推送到遠程 Git 倉庫
- git_pull:從遠程 Git 倉庫拉取更改
- git_checkout:在 Git 倉庫中檢出或創建分支
- git_diff:顯示提交之間、提交與工作樹之間的差異等
Makefile 操作
- exec_make_target:在項目內安全地運行 makefile 命令
預定義命令
- predefined_commands:執行 TOML 文件中定義的預定義命令(默認:
pyproject.toml 文件中 [tool.dkmcp.commands] 部分)
預定義命令的 TOML 文件格式如下:
[tool.dkmcp.commands]
test = "uv run pytest"
lint = "ruff check"
check = "uvx pre-commit run --all-files"
doctest = "make doctest"
每個命令都定義為一個鍵值對,其中鍵是命令名稱,值是要執行的命令。例如,當你調用預定義命令 "test" 時,它將在根目錄中執行 "uv run pytest"。
以下是在自定義 TOML 文件中定義命令的簡單示例:
[tool.dkmcp.commands]
hello = "echo Hello, World!"
date = "date"
test = "pytest"
lint = "ruff check ."
build = "python setup.py build"
與 MCP 客戶端的使用示例
from fastmcp import Client
async def example():
async with Client() as client:
tools = await client.list_tools()
result = await client.call_tool("create_dir", {"path": "new_directory"})
result = await client.call_tool("move_dir", {"path1": "source.txt", "path2": "destination.txt"})
result = await client.call_tool("remove_file", {"path": "file_to_remove.txt"})
result = await client.call_tool("rename_file", {"path": "old_name.txt", "new_name": "new_name.txt"})
result = await client.call_tool("edit_file", {
"path": "file_to_edit.txt",
"start_line": 2,
"end_line": 4,
"text": "This text will replace lines 2-4"
})
result = await client.call_tool("git_status")
result = await client.call_tool("git_add", {"paths": ["file1.txt", "file2.txt"]})
result = await client.call_tool("git_commit", {"message": "Add new files"})
result = await client.call_tool("git_pull", {"remote": "origin", "branch": "main"})
result = await client.call_tool("git_push")
result = await client.call_tool("git_checkout", {"branch": "feature-branch", "create": True})
result = await client.call_tool("exec_make_target", {"commands": ["test"]})
result = await client.call_tool("predefined_commands", {"command": "test"})
result = await client.call_tool("predefined_commands", {"command": "test", "param": "specific_test"})
✨ 主要特性
- 🔒 安全操作:在有作用域的授權根目錄內執行操作
- 🛠️ Makefile 命令執行:在項目內安全地運行 makefile 命令
- 📁 文件操作:在授權目錄內移動、創建、重命名和刪除文件
- 🔄 Git 操作:執行如狀態檢查、添加、提交、推送、拉取和檢出等 Git 操作
- 🔌 MCP 集成:將任何代碼庫轉換為符合 MCP 的系統
- 🤖 AI 輔助開發:與 VS-Code Copilot 等 AI 工具完美集成
- 🔄 可擴展框架:輕鬆添加新的代碼編輯和其他操作工具
- 🚀 高性能:基於 FastMCP 構建,性能卓越
📦 安裝指南
pip install dev-kit-mcp-server
💻 使用示例
基礎用法
from fastmcp import Client
async def example():
async with Client() as client:
tools = await client.list_tools()
result = await client.call_tool("create_dir", {"path": "new_directory"})
result = await client.call_tool("move_dir", {"path1": "source.txt", "path2": "destination.txt"})
result = await client.call_tool("remove_file", {"path": "file_to_remove.txt"})
result = await client.call_tool("rename_file", {"path": "old_name.txt", "new_name": "new_name.txt"})
result = await client.call_tool("edit_file", {
"path": "file_to_edit.txt",
"start_line": 2,
"end_line": 4,
"text": "This text will replace lines 2-4"
})
result = await client.call_tool("git_status")
result = await client.call_tool("git_add", {"paths": ["file1.txt", "file2.txt"]})
result = await client.call_tool("git_commit", {"message": "Add new files"})
result = await client.call_tool("git_pull", {"remote": "origin", "branch": "main"})
result = await client.call_tool("git_push")
result = await client.call_tool("git_checkout", {"branch": "feature-branch", "create": True})
result = await client.call_tool("exec_make_target", {"commands": ["test"]})
result = await client.call_tool("predefined_commands", {"command": "test"})
result = await client.call_tool("predefined_commands", {"command": "test", "param": "specific_test"})
🔧 技術細節
開發
環境搭建
git clone https://github.com/DanielAvdar/dev-kit-mcp-server.git
cd dev-kit-mcp-server
pip install -e ".[dev]"
pytest
貢獻代碼
歡迎貢獻代碼!請隨時提交拉取請求。
📄 許可證
本項目採用 MIT 許可證 - 詳情請參閱 LICENSE 文件。