项目简介

MCP GitHub Issue Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它扩展了 LLM 的能力,使其能够利用 GitHub issue 作为任务描述的来源。通过此服务器,LLM 可以获取指定 GitHub issue 的标题和内容,并将其用作执行任务的上下文信息。

主要功能点

  • 获取 GitHub Issue 详情: 提供 'get_issue_task' 工具,允许 LLM 客户端通过 issue URL 获取 issue 的标题、描述和来源链接。
  • 无需认证访问公共仓库: 可以获取公共 GitHub 仓库的 issue 信息,无需进行身份验证。
  • 结构化数据返回: 返回结构化的 JSON 数据,方便 LLM 理解和使用 issue 信息。
  • 兼容 MCP 协议: 完全遵循 MCP 协议规范,可以与任何兼容 MCP 协议的 LLM 客户端配合使用。

安装步骤

  1. 确保 Node.js 和 npm 已安装: 如果您的系统尚未安装 Node.js 和 npm,请先安装。
  2. 手动安装: 在终端中运行以下命令即可安装并运行 MCP GitHub Issue Server:
    npx mcp-github-issue
    或者,您也可以选择使用 Smithery 进行安装,以便与 Claude Desktop 等客户端自动集成:
    npx -y @smithery/cli install mcp-github-issue --client claude

服务器配置

要将 MCP GitHub Issue Server 集成到 MCP 客户端,您需要在客户端的 MCP 配置中添加以下服务器配置信息。以下是一个 JSON 格式的配置示例,通常在客户端的配置文件(例如 'mcp.config.json')中进行配置:

{
  "mcpServers": {
    "github-issue": {  // 服务器名称,客户端通过此名称引用该服务器
      "command": "npx", // 启动服务器的命令,这里使用 npx 来运行 npm 包
      "args": ["mcp-github-issue"] // 命令参数,这里指定要运行的 npm 包为 mcp-github-issue
    }
  }
}

配置说明:

  • '"github-issue"': 是您为该 MCP 服务器定义的名称,在客户端调用工具时会使用此名称。您可以自定义此名称。
  • '"command": "npx"' 和 '"args": ["mcp-github-issue"]': 指定了启动 MCP 服务器的命令。'npx mcp-github-issue' 会执行安装在 npm 包中的 'mcp-github-issue' 命令,从而启动服务器。

基本使用方法

  1. 启动 MCP GitHub Issue Server: 根据上述安装和配置步骤启动服务器。

  2. 在 LLM 客户端中使用 'get_issue_task' 工具: 在支持 MCP 协议的 LLM 客户端中,您可以使用 '<use_mcp_tool>' 标签来调用 'github-issue' 服务器的 'get_issue_task' 工具。以下是一个使用示例:

    <use_mcp_tool>
    <server_name>github-issue</server_name>
    <tool_name>get_issue_task</tool_name>
    <arguments>
    {
      "url": "https://github.com/owner/repo/issues/123"  //  替换为实际的 GitHub issue URL
    }
    </arguments>
    </use_mcp_tool>

    将 '<arguments>' 中的 'url' 替换为您想要获取的 GitHub issue 的实际 URL。LLM 客户端会将此请求发送到 MCP GitHub Issue Server,服务器会返回包含 issue 标题、描述和来源链接的 JSON 格式响应。

    响应示例:

    {
      "task": {
        "title": "Issue Title",
        "description": "Issue Description/Body",
        "source": "https://github.com/owner/repo/issues/123"
      }
    }

    LLM 可以解析此响应,并使用 'task' 对象中的信息作为上下文来执行后续任务。

信息

分类

开发者工具