项目简介

GitHub Enterprise MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供访问 GitHub Enterprise (GHES) 数据的能力。通过该服务器,LLM 可以便捷地获取 GHES 中的仓库信息、议题、Pull Requests 等,从而更好地理解和处理与代码仓库相关的任务。

主要功能点

  • 资源访问: 提供对 GitHub Enterprise 仓库、议题 (Issues)、Pull Requests (PRs) 等资源的访问接口。
  • MCP 协议支持: 遵循 MCP 协议标准,易于与支持 MCP 协议的 LLM 客户端集成。
  • 可配置: 支持配置 GitHub Enterprise API URL 和访问令牌,以连接到您的 GHES 实例。
  • 多种传输协议: 支持 Stdio, SSE, WebSocket 等多种传输协议,满足不同应用场景的需求。

安装步骤

  1. 安装 Go: 确保您的开发环境中已安装 Go 语言。您可以从 https://go.dev/dl/ 下载并安装。
  2. 克隆仓库: 使用 Git 克隆 GitHub Enterprise MCP Server 仓库到本地:
    git clone https://github.com/ddukbg/github-enterprise-mcp.git
  3. 进入服务器目录: 切换到仓库的服务器代码目录:
    cd github-enterprise-mcp/cmd/server
  4. 构建服务器: 使用 Go build 命令编译生成可执行文件:
    go build -o ghemcp-server

服务器配置

MCP 客户端需要配置以下 JSON 对象以连接到 GitHub Enterprise MCP Server。请根据您的实际 GHES 环境修改以下参数:

{
  "serverName": "GitHub Enterprise MCP Server",
  "command": "./ghemcp-server",
  "args": [
    "--github-api-url", "YOUR_GHES_API_URL",  // 替换为您的 GitHub Enterprise API 地址,例如 "https://your-ghes-domain/api/v3"
    "--github-token", "YOUR_GHES_TOKEN",    // 替换为具有仓库访问权限的 GitHub Personal Access Token
    "--port", "8080",                       // (可选) 指定服务器监听端口,默认为 8080
    "--transport", "stdio"                  // (可选) 指定传输协议,默认为 stdio,还可选 sse 或 websocket
  ]
}

请注意:

  • 'YOUR_GHES_API_URL' 需要替换为您的 GitHub Enterprise 实例的 API 根地址。如果您不确定,通常是您的 GHES 域名加上 '/api/v3'。
  • 'YOUR_GHES_TOKEN' 需要替换为您在 GitHub Enterprise 中生成的 Personal Access Token。该 Token 必须具有访问您希望 LLM 应用访问的仓库的权限。

基本使用方法

  1. 启动服务器: 在服务器端,打开终端并执行以下命令启动 GitHub Enterprise MCP Server (假设您已在 'github-enterprise-mcp/cmd/server' 目录):

    ./ghemcp-server --github-api-url YOUR_GHES_API_URL --github-token YOUR_GHES_TOKEN

    请替换 'YOUR_GHES_API_URL' 和 'YOUR_GHES_TOKEN' 为您的实际值。

  2. 配置 MCP 客户端: 在您的 MCP 客户端(例如 Cursor),根据客户端的指引,配置上述提供的 JSON 对象,将客户端连接到正在运行的 GitHub Enterprise MCP Server。

  3. 使用 LLM 客户端: 连接成功后,您的 LLM 客户端即可通过 MCP 协议与 GitHub Enterprise MCP Server 交互,访问和利用 GitHub Enterprise 中的数据,例如查询仓库信息、获取议题列表等,以增强 LLM 在代码理解和生成方面的能力。

信息

分类

开发者工具