使用说明
项目简介
本仓库实现了一个 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应用环境中。
安装步骤
-
环境准备:
- 确保已安装 Node.js 18 或更高版本。
- 拥有可以访问 GitHub Enterprise Server 实例的权限。
- 生成一个 Personal Access Token (PAT),并根据需要的功能赋予相应的权限。
-
设置环境变量:
- 打开终端,设置以下环境变量 (示例为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 不支持这些企业级权限。
- 打开终端,设置以下环境变量 (示例为Bash环境,请根据您的终端环境调整):
-
安装依赖:
- 克隆本仓库代码到本地。
- 在仓库根目录下,运行以下命令安装项目依赖:
npm install
-
构建项目:
- 运行以下命令构建项目:
npm run build
- 运行以下命令构建项目:
-
启动服务器:
-
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 }
信息
分类
开发者工具