
GraphQL MCP Server

2025.03.18
4
JavaScriptGraphQL 集成API 访问强类型支持开发效率数据库
GraphQL MCP Server 是一个基于 TypeScript 的强类型 Model Context Protocol (MCP) 服务器,旨在通过 Claude AI 无缝访问任何 GraphQL API。它提供了动态 GraphQL 集成、模式自省、完整的突变支持以及查询和突变白名单等功能,适用于需要高效访问和操作 GraphQL API 的开发场景。
View on GitHub
Overview
基本能力
产品定位
GraphQL MCP Server 是一个中间件服务,旨在通过 Claude AI 无缝访问和操作任何 GraphQL API,提供强类型支持和丰富的功能集。
核心功能
- 强类型支持:基于 TypeScript 构建,提高代码质量和类型安全性。
- 动态 GraphQL 集成:自动连接到任何 GraphQL API 并生成工具。
- 模式自省:自动发现并暴露所有 GraphQL 操作作为工具。
- 完整的突变支持:支持 GraphQL 突变,并正确处理。
- 查询和突变白名单:可选的白名单功能,控制哪些 GraphQL 操作被暴露。
- 丰富的类型支持:正确处理复杂的 GraphQL 类型、输入对象和变量。
- MCP 标准兼容:遵循 Model Context Protocol 格式,实现与 Claude 的无缝集成。
- 智能查询生成:构建高效的 GraphQL 查询,并正确选择字段。
- 认证支持:简单的 API 密钥认证。
适用场景
- 需要通过 Claude AI 访问 GraphQL API 的开发项目。
- 需要强类型支持和自动工具生成的 GraphQL 集成场景。
- 需要控制哪些 GraphQL 操作被暴露的安全敏感项目。
工具列表
- graphql-mcp-server.ts:主服务器实现(TypeScript)。
- run-graphql-mcp.sh:运行服务器的脚本。
- claude_desktop_sample_config.json:Claude Desktop 的示例配置。
常见问题解答
- 如何启用突变:在环境变量中设置
ENABLE_MUTATIONS="true"
。 - 如何设置白名单:通过
WHITELISTED_QUERIES
和WHITELISTED_MUTATIONS
环境变量指定。 - 如何避免白名单格式错误:确保白名单值为字符串,而不是实际的 JSON 数组对象。
使用教程
使用依赖
- Node.js 18 或更高版本
- TypeScript 5.x 或更高版本
- Claude Desktop 支持 MCP
- GraphQL API 端点(如果未指定,默认为 Countries API)
安装教程
选项 1:从 npm 安装
# 全局安装
npm install -g graphql-mcp
# 运行服务器
graphql-mcp-server
选项 2:克隆仓库
# 克隆仓库
git clone https://github.com/ctkadvisors/graphql-mcp.git
cd graphql-mcp
# 安装依赖
npm install
# 运行服务器
npm start
调试方式
- 设置环境变量
cp .env.sample .env.development
编辑 .env.development
文件,添加你的 GraphQL API 端点和可选的 API 密钥。
- 构建和运行
npm install
npm run build
node dist/graphql-mcp-server.js
或使用提供的脚本:
./run-graphql-mcp.sh
- Claude Desktop 集成
cp claude_desktop_sample_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
编辑配置文件,更新路径以指向你的安装目录。
- 重启 Claude Desktop 以连接到服务器。