使用说明

项目简介

本仓库实现了一个 MCP (Model Context Protocol) 服务器,专门用于连接 GitHub Enterprise Server。它允许LLM(大型语言模型)客户端通过标准化的MCP协议,便捷地访问GitHub Enterprise中的各种信息,例如代码仓库列表、仓库详情、文件内容、议题、拉取请求、GitHub Actions工作流以及企业许可证和统计信息等。

主要功能点

  • 代码仓库信息访问: 检索和查看GitHub Enterprise实例中的代码仓库列表和详细信息,包括仓库名称、描述、分支、文件内容等。
  • 议题和拉取请求管理: 支持列出、查看和管理代码仓库中的议题和拉取请求,包括创建、更新和合并拉取请求等操作。
  • GitHub Actions工作流管理: 可以列出、查看和触发GitHub Actions工作流,方便LLM应用与自动化流程集成。
  • 企业管理功能: 对于GitHub Enterprise Server环境,还提供访问企业许可证信息和系统统计数据的工具。
  • 灵活的部署方式: 支持通过标准IO (STDIO) 或 HTTP 协议与MCP客户端通信,方便集成到不同的LLM应用环境中。

安装步骤

  1. 环境准备:

    • 确保已安装 Node.js 18 或更高版本
    • 拥有可以访问 GitHub Enterprise Server 实例的权限。
    • 生成一个 Personal Access Token (PAT),并根据需要的功能赋予相应的权限。
  2. 设置环境变量:

    • 打开终端,设置以下环境变量 (示例为Bash环境,请根据您的终端环境调整):
      export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" # 您的GitHub Enterprise API URL,如果使用GitHub.com或GitHub Enterprise Cloud,则设置为 https://api.github.com
      export GITHUB_TOKEN="your_personal_access_token" # 您的GitHub Personal Access Token

      注意: 对于企业管理工具 ('get-license-info' 和 'get-enterprise-stats'),需要使用 Classic Personal Access Token,并赋予 'admin:enterprise' 权限。Fine-grained tokens 不支持这些企业级权限。

  3. 安装依赖:

    • 克隆本仓库代码到本地。
    • 在仓库根目录下,运行以下命令安装项目依赖:
      npm install
  4. 构建项目:

    • 运行以下命令构建项目:
      npm run build
  5. 启动服务器:

    • STDIO 模式 (推荐,直接与MCP客户端集成):

      npm start

      此模式下,服务器通过标准输入输出与MCP客户端进行通信,适用于Cursor等IDE集成。

    • HTTP 模式 (用于调试或HTTP客户端连接):

      node dist/index.js --transport http

      此模式下,服务器启动一个HTTP服务,默认监听3000端口。可以通过HTTP请求与服务器交互。

      HTTP 模式可选参数:

      • '--debug': 启用调试日志输出。
      • '--github-enterprise-url <URL>': 设置 GitHub Enterprise API URL,覆盖环境变量 'GITHUB_ENTERPRISE_URL'。
      • '--token <TOKEN>': 设置 GitHub Personal Access Token,覆盖环境变量 'GITHUB_TOKEN'。

服务器配置 (MCP客户端配置)

以下 JSON 配置信息用于 MCP 客户端连接本 MCP 服务器。请根据您的实际情况配置 'command' 和 'args' 字段。

{
  "serverName": "GitHub Enterprise MCP Server",
  "command": "npx",
  "args": [
    "@modelcontextprotocol/server-github-enterprise",
    "--github-enterprise-url", "https://github.your-company.com/api/v3",  // 您的 GitHub Enterprise API URL,请替换为实际地址,如果使用 GitHub.com 或 GitHub Enterprise Cloud,设置为 https://api.github.com
    "--token", "your_personal_access_token"  // 您的 GitHub Personal Access Token,请替换为实际 Token
    // "--transport", "http"  // 可选: 如果需要使用 HTTP 模式,取消注释此行
    // "--debug"             // 可选: 如果需要启用调试日志,取消注释此行
  ]
}

配置说明:

  • '"serverName"': MCP 服务器的名称,客户端显示用。
  • '"command"': 启动 MCP 服务器的命令,这里使用 'npx' 运行 npm 包。
  • '"args"': 传递给服务器启动命令的参数列表。
    • '"@modelcontextprotocol/server-github-enterprise"': 指定要运行的 npm 包,即本 MCP 服务器。
    • '"--github-enterprise-url"': 指定 GitHub Enterprise API 的 URL。请务必替换为您的实际 GitHub Enterprise API 地址。如果连接 GitHub.com 或 GitHub Enterprise Cloud,请设置为 'https://api.github.com'。
    • '"--token"': 指定用于 GitHub API 认证的 Personal Access Token。请务必替换为您自己的 PAT
    • '"--transport", "http"' (可选): 如果需要使用 HTTP 模式运行服务器,请取消注释此行。默认使用 STDIO 模式。
    • '"--debug"' (可选): 如果需要启用服务器的调试日志输出,请取消注释此行。

基本使用方法

本 MCP 服务器提供了一系列 工具 (Tools),用于访问和操作 GitHub Enterprise 的资源。LLM 客户端可以通过 JSON-RPC 协议调用这些工具,例如:

  • 'list-repositories': 获取代码仓库列表
  • 'get-repository': 获取代码仓库详情
  • 'get-content': 获取文件或目录内容
  • 'list-pull-requests': 列出拉取请求
  • 'create-pull-request': 创建拉取请求
  • 'merge-pull-request': 合并拉取请求
  • 'list-issues': 列出议题
  • 'create-issue': 创建议题
  • 'list-workflows': 列出 GitHub Actions 工作流
  • 'trigger-workflow': 触发 GitHub Actions 工作流
  • 'get-license-info': 获取 GitHub Enterprise 许可证信息 (企业版专用)
  • 'get-enterprise-stats': 获取 GitHub Enterprise 系统统计信息 (企业版专用)

具体工具的参数和使用方法,请参考 仓库 README 文档 中 "Available MCP Tools" 表格的详细说明。

示例 (通过MCP客户端调用 'list-repositories' 工具):

客户端向 MCP 服务器发送 JSON-RPC 请求,调用 'list-repositories' 工具,并传递 'owner' (用户名或组织名) 和 'isOrg' (是否为组织) 等参数。服务器处理请求后,返回包含仓库列表的 JSON-RPC 响应。

{
  "jsonrpc": "2.0",
  "method": "call",
  "params": {
    "tool_call": {
      "tool_name": "list-repositories",
      "parameters": {
        "owner": "your-org-or-username",
        "isOrg": false
      }
    }
  },
  "id": 1
}

信息

分类

开发者工具