项目简介
这是一个基于Model Context Protocol (MCP) 构建的工具,旨在使大模型客户端(如支持MCP的AI助手)能够方便、高效地查询和利用 GitHub GraphQL API。它作为一个MCP服务器运行,为大模型提供标准化的接口来探索GitHub的数据和结构。
主要功能点
- 高效访问GitHub数据: 利用GraphQL按需获取数据,减少冗余信息,降低大模型的Token消耗。
- 探索API结构: 提供工具查询GitHub GraphQL API的Schema结构、根类型(Query/Mutation)、特定类型及字段文档。
- 执行GraphQL查询: 允许大模型直接构造和执行复杂的GraphQL查询,获取仓库、Issue、用户、PR等信息。
- 简化复杂操作: 将GitHub API的调用封装为易于理解和使用的工具,方便大模型调用。
安装步骤
- 克隆仓库: 打开终端,执行以下命令下载项目代码:
git clone https://github.com/wanzunz/github_graphql_api_mcp.git cd github_graphql_api_mcp - 安装依赖: 建议使用Poetry进行依赖管理。
- 如果您未安装Poetry,请先安装:'curl -sSL https://install.python-poetry.org | python3 -'
- 安装项目依赖并激活虚拟环境:'poetry install' 然后 'poetry shell'
- 如果您不使用Poetry,也可以使用pip:'python -m venv .venv' -> 激活虚拟环境 (Linux/MacOS: 'source .venv/bin/activate', Windows: '.venv\Scripts\activate') -> 'pip install -e .'
- 配置GitHub Token:
- 复制'.env.example'文件并重命名为'.env':'cp .env.example .env'
- 编辑新创建的'.env'文件,将 'your_github_token_here' 替换为您自己的GitHub个人访问Token。请确保您的Token具有必要的权限。注意:不要将'.env'文件提交到版本控制。
服务器配置(供MCP客户端使用)
此MCP服务器需要由您的MCP客户端(如Claude Desktop等)启动和管理。您需要在客户端的MCP服务器配置中添加本工具的启动信息。
配置信息通常是一个JSON对象,包含服务器名称、启动命令及其参数。您需要根据您的系统环境找到正确的Python解释器路径和项目路径。
- 'command': 指向您安装了项目依赖的Python解释器完整路径。例如 '/usr/bin/python3', '/opt/miniconda3/bin/python' 或 '.venv/bin/python'。
- 'args': 启动脚本的参数列表。通常包含 '--directory' 参数指向项目根目录,以及 'run' 命令和脚本文件名 'github_graphql_api_mcp_server.py'。
您需要在您的MCP客户端设置中找到对应的配置位置,并填入类似于以下结构的信息(请替换为您的实际路径):
{ "mcpServers": { "github_mcp": { "command": "您的Python解释器路径", "args": [ "--directory", "您的项目根目录路径", "run", "github_graphql_api_mcp_server.py" ] } } }
配置完成后,您就可以通过客户端启动并连接到此MCP服务器了。
基本使用方法
连接成功后,您可以通过与大模型交互来使用本工具提供的功能。大模型会根据您的需求和工具说明,选择并调用相应的工具。
本服务器提供的工具包括:
- 'graphql_schema_root_type': 查询GitHub GraphQL API的根类型('QUERY' 或 'MUTATION')的文档。
- 使用示例: 让大模型使用此工具查询 'QUERY' 根类型的文档,了解可以进行哪些顶级查询。
- 'graphql_schema_type': 查询GitHub GraphQL Schema中特定类型(如 'Repository', 'User' 等)的详细文档。
- 使用示例: 当需要查询仓库信息时,让大模型使用此工具查询 'Repository' 类型的文档,了解该类型有哪些字段。
- 'print_type_field': 查询GitHub GraphQL Schema根类型下特定字段(如 'QUERY' 下的 'repository' 字段)的详细文档,包括参数和返回类型。
- 使用示例: 在了解到 'QUERY' 类型下有 'repository' 字段后,让大模型使用此工具查询 'QUERY' 类型的 'repository' 字段详情,了解如何通过它查询仓库。
- 'call_github_graphql': 执行实际的GitHub GraphQL查询。
- 使用示例: 在通过上述工具了解了Schema结构后,让大模型构造一个GraphQL查询语句(例如查询某个仓库的名称和星标数),然后使用此工具执行该查询。
通过这些工具,大模型可以像探索文档一样理解GitHub GraphQL API,并能构建精确的查询来获取所需数据。
信息
分类
AI与计算