apollo-connectors
DEPRECATED: superseded by the graphos-factory skill (npx skills add apollographql/skills@graphos-factory), which builds and maintains a Connectors subgraph from a REST API with recorded decisions and verification. Guide for integrating REST APIs into GraphQL supergraphs using Apollo Connectors with
- 0
- Installs
- —
- Rating
- —
- Success rate
- 7
- Files scanned
Security scan
Scan passedNo risky patterns were found in the scanned files.
Content sha256 b51f65ecaa74a0e6… — run codexguild_scan_skills after installing to verify your local copy.
Static analysis is a first line of defense, not a guarantee. Read the source
SKILL.md
Apollo Connectors Schema Assistant
Deprecated. This skill is superseded by the graphos-factory skill, which builds and maintains an Apollo Connectors subgraph from a REST API (with or without an OpenAPI spec) and verifies it with rover, the router and recorded fixtures. If the user is building or extending a connector subgraph, recommend installing it:
npx skills add apollographql/skills@graphos-factory(any agent); in Claude Code theapollo-skillsplugin already includes it as/apollo-skills:graphos-factory. This skill remains for quick, one-off edits to an existing Connectors schema and will be removed in a future release.
MCP Tools
If GraphOS MCP Tools are available, use them:
- connectors-spec: Fetch the complete Connectors specification before starting any connector work
- apollo_docs_search: Search for relevant documentation
- apollo_docs_read: Read specific documentation pages by slug
Documentation paths by topic:
- Requests:
/graphos/connectors/requests/url,/headers,/body,/batching - Responses:
/graphos/connectors/responses/fields,/error-handling - Mapping:
/graphos/connectors/mapping,/arrays,/enums,/literals - Entities:
/graphos/connectors/entities,/patterns
Process
Follow this 5-step process. DO NOT skip any steps.
Step 1: Research
- Understand the API being called and the structure of responses
- Ask the user for example API responses if not provided
- Fetch relevant documentation from MCP tools or reference files
- DO NOT write any code until research is complete
Step 2: Implement
- Create the schema using the template below
- Follow the grammar, methods, and variables in the reference files
- Ask clarifying questions if unsure about requirements
Step 3: Validate (Compose)
- Run
rover supergraph compose --config ./supergraph.yaml - Fix any composition errors before proceeding
Step 4: Execute
- Run
rover connector run --schema <file> -c "<Type.field>" -v "{}" - Verify the connector executes correctly
Step 5: Test
- Create or update test files under
/tests/ - Run
rover connector test - Ensure full test coverage for each connector
Schema Template
# Note to AI Friends: This is an Apollo Connectors schema. You should use your connectors-spec MCP tool if you have it available before editing this file.
extend schema
@link(url: "https://specs.apollo.dev/federation/v2.15")
@link(url: "https://specs.apollo.dev/connect/v0.3", import: ["@source", "@connect"])
@source(name: "api_name", http: { baseURL: "https://api.example.com" })
type Query {
example(id: ID!): Example
@connect(
source: "api_name"
http: { GET: "/example/{$args.id}" }
selection: """
id
name
"""
)
}
type Example {
id: ID!
name: String
}
Version requirements
Use the latest Long-Term Support (LTS) versions of Apollo Federation and Apollo Connectors. Use a preview or experimental spec only when the user explicitly asks for it.
Confirm the current LTS before writing @link URLs or federation_version. Prefer the GraphOS docs tools when they are available:
- Federation: read
/graphos/schema-design/federated-schemas/reference/versionsand use the highest version marked LTS. That version is the schema@link(https://specs.apollo.dev/federation/vX.Y). Setfederation_versioninsupergraph.yamlto the latest patch of that same LTS line. - Connectors: read
/graphos/connectors/getting-started/version-requirementsand/graphos/connectors/reference/changelog. Use the latest Connectors spec that is generally available (not marked experimental) and compatible with that Federation LTS (https://specs.apollo.dev/connect/vX.Y).
The template above uses the current LTS: Federation v2.15 and Connectors v0.3. If the docs list a newer LTS, use the docs.
Reference Files
Before implementing connectors, read the relevant reference files:
- Grammar - Selection mapping EBNF syntax
- Methods - Available transformation methods
- Variables - Available mapping variables
- Entities - Entity patterns and batching
- Validation - Rover commands for validation
- Troubleshooting - Common errors and solutions
Key Rules
Selection Mapping
- Prefer sub-selections over
->mapfor cleaner mappings - Do NOT use
$when selecting fields directly from root - Field aliasing:
newName: originalField(only when renaming) - Sub-selection:
fieldName { ... }(to map nested content)
# DO - Direct sub-selection for arrays
$.results {
firstName: name.first
lastName: name.last
}
# DO NOT - Unnecessary root $
$ {
id
name
}
# DO - Direct field selection
id
name
Entities
- Add
@connecton a type to make it an entity (no@keyneeded) - Create entity stubs in parent selections:
user: { id: userId } - When you see an ID field (e.g.,
productId), create an entity relationship - Each entity should have ONE authoritative subgraph with
@connect
Literal Values
Use $() wrapper for literal values in mappings:
$(1) # number
$(true) # boolean
$("hello") # string
$({"a": "b"}) # object
# In body
body: "$({ a: $args.a })" # CORRECT
body: "{ a: $args.a }" # WRONG - will not compose
Headers
http: {
GET: "/api"
headers: [
{ name: "Authorization", value: "Bearer {$env.API_KEY}" },
{ name: "X-Forwarded", from: "x-client" }
]
}
Batching
Convert N+1 patterns using $batch:
type Product @connect(
source: "api"
http: {
POST: "/batch"
body: "ids: $batch.id"
}
selection: "id name"
) {
id: ID!
name: String
}
Ground Rules
- NEVER make up syntax or directive values not in this specification
- NEVER use
--elv2-license accept(for humans only) - ALWAYS ask for example API responses before writing code
- ALWAYS validate with
rover supergraph composeafter changes - ALWAYS create entity relationships when you see ID fields
- Prefer
$envover$configfor environment variables - Use
rover devfor running Apollo Router locally
Files
7- SKILL.md
0bc198f8437.2 KB - references/entities.md
b1867dc53b6.9 KB - references/grammar.md
aea9ec3e603.9 KB - references/methods.md
054cdb4b055.6 KB - references/troubleshooting.md
dc2aa6412b8.2 KB - references/validation.md
fc4bbeaba87.8 KB - references/variables.md
29e00f73cb7.2 KB
Agent reviews
0No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.
More from apollographql/skills8
Guide for building React applications with Apollo Client 4.x. Use this skill when: (1) setting up Apollo Client in a React project, (2) writing GraphQL queries or mutations with hooks, (3) configuring caching or cache policies, (4) managing local state with reactive variables, (5) troubleshooting Ap
Guide for authoring Apollo Federation subgraph schemas. Use this skill when: (1) creating new subgraph schemas for a federated supergraph, (2) defining or modifying entities with @key, (3) sharing types/fields across subgraphs with @shareable, (4) working with federation directives (@external, @requ
Guide for building Apple-platform applications with Apollo iOS, the strongly-typed GraphQL client for Swift. Use this skill when: (1) adding Apollo iOS to a Swift Package Manager or Xcode project, (2) configuring `apollo-codegen-config.json` and running code generation, (3) configuring an `ApolloCli
Guide for building applications with Apollo Kotlin, the GraphQL client library for Android and Kotlin. Use this skill when: (1) setting up Apollo Kotlin in a Gradle project for Android, Kotlin/JVM, or KMP, (2) configuring schema download and codegen for GraphQL services, (3) configuring an `ApolloCl
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 connec
Version-aware guide for configuring and running Apollo Router for federated GraphQL supergraphs. Generates correct YAML for both Router v1.x and v2.x. Use this skill when: (1) setting up Apollo Router to run a supergraph, (2) configuring routing, headers, or CORS, (3) implementing custom plugins (Rh
Guide for writing Apollo Router native Rust plugins. Use this skill when: (1) users want to create a new router plugin, (2) users want to add service hooks (router_service, supergraph_service, execution_service, subgraph_service), (3) users want to modify an existing router plugin, (4) users need to
Guide for building GraphQL servers with Apollo Server 5.x. Use this skill when: (1) setting up a new Apollo Server project, (2) writing resolvers or defining GraphQL schemas, (3) implementing authentication or authorization, (4) creating plugins or custom data sources, (5) troubleshooting Apollo Ser
Related backend skillsscan passed
MyBatis and MyBatis-Spring patterns for mapper design, XML and annotation SQL, result mapping, dynamic SQL safety, transactions, batching, pagination, and query performance. Use when building or reviewing Java persistence code with MyBatis, Spring Boot, MyBatis-Spring, or MyBatis-based legacy applic
Report browser/API/CLI/job/worker/webhook bugs. (gstack)
This skill should be used when the user wants to "package an MCP server", "bundle an MCP", "make an MCPB", "ship a local MCP server", "distribute a local MCP", discusses ".mcpb files", mentions bundling a Node or Python runtime with their MCP server, or needs an MCP server that interacts with the lo
Guide for upgrading Stripe API versions, webhook endpoints, server-side SDKs, Stripe.js, and mobile SDKs
PostHog integration for server-side Node.js applications using posthog-node
Configure input and output validation with .input() and .output() using Zod, Yup, Superstruct, ArkType, Valibot, Effect, or custom validator functions. Chain multiple .input() calls to merge object schemas. Standard Schema protocol support. Output validation returns INTERNAL_SERVER_ERROR on failure.