使用说明
通用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 设置
-
生成个人访问令牌:
- 前往GitHub → 设置 → 开发者设置 → 个人访问令牌
- 使用(以下方式)生成新令牌
repo权限
-
将令牌设置为环境变量:
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令牌具有必要的权限
准备好与您自己的仓库一起使用! 🚀 表情符号“🚀”在中文中通常被直接保留为“🚀”,因为它是一个通用的表情符号,没有直接对应的中文文字翻译。不过,有时也可以根据上下文将其意译为“火箭”、“飞速前进”或“加速”等,具体取决于使用场景。在没有具体上下文的情况下,最通用的翻译就是保留原表情符号“🚀”。