使用说明
GitHub MCP 服务器(Rust 实现)
一个用于GitHub和Git操作的模型上下文协议(MCP)服务器实现,采用Rust语言编写。
特点/特性
- 完整的GitHub API集成 通过Octocrab(一种假设的或特定的渠道/方式,具体含义需根据上下文确定,此处直译为“通过Octocrab”)
- 本地Git操作 通过 Gitoxide/gix
- 多传输层stdio(用于Claude Desktop)和SSE(用于远程连接)
- 可配置的工具集启用/禁用特定功能组
- 只读模式限制为非破坏性操作
- GitHub 企业版支持服务与GitHub Enterprise Server和ghe.com兼容工作
- 动态工具集发现工具可以按需发现并启用
建筑
先决条件
- Rust 1.70+(通过 rustup(用于管理Rust工具链的命令行工具))
- Git
- GitHub 个人访问令牌
构建说明
# Clone the repository
git clone https://github.com/yourusername/github-mcp-server-rs
cd github-mcp-server-rs
# Build the project
cargo build --release
# The binary will be at: target/release/github-mcp-server-rs
配置
环境变量
GITHUB_PERSONAL_ACCESS_TOKEN- 您的GitHub个人访问令牌(PAT)(必填)GITHUB_HOST- GitHub Enterprise Server 的主机名(可选,默认为 github.com)GITHUB_TOOLSETS- 以逗号分隔的工具集列表,用于启用GITHUB_DYNAMIC_TOOLSETS- 启用动态工具集发现(0 或 1)GITHUB_READ_ONLY- 启用只读模式(0 或 1)
工具集
可用的工具集:
repos- 仓库操作(文件、分支、提交)issues- 问题管理pull_requests- 拉取请求操作users- 用户信息code_security- 安全扫描功能experiments- 实验性功能
使用方法
使用标准I/O运行(适用于Claude桌面版)
# Basic usage
./target/release/github-mcp-server-rs
# With specific toolsets
./target/release/github-mcp-server-rs --toolsets repos,issues,pull_requests
# Read-only mode
./target/release/github-mcp-server-rs --read-only
# All toolsets enabled
./target/release/github-mcp-server-rs --all
使用SSE传输运行
# Start SSE server on port 3000
./target/release/github-mcp-server-rs --transport sse --port 3000
Claude桌面集成
添加到您的Claude桌面配置中(claude_desktop_config.json):
{
"mcpServers": {
"github": {
"command": "/path/to/github-mcp-server-rs",
"args": ["--toolsets", "repos,issues,pull_requests"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-token-here"
}
}
}
}
开发状态
这台服务器正在积极开发中。当前实现状态:
已实施
- [x] 核心MCP服务器基础设施
- [x] 传输层(stdio 和 SSE)
- [x] 配置和工具集管理
- [x] 错误处理框架
- [x] 基本用户工具(获取自己信息,搜索用户)
进行中
- [ ] 仓库工具实现
- [ ] 问题管理工具
- [ ] 拉取请求工具
- [ ] 代码安全工具
- [ ] 资源处理器
- [ ] 提示模板
全部(待办事项/任务等,根据上下文可具体翻译为“待办事项清单”、“全部任务”等)
- 完成所有GitHub API工具的实现
- [ ] 通过 gix 进行本地 Git 操作
- [ ] OAuth 支持
- [ ] 综合测试
- [ ] 文档和示例
做出贡献
欢迎贡献!请参阅 TODO.md 文件,以获取需要实现的任务详细列表。
许可证
MIT 或 Apache-2.0 许可证