Docker GMU服务器的GitHub MCP客户端
这是一个MCP(模型上下文协议)客户端,连接到在Docker中运行的GitHub多用户服务器(GMU),并为Claude支持的GitHub操作提供交互式界面。
特性
- 🐳 Docker集成:连接到在Docker容器中运行的GMU服务器
- 🤖 AI驱动:使用Claude解释自然语言查询并调用适当的GitHub工具
- 🔐 多用户支持:每个请求使用每个用户的GitHub个人访问令牌
- 🛠️ 完整的GitHub API:访问仓库、问题、拉取请求、用户、搜索等
- 💬 交互式聊天:GitHub操作的自然语言界面
先决条件
- Docker&Docker编写:GMU服务器必须在Docker中运行
- Python 3.13+:用于运行MCP客户端
- GitHub个人访问令牌:用于使用GitHub API进行身份验证
- 无烟煤API密钥:用于克劳德整合
快速设置
1.安装依赖项
# Using uv (recommended)
uv add mcp anthropic python-dotenv2.配置环境变量
创建一个 .env 项目根目录中的文件:
# GitHub Personal Access Token
# Get this from: https://github.com/settings/tokens
GITHUB_TOKEN=ghp_your_github_personal_access_token_here
# Anthropic API Key for Claude
# Get this from: https://console.anthropic.com/
ANTHROPIC_API_KEY=sk-ant-your_anthropic_api_key_here3.启动GMU服务器
# Start the GitHub Multi-User Server in Docker
docker-compose up -d
# Verify it's running
docker ps | grep github-mcp-server-multiuser用法
测试连接
首先,确认一切正常:
python test_gmu_connection.py该综合测试将:
- ✅ 测试MCP与GMU服务器的连接
- ✅ 验证GitHub令牌功能(如果提供)
- ✅ 测试克劳德集成
- ✅ 列出所有可用的GitHub工具
交互式MCP客户端
运行主交互式客户端:
python tests/test_gmu.py客户将:
- 提示输入您的GitHub令牌(如果不在环境中)
- 连接到运行在Docker中的GMU服务器
- 启动交互式聊天界面
示例命令
一旦进入交互模式,您就可以使用自然语言:
❓ Query: Get my GitHub user information
❓ Query: List my repositories
❓ Query: how many repos I have
❓ Query: Search for Python repositories with more than 1000 stars
❓ Query: Create an issue in my test repository
❓ Query: List open pull requests in microsoft/vscode
❓ Query: tools (to see all available GitHub tools)
❓ Query: quit (to exit)可用的GitHub工具
GMU服务器提供对GitHub全面功能的访问:
- 用户操作:获取用户信息,搜索用户
- 存储库操作:列出存储库、获取内容、创建/更新文件、创建分支
- 问题管理:创建、更新、列出、评论问题
- 拉取请求操作:创建、查看、合并PR、获取文件/差异
- 搜索:搜索存储库、问题、代码、用户
- 还有更多。..
类型 tools 在交互模式下查看41个可用工具的完整列表。
建筑
┌─────────────────┐ MCP Protocol ┌──────────────────┐ GitHub API ┌─────────────┐
│ MCP Client │◄──────────────────►│ GMU Server │◄─────────────────►│ GitHub │
│ (test_gmu.py) │ │ (Docker) │ │ │
│ │ │ │ │ │
└─────────────────┘ └──────────────────┘ └─────────────┘
│ │
│ Anthropic API │
▼ │
┌─────────────────┐ │
│ Claude │ │ Per-request auth
│ (Anthropic) │ │ with GitHub tokens
└─────────────────┘ ▼
┌──────────────────┐
│ GitHub Tools │
│ (Multi-tenancy) │
└──────────────────┘运作原理
- 连接:MCP客户端使用以下命令连接到在Docker中运行的GMU服务器
docker exec - 认证:每个GitHub API调用都包含一个per-request
auth_token参数 - 查询处理:用户查询与可用的GitHub工具一起发送给Claude
- 工具执行:Claude决定调用哪些GitHub工具,并通过MCP执行它们
- 响应:结果已格式化并显示给用户
故障排除
容器未运行
Error: Container 'github-mcp-server-multiuser' is not running.
Please start the container with: docker-compose up -d解决方案:启动Docker容器:
docker-compose up -d缺少GitHub令牌
🔑 GitHub Personal Access Token required解决方案:
- 在以下位置创建GitHub个人访问令牌https://github.com/settings/tokens
- 将其添加到您的
.env文件或设置GITHUB_TOKEN环境变量
缺少Anthropic API密钥
Error: ANTHROPIC_API_KEY environment variable is required解决方案:
- 从获取API密钥https://console.anthropic.com/
- 将其添加到您的
.env文件为ANTHROPIC_API_KEY
JSON序列化错误
最新版本包括对MCP内容类型的稳健处理,以防止序列化错误。
MCP连接问题
Error connecting to GMU server: ...解决方案:
- 验证Docker是否正在运行:
docker ps - 检查容器日志:
docker-compose logs github-mcp-server - 重新启动容器:
docker-compose restart
发展
项目结构
├── tests/
│ └── test_gmu.py # Main MCP client
├── test_gmu_connection.py # Comprehensive connection tests
├── docker-compose.yaml # GMU server configuration
├── pyproject.toml # Project configuration
└── README.md # This file贡献
- 分叉存储库
- 创建要素分支
- 使用GMU服务器进行测试:
python test_gmu_connection.py - 测试交互式客户端:
python tests/test_gmu.py - 提交拉取请求
许可证
此项目遵循与GitHub MCP服务器多用户相同的许可证。

