Apollo GraphOS Platform
OverviewApollo Sandbox
Schema Management
Explorer IDE
Graph Security
Metrics and Insights
Access Management
Graph Management
Production Readiness
Platform LimitsGraphOS Platform APIGraphOS MCP Tools

GraphOS MCP Server Tools

Enhance agentic development with Apollo's hosted MCP server


This page is a reference for all available tools in GraphOS MCP Server. Each tool can be used individually or chained together by your agent to answer more complex questions about your graphs. Before using any of these tools, make sure you've completed the GraphOS MCP Server installation.

Get started with example prompts

Try some of these prompts to get started:

List my graphs and tell me which ones need the most attention.

Is my graph <GRAPH_ID> healthy? Run the relevant checks and summarize findings as Attention Required, Review Recommended, or What's Working Well.

Perform a full health check on <GRAPH_ID>: schema composition, lint, and deployment stability. Prioritize the issues you find by severity.

For <GRAPH_ID> check the latest launch and lint results, and tell me what needs attention.

Scan my org <ORG_ID> and flag any graphs that have composition errors or lint errors right now.

For <GRAPH_ID>, cross-reference the top operations with their latency/error metrics. Are any high-traffic operations that are also slow or failing?

For <GRAPH_ID>, which clients and client versions send the most traffic, and is any one of them responsible for a disproportionate share of the errors?

Tools for Apollo documentation

The tools described in this section give your agent access to Apollo's official documentation.

note
These tools read Apollo's public documentation, not your organization's data, so they need no authentication.

Purpose: Search across Apollo's official documentation to find the most relevant guides, examples, and best practices for GraphQL, GraphOS, schema design, deployment best practices, connectors, and more.

Example: "How do I enable entity caching with the Apollo Router?"

Result:

Screenshot showing the result of an Apollo docs search tool

Apollo Docs Read

Purpose: Retrieve the full Markdown content of any Apollo documentation page so your agent can go beyond code snippets and provide complete, detailed guidance.

Example: "Fetch the Router YAML config reference and list the top level properties."

Result:

Screenshot showing the result of an Apollo docs read tool

Apollo Connectors Spec

Purpose: Access the official specification for Apollo Connectors, giving your agent the data it needs to create and modify Connectors in a schema.

Examples: "Add weather details to my schema using https://api.weather.gov so I can expose weather conditions for airport cities."

Result: The output is too large to show, but your agentic coding tool still uses the Apollo Connectors Spec tool to generate a graph that integrates with the https://api.weather.gov REST API.

Tools to retrieve graph information

The tools described in this section give your agent access to your organization's graphs and variant details.

note
These tools read your organization's data, so they require authentication. For instructions on how to authenticate, refer to the Authentication section.

Get My Identity

Purpose: Resolve the caller's identity and any organizations their API key belongs to. Use this when you haven't yet provided an organization or graph ID—the returned account and organization ID can be passed to subsequent tool calls.

Get Variant Details

Purpose: Retrieve data about a graph variant such as: its identifier, federation version, the URL of its GraphQL endpoint, and its subgraphs.

Example: "Show the federation version and subgraphs for my production variant."

Tools for launches

The tools described in this section give your agent visibility into the deployment history of your graph variants.

note
These tools read your organization's data, so they require authentication. For instructions on how to authenticate, refer to the Authentication section.

Get Latest Launch

Purpose: Inspect the most recent launch for a graph variant: status, completion time, subgraph changes, composition errors, and a schema diff summary versus the previous launch (additions, removals, edits, deprecations, and affected operations). Also returns the latest approved launch for comparison.

Example: "Did the latest launch on my graph have any composition errors? Any deprecations in the last schema change?"

Get Launch

Purpose: Inspect a single launch by ID for full detail: status, timestamps, which subgraphs changed, composition errors, and the schema diff summary. Use this to drill into a specific launch—for example, a failed or superseded launch found via Get Launch History.

Example: "What composition errors caused launch abc123 to fail?"

Get Launch History

Purpose: Retrieve recent launches for a graph variant (most recent first) to detect deployment instability such as repeated failures or frequent superseded launches. Each entry includes the launch ID, status, and timestamps so you can identify a specific launch and drill into it with Get Launch.

