这是 GitHub 模型上下文协议(MCP)服务器的 Go 语言实现方案。借助该实现,AI 助手能够与 GitHub API 进行交互,进而执行创建仓库、管理分支、文件操作等各类操作。
要使用此服务器,你需要完成先决条件的准备、安装服务器、进行认证设置,最后启动服务器。以下是详细步骤:
go get github.com/metoro-io/github-mcp-server-go
将你的 GitHub 个人访问令牌设置为环境变量:
export GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token
服务器还可以从 HTTP 请求中提取身份验证令牌。你可以通过 Authorization 标头传递你的 GitHub 令牌:
Authorization: Bearer your_github_token
或简单地:
Authorization: your_github_token
go run main.go
对于 HTTP 处理器,服务器支持两种方式:
http_request
上下文值用于 HTTP 请求。ginContext
值。
这使得在不同的 Web 框架之间无缝集成成为可能,同时保持一致的身份验证机制。该服务器提供以下工具:
工具名称 | 功能描述 |
---|---|
search_repositories | 搜索 GitHub 仓库 |
create_repository | 在你的账户下创建一个新的 GitHub 仓库 |
fork_repository | 将 GitHub 仓库叉到你的账户或指定的组织 |
create_branch | 在一个 GitHub 仓库中创建新的分支 |
get_file_contents | 获取 GitHub 仓库中的文件或目录内容 |
create_or_update_file | 创建或更新单个文件 |
push_files | 一次提交多个文件到 GitHub 仓库 |
create_issue | 在 GitHub 仓库中创建新问题 |
get_issue | 获取特定问题的详细信息 |
list_issues | 列出带有筛选选项的 GitHub 仓库中的问题 |
update_issue | 更新现有的问题 |
add_issue_comment | 向现有问题添加评论 |
list_commits | 获取分支的提交列表 |
search_code | 在 GitHub 仓库中搜索代码 |
search_issues | 在 GitHub 仓库中搜索问题和拉取请求 |
search_users | 搜索 GitHub 上的用户 |
main.go
:应用程序的入口点common/
:通用工具和错误处理operations/
:GitHub API 操作实现tools/
:MCP 工具定义和处理程序go build -o github-mcp-server
go test ./...
此项目采用 MIT 许可证。