使用说明
这是一个基于Model Context Protocol (MCP) 的服务器,它允许您的AI助手(如支持MCP的LLM客户端)通过标准化的接口与GitHub仓库进行交互和管理。
项目简介
- 将GitHub API功能封装成AI可调用的工具。
- 支持仓库、问题、拉取请求、分支、提交、用户、标签、里程碑等管理。
- 提供近90种工具,覆盖全面的GitHub工作流程。
- 无需Docker,基于Node.js运行,配置简单。
主要功能点
- 全面的仓库管理: 查看、搜索、获取仓库详情、浏览文件内容、管理协作者。
- 高级问题管理: 创建、编辑、列出问题,支持图片上传、标签、负责人、锁定/解锁、评论管理。
- 拉取请求管理: 列出PR,获取PR详情。
- 分支与提交: 列出分支、创建分支、查看提交历史、获取提交详情、比较提交。
- 用户与协作: 获取用户信息、列出仓库协作者。
- 标签与里程碑: 管理仓库的标签和里程碑。
- 文件内容操作: 创建、更新、上传、删除仓库文件。
- 安全与访问: 管理部署密钥、Webhook、Actions Secrets(部分功能待完善)。
- 搜索功能: 搜索仓库、问题、提交、代码、用户、话题。
- 组织管理: 列出组织仓库、成员、团队,获取组织信息。
安装步骤
-
安装 Node.js: 确保您的系统安装了 Node.js 18 或更高版本。您可以从 Node.js官网 下载安装。
-
获取 GitHub Personal Access Token (PAT):
- 前往 GitHub 网站。
- 进入 Settings → Developer settings → Personal access tokens → Tokens (classic) 或 Fine-grained tokens。
- 生成一个新令牌。为了使用本服务器的全部功能,建议授予 'repo' (Full control of private repositories) 权限。如果您只操作公开仓库,'public_repo' 权限可能已足够。其他有用权限包括 'user:read' (读取用户信息) 和 'read:org' (读取组织信息)。
- 重要: 妥善保管您的令牌,不要泄露。您需要在MCP客户端配置中提供此令牌。
-
配置 MCP 客户端启动服务器: 您的MCP客户端(例如 Claude Desktop, Roo Code 等)需要知道如何启动和连接到这个GitHub MCP服务器。这通常通过编辑客户端的配置文件来完成。您需要在配置文件中添加一个MCP服务器条目,指定服务器的启动命令和必要的环境变量(主要是您的GitHub令牌)。
以下是配置时需要提供的关键信息,请根据您的客户端配置格式进行调整(这部分信息通常是JSON结构,但此处仅为说明):
- 服务器名称 (Server Name): 给服务器起一个易于识别的名称,例如 'github-manager'。
- 启动命令 (Command): 指定用于启动服务器的可执行程序。
- 如果您使用 npx 方式运行 (无需本地克隆安装,推荐简单场景):命令是 'npx'。
- 如果您本地克隆安装后运行:命令是 'node'。
- 命令参数 (Args): 指定传递给启动命令的参数。
- 对于 npx 方式:参数是 '["-y", "github-repos-manager-mcp"]'。
- 对于本地安装方式:参数是 '["/您的服务器代码完整路径/github-repos-manager-mcp/server.cjs"]'。请务必将 '/您的服务器代码完整路径/' 替换为实际路径。
- 环境变量 (Env): 在这里设置MCP服务器需要的环境变量。
- 'GH_TOKEN' (必须): 将您的GitHub Personal Access Token 设置到这个环境变量中。请务必替换占位符。
- 'GH_DEFAULT_OWNER' 和 'GH_DEFAULT_REPO' (可选): 可以设置默认操作的仓库所有者和名称,以简化命令(例如 '"GH_DEFAULT_OWNER": "octocat", "GH_DEFAULT_REPO": "Hello-World"')。
- 'GH_ALLOWED_REPOS' (可选): 限制服务器只能访问特定仓库或所有者下的仓库(例如 '"GH_ALLOWED_REPOS": "owner1/repo1,owner2/repo2,owner3"')。
- 'GH_ALLOWED_TOOLS' / 'GH_DISABLED_TOOLS' (可选): 限制AI可以调用的工具列表。
例如 (概念说明,非实际配置文件格式,请参考您的客户端文档):
某个MCP客户端的配置结构可能包含一个服务器列表: mcpServers: { "一个您选择的服务器名称": { command: "这里是服务器启动命令 (例如: npx 或 node)", args: ["这里是传递给命令的参数 (例如: -y 或 /path/to/server.cjs)", "...其他参数"], env: { GH_TOKEN: "这里替换成您的实际GitHub Personal Access Token", GH_DEFAULT_OWNER: "您的默认用户名或组织名 (可选)", GH_DEFAULT_REPO: "您的默认仓库名 (可选)", // ... 其他可选环境变量 } } // ... 其他MCP服务器配置 }
基本使用方法
配置并启动MCP客户端后,当您向AI助手提出与GitHub相关的请求时,如果请求与本服务器提供的某个工具匹配,客户端会自动调用该工具。您可以像与AI聊天一样描述您想执行的GitHub操作。
示例对话:
- “列出我的前10个最近更新的GitHub仓库。”
- “在仓库 'octocat/Spoon-Knife' 里创建一个新的问题,标题是‘登录按钮失效’,内容是‘用户反馈在移动端无法点击登录按钮’,并加上‘bug’标签。”
- “列出 'microsoft/vscode' 仓库中所有未关闭(open)的拉取请求。”
- (如果设置了默认仓库)“列出当前仓库的所有分支。”
- “获取用户 'github_username' 的资料。”
服务器会执行相应的GitHub API操作,并将结果返回给您的AI助手,由AI助手以易于理解的方式呈现给您。
信息
分类
开发者工具