Example: "Have the recent launches on my production variant been stable, or were there repeated failures?

Tools for observability and metrics

The tools described in this section give your agent access to traffic and performance data for your graphs.

By default, each of these tools aggregates the entire requested time window into a single row per operation, subgraph, or client. If you prefer, however, your agent can instead request per-day, per-hour, or per-minute buckets to monitor how a metric changes over time.

Sub-day buckets cover shorter time periods: Per-hour data requires a window of seven days or less, starting within the last 90 days. Per-minute data requires a window of one day or less, starting within the last 30 days. Aggregated and per-day results exclude the most recent day, so use per-hour or per-minute buckets to inspect the most recent traffic.

note
These tools read your organization's data, so they require authentication. For instructions on how to authenticate, refer to the Authentication section.

Get Top Operations

Purpose: Identify the most-used operations on a graph variant for a given time range, with request counts, types, and signatures. Use this to find high-traffic operations, detect unused operations, and prioritize findings by traffic impact.

Example: "What are the 20 most-used operations on my production graph over the last week, by request count?"

Get Operation Metrics

Purpose: Retrieve top operations by usage and health for a graph over a time window. Includes request count, p50 latency, p99 latency, and error count per operation. Rank by busiest, most error-prone, or slowest operations. You can also narrow the results to specific variants or clients.

Example: "Show me request counts and p99 latency trends for my graph's operations over the last 30 days. Flag anything with a spike."

Get Subgraph Metrics

Purpose: Retrieve top subgraphs and connectors by traffic and health for a graph over a time window. Includes fetch count, p50 fetch latency, p99 fetch latency, and fetch error count per subgraph. Rank by busiest, most error-prone, or slowest subgraphs. You can also narrow the results to specific variants, subgraphs, or clients.

Example: "Which of my subgraphs have the highest error rates this month?"

Get Client Metrics

Purpose: Break down a graph's traffic by client over a time window. Returns request count, p50 latency, p99 latency, and error count for each combination of client name, client version, and operation so you can see what clients and versions are calling your graph and which of them drive errors or latency. Clients that don't report a name and version appear with those columns empty. Rank by busiest, most error-prone, or slowest. You can also narrow the results to specific variants or operations.

Example: "Which client versions are still calling my production graph, and are any of them responsible for most of the errors?"

Tools for persisted queries

The tools described in this section let your agent check a graph's persisted query list and publish operations to it.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.

Get Persisted Query List Status

Purpose: Check whether a graph variant has a Persisted Query List (PQL) configured and return its ID, its name, its current build revision, and its operation count. Use this to assess PQL configuration because a production variant with no PQL might be insecure. Pass the list ID to Publish Persisted Queries.

Example: "Does my production variant have a persisted query list configured?"

Publish Persisted Queries

caution
Publish Persisted Queries changes the set of operations that your router accepts. Before running this tool, confirm the graph, the list, and the operations to add or remove.

Purpose: Publish operations to a persisted query list. Operations that you don't mention stay in the list unchanged: your agent passes the operations to add or replace, as well as the operations to remove. Returns the new revision and the total operation count or reports that nothing has changed. Use Get Persisted Query List Status first to find the list ID.

Example: "Add the operations in this manifest to my production persisted query list."

Tools for schema linting

The tools described in this section give your agent access to your graph's schema linting results, and run a schema lint check.

note
These tools read your organization's data, so they require authentication. For instructions on how to authenticate, refer to the Authentication section.

Get Lint Results

Purpose: Retrieve schema lint violations from a graph's most recent schema checks. Returns each diagnostic's coordinate, severity level, message, rule, and source location, plus error, warning, total, and ignored counts. Use this to assess schema quality and identify naming or best-practice violations.

Example: "Are there any schema lint violations in my graph? Show errors before warnings."

Lint Schema

Purpose: Run a lint check on your schema against your graph's lint rules and return each diagnostic's coordinate, severity level, message, rule, and source location, plus the error, warning, total, and ignored counts. Optionally, you can supply a base schema to report only the diagnostics that the new schema introduces. Nothing is published to the graph.

Example: "Run a lint check on this schema and show me only the new violations."

