使用说明
项目简介
GitHub MCP服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,它充当 LLM 客户端与 GitHub API 之间的桥梁。通过此服务器,LLM 能够以安全、结构化的方式访问和操作 GitHub 资源,例如代码仓库、议题 (Issues)、拉取请求 (Pull Requests) 等。该项目旨在简化 LLM 与 GitHub 的集成,使开发者能够构建更智能的 AI 驱动的开发工具。
主要功能点
- 代码仓库管理: 列出、检索仓库信息,获取仓库详情。
- 议题管理: 列出、检索议题,创建新议题,添加议题评论。
- 拉取请求管理: 列出、检索拉取请求,添加拉取请求评论,合并拉取请求。
- 分支管理: 列出仓库分支,创建新分支。
- 提交管理: 获取提交详情,列出提交记录,按提交信息搜索。
- 内容管理: 获取文件内容,列出目录内容,创建或更新文件,代码搜索。
安装步骤
- 环境准备: 确保已安装 Java 17 或更高版本,以及 Maven 3.6+。
- 下载代码: 从 GitHub 仓库 GitHubMCP 克隆代码到本地。
- 编译项目: 在项目根目录下,使用 Maven 命令 'mvn clean package' 进行编译打包。编译成功后,将在 'target' 目录下生成 'GitHubMCP-1.0-SNAPSHOT.jar' 文件。
服务器配置
MCP 客户端需要配置服务器的启动命令和参数才能连接到 GitHub MCP 服务器。以下是配置示例,以 JSON 格式展示,您需要根据您的 MCP 客户端进行相应配置。请注意,以下是配置信息示例,不是代码,请勿直接复制到代码中使用。
{ "serverName": "github", // 自定义服务器名称,例如 "github" "transportType": "STDIO", // 通信方式,本项目使用 STDIO "command": "java", // 启动命令,通常为 java "args": [ // 启动参数 "-Dspring.ai.mcp.server.stdio=true", // 启用 STDIO 传输 "-Dspring.main.web-application-type=none", // 禁用 Web 应用 "-Dlogging.pattern.console=", // 可选:禁用控制台日志格式化 "-jar", // 运行 Jar 包 "/path/to/GitHubMCP/target/GitHubMCP-1.0-SNAPSHOT.jar" // **请替换为实际的jar文件路径**, 例如 "/Users/yourname/GitHubMCP/target/GitHubMCP-1.0-SNAPSHOT.jar" ], "env": { // 环境变量配置 "GITHUB_TOKEN": "your-github-token-here", // **请替换为您的 GitHub Personal Access Token**, 用于API鉴权 "GITHUB_HOST": "github.com", // GitHub 主机地址,默认为 github.com,如果是企业版 GitHub 请修改为您的企业 GitHub 地址 "GITHUB_REPOSITORY": "your-username/your-repository" // **可选**: 默认仓库,如果设置,部分操作可以省略仓库参数,**请替换为您的默认仓库,没有可以不填** } }
配置参数说明 (重要!)
- 'serverName': 为该服务器连接自定义一个名称,在客户端中用于标识不同的 MCP 服务器。
- 'transportType': 指定 MCP 客户端与服务器通信的传输协议,本项目使用 'STDIO'(标准输入输出流)。
- 'command': 启动服务器的命令,通常是 'java',前提是您的环境中 'java' 命令可用。
- 'args': 传递给 'java' 命令的参数,用于配置和启动 GitHub MCP 服务器。
- '-Dspring.ai.mcp.server.stdio=true': 必须参数,告诉 Spring AI MCP Server 启用 STDIO 传输方式。
- '-Dspring.main.web-application-type=none': 必须参数,禁用 Spring Boot 的 Web 应用功能,因为本项目作为 MCP 服务器通过 STDIO 通信,不需要 Web 服务。
- '-Dlogging.pattern.console=': 可选参数,用于禁用控制台日志的格式化输出,简化日志信息。
- '-jar /path/to/GitHubMCP/target/GitHubMCP-1.0-SNAPSHOT.jar': 必须参数,指定要运行的 Jar 文件路径,请务必替换为实际编译生成的 'GitHubMCP-1.0-SNAPSHOT.jar' 文件的绝对路径。
- 'env': 设置服务器运行所需的环境变量。
- 'GITHUB_TOKEN': 必须配置,您的 GitHub Personal Access Token,用于 GitHub API 的身份验证。请务必替换为您的有效 Token。 您需要在 GitHub 个人设置中生成 Personal Access Token,并赋予相应的仓库访问权限。
- 'GITHUB_HOST': 可选配置,GitHub 主机地址。默认为 'github.com'。如果使用 GitHub 企业版,请设置为您的企业 GitHub 地址,例如 'github.mycompany.com'。
- 'GITHUB_REPOSITORY': 可选配置,默认仓库。设置后,在调用某些工具时可以省略仓库名称参数,服务器会默认使用此仓库。格式为 'owner/repo',例如 'stephanj/GitHubMCP'。请根据需要替换为您自己的仓库,或者不填。
基本使用方法
配置完成后,在您的 MCP 客户端中连接到 GitHub MCP 服务器。连接成功后,您可以使用自然语言指令,通过 LLM 调用 GitHub 的各项功能。
示例指令:
- "列出我的 GitHub 仓库中所有打开的 issue"
- "获取仓库 'anthropic/claude-playground' 的详细信息"
- "在 '你的仓库名/你的项目名' 仓库中创建一个标题为 '修复bug',内容为 '详细描述bug和修复方案' 的 issue"
- "搜索代码仓库中包含 'spring boot' 关键词的代码"
LLM 会根据您的指令,调用 GitHub MCP 服务器提供的工具,与 GitHub API 交互,并将结果返回给您。
注意:
- 使用前请务必配置 'GITHUB_TOKEN' 环境变量,并确保 Token 拥有访问 GitHub API 的权限。
- 部分操作可能受到 GitHub API 的速率限制。
- 请仔细阅读每个工具的描述和参数说明,以确保正确使用。
信息
分类
开发者工具