](https://mseep.ai/app/containerelic-github-enterprise-mcp)

GitHub企业MCP服务器
用于与GitHub Enterprise API集成的MCP(模型上下文协议)服务器。此服务器提供了一个MCP接口,可以在Cursor中从GitHub Enterprise轻松访问存储库信息、问题、PR等。
兼容性
该项目主要针对GitHub Enterprise Server环境设计,但也适用于:
- GitHub.com
- GitHub企业云
备注:一些特定于企业的功能(如许可证信息和企业统计数据)无法在GitHub.com或GitHub enterprise Cloud上使用。
主要特点
- 从GitHub Enterprise实例中检索存储库列表
- 获取详细的存储库信息
- 列出存储库分支
- 查看文件和目录内容
- 管理问题并提取请求
- 存储库管理(创建、更新、删除)
- GitHub操作工作流管理
- 用户管理(列出、创建、更新、删除、暂停/取消暂停用户)
- 访问企业统计数据
- 增强的错误处理和用户友好的响应格式
入门指南
先决条件
- Node.js 18或更高版本
- 访问GitHub Enterprise实例
- 个人访问令牌(PAT)
Docker安装和设置
选项1:使用Docker运行
- 构建Docker镜像:
docker build -t github-enterprise-mcp .- 使用环境变量运行Docker容器:
docker run -p 3000:3000 \
-e GITHUB_TOKEN="your_github_token" \
-e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \
-e DEBUG=true \
github-enterprise-mcp备注:Dockerfile配置为使用 --transport http 默认情况下。如果需要更改此设置,可以覆盖该命令:docker run -p 3000:3000 \
-e GITHUB_TOKEN="your_github_token" \
-e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \
-e DEBUG=true \
github-enterprise-mcp node dist/index.js --transport http --debug选项2:使用Docker Compose
- 创建一个
.env包含所需环境变量的项目根目录中的文件:
GITHUB_ENTERPRISE_URL=https://github.your-company.com/api/v3
GITHUB_TOKEN=your_github_token
DEBUG=true- 使用Docker Compose启动容器:
docker-compose up -d- 检查日志:
docker-compose logs -f- 停止容器:
docker-compose down安装和设置
地方发展(采用并行模式)
建议使用此方法进行自动重新编译和服务器重启的主动开发:
- 克隆存储库并安装所需的软件包:
git clone https://github.com/ddukbg/github-enterprise-mcp.git
cd github-enterprise-mcp
npm install- 运行开发服务器:
export GITHUB_TOKEN="your_github_token"
export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3"
npm run dev这将:
- 文件更改时自动编译TypeScript代码 - 更新编译文件时重新启动服务器 - 以HTTP模式运行服务器以进行基于URL的连接
- 使用URL模式连接到游标,如下所述
生产安装和设置
选项1:使用URL模式(建议用于本地开发)
这种方法是最稳定的,建议用于本地开发或测试:
- 克隆存储库并安装所需的软件包:
git clone https://github.com/ddukbg/github-enterprise-mcp.git
cd github-enterprise-mcp
npm install- 构建项目:
npm run build
chmod +x dist/index.js- 运行服务器:
export GITHUB_TOKEN="your_github_token"
export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3"
node dist/index.js --transport http --debug- 使用URL模式连接到游标:
- 将以下内容添加到光标中 .cursor/mcp.json 文件:
{
"mcpServers": {
"github-enterprise": {
"url": "http://localhost:3000/sse"
}
}
}选项2:作为全局命令安装(npm链接)
这种方法对当地发展很有用:
# After cloning the repository
git clone https://github.com/ddukbg/github-enterprise-mcp.git
cd github-enterprise-mcp
# Install required packages
npm install
# Build
npm run build
chmod +x dist/index.js
# Link globally
npm link
# Run as a global command
export GITHUB_TOKEN="your_github_token"
export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3"
github-enterprise-mcp --transport=http --debug选项3:使用npx(包发布时)
如果包被发布到公共npm注册表:
npx @ddukbg/github-enterprise-mcp --token=your_github_token --github-enterprise-url=https://github.your-company.com/api/v3与AI工具集成
克劳德桌面
将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"github-enterprise": {
"command": "npx",
"args": ["-y", "@ddukbg/github-enterprise-mcp", "--token=YOUR_GITHUB_TOKEN", "--github-enterprise-url=YOUR_GITHUB_ENTERPRISE_URL"]
}
}
}替换 YOUR_GITHUB_TOKEN 和 YOUR_GITHUB_ENTERPRISE_URL 与你的实际价值观。
光标
推荐:URL模式(最稳定)
为了在Cursor中实现最可靠的操作,建议使用URL模式:
- 在单独的终端窗口中启动服务器:
cd /path/to/github-enterprise-mcp
GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" GITHUB_TOKEN="your_github_token" node dist/index.js --transport http- 配置Cursor的MCP设置:
- 打开光标并转到 设置 - 引导到 AI>MCP服务器 - 编辑您的 .cursor/mcp.json 文件:
{
"mcpServers": {
"github-enterprise": {
"url": "http://localhost:3000/sse"
}
}
}- 重新启动Cursor以应用更改
替代方案:命令模式
或者,您可以将Cursor配置为使用命令模式,尽管URL模式更可靠:
- 打开光标并转到 设置
- 引导到 AI>MCP服务器
- 点击 添加MCP服务器
- 输入以下详细信息:
- 名字:GitHub企业版 - 命令: npx - 参数: @ddukbg/github-enterprise-mcp - 环境变量: - GITHUB_ENTERPRISE_URL:您的GitHub Enterprise API URL - GITHUB_TOKEN:您的GitHub个人访问令牌
或者,您可以手动编辑您的 .cursor/mcp.json 文件包括:
{
"mcpServers": {
"github-enterprise": {
"command": "npx",
"args": [
"@ddukbg/github-enterprise-mcp"
],
"env": {
"GITHUB_ENTERPRISE_URL": "https://github.your-company.com/api/v3",
"GITHUB_TOKEN": "your_github_token"
}
}
}
}语言配置
此MCP服务器支持英语和韩语。您可以使用以下方式配置语言:
环境变量
# Set language to Korean
export LANGUAGE=ko
# Or in .env file
LANGUAGE=ko命令行参数
# Set language to Korean
node dist/index.js --language ko如果未指定,默认语言为英语。
HTTP模式下的其他选项
--debug:启用调试日志记录--github-enterprise-url:设置GitHub Enterprise API URL--token设置 GitHub 个人访问令牌--language:设置语言(en或ko,默认值:en)
可用的MCP工具
此MCP服务器提供以下工具:
| 工具名称 | 描述 | 参数 | 所需PAT权限 |
|---|---|---|---|
list-repositories | 检索用户或组织的存储库列表 | owner:用户名/组织名称 |
isOrg:是否是一个组织 type:存储库类型 sort:排序标准 page:页码 perPage:每页项目数| repo | | get-repository |获取详细的存储库信息| owner:存储库所有者 repo:存储库名称| repo | | list-branches |列出存储库的分支| owner:存储库所有者 repo:存储库名称 protected_only:是否仅显示受保护的分支 page:页码 perPage:每页项目数| repo | | get-content |检索文件或目录内容| owner:存储库所有者 repo:存储库名称 path:文件/目录路径 ref:分支/提交(可选)| repo | | list-pull-requests |在存储库中列出拉取请求| owner:存储库所有者 repo:存储库名称 state:PR状态过滤器 sort:排序标准 direction:排序方向 page:页码 per_page:每页项目数| repo | | get-pull-request |获取拉取请求详细信息| owner:存储库所有者 repo:存储库名称 pull_number:拉取请求号| repo | | create-pull-request |创建新的pull请求| owner:存储库所有者 repo:存储库名称 title:PR标题 head:总行 base:基地分支 body:PR描述 draft:创建为PR草稿| repo | | merge-pull-request |合并拉取请求| owner:存储库所有者 repo:存储库名称 pull_number:拉取请求号 merge_method:合并方法 commit_title:提交标题 commit_message:提交消息| repo | | list-issues |在存储库中列出问题| owner:存储库所有者 repo:存储库名称 state:问题状态筛选器 sort:排序标准 direction:排序方向 page:页码 per_page:每页项目数| repo | | get-issue |获取问题详细信息| owner:存储库所有者 repo:存储库名称 issue_number:发行号| repo | | list-issue-comments |列出对问题或拉取请求的评论| owner:存储库所有者 repo:存储库名称 issue_number:问题/PR编号 page:页码 per_page:每页项目数| repo | | create-issue |创建新问题| owner:存储库所有者 repo:存储库名称 title:发行标题 body:发布正文内容 labels:标签名称数组 assignees:用户登录数组 milestone:里程碑ID| repo | | create-repository |创建新存储库| name:存储库名称 description:存储库描述 private:是否私人 auto_init:使用README进行初始化 gitignore_template:ad。环境 license_template:添加许可证 org:组织名称| repo | | update-repository |更新存储库设置| owner:存储库所有者 repo:存储库名称 description:新描述 private:更改隐私 default_branch:更改默认分支 has_issues:启用/禁用问题 has_projects:启用/禁用项目 has_wiki:启用/禁用wiki archived:存档/取消存档| repo | | delete-repository |删除存储库| owner:存储库所有者 repo:存储库名称 confirm:确认(必须为真)| delete_repo | | list-workflows |列出GitHub操作工作流| owner:存储库所有者 repo:存储库名称 page:页码 perPage:每页项目数| actions:read | | list-workflow-runs |列表工作流运行| owner:存储库所有者 repo:存储库名称 workflow_id:工作流ID/文件名 branch:按分支筛选 status:按状态筛选 page:页码 perPage:每页项目数| actions:read | | trigger-workflow |触发工作流| owner:存储库所有者 repo:存储库名称 workflow_id:工作流ID/文件名 ref:Git引用 inputs:工作流输入| actions:write | | get-license-info |获取GitHub Enterprise许可证信息|-| 需要site_admin(管理员)帐户 | | get-enterprise-stats |获取GitHub Enterprise系统统计信息|-| 需要site_admin(管理员)帐户 |
备注:用于企业特定的工具(get-license-info和get-enterprise-stats),一个用户 站点管理员 需要特权。建议使用经典个人访问令牌,因为细粒度令牌可能不支持这些企业级权限。
在游标中使用工具
一旦你设置了MCP服务器并配置了Cursor连接到它,你就可以直接在Cursor的AI聊天中使用GitHub Enterprise工具。以下是一些示例:
列出存储库
mcp_github_enterprise_list_repositories(owner="octocat")获取存储库信息
mcp_github_enterprise_get_repository(owner="octocat", repo="hello-world")列出拉取请求
mcp_github_enterprise_list_pull_requests(owner="octocat", repo="hello-world", state="open")管理问题
# List issues
mcp_github_enterprise_list_issues(owner="octocat", repo="hello-world", state="all")
# Get issue details
mcp_github_enterprise_get_issue(owner="octocat", repo="hello-world", issue_number=1)
# Get issue/PR comments
mcp_github_enterprise_list_issue_comments(owner="octocat", repo="hello-world", issue_number=1)
# Create a new issue
mcp_github_enterprise_create_issue(
owner="octocat",
repo="hello-world",
title="Found a bug",
body="Here is a description of the bug",
labels=["bug", "important"]
)使用存储库内容
mcp_github_enterprise_get_content(owner="octocat", repo="hello-world", path="README.md")库管理
# Create a new repository
mcp_github_enterprise_create_repository(
name="new-project",
description="This is a new project",
private=true,
auto_init=true
)
# Update repository settings
mcp_github_enterprise_update_repository(
owner="octocat",
repo="hello-world",
description="Updated description",
has_issues=true
)用户管理(仅限企业)
这些功能是专门为GitHub Enterprise Server环境设计的,需要管理权限:
# List all users in the GitHub Enterprise instance
mcp_github_enterprise_list_users(filter="active", per_page=100)
# Get a specific user's details
mcp_github_enterprise_get_user(username="octocat")
# Create a new user (Enterprise only)
mcp_github_enterprise_create_user(
login="newuser",
email="newuser@example.com",
name="New User",
company="ACME Inc."
)
# Update a user's information (Enterprise only)
mcp_github_enterprise_update_user(
username="octocat",
email="updated-email@example.com",
location="San Francisco"
)
# Suspend a user (Enterprise only)
mcp_github_enterprise_suspend_user(
username="octocat",
reason="Violation of terms of service"
)
# Unsuspend a user (Enterprise only)
mcp_github_enterprise_unsuspend_user(username="octocat")
# List organizations a user belongs to
mcp_github_enterprise_list_user_orgs(username="octocat")API改进
- 灵活的API URL配置(支持各种环境变量和命令行参数)
- 增强的错误处理和超时管理
- 用户友好的响应格式和消息
贡献
欢迎投稿!请随时提交拉取请求。
许可证
国际协调委员会

