项目简介: 'gql-gen-mcp' 是一个高效的代码生成工具。它的主要功能是读取您定义的GraphQL API的schema文件,并自动生成一个基于Go语言且符合Model Context Protocol (MCP) 规范的服务器程序。这个生成的MCP服务器充当了您的GraphQL API与支持MCP协议的AI或LLM客户端之间的桥梁,使得AI应用能够轻松地通过标准协议访问和利用您的API功能。
主要功能点:
- 自动识别API能力: 工具能够解析GraphQL schema,自动识别其中定义的查询(Query)和变更(Mutation),并将它们转化为MCP协议中的“工具”(Tools)。
- 详细的工具定义: 根据GraphQL schema中的字段、参数及其描述,生成完整的MCP工具定义,包括工具的名称、用途描述以及调用所需的参数及其类型(支持字符串、数字、布尔、对象、数组和枚举等)。
- 生成API调用逻辑: 为每个生成的MCP工具自动生成Go代码,这段代码负责接收MCP客户端的请求参数,将其转换为GraphQL查询或变更请求,发送到您的GraphQL API,并处理返回结果,再以MCP工具结果的格式返回给客户端。
- 构建MCP服务器基础: 利用Go语言流行的MCP库(例如 'mark3labs/mcp-go'),生成MCP服务器的初始化和运行所需的骨架代码,默认支持Stdio传输协议。
- 简化集成流程: 大大降低了将现有或新的GraphQL API暴露给AI/LLM客户端的复杂性,通过代码生成实现了快速适配。
安装步骤:
- 确保您的系统已安装并配置了Go语言开发环境(推荐使用较新的Go版本)。
- 打开终端或命令行界面。
- 执行以下Go命令来安装'gql-gen-mcp'工具:
go install github.com/wimspaargaren/gql-gen-mcp@latest - 安装成功后,'gql-gen-mcp'命令即可在命令行中使用。
服务器配置 (为AI/LLM客户端准备):
-
首先,您需要创建一个名为 '.gql-gen-mcp.yaml' 的配置文件,告诉'gql-gen-mcp'您的GraphQL schema在哪里以及希望生成的代码放在哪里。
-
'.gql-gen-mcp.yaml' 示例内容:
schemas: - name: bookstore # 给您的MCP服务器起一个内部名称 dir: ./bookstore/graphql/definitions # 存放您 .graphql 或 .graphqls 文件的目录路径 output: ./mcp/bookstore # 生成的MCP服务器Go代码将存放的目录路径 -
运行'gql-gen-mcp'生成代码后,进入生成的目录(例如 './mcp/bookstore'),编译生成好的服务器程序(通常通过 'go build' 或 'go install .')。编译后会得到一个可执行文件(例如在Linux/macOS上是 'bookstore',在Windows上是 'bookstore.exe')。
-
您的AI/LLM客户端需要知道如何启动这个MCP服务器。客户端的配置通常是一个JSON对象,指定服务器的名称、启动命令和参数。以下是一个示例客户端配置片段:
"bookstore-api": { "command": "./path/to/your/generated/bookstore", // 替换为您实际编译生成的MCP服务器可执行文件的完整路径 "args": [] // 如果您的MCP服务器需要启动参数,在此指定,通常为空数组 // MCP服务器启动后会通过协议自身向客户端声明其提供的工具、资源能力等信息,无需在此处配置。 }请根据您的操作系统和文件位置调整 'command' 的值。
基本使用方法:
- 准备您的GraphQL API schema文件,将其放在您选择的目录中(例如 './bookstore/graphql/definitions')。
- 创建或更新项目的 '.gql-gen-mcp.yaml' 文件,按照上述“服务器配置”部分进行设置。
- 在包含 '.gql-gen-mcp.yaml' 文件的项目根目录运行 'gql-gen-mcp' 命令。
- 工具将根据配置在指定的输出目录(例如 './mcp/bookstore')生成MCP服务器的Go源代码文件。
- 进入生成的目录,编译这些源代码以创建可执行文件(例如运行 'go build')。
- 确保您的目标GraphQL API服务已经启动并可访问。
- 在支持Model Context Protocol的AI或LLM客户端中,配置一个新的MCP服务器连接,使用步骤5中编译生成的可执行文件的路径作为启动命令。
- 启动您的AI/LLM客户端。它将通过Stdio等方式与生成的MCP服务器通信,发现并利用您的GraphQL API所提供的功能。
信息
分类
开发者工具