mcpField
E
Easy MCP GitHub Tools Application

Easy MCP GitHub Tools Application

本地服务
github.com/ground-creative版本控制081 周前更新

关于 Easy MCP GitHub Tools Application

Easy MCP GitHub Tools Application 提供用于管理 GitHub 仓库、议题、文件、提交、拉取请求和发布版本的 MCP 工具。它面向 easy-mcp-python 用户,并通过 GitHub OAuth 进行身份验证。

主要功能

  1. 01创建和管理分支
  2. 02跟踪和编辑议题及评论
  3. 03读取和修改仓库文件
  4. 04查看提交记录和文件差异
  5. 05创建、查看和合并拉取请求
  6. 06搜索 GitHub 并管理发布版本

适用场景

  1. 01管理仓库分支和文件
  2. 02跟踪议题及其评论
  3. 03检查提交历史和文件更改
  4. 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 应用。

身份验证步骤:

  1. 前往 auth/login 并进行身份验证

  2. 向服务器发起请求时,在请求标头中使用参数 X-ACCESS-TOKEN。

创建 GitHub 应用的说明

要使用此应用,必须先在 GitHub 上创建 OAuth 应用。请按以下步骤操作:

  1. 前往 GitHub 账户设置。
  2. 进入 Developer settings > OAuth Apps。
  3. 点击 New OAuth App。
  4. 填写必填字段:
    • Application Name:为应用选择一个名称。
    • Homepage URL:输入应用的主 URL(例如:https://mcp.yourdomain.com)。
    • Authorization callback URL:将其设置为 http://{Your Host}:{Your Port}/auth/callback。
  5. 创建应用后,你将获得 Client ID 和 Client Secret。请妥善保管这些凭据,因为你需要将其添加到 client_credentials.json 文件中。

安装

  1. 从 easy mcp 安装的根目录克隆仓库:
git clone https://github.com/ground-creative/easy-mcp-github-tools-python.git app
  1. 安装依赖项:
pip install -r app/requirements.txt
  1. 生成加密密钥:
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
  1. 将参数添加到 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
  1. 在 storage 文件夹中创建 client_credentials.json 文件,并填入 GitHub OAuth 凭据:
# Follow instructions of section "Create GitHub Application instructions" to create credentials

{
    "client_id": "XXXXX",
    "client_secret": "XXXXXXX"
}
  1. 运行服务:
# 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 页面 GitHub OAuth 页面

用户已验证页面 用户已验证页面

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

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