项目简介

GitHub MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供一个标准化的接口,使其能够安全、可扩展地与 GitHub API 进行交互。通过这个服务器,LLM 客户端可以调用预定义的工具来管理 GitHub 仓库、分支、Issue、Pull Request、文件和 Release,从而实现 DevOps 流程的自动化和 LLM 驱动的 GitHub 工作流。

主要功能点

  • 全面的 GitHub API 集成: 提供对 GitHub REST API 的安全访问,无需 LLM 客户端直接处理 API 细节。
  • 资源管理: 支持仓库、分支、Issue、Pull Request、文件和 Release 的创建、读取、更新和删除等操作。
  • 工具化操作: 将 GitHub 功能封装成易于 LLM 调用的工具,例如 'create_repository', 'list_issues', 'merge_pull_request' 等。
  • 输入验证和错误处理: 使用 Zod 进行严格的输入验证,并提供标准化的错误处理机制,确保操作的可靠性。
  • 速率限制处理: 内置 GitHub API 速率限制处理机制,避免因频繁调用 API 触发限制。
  • 模块化架构: 采用原子 Feature 架构,代码结构清晰,易于维护和扩展。

安装步骤

  1. 前提条件: 确保已安装 Node.js (v16 或更高版本) 和拥有具有相应 GitHub 权限的个人访问令牌 (Personal Access Token)。

  2. 克隆仓库:

    git clone https://github.com/cyanheads/github-mcp-server.git
    cd github-mcp-server
  3. 安装依赖:

    npm install
  4. 配置环境变量: 在项目根目录下创建 '.env' 文件,并填入你的 GitHub Personal Access Token 和其他配置项 (可选):

    GITHUB_TOKEN=your_github_personal_access_token
    LOG_LEVEL=info
    SERVER_NAME=github-mcp-server

    'GITHUB_TOKEN' 是必需的,请替换为你的 GitHub Personal Access Token。 'LOG_LEVEL' 可以设置为 'debug', 'info', 'warn', 'error', 'fatal' 控制日志输出级别,默认为 'info'。 'SERVER_NAME' 是 MCP 服务器的名称,默认为 'github-mcp-server'。

  5. 构建项目:

    npm run build
  6. 启动服务器:

    node build/index.js

    服务器成功启动后,将在控制台输出 "GitHub MCP server running on stdio" 信息。

服务器配置

MCP 客户端需要配置以下 JSON 信息才能连接到 GitHub MCP Server。请将以下配置添加到你的 MCP 客户端设置中,例如 Claude Desktop 或 IDE 插件的 MCP 设置:

{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["/path/to/github-mcp-server/build/index.js"],
      "env": {
        "GITHUB_TOKEN": "your_github_personal_access_token",
        "LOG_LEVEL": "info",
        "SERVER_NAME": "github-mcp-server"
      }
    }
  }
}

'"github"': 是你在 MCP 客户端中为这个 GitHub MCP Server 定义的服务器名称,可以自定义。 '"command": "node"': 指定启动服务器的命令为 'node'。 '"args": ["/path/to/github-mcp-server/build/index.js"]': 指定服务器启动脚本的路径,请将 '"/path/to/github-mcp-server"' 替换为你的 'github-mcp-server' 项目的实际绝对路径。 '"env"': 环境变量配置。

'"GITHUB_TOKEN": "your_github_personal_access_token"': [必填] GitHub Personal Access Token,请替换为你的实际 Token。 '"LOG_LEVEL": "info"': [可选] 日志级别,可以根据需要调整,与 '.env' 文件中的 'LOG_LEVEL' 作用相同。 '"SERVER_NAME": "github-mcp-server"': [可选] MCP 服务器名称,与 '.env' 文件中的 'SERVER_NAME' 作用相同。

基本使用方法

配置完成后,你的 MCP 客户端 (如 Claude) 即可通过 GitHub MCP Server 提供的工具与 GitHub 进行交互。你可以指示 LLM 使用特定工具来完成 GitHub 操作。

例如,你可以指示 Claude 执行以下操作:

  • "创建一个名为 'my-new-repo' 的公开 GitHub 仓库。" (对应 'create_repository' 工具)
  • "列出我在 'my-repo' 仓库中所有未解决的 Issue。" (对应 'list_issues' 工具)
  • "合并 'my-repo' 仓库的 Pull Request #123。" (对应 'merge_pull_request' 工具)

具体的工具列表和参数可以参考仓库 README.md 文档的 "Tools" 章节。LLM 将根据你的指令,选择合适的工具并调用 GitHub MCP Server 执行相应的 GitHub API 操作。

信息

分类

开发者工具