GitHub MCP Server

GitHub MCP Server

bmeyer99

开发者工具
访问服务器

README

GitHub MCP 服务器

一个用于全面 GitHub CLI 集成的模型上下文协议 (MCP) 服务器。此服务器实现了所有主要的 GitHub CLI 功能,允许 AI 助手与 GitHub 仓库、议题、拉取请求、文件等进行交互。

功能

  • 完整的 GitHub CLI 对等性: 实现 GitHub CLI 的核心功能
  • 安全: 仅在您的 GitHub 令牌的权限范围内执行操作
  • 高效: 使用 Go 编写,以实现高性能和最小的资源使用
  • 独立二进制文件: 无需运行时依赖
  • 多平台: 适用于 macOS、Linux 和 Windows

安装

下载二进制文件

Releases 页面下载适用于您平台的预构建二进制文件。

从源代码构建

# 克隆仓库
git clone https://github.com/your-username/github-mcp-server-go.git
cd github-mcp-server-go

# 构建二进制文件
go build -o github-mcp-server

# 将二进制文件移动到 PATH 中的目录(可选)
sudo mv github-mcp-server /usr/local/bin/

用法

GitHub 个人访问令牌

在使用 GitHub MCP 服务器之前,您需要一个具有适当权限的 GitHub 个人访问令牌:

  1. 转到 GitHub 设置 > 开发者设置 > 个人访问令牌
  2. 创建一个新令牌,其中包含 repo 范围(用于完全仓库访问)或 public_repo 范围(仅用于公共仓库访问)
  3. 复制生成的令牌以与 MCP 服务器一起使用

运行服务器

您可以通过两种方式运行 GitHub MCP 服务器:

# 使用作为命令行标志提供的令牌运行
./github-mcp-server -token YOUR_GITHUB_TOKEN

# 或者使用作为环境变量提供的令牌运行
export GITHUB_PERSONAL_ACCESS_TOKEN=YOUR_GITHUB_TOKEN
./github-mcp-server

与 Claude Desktop 集成

要将 GitHub MCP 服务器与 Claude Desktop 一起使用:

  1. 编辑您的 Claude Desktop 配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 将 GitHub MCP 服务器添加到配置中:

{
  "mcpServers": {
    "github": {
      "command": "/path/to/github-mcp-server",
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_TOKEN"
      }
    }
  }
}
  1. 重新启动 Claude Desktop 以应用更改

支持的工具

GitHub MCP 服务器实现了以下工具类别:

仓库管理

  • get_repository: 获取仓库详细信息
  • list_repositories: 列出用户仓库
  • create_repository: 创建新仓库

议题管理

  • get_issue: 获取议题详细信息
  • list_issues: 列出仓库议题
  • create_issue: 创建新议题
  • close_issue: 关闭现有议题

拉取请求管理

  • get_pull_request: 获取拉取请求详细信息
  • list_pull_requests: 列出仓库拉取请求
  • create_pull_request: 创建新拉取请求
  • merge_pull_request: 合并现有拉取请求

GitHub Actions

  • list_workflows: 列出仓库工作流程
  • list_workflow_runs: 列出工作流程运行
  • trigger_workflow: 触发工作流程

文件操作

  • get_file_content: 获取文件内容
  • create_file: 创建新文件
  • update_file: 更新现有文件
  • delete_file: 删除文件

搜索操作

  • search_code: 搜索仓库中的代码
  • search_issues: 搜索议题和拉取请求

示例

以下是一些如何将这些工具与 Claude 一起使用的示例:

创建新仓库

请创建一个名为 "awesome-project" 的新 GitHub 仓库

获取仓库信息

获取有关 "cli/cli" 仓库的信息

创建一个议题

在我的 "project-name" 仓库中创建一个标题为 "Fix button styling" 且包含问题描述的议题

搜索代码

在我的仓库中搜索使用 useState hook 的 React 组件的示例

安全注意事项

  • GitHub MCP 服务器仅在您的 GitHub 个人访问令牌的权限范围内执行操作
  • 为了获得最大安全性,请创建一个仅具有您的用例所需权限的令牌
  • 服务器不存储您的令牌,但会将其与每个请求一起传输到 GitHub API
  • 考虑在本地而不是在远程服务器上托管服务器

许可证

该项目已获得 MIT 许可证的许可 - 有关详细信息,请参见 LICENSE 文件。

贡献

欢迎贡献!请随时提交拉取请求。

  1. Fork 仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add some amazing feature')
  4. 将其推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个拉取请求

致谢

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript