NZenitram
服务介绍
GitHub MCP 工具
一个用于通过 Claude 桌面版与 GitHub API 交互的多克劳德程序 (MCP)。
功能
- 搜索 GitHub 仓库和问题
- 创建、更新和管理 GitHub 问题和拉取请求
- 管理仓库设置和配置
- 处理仓库工作流和操作
- 搜索用户和组织
- 管理仓库协作者和团队
安装
-
克隆此仓库:
bash
git clone https://github.com/yourusername/github-mcp.git
cd github-mcp -
创建并激活虚拟环境:
bash在 macOS/Linux 上
python -m venv venv
source venv/bin/activate在 Windows 上
python -m venv venv
.venvScriptsactivate -
安装依赖项:
bash
pip install -r requirements.txt -
在项目根目录下创建一个
.env文件:
bash
touch .env -
将您的 GitHub 凭证添加到
.env文件中:GITHUB_TOKEN=your_personal_access_token_here
GITHUB_USERNAME=your_github_username -
测试安装:
bash运行所有测试
python -m pytest
运行特定测试文件
python -m pytest tests/test_search_repos.py
-
启动 MCP 服务器:
bash
python run.py
环境设置
GitHub 个人访问令牌
您需要一个细粒度的个人访问令牌来验证 GitHub:
- 登录您的 GitHub 账户
- 前往 设置 > 开发者设置 > 个人访问令牌 > 细粒度令牌
- 点击“生成新令牌”
- 配置令牌:
- 令牌名称: "Claude Desktop Integration"
- 描述: "Claude Desktop GitHub 集成令牌"
- 过期时间: 选择合适的过期日期
- 仓库访问权限: 选择“所有仓库”或特定仓库
- 权限:
- 仓库权限:
- 操作:读写
- 内容:读写
- 问题:读写
- 拉取请求:读写
- 仓库钩子:读写
- 仓库设置:读写
- 组织权限(如果处理组织仓库):
- 成员:只读
- 团队:只读
- 仓库权限:
- 点击“生成令牌”并安全保存生成的令牌
工具
搜索仓库
使用各种条件搜索 GitHub 仓库。
参数:
- query: 搜索查询字符串
- sort: 排序字段(stars, forks, updated 等)
- order: 排序顺序(asc 或 desc)
- max_results: 返回的最大结果数(默认:10)
创建问题
在指定的仓库中创建一个新的 GitHub 问题。
参数:
- owner: 仓库所有者
- repo: 仓库名称
- title: 问题标题
- body: 问题描述
- labels: 应用的标签列表
- assignees: 分配给用户的用户名列表
创建拉取请求
创建一个新的拉取请求。
参数:
- owner: 仓库所有者
- repo: 仓库名称
- title: PR 标题
- body: PR 描述
- head: 源分支
- base: 目标分支
- draft: 是否作为草稿 PR 创建
管理仓库设置
更新仓库设置和配置。
参数:
- owner: 仓库所有者
- repo: 仓库名称
- settings: 要更新的设置字典
搜索问题
跨仓库搜索问题。
参数:
- query: 搜索查询字符串
- state: 问题状态(open, closed, all)
- sort: 排序字段
- order: 排序顺序
- max_results: 最大结果数
管理工作流
管理 GitHub Actions 工作流。
参数:
- owner: 仓库所有者
- repo: 仓库名称
- workflow_file: 工作流文件路径
- action: 执行的操作(enable, disable, trigger)
管理协作者
管理仓库协作者。
参数:
- owner: 仓库所有者
- repo: 仓库名称
- username: 协作者用户名
- permission: 权限级别(pull, push, admin, maintain, triage)
示例用法
python
搜索仓库
search_repos(query="python web framework", sort="stars", max_results=5)
创建新问题
create_issue(
owner="username",
repo="repository",
title="Bug: Login not working",
body="Users cannot log in using the login button",
labels=["bug", "high-priority"]
)
创建拉取请求
create_pull_request(
owner="username",
repo="repository",
title="Feature: Add user authentication",
body="Implements JWT-based authentication",
head="feature/auth",
base="main"
)
搜索问题
search_issues(query="is:open is:issue author:username", max_results=10)
管理仓库设置
manage_repo_settings(
owner="username",
repo="repository",
settings={
"has_issues": True,
"has_projects": True,
"has_wiki": True
}
)## 开发
运行测试
bash
运行所有测试
python -m pytest
带覆盖率运行
python -m pytest --cov=src tests/
运行特定测试文件
python -m pytest tests/test_search_repos.py
添加新工具
- 在
src/tools/目录下创建一个新文件 - 实现你的工具函数
- 在
src/main.py中注册该工具 - 在
tests/目录下添加测试 - 更新 README.md 中的文档
贡献代码
- Fork 仓库
- 创建一个特性分支
- 进行修改
- 运行测试
- 提交 Pull Request
许可证
MIT 许可证