Tools for schema checks

The tools described in this section let your agent read previous schema checks, run schema checks, and validate client operations against a published schema.

note
These tools read your organization's data, so they require authentication. For instructions on how to authenticate, refer to the Authentication section.

Get Schema Checks

Purpose: List previous schema checks for a graph, most recent first. Each entry includes the check ID, status, timestamps, the subgraph that was checked, the variant it ran against, the commit, and the status of each task in the run. Filter by status, subgraph, branch, variant, author, or check ID, and page through the results with a limit and offset. Use this to find a check, then pass its ID to Get Check Results.

Example: "Show the schema checks that failed on my graph this week."

Get Check Results

Purpose: Read the outcome of a single check run: the overall status, and for each task in the run the composition errors, the lint diagnostics, the schema changes with the client operations they affect, the downstream variant results, and the custom check violations. Use this after Get Schema Checks gives you a check ID.

Example: "Why did check 509219cd fail, and which client operations would break?"

Run Schema Check

Purpose: Run a schema check of a proposed schema against a variant. Use this for a monograph or supergraph schema. The check runs in the background, so the tool returns a check ID and a link to the results in GraphOS. Pass the check ID to Get Check Results to read the result.

Example: "Check this schema against my production variant, then show me the results."

Run Subgraph Check

Purpose: Runs a schema check of a proposed subgraph schema against a variant. The check runs in the background, so the tool returns a check ID and a link to the results in GraphOS. Pass the check ID to Get Check Results to read the result.

Example: "Check my proposed changes to the products subgraph."

Validate Operations

Purpose: Validate client GraphQL operations against a variant's published schema and return each problem's type, code, description, and the operation it came from. Use this to check whether client operations still work against a schema. Nothing is published.

Example: "Are the operations in my client still valid against the production schema?"

Tools for subgraphs

The tools described in this section let your agent read a subgraph's schema and change which subgraphs a variant contains.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, refer to the Authentication section.
caution
Publish Subgraph and Delete Subgraph are tools that update your graph. Confirm the graph, the variant, the subgraph, and run the necessary schema checks before allowing your agent to run these tools.

Get Subgraph Schema

Purpose: Retrieve a subgraph's published schema from a variant, with its routing URL, revision, and last update time. Retrieves one subgraph at a time; a supergraph document is much larger and can exceed the context window of the model. Use Get Variant Details first if you do not know the subgraph names.

Example: "Show me the schema for the products subgraph on my production variant."

Publish Subgraph

caution
Publish Subgraph updates your graph. Before running this tool, confirm the graph, the variant, the subgraph, and run the necessary schema checks.

Purpose: Publish a subgraph schema to a variant, which triggers composition. Returns whether the subgraph was created or updated, any composition errors, and the launch that started. Provide the routing URL when you add a new subgraph or need to update the subgraph's endpoint. Run the Run Subgraph Check tool first to see the impact on client operations.

Example: "Publish this schema to the products subgraph on my staging variant."

Delete Subgraph

caution
Delete Subgraph updates your graph. Before running this tool, confirm the graph, the variant, and the subgraph, and run it once with the dry run option enabled.

Purpose: Remove a subgraph from a variant, which triggers composition and a new launch. Returns the composition errors that the removal causes. If you enable the dry run option, the tool will not remove the subgraph but instead reports the composition result that the removal would produce. Apollo recommends running this tool with the dry run option enabled first before proceeding.

Example: "What would break if I removed the inventory subgraph? Do a dry run first." Then, if the dry run is successful, you can follow up with "Remove the inventory subgraph."

Tools for graph schemas

The tools described in this section let your agent read a variant's full schema and publish or delete a graph.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.
caution
Publish Graph Schema and Delete Graph update your graph. Confirm the graph and the variant, and run the necessary schema checks before allowing your agent to run these tools.

Get Graph Schema

Purpose: Retrieve the API schema that is currently published to a variant, along with its hash and publication time. The response holds the whole schema and isn't truncated. A large federated graph can exceed 800,000 characters, roughly 200,000 tokens, which is more than the context window of most models. For a federated graph, use Get Subgraph Schema to read one subgraph at a time.

Example: "Fetch the published schema for my staging variant and list its root fields."

