使用说明
GraphQL MCP服务器
一个轻量级的、实验性的Rust服务器,可以连接您的 GraphQL数据API 向 LLM.
非常适合 快速原型制作, 实验以及学习。
该项目提供:
- 三种集成方法:
- A1: 定制工程查询作为工具
- A2: LLM上下文中提供的完整架构 (最适合较小的模式)
- A3: 代理工具发现和查询执行
- A. 基准测试环境 测量 令牌使用、工具调用、延迟,以及 准确度
请参阅以下相关章节 基准测试 和 最佳实践.
将此MCP服务器用作 抽象层 API端点和LLM之间:
概述
该项目提供了一个用Rust实现的GraphQL MCP服务器,以及用于本地开发的测试服务器:
- 高性能 穿过铁锈。
- 模块化:使用不同的探索策略轻松连接到自定义GraphQL端点。
- 灵活的:从中选择 发现 或 完整方案 运行时的探索。
- 非常适合实验和学习:观察实时工具调用、响应和服务器行为。
服务
- graphql-mcp:主GraphQL MCP服务器。通过Docker或Cargo运行。将调用转发到指定的GraphQL端点。
- 测试graphql服务器:用于测试MCP集成的模拟GraphQL端点。
- 测试llm服务器:用于端到端原型设计和本地开发的模拟LLM服务器。
先决条件
设置和入门
1.克隆存储库
git clone https://github.com/ThoreKoritzius/graphql-mcp.git
cd graphql-mcp
2.设置环境
创建一个 .env 根目录中的文件,其中包含:
OPENAI_API_KEY=your_openai_api_key
3.带着货物跑步
运行服务器,指定GraphQL端点和探索策略:
# Discovery strategy (default)
cargo run -- --endpoint http://127.0.0.1:3000 --strategy discovery
# Fullschema strategy
cargo run -- --endpoint http://127.0.0.1:3000 --strategy fullschema
服务器将在以下位置可用: http://localhost:5001
注: 策略标志控制服务器是否使用轻量级 发现 探索者(逐场内省)或 完整方案 explorer(一次获取整个模式)。
4.(可选,轻松完整设置)或测试完整设置-使用Docker Compose运行
通过以下方式启动所有服务:
docker-compose up --build
当所有服务都在运行时,请访问 http://localhost:3000/ 用于具有实时工具调用和答案的演示聊天UI。
通过docker compose环境变量控制您的ednpoint和策略
services:
graphql-mcp:
environment:
- RUST_LOG=debug
- ENDPOINT=http://test-graphql-server:8000 # or your desired GraphQL endpoint
- STRATEGY=discovery # or 'fullschema'
用法
- 这 主服务器 (graphql-mcp)监听端口
5001默认情况下。 - 要连接您自己的LLM服务(例如,Claude、OpenAI等),请配置您的MCP客户端:
{
"mcpServers": {
"graphql_mcp": {
"url": "http://graphql-mcp-server:5001/sse"
}
}
}
- 服务器注册的工具会自动为所选策略公开:
- 发现:逐字段检查、SDL代码片段和查询执行。
- 完整方案:完成模式自检和查询执行。
配置
- 使用以下命令设置GraphQL端点
--endpoint http://your-endpoint - 选择勘探策略
--strategy discovery|fullschema - 在中设置OpenAI API密钥
.env - 外露端口:
5001(GraphQL MCP服务器)3000(演示UI)
检查器集成(可选)
要实时反思和调试MCP流量,请使用 MCP检查员:
npx @modelcontextprotocol/inspector http://localhost:5001/sse
- 选择运输类型:
SSE - 这使得MCP流量的实时自检和可视化成为可能。
工具选择蓝图
A1自定义工具
- 为常用或复杂的查询提供自定义工具
- 提供清晰的工具描述。
A2完整架构
- 在上下文中加载完整架构
- 应仅用于小模式(由于上下文大小限制和随着上下文增加而降低的准确性)
- 确保使用键值LLM缓存API来降低输入令牌成本
A3机构发现
- 通过丰富的上下文改进代理模式发现
- 使用模式的类型注释和文档。
- 包括工作查询的示例。
基准测试
三种策略的基准脚本位于 bench 文件夹。要运行基准测试,只需使用Docker Compose启动所需的服务:
docker compose up
然后运行 bench.py 脚本,它运行 dataset.csv 通过测试客户端并捕获结果和图表。
配置示例:
对于 main 和 control 服务,您可以配置以下环境变量:
services:
graphql-mcp:
environment:
- RUST_LOG=debug
- ENDPOINT=http://test-graphql-server:8000 # or your desired GraphQL endpoint
- STRATEGY=discovery # or 'fullschema'
我们使用这三种策略对服务器进行了基准测试 SpaceDevs示例架构 以及我们的基准数据集。
结果:
