mcpbeat Sign in

GraphOS MCP Tools MCP Server

answering

GraphOS MCP Tools is answering right now. Last checked 7 min ago. It exposes 14 tools. Last commit 18 Sep 2026.

Search Apollo docs, specs, and best practices

Uptime history 48 days of history
48 days agonow
100.0%
Uptime 24h
92 of 92 checks
14
Tools
read from the server
232 ms
Response time
average over 24h
309
Stars
last commit 18 Sep 2026

What changed 14

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 11 September 2026. No other catalogue keeps this.

18 Sep 6 tools changed the parameters they ask for GetClientMetrics, GetLaunchHistory, GetLintResults and 3 more
18 Sep a tool description was rewritten GetVariantDetails
18 Sep a tool changed version
11 Sep 3 tool descriptions were rewritten GetMyIdentity, GetOperationMetrics, GetSubgraphMetrics
11 Sep 2 tools changed the parameters they ask for GetOperationMetrics, GetSubgraphMetrics
11 Sep a tool appeared GetClientMetrics

What the code does

We read the source, 23 h ago · tools taken from the live server · rules 3dff92dd89df

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

A line of code looks encrypted crates/apollo-mcp-server/src/explorer.rs:111
            @"https://studio.apollographql.com/graph/mcp-example/variant/mcp/explorer?explorerURLState=N4IgJg9gxgrgtgUwHYBcQC4QEcYIE4CeABAOIIoDqCAhigBb4CCANvigM4AUAJOyrQnREAyijwBLJAHMAhAEoiwADpIiRaqzwdOfAUN78UCBctVqi7BADd84lARXmiYBOygSADinEQkj85J8eDBQ3r7+AL4qESAANCBW1BLUAEas7Bggy…
In the project's build, not in the package

Found in continuous integration, deployment or infrastructure files, or in a neighbouring package of the same monorepo. None of this is installed when you add the server: it describes how the project is built and released. We list it because a leaked key in a build pipeline is still a real problem, but it is not something this server does on your machine.

Builds a database query by concatenation .github/workflows/release-experimental.yml:86
      - name: Delete temporary branch
        run: |
          git push origin --delete release-temp-${{ inputs.version }}-${{ github.run_id }} || true

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 7 min ago.

