GitHub MCP服务

一个Go语言实现的GitHub模型上下文协议(MCP)服务器,允许AI助手通过GitHub API执行仓库管理、分支操作、文件操作等任务。

  • by metoro-io
  • Go
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 metoro-io/github-mcp-server-go

使用说明

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_token

HTTP标头身份验证

服务器还可以从HTTP请求中提取身份验证令牌。您可以通过Authorization标头传递您的GitHub令牌:

Authorization: Bearer your_github_token

或者简单地说:

Authorization: your_github_token

上下文传递

对于HTTP处理程序,服务器支持以下两种方式:

  1. 标准 http_request HTTP请求的上下文值。
  2. 这 ginContext 使用Gin框架时的值。

这使得能够与不同的web框架无缝集成,同时保持一致的身份验证机制。

用法

  1. 设置您的GitHub个人访问令牌(如身份验证部分所述)。

  2. 运行服务器:

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许可证获得许可。