apollo-mcp-server
Original:🇺🇸 English
Translated
Guide for using Apollo MCP Server to connect AI agents with GraphQL APIs. Use this skill when: (1) setting up or configuring Apollo MCP Server, (2) defining MCP tools from GraphQL operations, (3) using introspection tools (introspect, search, validate, execute), (4) troubleshooting MCP server connectivity or tool execution issues.
19installs
Sourceapollographql/skills
Added on
NPX Install
npx skill4agent add apollographql/skills apollo-mcp-serverTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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
bash
# Using npm
npm install -g @apollo/mcp-server
# Or run directly with npx
npx @apollo/mcp-serverStep 2: Configure
Create in your project root:
mcp.yamlyaml
# mcp.yaml
endpoint: https://api.example.com/graphql
schema:
type: local
path: ./schema.graphql
operations:
type: local
paths:
- ./operations/**/*.graphql
introspection:
enabled: trueStep 3: Connect
Add to your MCP client configuration:
Claude Desktop ():
claude_desktop_config.jsonjson
{
"mcpServers": {
"graphql-api": {
"command": "npx",
"args": ["@apollo/mcp-server", "--config", "./mcp.yaml"]
}
}
}Claude Code ():
.mcp.jsonjson
{
"mcpServers": {
"graphql-api": {
"command": "npx",
"args": ["@apollo/mcp-server", "--config", "./mcp.yaml"]
}
}
}Built-in Tools
Apollo MCP Server provides four introspection tools:
| Tool | Purpose | When to Use |
|---|---|---|
| Explore schema types in detail | Need type definitions, fields, relationships |
| Find types in schema | Looking for specific types or fields |
| Check operation validity | Before executing operations |
| Run ad-hoc GraphQL operations | Testing or one-off queries |
Defining Custom Tools
MCP tools are created from GraphQL operations. Three methods:
1. Operation Files (Recommended)
yaml
operations:
type: local
paths:
- ./operations/**/*.graphqlgraphql
# operations/users.graphql
query GetUser($id: ID!) {
user(id: $id) {
id
name
email
}
}
mutation CreateUser($input: CreateUserInput!) {
createUser(input: $input) {
id
name
}
}Each named operation becomes an MCP tool.
2. Operation Collections
yaml
operations:
type: collection
id: your-collection-idUse GraphOS Studio to manage operations collaboratively.
3. Persisted Queries
yaml
operations:
type: manifest
path: ./persisted-query-manifest.jsonFor production environments with pre-approved operations.
Reference Files
Detailed documentation for specific topics:
- Tools - Introspection tools and minify notation
- Configuration - All configuration options
- Troubleshooting - Common issues and solutions
Key Rules
Security
- Never expose sensitive operations without authentication
- Use configuration for API keys and tokens
headers - Prefer in production
introspection.enabled: false - Set to require confirmation for mutations
introspection.mutationMode: prompt
Authentication
yaml
# Static header
headers:
Authorization: "Bearer ${APOLLO_API_KEY}"
# Dynamic header passthrough
headers:
X-User-Token:
from: x-forwarded-tokenToken Optimization
Enable minification to reduce token usage:
yaml
introspection:
minify: trueMinified output uses compact notation:
- T = type, I = input, E = enum
- s = String, i = Int, b = Boolean, f = Float
- ! = required, [] = list
Mutations
Control mutation behavior:
yaml
introspection:
mutationMode: allowed # Execute directly
mutationMode: prompt # Require confirmation (default)
mutationMode: disabled # Block all mutationsCommon Patterns
GraphOS Cloud Schema
yaml
schema:
type: uplink
graphos:
key: ${APOLLO_KEY}
graph_ref: my-graph@productionLocal Development
yaml
endpoint: http://localhost:4000/graphql
schema:
type: local
path: ./schema.graphql
introspection:
enabled: true
mutationMode: allowedProduction Setup
yaml
endpoint: https://api.production.com/graphql
schema:
type: uplink
operations:
type: manifest
path: ./persisted-query-manifest.json
introspection:
enabled: falseGround Rules
- ALWAYS configure authentication before exposing to AI agents
- ALWAYS use in shared environments
mutationMode: prompt - NEVER expose introspection tools with write access to production data
- PREFER operation files over ad-hoc execute for predictable behavior
- USE GraphOS Studio collections for team collaboration