apollo-mcp-server

Conecta agentes de IA a APIs de GraphQL a través del Protocolo de Contexto de Modelo con herramientas integradas de introspección y operación. Expone operaciones de GraphQL como herramientas MCP; admite tres fuentes de operación: archivos locales, colecciones de GraphOS Studio y manifiestos de consultas persistentes. Proporciona cuatro herramientas de introspección (introspect, search, validate, execute) para exploración de esquemas y pruebas de consultas ad-hoc; el modo de minificación reduce el uso de tokens con notación compacta. Autenticación configurable mediante encabezados estáticos,...

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

Más skills de apollographql

apollo-client
apollographql
Apollo Client es una biblioteca integral de gestión de estado para JavaScript que te permite manejar datos tanto locales como remotos con GraphQL. La versión 4.x trae un almacenamiento en caché mejorado, mejor soporte para TypeScript y compatibilidad con React 19.
official
apollo-client
apollographql
Guía completa para crear aplicaciones React con Apollo Client 4.x, que cubre consultas, mutaciones, almacenamiento en caché y gestión de estado. Compatible con múltiples frameworks y configuraciones de React: aplicaciones del lado del cliente (Vite, CRA), Next.js App Router con React Server Components, React Router 7 con SSR en streaming y TanStack Start. Incluye hooks para consultas (useQuery, useLazyQuery), mutaciones (useMutation) y patrones basados en Suspense (useSuspenseQuery, useBackgroundQuery) para React moderno 18+ y 19...
official
apollo-connectors
apollographql
Integra APIs REST en supergrafos GraphQL usando las directivas @source y @connect. Proporciona un proceso estructurado de 5 pasos: investigar la estructura de la API, implementar el esquema con directivas, validar mediante rover supergraph compose, ejecutar conectores y probar la cobertura. Soporta configuración de solicitudes que incluye encabezados, cuerpo de la carga útil, agrupación para patrones N+1 e inyección de variables de entorno mediante $env. Maneja el mapeo de respuestas con selección de campos, alias, subselecciones para datos anidados y entidad...
official
apollo-federation
apollographql
Apollo Federation permite componer múltiples APIs de GraphQL (subgrafos) en un supergrafo unificado.
official
apollo-ios
apollographql
Apollo iOS es un cliente GraphQL fuertemente tipado para plataformas Apple. Genera tipos Swift a partir de tus operaciones y esquema GraphQL, e incluye un cliente async/await, una caché normalizada (en memoria o respaldada por SQLite), un transporte HTTP basado en interceptores conectables que maneja consultas, mutaciones y suscripciones multiparte, y un transporte WebSocket opcional (graphql-transport-ws) que puede transportar cualquier tipo de operación.
official
apollo-kotlin
apollographql
Apollo Kotlin es un cliente GraphQL fuertemente tipado que genera modelos Kotlin a partir de tus operaciones y esquema GraphQL, que puede utilizarse en proyectos Android, JVM y Kotlin Multiplatform.
official
apollo-router
apollographql
Apollo Router es un enrutador de grafos de alto rendimiento escrito en Rust para ejecutar supergrafos de Apollo Federation 2. Se sitúa frente a tus subgrafos y maneja la planificación de consultas, ejecución y composición de respuestas.
official
apollo-router-plugin-creator
apollographql
Crea plugins nativos de Rust para Apollo Router.
official