关于 Easy MCP GitHub Tools Application
Easy MCP GitHub Tools Application 提供用于管理 GitHub 仓库、议题、文件、提交、拉取请求和发布版本的 MCP 工具。它面向 easy-mcp-python 用户,并通过 GitHub OAuth 进行身份验证。
主要功能
- 01创建和管理分支
- 02跟踪和编辑议题及评论
- 03读取和修改仓库文件
- 04查看提交记录和文件差异
- 05创建、查看和合并拉取请求
- 06搜索 GitHub 并管理发布版本
适用场景
- 01管理仓库分支和文件
- 02跟踪议题及其评论
- 03检查提交历史和文件更改
- 04创建或合并拉取请求
MCP 相关
通过 easy-mcp-python 将 GitHub 操作作为工具提供。用户使用 GitHub OAuth 身份验证,并在请求标头中发送访问令牌。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Easy MCP GitHub 工具应用
这是一组可与 easy mcp server 配合使用的 GitHub 工具。
https://github.com/ground-creative/easy-mcp-python
主要功能
- 分支管理:轻松在 GitHub 仓库中创建和删除分支。
- 问题跟踪:创建、更新和删除问题,以及管理问题评论。
- 提交历史:获取仓库中任意分支的详细提交信息和提交历史。
- 文件管理:在 GitHub 仓库中创建、更新和删除文件,包括获取文件内容和差异。
- 拉取请求:创建和管理拉取请求,包括将其合并到目标分支。
- 全局搜索:在 GitHub 中全局搜索仓库、问题和代码。
- 发布管理:获取和管理 GitHub 仓库中的发布版本。
- OAuth 身份验证:使用 GitHub 的 OAuth 服务安全地验证用户身份。
身份验证
此应用使用 GitHub OAuth 服务验证用户身份。
要使用此应用,必须在 GitHub 上创建 OAuth 应用。
身份验证步骤:
-
前往 auth/login 并进行身份验证
-
向服务器发起请求时,在请求标头中使用参数 X-ACCESS-TOKEN。
创建 GitHub 应用的说明
要使用此应用,必须先在 GitHub 上创建 OAuth 应用。请按以下步骤操作:
- 前往 GitHub 账户设置。
- 进入 Developer settings > OAuth Apps。
- 点击 New OAuth App。
- 填写必填字段:
- Application Name:为应用选择一个名称。
- Homepage URL:输入应用的主 URL(例如:
https://mcp.yourdomain.com)。 - Authorization callback URL:将其设置为
http://{Your Host}:{Your Port}/auth/callback。
- 创建应用后,你将获得 Client ID 和 Client Secret。请妥善保管这些凭据,因为你需要将其添加到
client_credentials.json文件中。
安装
- 从 easy mcp 安装的根目录克隆仓库:
git clone https://github.com/ground-creative/easy-mcp-github-tools-python.git app
- 安装依赖项:
pip install -r app/requirements.txt
- 生成加密密钥:
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
- 将参数添加到 env 文件:
APP_HOST=Application Host ex: `https://mcp.yourdomain.com`
DB_PATH=storage/sqlite_credentials.db
CYPHER=Your Encryption Key Here
# Optional
SITE_URL=Main Application Site URL
SITE_NAME=MAin Application Site Name
- 在 storage 文件夹中创建
client_credentials.json文件,并填入 GitHub OAuth 凭据:
# Follow instructions of section "Create GitHub Application instructions" to create credentials
{
"client_id": "XXXXX",
"client_secret": "XXXXXXX"
}
- 运行服务:
# Run via fastapi wrapper
python3 run.py -s fastapi
可用的 MCP 工具
此 MCP 服务提供以下工具:
| 工具名称 | 描述 | 所需参数 |
|---|---|---|
| 创建分支 | 基于现有分支,在指定的 GitHub 仓库中创建新分支。 | new_branch (str), base_branch (Optional[str]), repo (str) |
| 删除分支 | 删除 GitHub 仓库中的指定分支。 | branch (str), repo (str), confirmation_token (Optional[str]) |
| 删除议题评论 | 删除 GitHub 仓库中某个议题的指定评论。 | comment_id (int), repo (str), confirmation_token (Optional[str]) |
| 获取提交详情 | 获取 GitHub 仓库中特定提交的详细信息。 | sha (str), repo (str) |
| 获取提交记录 | 获取 GitHub 仓库的提交历史。 | branch (Optional[str]), repo (str), path (Optional[str]), per_page (Optional[int]), since (Optional[str]), until (Optional[str]) |
| 创建文件 | 在指定分支上向指定的 GitHub 仓库添加新文件。 | file_path (str), content (str), repo (str), commit_message (Optional[str]), branch (Optional[str]) |
| 删除文件 | 删除指定分支上 GitHub 仓库中的指定文件。 | file_paths (List[str]), repo (str), branch (Optional[str]), confirmation_token (Optional[str]) |
| 获取文件差异 | 获取 GitHub 仓库中特定提交的文件差异。 | sha (str), files (List[str]), repo (str) |
| 获取提交前的文件 | 获取给定提交 SHA 之前多个文件的内容。 | sha (str), files (List[str]), repo (str) |
| 获取文件内容 | 获取 GitHub 仓库中多个文件的内容。 | file_paths (List[str]), repo (str), branch (Optional[str]) |
| 获取文件详情 | 获取 GitHub 仓库中多个文件的详情,不包括内容。 | files (List[str]), repo (str), branch (Optional[str]) |
| 列出文件 | 使用 git tree API 获取 GitHub 仓库中的文件路径列表。 | folders (Optional[List[str]]), repo (str), branch (Optional[str]) |
| 搜索文件 | 在 GitHub 仓库的文件中搜索指定字符串。 | search_string (str), repo (str), folders (Optional[List[str]]), sort (Optional[str]), order (Optional[str]), page (Optional[int]), per_page (Optional[int]) |
| 全局搜索 | 根据指定的搜索类型和查询字符串在 GitHub 上执行全局搜索。 | search_type (str), query (str), page (int), per_page (int) |
| 更新文件 | 在指定分支上更新指定 GitHub 仓库中的现有文件。 | file_path (str), new_content (str), repo (str), commit_message (Optional[str]), branch (Optional[str]) |
| 创建议题评论 | 向 GitHub 仓库中的指定议题添加评论。 | issue_number (int), comment (str), repo (str) |
| 创建议题 | 在 GitHub 仓库中创建新议题。 | title (str), body (Optional[str]), repo (str), labels (Optional[list]) |
| 获取议题评论 | 获取 GitHub 仓库中特定议题的所有消息(详情和评论)。 | issue_number (int), repo (str), page (Optional[int]), per_page (Optional[int]), sort (Optional[str]), order (Optional[str]) |
| 获取议题详情 | 获取 GitHub 仓库中特定议题的详情。 | issue_number (int), repo (str) |
| 获取议题 | 获取指定 GitHub 仓库中的议题,并支持可选筛选条件。 | repo (str), state (Optional[str]), labels (Optional[str]), assignee (Optional[str]), milestone (Optional[str]), sort (Optional[str]), order (Optional[str]), per_page (Optional[int]), page (Optional[int]) |
| 搜索议题 | 搜索指定 GitHub 仓库中的议题,并支持可选筛选条件。 | repo (str), state (Optional[str]), labels (Optional[str]), assignee (Optional[str]), milestone (Optional[str]), sort (Optional[str]), order (Optional[str]), per_page (Optional[int]), page (Optional[int]), search_comments (Optional[bool]), query (Optional[str]) |
| 更新议题评论 | 更新 GitHub 仓库中指定议题的现有评论。 | comment_id (int), new_comment (str), repo (str) |
| 更新议题 | 更新 GitHub 仓库中的现有议题。 | issue_number (int), title (Optional[str]), body (Optional[str]), state (Optional[str]), labels (Optional[list]), repo (str) |
| 创建拉取请求 | 在指定的 GitHub 仓库中创建拉取请求。 | target_branch (str), base_branch (Optional[str]), repo (str), title (Optional[str]), body (Optional[str]) |
| 获取拉取请求详情 | 获取 GitHub 仓库中特定拉取请求的详细信息。 | pull_number (int), repo (str) |
| 获取拉取请求 | 获取指定 GitHub 仓库中的拉取请求。 | repo (str), state (Optional[str]), sort (Optional[str]), order (Optional[str]), per_page (Optional[int]), page (Optional[int]) |
| 合并拉取请求 | 合并 GitHub 仓库中的特定拉取请求。 | pull_number (int), repo (str), commit_message (Optional[str]) |
| 创建仓库 | 在 GitHub 上创建新仓库。 | name (str), description (Optional[str]), private (Optional[bool]), auto_init (Optional[bool]) |
| 删除仓库 | 删除指定的 GitHub 仓库。 | repo (str), confirmation_token (Optional[str]) |
| 按名称查找仓库 | 搜索特定用户所有且名称包含给定查询字符串的仓库。 | query (str), username (str) |
| 获取发布版本 | 获取 GitHub 仓库中的发布版本。 | per_page (Optional[int]), page (Optional[int]), repo (str), sort (Optional[str]), order (Optional[str]) |
| 获取仓库列表 | 获取特定 GitHub 用户的所有仓库。 | username (str), type (Optional[str]), sort (Optional[str]), direction (Optional[str]), page (Optional[int]), per_page (Optional[int]) |
| 获取仓库详情 | 获取 GitHub 中单个仓库的详情。 | repo (str) |
| 获取标签或分支 | 列出 GitHub 仓库中的标签或分支。 | type (str), repo (str), per_page (Optional[int]), page (Optional[int]) |
服务信息页面
包含工具规范 URL 的服务信息页面是 .env 文件中配置的 {APP_HOST} 参数。
截图
服务信息页面:

GitHub 应用 OAuth 页面

用户已验证页面

评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。