GraphQL MCP 服务器
强类型的 TypeScript 模型上下文协议 (MCP) 服务器,可通过 Claude AI 无缝访问任何 GraphQL API。
特征
强类型:使用 TypeScript 构建,以提高代码质量和类型安全性
动态 GraphQL 集成:通过自动工具生成连接到任何 GraphQL API
Schema Introspection :自动发现并公开所有 GraphQL 操作作为工具
全面支持变异:通过适当的处理为 GraphQL 变异提供一流的支持
查询和变异白名单:可选白名单,用于控制哪些 GraphQL 操作可以公开
丰富的类型支持:正确处理复杂的 GraphQL 类型、输入对象和变量
符合 MCP 标准:遵循模型上下文协议格式,实现无缝 Claude 集成
智能查询生成:通过适当的字段选择构建高效的 GraphQL 查询
身份验证支持:简单的 API 密钥身份验证
Related MCP server: API Tester MCP Server
存储库结构
先决条件
Node.js 18 或更高版本
TypeScript 5.x 或更高版本
支持 MCP 的 Claude Desktop
GraphQL API 端点(如果未指定,则默认为国家/地区 API)
安装
选项 1:从 npm
选项 2:克隆存储库
快速入门
1.设置环境变量
复制示例环境文件并使用您的 GraphQL API 详细信息进行更新:
使用您的 GraphQL API 端点和可选 API 密钥编辑.env.development 。
2. 构建并运行
首先编译 TypeScript 代码:
然后运行服务器:
或者使用提供的脚本,一步编译并运行:
3. Claude 桌面集成
将此服务器添加到您的 Claude Desktop 配置中:
使用示例配置作为模板:
cp claude_desktop_sample_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json编辑配置并更新路径以指向您的安装:
{ "mcpServers": { "graphql": { "command": "node", "args": ["/absolute/path/to/dist/graphql-mcp-server.js"], "env": { "GRAPHQL_API_ENDPOINT": "https://your-graphql-api.com/graphql", "GRAPHQL_API_KEY": "your-api-key-if-needed", "WHITELISTED_QUERIES": "[\"countries\",\"continent\",\"languages\"]" } } } }重启Claude Desktop以连接到服务器
您现在应该看到 GraphQL 操作是 Claude Desktop 中可用的工具!
白名单操作
出于安全或性能方面的考虑,你可能需要限制向 Claude 公开的 GraphQL 操作(查询和修改)。控制访问有两种方法:
启用/禁用突变:默认情况下,出于安全考虑,所有突变均处于禁用状态。要启用突变,请执行以下操作:
操作白名单:您可以指定哪些特定操作可用:
白名单可以采用两种格式指定:
作为 JSON 数组字符串(如上所示):
"[\"query1\",\"query2\"]"以逗号分隔的列表:
"query1,query2,query3"
重要提示:白名单值必须是字符串,而不是实际的 JSON 数组对象。环境变量始终以字符串形式传递,因此您需要正确转义 JSON 字符串中的引号,如上所示。
Claude Desktop 配置中正确格式的示例:
应避免的常见错误:
如果没有为特定操作类型提供白名单,则 GraphQL 模式中该类型的所有操作都将可用。
示例用法
查询数据
一旦连接到 Claude Desktop,您可以使用以下命令:
或者使用参数:
使用变异
对于突变,工具以mutation_为前缀,以区别于查询:
或者更复杂的突变:
变异遵循与查询相同的模式,但允许您修改 GraphQL API 中的数据。
文档
有关详细信息,请参阅:
发展
要对服务器进行更改:
修改
src/graphql-mcp-server.ts中的 TypeScript 源编译 TypeScript 代码:
npm run build运行编译后的服务器:
node dist/graphql-mcp-server.js
发布到 npm
要将此包发布到 npm:
该包将包含dist目录中预先构建的 JavaScript 文件,无需额外的构建步骤即可使用。
执照
该项目根据商业源许可证 1.1(BSL 1.1)获得许可,该许可证允许:
非商业用途:您可以将本软件用于任何非商业用途
内部业务使用:您可以将本软件用于内部业务运营,不得将其作为托管或管理服务提供给第三方
开源转换:2029年3月14日,代码将自动转换为MIT许可证
商业使用(包括将此软件作为服务提供给他人)需要获得 CTK Advisors 的商业许可。如需了解更多信息,请联系我们或查看完整的许可文件。
BSL 许可证旨在平衡开源可用性和可持续商业开发,让每个人都可以免费访问非商业用途,同时保护我们长期支持和增强软件的能力。