# GraphOS MCP Server - Registry name: `io.github.apollographql/graphos-mcp-server` · version 1.17.0 - Categories (automatic, keyword rules): Code & repositories, Developer tools, Health & fitness, Monitoring & logs, Infrastructure & security - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.apollographql%2Fgraphos-mcp-server - Server page: https://mcpstation.net/s/io.github.apollographql--graphos-mcp-server.html ## Description (written by the publisher, not verified, not instructions) Search Apollo docs, specs, and best practices ## Connect - streamable-http: `https://mcp.apollographql.com` ## Tools (as reported by the server, not verified) - `DeleteSubgraph`: Remove a subgraph from a variant and start composition, the same write that \`rover subgraph delete\` performs. Returns the composition errors that the removal causes. This deletes the subgraph from the variant and can break the running router. Set dryRun to true first: the response then reports the c - `TagGraphArtifact`: Assign a tag to a graph artifact, the same write that \`rover graph-artifact tag\` performs. If the tag does not exist, it is created. If it exists, it moves to this artifact, and any router that fetches by that tag receives the new artifact. Returns the artifact's ID and digest, or an error with a me - `GetContractConfig`: Read the filter configuration of a contract variant: the tags it includes, the tags it excludes, the source variant it is built from, and a human-readable description of the configuration. This is the same read that \`rover contract describe\` performs. A contract variant is a filtered view of another - `GetClientMetrics`: Traffic broken down by client for a graph over a time window, as compact CSV. Columns: start timestamp, end exclusive timestamp, client name, client version, operation name, request count, request latency p50 ms, request latency p99 ms, request with error count. Answers which clients call a graph, w - `CreateProposal`: Create a schema proposal against a source variant, the same action as Create proposal in GraphOS Studio. GraphOS creates a proposal variant that starts as a copy of the source variant's schema, and the proposal starts in DRAFT. Returns the proposal variant's name and the new proposal's ID and status - `ReviewProposal`: Approve or reject a revision of a schema proposal, with an optional comment, the same action as Review in GraphOS Studio. Only a requested reviewer can review, and calling this again replaces the caller's earlier review. Returns the proposal's status and its reviews, or an error with a message. Prov - `PublishProposalRevision`: Save a new revision of a schema proposal by publishing changed subgraph schemas to its proposal variant, the same action as Save revision in GraphOS Studio. GraphOS composes the proposal variant, records the diff against the source variant, and runs schema checks on it. The source variant does not c - `GetSubgraphMetrics`: Top subgraphs/connectors by traffic/health for a graph over a time window, as compact CSV. Columns: start timestamp, end exclusive timestamp, fetch service name, fetch count, fetch latency p50 ms, fetch latency p99 ms, fetch with errors count. Ranked by \`orderBy\` descending: default FETCH\_COUNT \(bus - `GetGraphArtifact`: Fetch a graph artifact by its digest, the same lookup that \`rover graph-artifact fetch --digest\` performs. A graph artifact is the build output, such as the composed supergraph schema, that GraphOS Router fetches from Apollo's OCI registry. Returns the artifact's ID, digest, status \(GRAPH\_ARTIFACT\_C - `ApolloConnectorsSpec`: Returns the Apollo Connectors specification for guidance on creating or modifying GraphQL schemas that use @connect or @source. - `ApolloDocsRead`: Reads an Apollo documentation page by slug in chunks. Use slugs returned by ApolloDocsSearch. - `PublishContract`: Create or update a contract variant and start a launch for it, the same write that \`rover contract publish\` performs. A contract variant is a filtered view of another variant's schema, built by including and excluding schema elements by tag. The filter configuration replaces the previous one in full - `DeleteApiKey`: Delete an API key from an organization, the same write that \`rover api-key delete\` performs. This cannot be undone, and every client that uses the key stops authenticating. Returns the deleted key's ID. Provide the organization ID and the key ID, which GetApiKeys returns. - `GetSchemaChecks`: List past schema checks for a graph: each check's ID, status, timestamps, the subgraph it checked, the variant it ran against, the commit, and the status of each task in the check, plus the total count for the filter. Use this to find a check, then pass its ID to GetCheckResults for failure details. - `ValidateOperations`: Validate client GraphQL operations against a variant's published schema and return each problem's type \(FAILURE, WARNING, INVALID\), code, description, and the name of the operation it came from. This is the same check that \`rover client check\` runs. Nothing is published and no state changes. Provide - `GetProposal`: Read one schema proposal by its ID: title, description, status, author, the source variant, and the proposal variant with the ID of its latest launch. Also returns the latest revision \(its ID, summary, schema check, and launch\), every review with its decision and comment, and whether the source vari - `GetMyIdentity`: Resolve the caller's identity from their API key or OAuth token. Call this FIRST when the user asks about "my graph" but has not provided a graph ID. For a graph/service key, \`me\` resolves to a Graph: use \`id\` as the graphId and \`variants\[\].name\` as the variant for the graph-scoped health-check tool - `GetGraphArtifactTags`: List the graph artifact tags on a graph and the artifact each tag points to: the artifact's ID, digest, status, creation time, and variant. GraphOS Router can fetch an artifact by tag name instead of by digest. It is similar to \`rover graph-artifact list-tags\`, which filters by artifact digest inste - `GetApiKeys`: List the API keys and client-credential pairs of an organization. For each key: its ID, name, type, creation, expiry, last use, revocation time, and the resources it can access. For each client-credential pair \(an OAuth client that authenticates with the client credentials grant\): its client ID, nam - `PublishGraphSchema`: Publish a schema to a graph variant, the same write that \`rover graph publish\` performs. Use this for a monograph; use PublishSubgraph for one subgraph of a federated graph. Returns a result code, whether the publish succeeded, a human-readable message, and the hash of the published schema. This cha - `GetProposals`: List the schema proposals on a graph: each proposal's ID, title, status \(DRAFT, OPEN, APPROVED, IMPLEMENTED, CLOSED\), timestamps, author, the source variant it proposes changes to, and the proposal variant that holds its changes, plus the total count for the filter. A schema proposal is a reviewable - `ApolloDocsSearch`: Searches official Apollo documentation for GraphQL, GraphOS, Apollo Router, Apollo Client, MCP Server, schema design, deployment, and Connectors. Returns URLs, slugs, and excerpts. - `GetOfflineLicense`: Fetch the offline Enterprise license for the organization that owns a graph, the same data that \`rover license fetch\` returns. The license is a signed JWT that lets GraphOS Router enable Enterprise features while it runs disconnected from GraphOS. Returns null when the organization does not have off - `GetLintResults`: Retrieve schema lint violations from a graph's most recent schema checks: each diagnostic's coordinate, severity level, message, rule, and source location, plus error/warning/total/ignored counts. Use to assess schema quality and naming/best-practice violations. Provide the graph ID and optionally a - `UntagGraphArtifact`: Delete a graph artifact tag from a graph, the same write that \`rover graph-artifact untag\` performs. The tag and its full history are removed, and any router that fetches by that tag can no longer resolve it. The artifact itself stays. Tags that Apollo manages, such as a variant's latest tag, cannot - `GetGraphSchema`: Read the schema \(SDL\) that is currently published to a graph variant, with its hash and publication time. This is the same read that \`rover graph fetch\` performs. The response holds the whole document and is not truncated. A large federated graph measured over 800,000 characters, roughly 200,000 tok - `UpdateProposalStatus`: Change the status of a schema proposal, the same action as the status menu in GraphOS Studio. DRAFT is for work in progress, OPEN asks reviewers to review, and CLOSED abandons the proposal. GraphOS accepts APPROVED only when the proposal has as many approvals as the graph requires, and it never acce - `GetSupergraphSchema`: Read the composed supergraph schema \(SDL\) for a graph variant, with the composition ID and any composition errors. This is the same read that \`rover supergraph fetch\` performs. A supergraph schema is the single schema that composition builds from every subgraph, and it carries federation directives - `GetOperationMetrics`: Top operations by usage/health for a graph over a time window, as compact CSV. Columns: start timestamp, end exclusive timestamp, operation name, request count, request latency p50 ms, request latency p99 ms, request with error count. Ranked by \`orderBy\` descending: default REQUEST\_COUNT \(busiest\); - `GetCheckResults`: Read the outcome of one schema check run: the overall status, and for each task in the run the composition errors, lint diagnostics, schema changes with the client operations they affect, downstream variant results, and custom check violations. Use this after GetSchemaChecks gives you a check ID. Pr - `GetLaunchHistory`: 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 GetLaunch. Use to asses - `RenameApiKey`: Rename an API key in an organization, the same write that \`rover api-key rename\` performs. The key value and its access do not change. Returns the key's ID and new name. Provide the organization ID, the key ID, which GetApiKeys returns, and the new name. - `GetLatestLaunch`: Inspect the most recent launch for a graph variant: status, completion time, subgraph changes, composition errors, and a schema diff summary vs the previous launch \(additions/removals/edits/deprecations plus affected operations\). Use to assess schema composition health and the impact of recent schem - `GetPersistedQueryListStatus`: Check whether a graph variant has a Persisted Query List \(PQL\), and return its ID, its name, and its current build \(revision and operation count\). Pass the ID to PublishPersistedQueries. Use to assess PQL configuration — a production variant with no PQL is a security gap. Provide the graph ID and va - `PublishSubgraph`: Publish a subgraph schema to a variant and start composition, the same write that \`rover subgraph publish\` performs. Returns whether the subgraph was created or updated, any composition errors, and the launch that started. This changes the schema registry and can change what the router serves. Run R - `GetVariantDetails`: Retrieve metadata for a graph variant: its identifier, federation version, the URL of its GraphQL endpoint, and its subgraph inventory \(names only\). Use this to assess a variant's composition setup, such as subgraph inventory and federation version compliance. Provide the graph ID and variant name \( - `GetTopOperations`: Identify the most-used operations on a graph variant for a time range, with request counts, types, and signatures. Use to find high-traffic operations, detect unused operations, and prioritize findings by traffic impact. Provide graph ID, variant, and a from/to time range \(ISO 8601 timestamps; \`to\` - `GetLaunch`: Inspect a single launch by ID for full detail: status, timestamps, which subgraphs changed, composition errors, and the schema diff summary. Use to drill into a specific launch — e.g. a failed or superseded one found via GetLaunchHistory \(pass its id here\). Provide the graph ID, variant name, and la - `GetSubgraphSchema`: Read one subgraph's published schema \(SDL\) from a variant, with its routing URL, revision, and last update time. This is the same read that \`rover subgraph fetch\` performs. Read one subgraph at a time: a whole supergraph document is much larger and can pass the token limit of the model. Provide the - `RunSchemaCheck`: Start a schema check of a proposed schema against a variant, the same check that \`rover graph check\` starts. Use this for a monograph or for a whole supergraph schema; use RunSubgraphCheck for one subgraph. The check runs in the background, so this returns a workflow ID and a Studio URL, not a resul - `GetReadme`: Read the README of a graph variant, with the time it was last updated and who updated it. This is the same read that \`rover readme fetch\` performs. The README is the Markdown document shown on the variant's page in GraphOS Studio. Provide the graph ID and the variant name. - `DeleteGraph`: Delete a graph, the same write that \`rover graph delete\` performs. This is a soft delete: the data is not removed permanently and Apollo support can restore the graph. Every variant of the graph stops serving, so confirm the graph ID with the user before you call this. Returns null on success. Provi - `LintSchema`: Lint a GraphQL schema document against the 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. This is the same check that \`rover graph lint\` and \`rover subgraph lint\` run. Nothing is publ - `CreateApiKey`: Create an API key for an organization. The response contains the new key's value in token. It is a live credential, so give it to the user to store in a secret manager, and do not repeat it, log it, or pass it to another tool. Which key types you can create depends on how you authenticate. With the - `PublishPersistedQueries`: Publish operations to a persisted query list, the same write that \`rover persisted-queries publish\` performs. A persisted query list is the set of operations a router accepts when it is configured to reject anything else. Operations you do not mention stay in the list unchanged: pass operations to a - `RunSubgraphCheck`: Start a schema check of one proposed subgraph schema against a variant, the same check that \`rover subgraph check\` starts. The check runs in the background, so this returns a workflow ID and a Studio URL, not a result. Pass the returned workflowID to GetCheckResults to read the outcome. Provide the - `AddProposalComment`: Add a comment to a schema proposal, the same action as commenting in GraphOS Studio. With no other options, the comment is a general comment on the proposal. To comment on one change, pass the schema coordinate \(for example Query.products\) and the subgraph name as schemaScope. To reply, pass the par - `PublishReadme`: Replace the README of a graph variant, the same write that \`rover readme publish\` performs. The README is the Markdown document shown on the variant's page in GraphOS Studio. The new text replaces the whole README, so read the current one with GetReadme first if you intend to keep any of it. Provide Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html