Go中的GitHub MCP服务器
GitHub模型上下文协议(MCP)服务器的Go实现。该实现允许人工智能助手与GitHub API交互,以执行创建存储库、管理分支、操作文件等操作。
先决条件
- 达到1.21或更高
- 具有适当权限的GitHub个人访问令牌
安装
go get github.com/metoro-io/github-mcp-server-go认证
服务器支持两种身份验证方法:
环境变量身份验证
将您的GitHub个人访问令牌设置为环境变量:
export GITHUB_PERSONAL_ACCESS_TOKEN=your_github_tokenHTTP标头身份验证
服务器还可以从HTTP请求中提取身份验证令牌。您可以通过Authorization标头传递您的GitHub令牌:
Authorization: Bearer your_github_token或者简单地说:
Authorization: your_github_token上下文传递
对于HTTP处理程序,服务器支持以下两种方式:
- 标准
http_requestHTTP请求的上下文值。 - 这
ginContext使用Gin框架时的值。
这使得能够与不同的web框架无缝集成,同时保持一致的身份验证机制。
用法
- 设置您的GitHub个人访问令牌(如身份验证部分所述)。
- 运行服务器:
go run main.go可用工具
服务器提供以下工具:
- search_repositories:搜索GitHub存储库
- 创建存储库:在您的帐户中创建一个新的GitHub存储库
- fork存储:将GitHub存储库分叉到您的帐户或指定组织
- create_branch:在GitHub存储库中创建一个新分支
- 获取_文件_内容:从GitHub存储库获取文件或目录的内容
- create_or_update_file:在GitHub存储库中创建或更新单个文件
- 推送文件:在一次提交中将多个文件推送到GitHub存储库
- 创建_发行:在GitHub存储库中创建新问题
- 获取问题:在GitHub存储库中获取特定问题的详细信息
- list_issues:在GitHub存储库中列出带有过滤选项的问题
- update_issue:更新GitHub存储库中的现有问题
- add_issue_comment:为现有问题添加评论
- list_commits:获取GitHub存储库中某个分支的提交列表
- 搜索代码:在GitHub存储库中搜索代码
- 搜索问题:在GitHub存储库中搜索问题并拉取请求
- 搜索用户:在GitHub上搜索用户
发展
项目结构
main.go:应用程序的入口点common/:常见实用程序和错误处理operations/:GitHub API操作实现tools/:MCP工具定义和处理程序
从源头构建
go build -o github-mcp-server运行测试
go test ./...许可证
该项目根据MIT许可证获得许可。
