GitHub MCP服务器

一个可配置的模型上下文协议(MCP)服务器,提供GitHub API集成,支持多仓库管理、分支操作、PR管理和文件操作等功能。

  • by nasimcoderex
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 nasimcoderex/tasker-mcp

使用说明

通用GitHub MCP服务器

一个可配置的模型上下文协议(MCP)服务器,为您指定的任何仓库提供GitHub API集成。

🚀 功能

  • 纯GitHub API操作 - 无本地文件依赖
  • 多仓库支持 - 管理多个GitHub仓库
  • 可配置的 - 轻松配置以适应您自己的存储库
  • 分支机构管理 - 创建、列出和管理分支
  • 拉取请求操作 - 创建和管理公关(Public Relations)活动
  • 文件操作 通过GitHub API读取和更新文件
  • 🆕 公司文档整合 - 强制执行公司规定和最佳实践
  • 🆕 自动验证 - 根据您的指南验证分支名称和PR(Pull Request,拉取请求)格式
  • 🆕 智能文档搜索 - 快速找到特定规则和指南

📋 可用操作

GitHub Actions

动作 描述
list_repos 显示所有已配置的存储库
list_branches 列出仓库中的分支
create_branch 创建一个新分支(并进行验证)
list_prs 列出已打开的拉取请求
create_pr 创建一个带有模板的拉取请求
get_file 从仓库中获取文件内容
update_file 更新仓库中的文件内容

文档操作

动作 描述
list 显示所有可用的公司文档
get 获取特定文档(git、编码、评审、pr)
search 在文档中搜索特定术语
rules 获取特定类别的公司规则
guidelines 获取特定行动的指南

⚙️ 配置

方法1:环境变量(推荐)

设定 GITHUB_REPOS 使用您的仓库配置设置环境变量:

export GITHUB_REPOS='[
  {
    "name": "my-frontend",
    "repo": "myusername/frontend-app",
    "defaultBranch": "main"
  },
  {
    "name": "my-backend",
    "repo": "myusername/backend-api", 
    "defaultBranch": "develop"
  }
]'

方法2:配置文件

编辑 config/repos.json:

{
  "repositories": [
    {
      "name": "my-project",
      "repo": "owner/repository-name",
      "defaultBranch": "main"
    },
    {
      "name": "another-project",
      "repo": "owner/another-repo",
      "defaultBranch": "develop"
    }
  ]
}

🔑 GitHub Token 设置

  1. 生成个人访问令牌:

    • 前往GitHub → 设置 → 开发者设置 → 个人访问令牌
    • 使用(以下方式)生成新令牌 repo 权限
  2. 将令牌设置为环境变量:

export GITHUB_TOKEN="your_github_token_here"

🏃‍♂️ 运行服务器

# Install dependencies
npm install

# Set your GitHub token
export GITHUB_TOKEN="your_token_here"

# Optional: Set custom repositories
export GITHUB_REPOS='[{"name":"my-repo","repo":"owner/repo","defaultBranch":"main"}]'

# Start the MCP server
npm start
# or
node index.js

🔧 Claude 桌面集成

添加到您的Claude桌面 config.json:

{
  "mcpServers": {
    "github-mcp": {
      "command": "node",
      "args": ["/path/to/your/github-mcp/index.js"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_here",
        "GITHUB_REPOS": "[{\"name\":\"my-repo\",\"repo\":\"owner/repo\",\"defaultBranch\":\"main\"}]"
      }
    }
  }
}

📝 使用示例

列出已配置的存储库

{
  "repoName": "any-repo-name",
  "action": "list_repos"
}

创建一个新分支

{
  "repoName": "my-frontend",
  "action": "create_branch",
  "taskBranch": "feature/new-component",
  "taskDescription": "Add new React component"
}

获取文件内容

{
  "repoName": "my-backend",
  "action": "get_file", 
  "taskDescription": "src/server.js"
}

列出拉取请求

{
  "repoName": "my-frontend",
  "action": "list_prs"
}

🔒 安全注意事项

  • 永远不要将你的GitHub令牌提交到版本控制系统中
  • 使用环境变量来配置敏感信息
  • 服务器仅需要 repo 私有仓库的权限
  • 对于公共仓库,您可以使用具有最小权限的令牌

🛠 开发

# Clone the repository
git clone <your-repo-url>
cd github-mcp

# Install dependencies  
npm install

# Create your configuration
cp config/repos.json.example config/repos.json
# Edit config/repos.json with your repositories

# Set environment variables
export GITHUB_TOKEN="your_token"

# Run the server
npm start

📄 示例配置文件

对于开源项目

{
  "repositories": [
    {
      "name": "react",
      "repo": "facebook/react",
      "defaultBranch": "main"
    },
    {
      "name": "vue",
      "repo": "vuejs/vue",
      "defaultBranch": "dev"
    }
  ]
}

对于公司项目

{
  "repositories": [
    {
      "name": "web-app",
      "repo": "company/web-application", 
      "defaultBranch": "develop"
    },
    {
      "name": "mobile-app",
      "repo": "company/mobile-app",
      "defaultBranch": "main"
    },
    {
      "name": "api-service",
      "repo": "company/api-service",
      "defaultBranch": "master"
    }
  ]
}

🎯 默认行为

如果未找到配置,服务器将使用示例配置,并显示有用的错误信息来引导您完成设置。

📞 支持

  • 检查服务器日志中的配置加载信息
  • 使用 list_repos 验证您的配置的操作
  • 确保你的GitHub令牌具有必要的权限

准备好与您自己的仓库一起使用! 🚀 表情符号“🚀”在中文中通常被直接保留为“🚀”,因为它是一个通用的表情符号,没有直接对应的中文文字翻译。不过,有时也可以根据上下文将其意译为“火箭”、“飞速前进”或“加速”等,具体取决于使用场景。在没有具体上下文的情况下,最通用的翻译就是保留原表情符号“🚀”。