mcp-graphql 是一个 Model Context Protocol(MCP)服务器,用于让大语言模型(LLM)与 GraphQL API 进行交互。该实现提供模式自省和查询执行能力,允许模型动态发现并使用 GraphQL API。
用途与定位 该项目充当 LLM 与 GraphQL 服务之间的桥梁:以正确端点运行 mcp-graphql 后,它会自动尝试对查询进行自省,使模型能够了解可用的 GraphQL schema 并执行查询。
主要能力
- 模式自省:将 GraphQL schema 作为客户端可访问的资源暴露出来,来源可以是本地 schema 文件、托管在 URL 上的 schema 文件,或基于自省查询生成。
- 查询执行:提供 query-graphql 工具,针对配置的端点执行 GraphQL 查询。
- 两个主要工具:introspect-schema 用于获取 GraphQL schema(在没有以资源形式访问 schema 时首先使用);query-graphql 用于执行 GraphQL 查询。
使用方式
- 环境变量:自 1.0.0 版本起,命令行参数已被环境变量取代,属于破坏性变更。graphql-schema 用于指定 schema 来源(本地文件、远程 URL 或自省查询)。
- 安装:可通过 Smithery 自动为 Claude Desktop 安装 GraphQL MCP Server;也可手动安装到 Claude。
- 安全默认值:mutations 默认被禁用,除非将 ALLOW_MUTATIONS 设置为 true。
适用场景
- 让 LLM 动态发现和使用 GraphQL API。
- 在需要时先自省 schema,再针对端点执行只读查询。
限制与安全考虑
- 默认禁用 mutations,作为一项安全措施,防止 LLM 修改数据库或服务数据;在生产环境中启用 mutations 前应审慎考虑。
- 该实现非常通用,允许完整自省和用户进行包括 mutations 在内的任意操作;若需要更具体的实现,建议自行创建 MCP,并将客户端的工具调用锁定为仅能输入特定查询字段和/或变量,可将此项目作为参考。