mcpField
G
GitHub MCP Server

GitHub MCP Server

本地服务
github.com/geropl版本控制175 周前更新

关于 GitHub MCP Server

GitHub MCP Server 是面向需要操作 GitHub 仓库和项目数据的 AI 助手的 Go 服务。它提供仓库、议题、拉取请求、代码、提交、分支及 Actions 工具,默认禁用写入操作。

主要功能

  1. 01搜索仓库、代码、议题和提交
  2. 02管理文件、分支和提交
  3. 03创建并查看拉取请求
  4. 04管理议题与评论
  5. 05查看 GitHub Actions 工作流和运行记录
  6. 06配置写入权限与工具自动批准

适用场景

  1. 01搜索 GitHub 上的代码、仓库或议题
  2. 02查看拉取请求详情和差异
  3. 03管理仓库文件与分支
  4. 04检查工作流运行记录和日志

MCP 相关

它将 GitHub API 操作作为工具提供给 MCP 客户端,涵盖仓库、议题、拉取请求和 Actions 等操作。写入操作默认禁用,可通过标志启用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

GitHub MCP 服务

一个使用 Go 实现的 GitHub 模型上下文协议(MCP)服务。该服务通过标准化接口,让大模型能够与 GitHub 仓库、议题、拉取请求等进行交互。

功能

  • 全面访问 GitHub API:参见下方的工具
  • 设置命令:轻松为 AI 助手自动完成设置
    • --auto-approve 可预先勾选自动批准复选框
    • --write-access 为远程操作启用写入权限
    • 将二进制文件复制到稳定的位置
    • 更新工具的 MCP 服务配置(支持 cline 和 claude-desktop)
  • 安全控制:
    • 默认禁用写入权限,确保安全
    • 提供细粒度的自动批准选项

计划中的功能

  • "get_diff"
    • 两个提交之间的 diff
    • ? 是否应将此功能纳入 compare_commits 的输出?

安装

前置条件
  • 具有适当权限的 GitHub Personal Access Token
使用预编译二进制文件

你可以从 GitHub Releases 页面下载适用于你平台的预编译二进制文件。

# Download the latest release - for "linux_amd64" in this case
RELEASE="$(curl -s https://api.github.com/repos/geropl/github-mcp-go/releases/latest)"
DOWNLOAD_URL="$(echo $RELEASE | jq -r '.assets[] | select(.name | contains("linux_amd64")) | .browser_download_url')"
curl -L -o ./github-mcp-go $DOWNLOAD_URL
chmod +x ./github-mcp-go

# Setup the mcp server (can be called in .gitpod.yml, dotfiles repo, etc.)
./github-mcp-go setup --write-access="${GITHUB_MCP_WRITE_ACCESS:-false}" --auto-approve=allow-read-only || true
rm -f ./github-mcp-go
从源代码构建

如果你希望从源代码构建:

# Prerequisites: Go 1.23 or later

# Clone the repository
git clone https://github.com/geropl/github-mcp-go.git
cd github-mcp-go

# Build the server
go build -o github-mcp-go .

用法

环境变量

该服务需要 GitHub Personal Access Token 才能通过身份验证访问 GitHub API:

export GITHUB_PERSONAL_ACCESS_TOKEN=your_token_here
设置

该服务包含一个便捷的设置命令,可安装并配置 MCP 服务,以供 AI 助手使用:

# Set up for Cline with auto-approval for read-only tools
./github-mcp-go setup --auto-approve allow-read-only --tool cline

# Set up for Claude Desktop with auto-approval for specific tools
./github-mcp-go setup --auto-approve search_repositories,get_file_contents --tool claude-desktop

# Set up with write access enabled
./github-mcp-go setup --write-access --tool cline

# Show setup help
./github-mcp-go setup --help
运行服务
# Run the server directly (read-only mode)
./github-mcp-go serve

# Run the server with write access enabled
./github-mcp-go serve --write-access

# Show help
./github-mcp-go --help
自动批准选项

--auto-approve 标志可用于指定要自动批准的工具,以逗号分隔。allow-read-only 是一个特殊值,可将所有只读工具加入自动批准列表(安全,不会更改状态)。

--write-access 标志可为远程操作启用写入权限。这样便可以使用会修改远程仓库的工具。为确保安全,默认禁用写入权限。

可用工具

仓库工具
  • search_repositories:搜索 GitHub 仓库
  • create_repository:创建新的 GitHub 仓库
  • fork_repository:复刻 GitHub 仓库
拉取请求工具
  • create_pull_request:创建新的拉取请求
  • get_pull_request:获取拉取请求的详细信息
  • get_pull_request_diff:获取拉取请求的 diff
文件工具
  • get_file_contents:获取文件或目录的内容
  • create_or_update_file:创建或更新文件
  • push_files:在单次提交中推送多个文件
议题工具
  • create_issue:创建新的议题
  • list_issues:列出议题,并提供筛选选项
  • update_issue:更新现有议题
  • add_issue_comment:为议题添加评论
  • get_issue:获取特定议题的详细信息
  • list_issue_comments:列出议题的评论
分支工具
  • list_branches:列出仓库中的分支
  • get_branch:获取特定分支的详细信息
  • create_branch:创建新分支
  • merge_branches:将一个分支合并到另一个分支
  • delete_branch:删除分支
提交工具
  • get_commit:获取特定提交的详细信息
  • list_commits:列出仓库中的提交
  • compare_commits:比较两个提交或分支
  • get_commit_status:获取特定提交的汇总状态
  • create_commit_comment:为特定提交添加评论
  • list_commit_comments:列出特定提交的评论
  • create_commit:直接创建新提交
搜索工具
  • search_code:跨仓库搜索代码
  • search_issues:搜索议题和拉取请求
  • search_commits:跨仓库搜索提交
GitHub Actions 工具
  • list_workflows:列出仓库中的所有工作流
  • get_workflow:获取特定工作流的详细信息
  • list_workflow_runs:列出仓库或特定工作流的运行记录
  • get_workflow_run:获取特定工作流运行记录的详细信息
  • download_workflow_run_logs:下载并处理工作流运行记录的日志
  • list_workflow_jobs:列出工作流运行记录中的任务
  • get_workflow_job:获取特定任务的详细信息

发布

本项目遵循 语义化版本。向仓库推送新标签后,系统会自动构建新版本并将其发布到 GitHub Releases。

如需了解创建新版本的详细说明,请参阅 RELEASE.md。

可用平台

提供适用于以下平台的预构建二进制文件:

  • Linux(amd64、arm64)
  • macOS(amd64、arm64)
  • Windows(amd64)

开发

测试

本项目使用 go-vcr 录制 HTTP 交互,并通过表格驱动测试进行测试:

go test ./...

许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。