GitHub MCP Server 使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在通过标准化的 MCP 协议,向 LLM 客户端提供访问 GitHub API 的能力。它允许 LLM 应用安全、便捷地获取 GitHub 上的用户信息、仓库信息等,从而扩展 LLM 的上下文理解和功能。

主要功能点

  • 获取用户信息 (get_user_info): 根据 GitHub 用户名查询并返回用户的详细信息。
  • 获取仓库信息 (get_repo_info): 根据仓库所有者和仓库名查询并返回仓库的详细信息。
  • 获取认证用户信息 (get_authenticated_user): 获取当前认证用户的详细信息 (需要配置 GitHub Token)。

安装步骤

  1. 安装 Python 依赖: 确保你的 Python 环境已安装 'python-dotenv', 'httpx', 和 'mcp-server' 库。如果未安装,请使用 pip 命令安装:
    pip install python-dotenv httpx mcp-server
  2. 配置 GitHub Token:
    • 在 GitHub 上创建一个 Personal Access Token,并赋予 'public_repo' 权限 (根据你的实际需求可能需要更多权限)。
    • 在项目根目录下创建 '.env' 文件,并添加以下内容,将 '<YOUR_GITHUB_TOKEN>' 替换为你创建的 Token:
      GITHUB_TOKEN=<YOUR_GITHUB_TOKEN>

服务器配置

MCP 客户端需要配置以下 JSON 信息才能连接到 GitHub MCP Server:

{
  "server_name": "github",  // 服务器名称,与 FastMCP 初始化时指定的名称一致
  "command": "python",      // 启动服务器的命令,这里使用 python 解释器
  "args": ["main.py"],     // 启动服务器的参数,指定执行 main.py 文件
  "transport": "stdio"      // 使用 stdio 作为传输协议,与 mcp.run(transport="stdio") 一致
}

配置说明:

  • 'server_name': 服务器的唯一标识符,这里设置为 "github",与 'FastMCP("github")' 初始化时保持一致。
  • 'command': 运行服务器端代码的命令,通常是 Python 解释器 'python'。
  • 'args': 传递给 'command' 的参数,这里指定运行 'main.py' 文件。
  • 'transport': MCP 服务器使用的传输协议,这里配置为 'stdio',与代码中 'mcp.run(transport="stdio")' 相匹配。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行 'python main.py' 命令启动 MCP 服务器。服务器将在控制台输出 "Running MCP server for GitHub!",并在后台等待客户端连接和请求。

  2. 客户端调用工具: MCP 客户端 (例如 LLM 应用) 可以使用配置好的 JSON 信息连接到 GitHub MCP Server。连接成功后,客户端可以发送 JSON-RPC 请求来调用服务器提供的工具,例如:

    • 调用 'get_user_info' 获取用户信息: 客户端发送请求调用 'get_user_info' 工具,并提供 'username' 参数。服务器会调用 GitHub API 获取用户信息并返回 JSON-RPC 响应。

    • 调用 'get_repo_info' 获取仓库信息: 客户端发送请求调用 'get_repo_info' 工具,并提供 'owner' 和 'repo' 参数。服务器会调用 GitHub API 获取仓库信息并返回 JSON-RPC 响应。

    • 调用 'get_authenticated_user' 获取认证用户信息: 客户端发送请求调用 'get_authenticated_user' 工具。服务器会调用 GitHub API 获取认证用户信息并返回 JSON-RPC 响应 (需要正确配置 GitHub Token)。

    具体 JSON-RPC 请求和响应格式请参考 MCP 协议文档。客户端需要根据 MCP 协议规范构造请求,并解析服务器返回的响应。

信息

分类

开发者工具