apollo-mcp-server

Kết nối các tác nhân AI với API GraphQL thông qua Giao thức Ngữ cảnh Mô hình (Model Context Protocol) với các công cụ nội quan và thao tác tích hợp. Hiển thị các thao tác GraphQL dưới dạng công cụ MCP; hỗ trợ ba nguồn thao tác: tệp cục bộ, bộ sưu tập GraphOS Studio và tệp kê khai truy vấn đã lưu. Cung cấp bốn công cụ nội quan (introspect, search, validate, execute) để khám phá lược đồ và kiểm tra truy vấn tùy chỉnh; chế độ thu nhỏ giảm mức sử dụng token với ký hiệu nhỏ gọn. Xác thực có thể cấu hình qua tiêu đề tĩnh,...

npx skills add https://github.com/apollographql/skills --skill apollo-mcp-server

Apollo MCP Server Guide

Apollo MCP Server exposes GraphQL operations as MCP tools, enabling AI agents to interact with GraphQL APIs through the Model Context Protocol.

Quick Start

Step 1: Install

# Linux / MacOS
curl -sSL https://mcp.apollo.dev/download/nix/latest | sh

# Windows
iwr 'https://mcp.apollo.dev/download/win/latest' | iex

Step 2: Configure

Create config.yaml in your project root:

# config.yaml
transport:
  type: streamable_http
schema:
  source: local
  path: ./schema.graphql
operations:
  source: local
  paths:
    - ./operations/
introspection:
  introspect:
    enabled: true
  search:
    enabled: true
  validate:
    enabled: true
  execute:
    enabled: true

Start the server:

apollo-mcp-server ./config.yaml

The MCP endpoint is available at http://127.0.0.1:8000/mcp (streamable_http defaults: address 127.0.0.1, port 8000). The GraphQL endpoint defaults to http://localhost:4000/ — override with the endpoint key if your API runs elsewhere.

Step 3: Connect

Add to your MCP client configuration:

Streamable HTTP (recommended):

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "graphql-api": {
      "command": "npx",
      "args": ["mcp-remote", "http://127.0.0.1:8000/mcp"]
    }
  }
}

Claude Code:

claude mcp add graphql-api -- npx mcp-remote http://127.0.0.1:8000/mcp

Stdio (client launches the server directly):

Claude Desktop (claude_desktop_config.json) or Claude Code (.mcp.json):

{
  "mcpServers": {
    "graphql-api": {
      "command": "./apollo-mcp-server",
      "args": ["./config.yaml"]
    }
  }
}

Built-in Tools

Apollo MCP Server provides four introspection tools:

ToolPurposeWhen to Use
introspectExplore schema types in detailNeed type definitions, fields, relationships
searchFind types in schemaLooking for specific types or fields
validateCheck operation validityBefore executing operations
executeRun ad-hoc GraphQL operationsTesting or one-off queries

Defining Custom Tools

MCP tools are created from GraphQL operations. Three methods:

1. Operation Files (Recommended)

operations:
  source: local
  paths:
    - ./operations/

Each file must contain exactly one operation. Each named operation becomes an MCP tool.

# operations/GetUser.graphql
query GetUser($id: ID!) {
  user(id: $id) {
    id
    name
    email
  }
}
# operations/CreateUser.graphql
mutation CreateUser($input: CreateUserInput!) {
  createUser(input: $input) {
    id
    name
  }
}

2. Operation Collections

operations:
  source: collection
  id: your-collection-id

Use GraphOS Studio to manage operations collaboratively.

3. Persisted Queries

operations:
  source: manifest
  path: ./persisted-query-manifest.json

For production environments with pre-approved operations.

Reference Files

Detailed documentation for specific topics:

Key Rules

Security

  • Never expose sensitive operations without authentication
  • Use headers configuration for API keys and tokens
  • Disable introspection tools in production (they are disabled by default)
  • Set overrides.mutation_mode: explicit to require confirmation for mutations

Authentication

# Static header
headers:
  Authorization: "Bearer ${env.API_TOKEN}"

# Dynamic header forwarding
forward_headers:
  - x-forwarded-token

# OAuth (streamable_http transport)
transport:
  type: streamable_http
  auth:
    servers:
      - https://auth.example.com/.well-known/openid-configuration
    audiences:
      - https://api.example.com

Token Optimization

Enable minification to reduce token usage:

introspection:
  introspect:
    minify: true
  search:
    minify: true

Minified output uses compact notation:

  • T = type, I = input, E = enum
  • s = String, i = Int, b = Boolean, f = Float, d = ID
  • ! = required, [] = list

Mutations

Control mutation behavior via the overrides section:

overrides:
  mutation_mode: all       # Execute mutations directly
  # mutation_mode: explicit  # Require explicit confirmation
  # mutation_mode: none      # Block all mutations (default)

Common Patterns

GraphOS Cloud Schema

# schema.source defaults to uplink — can be omitted when graphos is configured
graphos:
  apollo_key: ${env.APOLLO_KEY}
  apollo_graph_ref: my-graph@production

