使用说明

项目简介

GitHub MCP服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,它充当 LLM 客户端与 GitHub API 之间的桥梁。通过此服务器,LLM 能够以安全、结构化的方式访问和操作 GitHub 资源,例如代码仓库、议题 (Issues)、拉取请求 (Pull Requests) 等。该项目旨在简化 LLM 与 GitHub 的集成,使开发者能够构建更智能的 AI 驱动的开发工具。

主要功能点

  • 代码仓库管理: 列出、检索仓库信息,获取仓库详情。
  • 议题管理: 列出、检索议题,创建新议题,添加议题评论。
  • 拉取请求管理: 列出、检索拉取请求,添加拉取请求评论,合并拉取请求。
  • 分支管理: 列出仓库分支,创建新分支。
  • 提交管理: 获取提交详情,列出提交记录,按提交信息搜索。
  • 内容管理: 获取文件内容,列出目录内容,创建或更新文件,代码搜索。

安装步骤

  1. 环境准备: 确保已安装 Java 17 或更高版本,以及 Maven 3.6+。
  2. 下载代码: 从 GitHub 仓库 GitHubMCP 克隆代码到本地。
  3. 编译项目: 在项目根目录下,使用 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 的速率限制。
  • 请仔细阅读每个工具的描述和参数说明,以确保正确使用。

信息

分类

开发者工具