Apollo connectors
Skill ulpi-io/plugin-marketplace/plugins/apollographql/skills/apollo-connectors
A curated collection of 7,800+ agent skills for Claude Desktop, sourced from skills.sh
npx -y skills add ulpi-io/plugin-marketplace --skill apollo-connectorsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Guide for integrating REST APIs into GraphQL supergraphs using Apollo Connectors with @source and @connect directives. Use this skill when the user: (1) mentions "connectors", "Apollo Connectors", or "REST Connector", (2) wants to integrate a REST API into GraphQL, (3) references @source or @connect directives, (4) works with files containing "# Note to AI Friends: This is an Apollo Connectors schema".
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.4 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Apollo Connectors Schema Assistant
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.12")
@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: Always use federation/v2.12 and connect/v0.3 unless specified otherwise.
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
Gives 0 of the 12 instructions most apis services skills give in ~1.2k tokens
Counted across 424 of the 426 authors here whose files we hold, read 2026-08-06
- use plural nouns for resource namesin 41 of 424, across 32 files
- use cursor-based pagination for large datasetsin 35 of 424, across 20 files
- include rate limit headers in responsesin 25 of 424, across 13 files
- Use kebab-case for multi-word resourcesin 23 of 424, across 13 files
- version APIs in the URL pathin 19 of 424, across 9 files
- use semantic HTTP status codesin 18 of 424, across 8 files
- verify webhook signaturesin 18 of 424, across 11 files
- use query parameters for filteringin 17 of 424, across 6 files
- use async database operationsin 14 of 424, across 7 files
- wrap successful responses in a data fieldin 13 of 424, across 3 files
- prefix sorting parameters with a hyphen for descending orderin 13 of 424, across 3 files
- set appropriate HTTP status codesin 13 of 424, across 6 files
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.