基于令牌的GitHub自动化管理。无需Docker以获得最佳性能,灵活配置实现细粒度控制,直接API集成89种工具。
这是一个全面的模型上下文协议(MCP)服务器,它使您的MCP客户端(如Claude Desktop、Roo Code、Cline、Cursor、Windsurf等)能够使用您的GitHub个人访问令牌与GitHub存储库进行交互。
此工具通过仅使用GitHub令牌设置简化了对GitHub存储库的管理。通过跳过Docker,避免了不必要的复杂性,通过直接API集成实现了快速有效的结果。
该服务器使用Node.js构建,并提供了一整套工具来管理存储库、问题跟踪、协作管理等,同时利用GitHub API实现最佳性能。
🎯 简洁性:基于令牌的访问消除了复杂性。 🌿 效率:没有Docker确保轻量级和最优性能。 💪 强大功能:89种工具直接API集成提供了无与伦比的灵活性。 🔒 灵活性:通过可配置工具实现细粒度控制。
✅ 无需Docker - 可在任何地方运行的简单Node.js服务器
✅ 一个令牌设置 - 只需GitHub个人访问令牌即可工作
✅ 直接API集成 - 不依赖于gh CLI,更快更可靠
✅ 零配置 - 只需令牌即可开箱即用
✅ 允许的存储库 - 将操作限制在特定存储库或所有者
✅ 工具管理 - 启用/禁用特定工具以实现细粒度控制
✅ 默认存储库 - 设置默认存储库以简化工作流程
✅ 灵活权限 - 配置服务器可以访问的内容
✅ 全面工具包 - 89种强大的工具用于完整的GitHub工作流
✅ 分支和提交管理 - 创建分支、探索历史记录、比较更改
✅ 图片上传支持 - 直接在问题中上传和嵌入图片
✅ 高级过滤 - 使用多个标准排序、过滤和搜索
✅ 速率限制处理 - 内置GitHub API速率限制管理
repo(完全控制私人存储库) - 推荐用于完整功能。user:read 或 user:email(读取用户资料数据)。read:org(如果需要访问组织信息)。确保已安装Node.js,然后使用npx直接运行服务器
检查是否已将GitHub令牌导出为名为GH_TOKEN的环境变量或包含在您的MCP客户端配置中。
您可以直接运行此服务器而无需克隆或安装:
# 使用npx直接运行
npx -y github-repos-manager-mcp
对于macOS/Linux:
{
"mcpServers": {
"github-repos-manager": {
"command": "npx",
"args": [
"-y",
"github-repos-manager-mcp"
],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE"
}
}
}
}
对于Windows,在某些情况下可能需要使用npx.cmd而不是npx:
{
"mcpServers": {
"github-repos-manager": {
"command": "npx.cmd",
1. "args": [
"-y",
"github-repos-manager-mcp"
],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE"
}
}
}
}
}
此命令将自动下载并运行服务器的最新版本,无需在本地安装任何东西。
如果您希望本地运行服务器,请克隆存储库并安装依赖项:
git clone https://github.com/kurdin/github-repos-manager.git
cd github-repos-manager
npm install
然后,配置您的MCP客户端指向本地服务器使用的server.cjs的完整路径:
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/full/path/to/your/project/github-repos-manager-mcp/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE"
}
}
}
}
重要:将"ghp_YOUR_ACTUAL_TOKEN_HERE"替换为您实际的GitHub个人访问令牌。
一旦MCP客户端配置了正确的server.cjs路径和您的GH_TOKEN,当客户端尝试使用其工具之一时,服务器应该会自动启动。
您也可以直接测试服务器脚本以进行基本身份验证,但这需要暂时在您的shell中设置GH_TOKEN环境变量以进行此特定测试:
# 仅用于直接脚本测试(正常操作使用MCP客户端配置)
export GH_TOKEN="ghp_YOUR_TEMPORARY_TEST_TOKEN"
node server.cjs
unset GH_TOKEN # 测试后重要:取消设置
如果成功,您应该看到“GitHub API身份验证成功”和“GitHub Repos Manager MCP Server正在stdio上运行”。
注意:只有在您通过环境变量、命令行参数或使用set_default_repo工具明确配置时,服务器才会设置默认存储库。它永远不会自动设置默认存储库。
Claude Desktop claude_desktop_config.json示例文件位置:
~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json(路径可能有所不同)您可以设置默认存储库以简化工作流程并避免在每个命令中指定owner和repo。有三种方式可以配置此设置:
向您的MCP客户端配置添加环境变量:
使用npx:
{
"mcpServers": {
"github-repos-manager": {
"command": "npx",
"args": ["-y", "github-repos-manager-mcp"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "octocat",
"GH_DEFAULT_REPO": "Hello-World"
}
}
}
}
使用本地安装:
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/full/path/to/your/project/github-repos-manager-mcp/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "octocat",
"GH_DEFAULT_REPO": "Hello-World"
}
}
}
}
直接运行服务器时,您可以传递默认存储库设置:
node server.cjs --default-owner octocat --default-repo Hello-World
在对话过程中使用set_default_repo工具设置或更改默认存储库:
microsoft/vscode”username/my-project”配置优先级(从高到低):
--default-owner,--default-repo)GH_DEFAULT_OWNER,GH_DEFAULT_REPO)set_default_repo)默认存储库的好处:
owner和repo的需求set_default_repo工具更改一旦设置了默认存储库,您可以省略命令中的owner和repo参数:
您可以使用GH_ALLOWED_REPOS环境变量或--allowed-repos命令行参数限制服务器可以访问哪些存储库。这是一个安全功能,确保服务器只能操作批准的存储库。
1. 环境变量(用于MCP客户端)
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/path/to/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_TOKEN",
"GH_ALLOWED_REPOS": "owner1/repo1,owner2/repo2,owner3"
}
}
}
}
2. 命令行参数
node server.cjs --allowed-repos "microsoft/vscode,facebook/react,google"
如何工作:
owner/repo):只允许那个特定的存储库owner):允许该所有者的所有存储库示例:
"microsoft/vscode" - 只允许Microsoft的vscode存储库"kurdin" - 允许kurdin的所有存储库"kurdin,microsoft/vscode,facebook/react" - 允许kurdin的所有存储库加上特定的存储库通过设置GH_DISABLED_TOOLS环境变量或使用--disabled-tools命令行参数禁用不需要的工具。
为了最大限度地提高安全性,您可以限制服务器仅允许特定工具,通过设置GH_ALLOWED_TOOLS环境变量或使用--allowed-tools命令行参数。
重要:如果同时设置了GH_ALLOWED_TOOLS和GH_DISABLED_TOOLS,则GH_ALLOWED_TOOLS优先。
使用npx(macOS/Linux):
{
"mcpServers": {
"github-repos-manager": {
"command": "npx",
"args": ["-y", "github-repos-manager-mcp"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "mycompany",
"GH_DEFAULT_REPO": "main-project",
"GH_ALLOWED_REPOS": "mycompany,trusted-org/specific-repo",
"GH_ALLOWED_TOOLS": "list_issues,create_issue,list_prs,get_repo_info"
}
}
}
}
使用npx(Windows):
{
"mcpServers": {
"github-repos-manager": {
"command": "npx.cmd",
"args": ["-y", "github-repos-manager-mcp"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "mycompany",
"GH_DEFAULT_REPO": "main-project",
"GH_ALLOWED_REPOS": "mycompany,trusted-org/specific-repo",
"GH_ALLOWED_TOOLS": "list_issues,create_issue,list_prs,get_repo_info"
}
}
}
}
使用本地安装:
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/full/path/to/your/project/github-repos-manager-mcp/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "mycompany",
"GH_DEFAULT_REPO": "main-project",
"GH_ALLOWED_REPOS": "mycompany,trusted-org/specific-repo",
"GH_ALLOWED_TOOLS": "list_issues,create_issue,list_prs,get_repo_info"
}
}
}
}
命令行等效命令:
node server.cjs \
--default-owner mycompany \
--default-repo main-project \
--allowed-repos "mycompany,trusted-org/specific-repo" \
--allowed-tools "list_issues,create_issue,list_prs,get_repo_info"
此服务器提供89种全面工具用于完整的GitHub工作流管理:
create_pull_request:创建新的拉取请求,带有标题、正文和分支规范。
owner(字符串,可选),repo(字符串,可选),title(字符串,必需),body(字符串,可选),head(字符串,必需 - 包含更改的分支),base(字符串,必需 - 目标分支),draft(布尔值,可选),maintainer_can_modify(布尔值,可选)edit_pull_request:更新现有拉取请求的标题、正文、状态或目标分支。
owner(字符串,可选),repo(字符串,可选),pull_number(整数,必需),title(字符串,可选),body(字符串,可选),state(字符串,可选 - "open"或"closed"),base(字符串,可选)get_pr_details:获取关于拉取请求的全面信息,包括状态和合并详情。
owner(字符串,可选),repo(字符串,可选),pull_number(整数,必需)list_pr_reviews:列出拉取请求上的所有审核及其状态和评论。
owner(字符串,可选),repo(字符串,可选),pull_number(整数,必需),per_page(整数,可选,默认30)create_pr_review:在拉取请求上提交审核,带有评论和审批状态。
owner(字符串,可选),repo(字符串,可选),pull_number(整数,必需),body(字符串,可选),event(字符串,可选 - "APPROVE","REQUEST_CHANGES","COMMENT"),comments(数组,可选)list_pr_files:列出拉取请求中更改的所有文件及其增删统计。
owner(字符串,可选),repo(字符串,可选),pull_number(整数,必需),per_page(整数,可选,默认30