run in your terminal
claude mcp add graphos-mcp-tools --transport http https://mcp.apollographql.com
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "graphos-mcp-tools": {
      "url": "https://mcp.apollographql.com"
    }
  }
}
~/.codex/config.toml
[mcp_servers.graphos-mcp-tools]
url = "https://mcp.apollographql.com"
.cursor/mcp.json
{
  "mcpServers": {
    "graphos-mcp-tools": {
      "url": "https://mcp.apollographql.com"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "graphos-mcp-tools": {
      "url": "https://mcp.apollographql.com"
    }
  }
}

Available tools 14

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

apolloconnectorsspec
ApolloConnectorsSpec
Returns the Apollo Connectors specification for guidance on creating or modifying GraphQL schemas that use @connect or @source.
apollodocsread
ApolloDocsRead
Reads an Apollo documentation page by slug in chunks. Use slugs returned by ApolloDocsSearch.
apollodocssearch
ApolloDocsSearch
Searches official Apollo documentation for GraphQL, GraphOS, Apollo Router, Apollo Client, MCP Server, schema design, deployment, and Connectors. Returns URLs, slugs, and excerpts.
getclientmetrics
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, which client versions are still on the wire, and which client drives errors or latency. Clients that do not report `apollographql-client-name`/`-version` come back with empty name and version columns. Ranked by `orderBy` descending: default REQUEST_COUNT (busiest); REQUEST_WITH_ERROR_COUNT for most error-prone, REQUEST_LATENCY_P99_MS for slowest. `variantName` and `operationName` scope to one or more variants or operations by exact name (omit for all). Rows are one per client + version + operation, so a busy graph has far more groups than the other metrics tools: scope by `operationName` or raise `limit` when a breakdown looks truncated. Keep the default `resolution` of ENTIRE_RANGE for totals and top-N, which gives one row per group ranked over the whole window. DAY/HOUR/MINUTE give one row per group per bucket ranked within each bucket, so a window total then needs a per-group sum plus a `limit` big enough to cover every bucket; too small a `limit` silently undercounts. Only HOUR and MINUTE accept a `to` of now, so use them for bursts in the last 24 hours. Avoid MONTH: it labels buckets by calendar month, not by the requested window.
getlatestlaunch
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 schema changes. Also returns the latest approved launch for comparison. Provide the graph ID and variant name.
getlaunch
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 launch ID.
getlaunchhistory
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 assess deployment stability. Provide the graph ID, variant name, and optionally a limit (default 20 most recent launches, max 100 per page) and an offset to page further back.
getlintresults
GetLintResults
Retrieve schema lint violations from a graph's most recent check workflows: 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 limit (default 5 most recent check workflows).
getmyidentity
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 tools, so the user does not have to supply either. For a user (personal key or OAuth), `me` resolves to a User instead: there's no single graph, so each org membership's `graphs[].id` / `graphs[].variants[].name` lists the graphId/variant options the graph-scoped tools need, across every org the user belongs to. Also handles service-account keys.
getoperationmetrics
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); REQUEST_WITH_ERROR_COUNT for most error-prone, REQUEST_LATENCY_P99_MS for slowest. `variantName` scopes to one or more variants (omit for all). `clients` scopes to one or more clients; omit `clientVersion` to match every version of that client, and use GetClientMetrics to discover the names a graph sees. Keep the default `resolution` of ENTIRE_RANGE for totals and top-N, which gives one row per operation ranked over the whole window. DAY/HOUR/MINUTE give one row per operation per bucket ranked within each bucket, so a window total then needs a per-operation sum plus a `limit` big enough to cover every bucket; too small a `limit` silently undercounts. Only HOUR and MINUTE accept a `to` of now, so use them for bursts in the last 24 hours. Avoid MONTH: it labels buckets by calendar month, not by the requested window.
getpersistedqueryliststatus
GetPersistedQueryListStatus
Check whether a graph variant has a Persisted Query List (PQL) and its current build (revision and operation count). Use to assess PQL configuration — a production variant with no PQL is a security gap. Provide the graph ID and variant name.
getsubgraphmetrics
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 (busiest); FETCH_WITH_ERRORS_COUNT for most error-prone, FETCH_LATENCY_P99_MS for slowest. `variantName` scopes to one or more variants (omit for all). `subgraphName` scopes to one or more subgraphs by exact name (omit for all); pattern/substring matching is not supported. `clients` scopes to the fetches driven by one or more clients; omit `clientVersion` to match every version of that client, and use GetClientMetrics to discover the names a graph sees. Keep the default `resolution` of ENTIRE_RANGE for totals and top-N, which gives one row per subgraph ranked over the whole window. DAY/HOUR/MINUTE give one row per subgraph per bucket ranked within each bucket, so a window total then needs a per-subgraph sum plus a `limit` big enough to cover every bucket; too small a `limit` silently undercounts. Only HOUR and MINUTE accept a `to` of now, so use them for bursts in the last 24 hours. Avoid MONTH: it labels buckets by calendar month, not by the requested window.
gettopoperations
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` must be at least 6 hours before now), plus an optional limit (default 50). This report is rate limited.
getvariantdetails
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 (e.g., "production").

Endpoints

URLTransportStateLatencyChecked
https://mcp.apollographql.com streamable-http answering 233 ms 7 min ago

Alternatives to GraphOS MCP Tools

same job, measured the same way
GraphOS MCP Server
by apollographql

Search Apollo docs, specs, and best practices

14 tools answering
Docs
by freebatteryfactory

Search and read the Free Battery Factory docs (LiteShip, batpak) as live MCP tools.

5 tools answering
aicoolies
by rasitakyol

Search and read the aicoolies developer-tools knowledge graph.

5 tools answering
Unraid MCP
by tootie

MCP server for Unraid API — provides tools to interact with an Unraid server's GraphQL API.

564 installs/wk local only
Unraid MCP
by dinglebear

MCP server for Unraid API — provides tools to interact with an Unraid server's GraphQL API.

local only
I
Simple MCP HTTP
by oleksii-donets

A Test MCP server that provides tools, promts and resources

local only
Simple MCP
by oleksii-donets

A Test MCP server that provides tools, promts and resources

local only
Pg Aiguide
by timescale

Comprehensive PostgreSQL documentation and best practices, including ecosystem tools

120 installs/wk 2 tools answering

GraphOS MCP Tools — questions

Answers built from our own checks of this server.

What can GraphOS MCP Tools do?
It exposes 14 tools, read directly from the server on our last check. Among them: ApolloConnectorsSpec, ApolloDocsRead, ApolloDocsSearch, GetClientMetrics, GetLatestLaunch, GetLaunch and 8 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is GraphOS MCP Tools working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 232 ms. The bar chart above shows every period we have measured.
How do I connect GraphOS MCP Tools?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does GraphOS MCP Tools need an API key?
No. GraphOS MCP Tools completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 14 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is GraphOS MCP Tools?
It answers our handshake in 232 ms on average, which is faster than 61% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is GraphOS MCP Tools open source?
Yes — it is published under the MIT licence, written in Rust, 309 stars on GitHub and 16 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.