Local Development

transport:
  type: streamable_http
schema:
  source: local
  path: ./schema.graphql
introspection:
  introspect:
    enabled: true
  search:
    enabled: true
  validate:
    enabled: true
  execute:
    enabled: true
overrides:
  mutation_mode: all

Production Setup

transport:
  type: streamable_http
endpoint: https://api.production.com/graphql
operations:
  source: manifest
  path: ./persisted-query-manifest.json
graphos:
  apollo_key: ${env.APOLLO_KEY}
  apollo_graph_ref: ${env.APOLLO_GRAPH_REF}
headers:
  Authorization: "Bearer ${env.API_TOKEN}"
health_check:
  enabled: true

Docker

transport:
  type: streamable_http
  address: 0.0.0.0
  port: 8000
endpoint: ${env.GRAPHQL_ENDPOINT}
graphos:
  apollo_key: ${env.APOLLO_KEY}
  apollo_graph_ref: ${env.APOLLO_GRAPH_REF}
health_check:
  enabled: true

Ground Rules

  • ALWAYS configure authentication before exposing to AI agents
  • ALWAYS use mutation_mode: explicit or mutation_mode: none in shared environments
  • NEVER expose introspection tools with write access to production data
  • PREFER operation files over ad-hoc execute for predictable behavior
  • PREFER streamable_http transport for remote and multi-client deployments
  • USE stdio only when the MCP client launches the server process directly
  • USE GraphOS Studio collections for team collaboration

Thêm skills từ apollographql

apollo-client
apollographql
Apollo Client là một thư viện quản lý trạng thái toàn diện cho JavaScript, cho phép bạn quản lý cả dữ liệu cục bộ và từ xa với GraphQL. Phiên bản 4.x mang lại cải tiến về bộ nhớ đệm, hỗ trợ TypeScript tốt hơn và tương thích với React 19.
official
apollo-client
apollographql
Hướng dẫn toàn diện để xây dựng ứng dụng React với Apollo Client 4.x, bao gồm truy vấn, thay đổi dữ liệu, bộ nhớ đệm và quản lý trạng thái. Hỗ trợ nhiều framework và thiết lập React: ứng dụng phía client (Vite, CRA), Next.js App Router với React Server Components, React Router 7 với streaming SSR, và TanStack Start. Bao gồm các hooks cho truy vấn (useQuery, useLazyQuery), thay đổi dữ liệu (useMutation) và các mẫu dựa trên Suspense (useSuspenseQuery, useBackgroundQuery) cho React 18+ và 19 hiện đại...
official
apollo-connectors
apollographql
Tích hợp REST API vào siêu đồ thị GraphQL bằng cách sử dụng các chỉ thị @source và @connect. Cung cấp quy trình 5 bước có cấu trúc: nghiên cứu cấu trúc API, triển khai lược đồ với các chỉ thị, xác thực qua rover supergraph compose, thực thi các kết nối và kiểm tra phạm vi bao phủ. Hỗ trợ cấu hình yêu cầu bao gồm tiêu đề, tải trọng nội dung, xử lý hàng loạt cho các mẫu N+1 và tiêm biến môi trường qua $env. Xử lý ánh xạ phản hồi với lựa chọn trường, bí danh, lựa chọn phụ cho dữ liệu lồng nhau và thực thể...
official
apollo-federation
apollographql
Apollo Federation cho phép kết hợp nhiều API GraphQL (subgraph) thành một siêu đồ thị thống nhất.
official
apollo-ios
apollographql
Apollo iOS là một trình khách GraphQL có kiểu mạnh dành cho các nền tảng Apple. Nó tạo ra các kiểu Swift từ các thao tác và lược đồ GraphQL của bạn, đồng thời cung cấp một trình khách async/await, bộ nhớ đệm chuẩn hóa (trong bộ nhớ hoặc dùng SQLite), một lớp truyền tải HTTP dựa trên interceptor có thể cắm thêm để xử lý các truy vấn, biến đổi và đăng ký đa phần, cùng với một lớp truyền tải WebSocket tùy chọn (graphql-transport-ws) có thể mang bất kỳ loại thao tác nào.
official
apollo-kotlin
apollographql
Apollo Kotlin là một máy khách GraphQL được định kiểu mạnh, tạo ra các mô hình Kotlin từ các thao tác và lược đồ GraphQL của bạn, có thể được sử dụng trong các dự án Android, JVM và Kotlin Multiplatform.
official
apollo-router
apollographql
Apollo Router là một bộ định tuyến đồ thị hiệu suất cao được viết bằng Rust để chạy các siêu đồ thị Apollo Federation 2. Nó nằm phía trước các đồ thị con của bạn và xử lý việc lập kế hoạch truy vấn, thực thi và tổng hợp phản hồi.
official
apollo-router-plugin-creator
apollographql
Tạo plugin Rust gốc cho Apollo Router.
official