项目简介
gqai 是一个轻量级代理,它将您的 GraphQL 后端操作(查询和变更)暴露为 Model Context Protocol (MCP) 工具,供大型语言模型(LLM)客户端(如 Claude, Cursor, ChatGPT 等)使用。通过简单的配置文件定义工具,无需编写额外的代码,即可将现有的 GraphQL 服务转化为AI可理解和调用的能力层。
主要功能点
- GraphQL操作转工具: 直接使用标准的 '.graphql' 文件定义查询和变更,gqai 会自动将它们识别并封装成AI工具。
- 自动发现工具: 基于 '.graphqlrc.yml' 文件配置的文档路径,gqai 可以自动扫描并发现所有可用的GraphQL操作,生成对应的工具定义。
- 兼容AI函数调用: 生成的工具定义 metadata 兼容 OpenAI 函数调用及 MCP 规范,方便与主流LLM模型集成。
- 多种服务模式: 支持通过标准输入输出(Stdio)作为 MCP 服务器运行,也支持 HTTP 服务模式进行测试和集成。
安装步骤
gqai 使用 Go 语言编写,可以通过 Go 命令轻松安装:
go install github.com/fotoetienne/gqai@latest
确保您的 Go 环境已正确配置,并且 '$GOPATH/bin' 或 '$GOBIN' 路径已添加到系统的 PATH 环境变量中,以便可以直接运行 'gqai' 命令。
服务器配置 (供 MCP 客户端使用)
gqai 作为 MCP 服务器运行时,通常通过标准输入输出(Stdio)与 MCP 客户端通信。LLM 客户端(如 Claude Desktop)需要知道如何启动 gqai 服务器进程。这通常在客户端的 MCP 配置文件中指定,例如一个 'mcp.json' 文件。
以下是 MCP 客户端配置 gqai 的关键信息:
- Server Name: 'gqai' (这是一个标识符,您可以在客户端配置中自定义)
- Command: 'gqai' (用于启动 gqai 可执行文件的命令)
- Arguments: 'run', '--config', 后接 '.graphqlrc.yml' 配置文件的路径 (传递给 'gqai' 命令的参数,'run' 启动 MCP 服务器模式,'--config' 指定 GraphQL 配置文件的位置)。
例如,在 MCP 客户端的配置中,您需要添加类似以下内容的配置项(请注意:这里仅说明配置内容,具体格式取决于您的MCP客户端):
配置项名称 (例如 "gqai") - 启动命令: 'gqai' - 命令参数列表: - 'run' - '--config' - '.graphqlrc.yml' (或其他您的 GraphQL 配置文件的路径)
这个配置告诉 MCP 客户端:要使用名为 "gqai" 的 MCP 服务器,请执行命令 'gqai run --config .graphqlrc.yml'。
基本使用方法
- 创建 GraphQL 配置文件: 在您的项目根目录创建 '.graphqlrc.yml' 文件,指定您的 GraphQL API 端点(schema)和存放 GraphQL 操作文件的目录(documents)。
schema: https://graphql.org/graphql/ # 您的GraphQL API地址 documents: ./operations # 存放.graphql文件的目录 - 定义 GraphQL 操作: 在 'documents' 指定的目录下创建 '.graphql' 文件,编写您想暴露为工具的查询(query)或变更(mutation)。操作的名称将成为工具的名称。
变量 ('$id: ID!') 会被gqai自动转换为工具的输入参数,并生成对应的 JSON Schema。# operations/get_film_by_id.graphql # 获取指定ID的电影信息 query GetFilm($id: ID!) { film(filmID: $id) { episodeID title director releaseDate } } - 配置 MCP 客户端: 按照上一节“服务器配置”的说明,在您的 MCP 客户端(如 Claude Desktop)的配置文件 ('mcp.json' 等)中添加 gqai 的启动配置。
- 运行 MCP 客户端: 启动您的 MCP 客户端。客户端会自动启动 gqai 作为其上下文服务器,并发现定义在 '.graphql' 文件中的工具(例如 'GetFilm')。
- 通过 AI 使用工具: LLM 模型现在可以通过函数调用机制来调用您暴露的 GraphQL 工具,例如根据用户的请求调用 'GetFilm' 工具并提供电影 ID。
您也可以使用 gqai 提供的 CLI 命令进行测试,例如列出工具:
gqai --config .graphqlrc.yml tools/list
或调用工具:
gqai --config .graphqlrc.yml tools/call GetFilm '{"id": "1"}'
信息
分类
AI与计算