返回市场
GitHub项目MCP服务器

GitHub项目MCP服务器

作者:Arclio27 星标更新:2025-05-23

项目介绍

GitHub Projects V2 MCP 服务器

这是一个模型上下文协议(MCP)服务器,提供了通过Claude和其他MCP客户端管理GitHub Projects V2的工具。此服务器使用GitHub GraphQL API与GitHub Projects V2进行交互。

功能

  • 列出并查看用户和组织的GitHub Projects V2
  • 获取项目字段和项目项(问题、PR、草稿问题)
  • 创建问题并将它们添加到项目中
  • 直接在项目中创建草稿问题
  • 更新项目项字段值
  • 从项目中删除项目项

使用方法

此服务器可以与任何MCP客户端一起使用,例如Claude Desktop。将其添加到您的MCP客户端配置中(例如,claude_desktop_config.json)。

方案1:使用已发布的包

以下是一个使用uvx作为命令运行器的配置示例:

{
  "mcpServers": {
    "github-projects": {
      "command": "uvx",
      "args": [
        "mcp-github-projects"
      ],
      "env": {
        "GITHUB_TOKEN": "your_pat_here"
      }
    }
  }
}

确保将your_pat_here替换为您实际的GitHub个人访问令牌。

方案2:从源代码运行

要直接从源代码运行项目,请按照以下步骤操作:

设置

  1. 克隆仓库:

    git clone git@github.com:Arclio/github-projects-mcp.git
    cd github-projects-mcp
    
  2. 创建并激活虚拟环境:

    uv venv
    source venv/bin/activate
    
  3. 安装依赖项:

    uv pip install -e .
    
  4. 将您的GitHub令牌设置为环境变量:

    创建一个GitHub个人访问令牌,并赋予其必要的权限。 所需的权限是:repoprojectread:org

    运行以下命令后,在您的.env文件中添加该令牌:

    cp .env.example .env
    

    然后在您的.env文件中添加以下内容:

    export GITHUB_TOKEN=your_personal_access_token
    

从源代码使用

当从源代码使用时,配置您的MCP客户端如下:

{
  "mcpServers": {
    "github-projects": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/github-projects-mcp",
        "run",
        "m

确保将/path/to/github-projects-mcpyour_pat_here替换为您实际的仓库路径和GitHub个人访问令牌。

可用工具

  • list_projects:列出给定组织或用户的GitHub Projects V2
  • get_project_fields:获取GitHub Project V2中的可用字段
  • get_project_items:获取GitHub Project V2中的项目项(支持按状态或自定义单选字段过滤)
  • create_issue:创建新的GitHub问题
  • add_issue_to_project:将现有的GitHub问题添加到Project V2
  • update_project_item_field:更新项目项的字段值
  • create_draft_issue:直接在GitHub Project V2中创建草稿问题
  • delete_project_item:从GitHub Project V2中删除项目项

请参阅服务器代码中的工具文档以获取详细的使用信息。

开发

该项目的结构如下:

  • src/github_projects_mcp/:主包目录
    • server.py:带有工具定义的MCP服务器实现
    • github_client.py:用于GitHub API交互的GraphQL客户端

要贡献,请确保:

  1. 为所有GraphQL操作添加适当的错误处理
  2. 为所有函数和参数添加类型注解
  3. 在添加新工具或功能时更新文档