Get Supergraph Schema

Purpose: Retrieve the composed supergraph schema of a variant, with the composition ID and any composition errors. The supergraph schema includes the federation directives that the API schema leaves out, and it is larger than the API schema, so the same size limit applies. A variant that isn't federated has no supergraph schema, and the tool returns no result for it.

Example: "Fetch the supergraph schema for my production variant and tell me which subgraph resolves Product.price."

Publish Graph Schema

caution
Publish Graph Schema changes the schema that your clients see. Before running this tool, confirm the graph and the variant and run Run Schema Check.

Purpose: Publish a schema to a variant of a non-federated graph (monograph). For a federated graph, use Publish Subgraph instead. Returns a result code, whether the publish succeeded, a message, and the hash of the published schema. Optionally, your agent can label the publication with a Git branch and commit.

Example: "Publish this schema to my staging variant."

Delete Graph

caution
Delete Graph stops every variant of the graph from serving. Before running this tool, confirm the graph ID.

Purpose: Delete a graph and all of its variants. The deletion is a soft delete: the data isn't removed permanently, and Apollo Support can restore the graph.

Example: "Delete my test graph <GRAPH_ID>."

Tools for contracts

The tools described in this section let your agent read and update contract variants. A contract variant is a filtered view of another variant's schema, built by including and excluding schema elements by tag.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.

Get Contract Config

Purpose: Retrieve the filter configuration of a contract variant: the tags it includes, the tags it excludes, the source variant it is built from, and a description of the configuration. The description is the only place that states whether the contract hides unreachable types. A variant that is not a contract returns no filter configuration.

Example: "Which tags does my public contract variant include and exclude?"

Publish Contract

caution
Publish Contract creates or updates a contract variant and starts a launch for it. Before running this tool, confirm the graph, the contract variant, and the complete filter configuration.

Purpose: Create or update a contract variant and start a launch for it. The new filter configuration replaces the previous one in full, so your agent sends the complete include and exclude tag lists, and whether to hide unreachable types. When updating a contract, run Get Contract Config first to keep the settings that you don't want to change. Returns the contract variant and a link to the launch, or the errors that stopped it.

Example: "Add the internal tag to the exclude list of my public contract variant, and keep the rest of its configuration."

Tools for variant READMEs

The tools described in this section let your agent read and replace the README that GraphOS Studio shows on a variant's page.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.

Get Readme

Purpose: Retrieve the README of a variant, with the time it was last updated and who updated it.

Example: "Show me the README of my production variant."

Publish Readme

Purpose: Replace the README of a variant. The new text replaces the whole README, so if you want to keep part of the current README, run Get Readme first.

Example: "Add a section about rate limits to the README of my production variant."

Tools for schema proposals

The tools described in this section let your agent work with schema proposals: list and read proposals, create a proposal, save a revision of its schema changes, change its status, review it, and comment on it.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.
caution
Review Proposal and Add Proposal Comment act as you, and other people on the proposal see the result. An approval can also count toward the graph's required approvals. Confirm the decision or the comment text before allowing your agent to run these tools.

Get Proposals

Purpose: List the schema proposals on a graph with their IDs, titles, statuses, authors, source variants, and proposal variants, plus the total count. Filter by status, source variant, or subgraph, and page through the results with a limit and offset. Pass a proposal ID to Get Proposal for full detail.

Example: "List the open schema proposals on my graph."

Get Proposal

Purpose: Retrieve a single schema proposal: its title, description, status, author, source variant, and proposal variant, its latest revision with the revision's schema check and launch, and every review. The other proposal tools use the IDs that this tool returns.

Example: "What's the status of proposal <PROPOSAL_ID>, and did its latest revision pass schema checks?"

Create Proposal

Purpose: Create a schema proposal against a source variant. GraphOS creates a proposal variant that starts as a copy of the source variant's schema, and the proposal starts as a draft. Use Publish Proposal Revision next to add schema changes.

Example: "Create a proposal against my production variant called 'Add product ratings'."

Publish Proposal Revision

