gqai 是一个轻量级代理工具,旨在将任意 GraphQL 端点转换为一组 MCP(Model Context Protocol)工具,供 Claude、Cursor、ChatGPT 等 AI 模型调用。它由用户的 GraphQL 后端驱动,通过 .graphqlrc.yml 配置文件和普通的 .graphql 文件来定义工具。
主要能力:
- 使用常规的 GraphQL 查询(queries)和变更(mutations)来定义工具。
- 自动从 .graphqlrc.yml 发现操作。
- 生成的工具元数据兼容 OpenAI function calling 和 MCP。
使用方式:
- 在项目根目录创建 .graphqlrc.yml 文件,指定 GraphQL schema 端点和操作文档目录。schema 参数必须指向一个可执行操作的实时服务器,而非静态 schema 文件。
- 添加 GraphQL 操作文件,例如 get_all_films.graphql,内容为常规 GraphQL 查询。
- 在 mcp.json 文件中添加 gqai 配置,将其注册为 MCP 服务器。
- 完成配置后,AI 模型即可调用定义的工具,例如 get_all_films。
配置细节:
- .graphqlrc.yml 中的 schema 字段指定 GraphQL 端点,documents 字段指定 GraphQL 操作文件所在目录。gqai 会自动发现该目录下的 .graphql 文件中的操作。
- 可以配置请求头(headers),用于认证或其他自定义需求。
- 支持在配置中使用环境变量,语法为 ${VARNAME} 或 ${VARNAME:-default}(提供默认值)。环境变量可用于 schema URL、文档路径、include/exclude glob 模式以及请求头值等任何部分,有助于将密钥和环境相关路径排除在配置文件之外。若环境变量未设置且未提供默认值,则原样保留。
工具输入: 如果 GraphQL 操作带有参数,这些参数将作为工具的输入。例如定义 get_film_by_id.graphql 后,调用工具时传入相应参数即可执行。
适用场景:
- 希望将现有 GraphQL 后端快速暴露为 AI 可调用工具,无需编写额外代码或部署额外基础设施。
- 与 Claude Desktop 等支持 MCP 的 AI 客户端集成。
限制:
- schema 必须为实时服务器,不能是静态 schema 文件。
- 依赖 .graphqlrc.yml 和 .graphql 文件来定义操作。
- 其他未提及的功能、收费、价格、平台支持或效果暂未提供。
许可:MIT,可自由 fork 和构建。