一个模型上下文协议服务器,使LLM能够与GraphQL API进行交互。该实现提供了模式自省和查询执行功能,允许模型动态发现和使用GraphQL API。
使用正确的端点运行 mcp-graphql
,它将自动尝试自省您的查询。
注意: 从1.0.0版本开始,命令行参数已被环境变量取代。
环境变量 | 描述 | 默认值 |
---|---|---|
ENDPOINT |
GraphQL 端点 URL | http://localhost:4000/graphql |
HEADERS |
包含请求头信息的JSON字符串 | {} |
ALLOW_MUTATIONS |
启用变更操作(默认禁用) | false |
NAME |
MCP 服务器名称 | mcp-graphql |
SCHEMA |
本地GraphQL模式文件路径(可选) | - |
# 使用本地GraphQL服务器的基础用法
ENDPOINT=http://localhost:3000/graphql npx mcp-graphql
# 使用自定义请求头
ENDPOINT=https://api.example.com/graphql HEADERS='{"Authorization":"Bearer token123"}' npx mcp-graphql
# 启用变更操作
ENDPOINT=http://localhost:3000/graphql ALLOW_MUTATIONS=true npx mcp-graphql
# 使用本地模式文件而非自省
ENDPOINT=http://localhost:3000/graphql SCHEMA=./schema.graphql npx mcp-graphql

服务器提供了两个主要工具:
introspect-schema: 该工具用于检索GraphQL模式。如果您无法将模式作为资源访问,请首先使用此工具。它使用本地模式文件或自省查询。
query-graphql: 针对端点执行GraphQL查询。默认情况下,除非将 ALLOW_MUTATIONS
设置为 true
,否则禁用变更操作。
要通过 Smithery 自动为Claude Desktop安装GraphQL MCP服务器:
npx -y @smithery/cli install mcp-graphql --client claude
可以手动安装到Claude:
{
"mcpServers": {
"mcp-graphql": {
"command": "npx",
"args": ["mcp-graphql"],
"env": {
"ENDPOINT": "http://localhost:3000/graphql"
}
}
}
}

默认情况下,变更操作被禁用,作为防止LLM修改您的数据库或服务数据的安全措施。在生产环境中启用变更操作之前,请仔细考虑。
这是一个非常通用的实现,它允许完全自省,并允许用户执行任何操作(包括变更)。如果您需要更具体的实现,我建议您创建自己的MCP,并锁定工具调用,使客户端只能输入特定的查询字段和/或变量。您可以将其作为参考。