Purpose: Save a new revision of a proposal by publishing changed subgraph schemas to its proposal variant. GraphOS composes the proposal variant and runs schema checks on it. The source variant doesn't change. If someone else saved a revision in the meantime, the call fails, and your agent reads the proposal again before retrying. GraphOS saves a revision even when its schema doesn't compose, so your agent checks the revision's schema check and launch status with Get Proposal afterward.

Example: "Add a rating field to Product in the reviews subgraph and save it as a revision of my proposal."

Update Proposal Status

Purpose: Change the status of a proposal—for example, from draft to open or closed. GraphOS sets a proposal to approved only when it has as many approvals as the graph requires, and it doesn't let your agent set a proposal to implemented.

Example: "Open my proposal for review."

Review Proposal

Purpose: Approve or reject the latest revision of a proposal, with an optional comment. Only a requested reviewer can review, and a new review replaces the reviewer's earlier one.

Example: "Approve the latest revision of proposal <PROPOSAL_ID> with the comment 'Looks good'."

Add Proposal Comment

Purpose: Add a comment to a proposal. The comment can be a general comment, a reply to another comment, or a comment on a specific schema change, like a single field in a subgraph.

Example: "Comment on the new Product.rating field in my proposal and ask whether it should be nullable."

Tools for graph artifacts

The tools described in this section let your agent read and tag graph artifacts. A graph artifact is the build output, like the composed supergraph schema, that GraphOS Router fetches from Apollo's OCI registry. A tag lets Router fetch an artifact by name instead of by digest.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.
caution
Tag Graph Artifact and Untag Graph Artifact change what a router receives when fetching by tag. Confirm the graph, the tag, and the artifact before allowing your agent to run these tools.

Get Graph Artifact

Purpose: Retrieve a graph artifact by its digest: its ID, status, build errors, timestamps, variant, the launch that produced it, its registry location, and its tags.

Example: "Is the graph artifact with digest <DIGEST> complete, and which tags point to it?"

Get Graph Artifact Tags

Purpose: List the graph artifact tags on a graph and the artifact that each tag points to. Optionally, filter by variant. Use this to find a tag or a digest before running the other graph artifact tools.

Example: "List the graph artifact tags for my production variant."

Tag Graph Artifact

Purpose: Assign a tag to a graph artifact. If the tag already exists, it moves to this artifact, and a router that fetches by that tag receives the new artifact.

Example: "Tag the artifact with digest <DIGEST> as release-candidate."

Untag Graph Artifact

Purpose: Delete a tag and its history from a graph. The artifact itself stays. Tags that Apollo manages, like a variant's latest tag, can't be deleted.

Example: "Remove the release-candidate tag from my graph."

Tools for API keys

The tools described in this section let your agent list, create, rename, and delete the API keys of your organization.

note
These tools act on your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.
caution
Create API Key grants new access, and an operator key has full access to your organization. Create API Key returns the new key's value, so your agent receives a working credential. Confirm the key type and the resources it can access before allowing your agent to run this tool, and store the key in a secret manager. Delete API Key can't be undone.

Get API Keys

Purpose: List your organization's API keys with each key's ID, name, type, creation, expiration, last use, revocation time, and the resources it can access. Key values are never returned. Filter by status and type.

Example: "Which API keys in my organization have never been used?"

Create API Key

Purpose: Create an API key for your organization. An operator key has full access to the organization, and a subgraph key has access only to the subgraphs you list. The response contains the new key's value.

Example: "Create a subgraph key named products-ci that can publish to the products subgraph on my production variant."

Rename API Key

Purpose: Rename an API key. The key's value and its access don't change.

Example: "Rename the key old-ci to products-ci."

Delete API Key

Purpose: Delete an API key. Every client that uses the key stops authenticating, and the deletion can't be undone.

Example: "Delete the API key <KEY_ID>."

Tools for licenses

The tools described in this section let your agent fetch your organization's offline Enterprise license.

note
These tools read your organization's data, so they require authentication. For instructions on how to authenticate, go to the Authentication section.

Get Offline License

Purpose: Fetch the offline Enterprise license for the organization that owns a graph. GraphOS Router uses this license to enable Enterprise features while it runs disconnected from GraphOS. Returns no license when your organization doesn't have offline licenses enabled.

Example: "Fetch the offline license for my graph."