Apollo 官方推出的 Rust 实现 MCP 服务器,将 GraphQL API 转换为 AI 可调用的标准化工具,支持 Claude、Cursor 等多客户端集成,实现 LLM 与图数据的智能编排。
项目概述#
Apollo MCP Server 是 Apollo GraphQL 官方推出的高性能 MCP 服务器,使用 Rust (98.6%) 开发。它作为中间层适配器,将 GraphQL API 操作(queries、mutations)转换为符合 Model Context Protocol (MCP) 标准的工具,使 AI 模型能够以标准化方式访问和编排 API。
核心价值: 解决大语言模型难以直接理解和使用复杂 GraphQL API 的问题,避免为每个 AI 平台定制开发专用集成。
核心功能#
- GraphQL 到 MCP 转换: 将 GraphQL 操作自动映射为 MCP Tool 定义
- 多操作源支持: Operation Collections、Uplink manifests、本地文件、直接定义
- 多客户端兼容: Claude Desktop、Claude Code、Cursor、Goose、Cline、Windsurf、OpenCode
- 内置自省工具: execute、introspect、search、validate 四种工具,支持可配置提示文本
- 安全机制: Host header 验证防止 DNS rebinding 攻击,支持多种认证方式
- 可观测性: 可配置的 metrics 导出间隔,支持 OpenTelemetry
- 协议版本协商: 根据 MCP 协议版本动态启用 outputSchema 和 structuredContent
- 自定义配置: 支持自定义服务器元数据和工具描述
快速开始#
前置要求: Rover CLI v0.37+、Node.js v18+、MCP 兼容客户端
初始化项目:
rover init --mcp
运行服务器:
rover dev --supergraph-config supergraph.yaml --mcp .apollo/mcp.local.yaml
验证服务器:
npx @modelcontextprotocol/inspector http://127.0.0.1:8000/mcp --transport http
Docker 部署:
docker build -f mcp.Dockerfile -t my-mcp-server .
docker run -p 4000:4000 -p 8000:8000 \
-e APOLLO_KEY=$APOLLO_KEY \
-e APOLLO_GRAPH_REF=$APOLLO_GRAPH_REF \
-e MCP_ENABLE=1 \
my-mcp-server
配置示例#
服务器元数据:
server_info:
name: "Acme Corp GraphQL Server"
version: "2.0.0"
title: "Acme MCP Server"
website_url: "https://acme.com/mcp-docs"
自定义工具描述:
overrides:
descriptions:
GetAlerts: "Get active weather alerts for a US state"
安全配置:
transport:
type: streamable_http
host_validation:
enabled: true
allowed_hosts:
- mcp.example.com
架构特点#
- 核心语言: Rust (98.6%),高性能与内存安全
- 依赖库: rmcp (v0.14+) 底层 MCP 协议实现
- Apollo Router 集成: 作为扩展或独立进程运行
- Transport Layer: Streamable HTTP 传输,支持 SSE Resumability
适用场景#
- 企业级 AI 助手集成内部 GraphQL 微服务
- AI 智能编排多个 API 调用的复杂业务流程
- 构建支持多客户端的统一 AI 工具网关
- 快速原型开发和本地开发测试