GitHub仓库管理服务

一个强大的GitHub集成服务器,允许用户直接从Cursor IDE管理GitHub仓库,提供RESTful API与GitHub API交互。

  • by alfie-tek
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 alfie-tek/github-mcp-server

使用说明

用于Cursor IDE的GitHub MCP服务器

一个强大的GitHub集成服务器,允许您直接从Cursor IDE管理GitHub存储库。该服务器提供了一个RESTful API来与GitHub的API交互,从而更容易创建和管理存储库。

特性

  • 创建新的GitHub存储库
  • 列出现有存储库
  • 基于安全令牌的身份验证
  • 速率限制保护
  • 全面的错误处理
  • 详细日志记录
  • Webhook支持(即将推出)

先决条件

  • Node.js(v14或更高版本)
  • npm(v6或更高版本)
  • 拥有个人访问令牌的GitHub帐户
  • 光标IDE

设置

  1. 克隆此存储库:
git clone <your-repo-url>
cd github-mcp-server
  1. 安装依赖项:
npm install
  1. 创建一个 .env 根目录中的文件:
cp .env.example .env
  1. 在中配置环境变量 .env:
# Server Configuration
PORT=3000
NODE_ENV=development

# GitHub Configuration
GITHUB_TOKEN=your_github_token_here
GITHUB_WEBHOOK_SECRET=your_webhook_secret_here

# Rate Limiting
RATE_LIMIT_WINDOW_MS=900000  # 15 minutes
RATE_LIMIT_MAX_REQUESTS=100
  1. 生成GitHub个人访问令牌:

    • 转到GitHub.com→ 设置→ 开发人员设置→ 个人访问令牌→ 代币(经典)
    • 点击“生成新令牌”→ “生成新令牌(经典)”
    • 为您的令牌命名(例如“MCP服务器集成”)
    • 选择这些权限:
      • repo (完全控制私有存储库)
      • read:org (读取组织数据)
      • admin:repo_hook (完全控制存储库挂钩)
    • 复制生成的令牌并将其粘贴到您的 .env 文件
  2. 启动服务器:

npm run dev

与Cursor IDE一起使用

  1. 打开光标IDE
  2. MCP服务器将在 http://localhost:3000 默认情况下
  3. 您可以使用以下端点:

创建新存储库

curl -X POST http://localhost:3000/api/github/repos \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-new-repo",
    "description": "A new repository created via MCP",
    "private": false,
    "auto_init": true
  }'

列出您的存储库

curl http://localhost:3000/api/github/repos

API终点

GET/健康

运行状况检查端点以验证服务器状态。

GET/api/github/repos

列出经过身份验证的用户可访问的所有存储库。

POST/api/github/repos

创建新存储库。

请求正文:

{
  "name": "repository-name",
  "description": "Repository description",
  "private": false,
  "auto_init": true
}

错误处理

该服务器包括全面的错误处理功能,用于:

  • GitHub令牌无效
  • 速率限制
  • 验证错误
  • GitHub API错误
  • 服务器错误

所有错误都会被记录下来,并返回相应的HTTP状态代码。

安全功能

  • 基于令牌的身份验证
  • 速率限制保护
  • 输入验证
  • 安全的环境变量处理
  • CORS保护
  • 头盔安全头

发展

要在开发模式下运行服务器并自动重新加载,请执行以下操作:

npm run dev

要运行测试,请执行以下操作:

npm test

日志记录

日志存储在:

  • error.log:错误级别日志
  • combined.log:所有日志

贡献

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

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。