GitHub Docker客户端

一个连接Docker中运行的GitHub多用户服务器(GMU)的MCP客户端,提供由Claude驱动的GitHub操作交互界面。

  • by devendershekhawat
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 devendershekhawat/github-mcp-sse

使用说明

Docker GMU服务器的GitHub MCP客户端

这是一个MCP(模型上下文协议)客户端,连接到在Docker中运行的GitHub多用户服务器(GMU),并为Claude支持的GitHub操作提供交互式界面。

特性

  • 🐳 Docker集成:连接到在Docker容器中运行的GMU服务器
  • 🤖 AI驱动:使用Claude解释自然语言查询并调用适当的GitHub工具
  • 🔐 多用户支持:每个请求使用每个用户的GitHub个人访问令牌
  • 🛠️ 完整的GitHub API:访问仓库、问题、拉取请求、用户、搜索等
  • 💬 交互式聊天:GitHub操作的自然语言界面

先决条件

  1. Docker&Docker编写:GMU服务器必须在Docker中运行
  2. Python 3.13+:用于运行MCP客户端
  3. GitHub个人访问令牌:用于使用GitHub API进行身份验证
  4. 无烟煤API密钥:用于克劳德整合

快速设置

1.安装依赖项

# Using uv (recommended)
uv add mcp anthropic python-dotenv

2.配置环境变量

创建一个 .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_here

3.启动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

客户将:

  1. 提示输入您的GitHub令牌(如果不在环境中)
  2. 连接到运行在Docker中的GMU服务器
  3. 启动交互式聊天界面

示例命令

一旦进入交互模式,您就可以使用自然语言:

❓ 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)  │
                                      └──────────────────┘

运作原理

  1. 连接:MCP客户端使用以下命令连接到在Docker中运行的GMU服务器 docker exec
  2. 认证:每个GitHub API调用都包含一个per-request auth_token 参数
  3. 查询处理:用户查询与可用的GitHub工具一起发送给Claude
  4. 工具执行:Claude决定调用哪些GitHub工具,并通过MCP执行它们
  5. 响应:结果已格式化并显示给用户

故障排除

容器未运行

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

解决方案:

  1. 在以下位置创建GitHub个人访问令牌https://github.com/settings/tokens
  2. 将其添加到您的 .env 文件或设置 GITHUB_TOKEN 环境变量

缺少Anthropic API密钥

Error: ANTHROPIC_API_KEY environment variable is required

解决方案:

  1. 从获取API密钥https://console.anthropic.com/
  2. 将其添加到您的 .env 文件为 ANTHROPIC_API_KEY

JSON序列化错误

最新版本包括对MCP内容类型的稳健处理,以防止序列化错误。

MCP连接问题

Error connecting to GMU server: ...

解决方案:

  1. 验证Docker是否正在运行: docker ps
  2. 检查容器日志: docker-compose logs github-mcp-server
  3. 重新启动容器: 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

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 使用GMU服务器进行测试: python test_gmu_connection.py
  4. 测试交互式客户端: python tests/test_gmu.py
  5. 提交拉取请求

许可证

此项目遵循与GitHub MCP服务器多用户相同的许可证。