MCP Directory

Apollo MCP Server: GraphQL Tools for Your Agent

Apollo's official server can turn a GraphQL API into controlled MCP tools, but production success depends on limiting the operations an agent may run.

MCP Directory·August 4, 2026·7 min read
Detailed close-up of a financial graph on a computer screen showing data trends.
Photo by Markus Winkler on Pexels

The Apollo MCP Server is Apollo GraphQL's official bridge between an MCP-compatible agent and a GraphQL API. It exposes approved operations as callable tools, or lets an agent inspect a schema and build operations dynamically. For production, we would use persisted, read-only queries first—not unrestricted schema introspection and mutations.

Table of contents

What Apollo MCP actually is

Apollo MCP Server converts GraphQL operations into MCP tools that an agent can discover and call with structured arguments. The server then sends the corresponding query or mutation to your existing GraphQL endpoint, so your schema, resolvers, authentication, and downstream services remain the actual system of record.

That distinction matters. It is not a hosted database, a replacement for Apollo Server, or a general chat interface. It is an adapter placed between an MCP client and any GraphQL API, with local stdio and remote Streamable HTTP transports documented by Apollo. Operations may come from .graphql files, GraphOS collections, persisted-query manifests, or schema introspection. Apollo's architecture overview explains this translation layer.

In concrete terms, an agent could fetch an order with its customer and line items in one call, validate a generated query, or run an approved refund mutation. What it can do is exactly what the exposed operation set and upstream identity permit. If you are comparing broader integrations, browse MCP Directory's best MCP servers rather than assuming every API adapter has the same security model.

What exists today

There is a first-party, open-source Apollo MCP Server; you do not need to bet on an anonymous community wrapper. Apollo publishes its source in the apollographql/apollo-mcp-server repository and release images at ghcr.io/apollographql/apollo-mcp-server.

Do not confuse it with GraphOS MCP Server, Apollo's hosted endpoint at https://mcp.apollographql.com. The hosted service supplies Apollo documentation and graph-development tools, while Apollo MCP Server is software you operate against your own GraphQL API. Apollo's GraphOS installation page shows that separate endpoint and its client configurations.

The self-hosted server has moved beyond the original experimental launch, but deployment ownership still sits with you: version pinning, network exposure, identity-provider configuration, logs, and compatibility testing. We would pin a container release instead of using latest, test the generated tool schemas in the exact MCP client, and stage upgrades. First-party maintenance reduces provenance risk; it does not remove operational risk. See other vendor-backed choices in the official server collection.

How to set it up

Start with a GraphQL endpoint, its schema, a deliberately small operation set, and an MCP client. For a production remote server, also prepare TLS, an OAuth 2.1-compatible identity provider, explicit audiences and scopes, and an upstream account whose permissions match the allowed operations.

  1. Choose the operation source. Use local operation files for a small trial or a persisted-query manifest/GraphOS collection for governed deployment. Apollo documents all supported sources in its configuration reference.
  2. Run the official build. Use the standalone container or binary for an existing API; Rover can start the MCP server beside a local graph. Apollo's run guide documents the container ports and Rover requirements.
  3. Set the endpoint and credentials. Configure the GraphQL URL and only the headers the upstream API requires. Keep secrets out of committed client JSON and shell history.
  4. Configure client authorization. For HTTP, set the identity-provider URL, exact token audience, and least-privilege scopes. Apollo supports global and per-operation scope requirements; require_all is the default scope mode. The authorization guide details 401 versus 403 behavior.
  5. Add the server to the client. Point a Streamable HTTP-capable client at the URL you deployed, or launch the binary through the client's stdio configuration. Because the command, path, URL, and header syntax differ by client and deployment, we intentionally do not publish a fake universal mcpServers block. Use the client's official format or MCP Directory's config generator, then verify the advertised tools before a real call.

Test one harmless query end to end. A successful connection only proves MCP transport works; it does not prove the GraphQL identity, variables, query cost, or tenant boundaries are correct.

Close-up of tower servers in a data center with blue and red lighting.
Photo by panumas nikhomkhai on Pexels

Tools you get

The fixed tool names are the optional introspection tools below; operation-backed tool names come from your GraphQL operation names. We prefer named operation tools because their inputs and effects can be reviewed before an agent sees them.

Tool nameWhat it doesOur production view
introspectReturns schema information for a named type and depthUseful in development; restrict the visible schema
searchSearches schema types and fields by termsBetter than walking a large schema blindly
validateChecks a generated operation against the schema without running itEnable when dynamic operations are allowed
executeSends a dynamically built operation to the GraphQL endpointHigh risk; disable unless there is a strong need
Your operation nameRuns that predefined query or mutation with generated structured inputsPreferred production interface

Apollo's tool-definition documentation confirms the four introspection names and explains minified schema results. Predefined operations can also carry descriptions, which matters because agents select tools partly from names and descriptions. Review the broader MCP model of tools, resources, and prompts when deciding what belongs in this server.

Permissions and blast radius

Use read-only operations and a dedicated integration identity first. A human's broad token lets the agent inherit every accidental privilege attached to that person, while a separate identity gives you narrower policy, clearer logs, rotation, and immediate revocation.

For GraphQL, a careless write is not abstract. One mutation can cancel an order, change an account owner, publish content, or trigger resolver-side emails and payments. Nested queries can also become expensive without writing anything. Our baseline would be:

  • expose an AI-specific contract variant containing only required fields;
  • allowlist named persisted queries;
  • omit mutations until each has an approval and rollback story;
  • apply per-operation OAuth scopes and upstream authorization;
  • enforce GraphQL depth, complexity, timeout, and demand limits;
  • log tool name, identity, variables with sensitive values redacted, outcome, and latency.

Apollo itself recommends contract variants for persisted queries and introspection in its best-practices guide. One sharp edge remains: the current server can pass the client's OAuth token through to the upstream API. Apollo warns that this can create confused-deputy and audience problems; its limitations page says the upstream must validate audiences correctly. Treat the MCP boundary and GraphQL boundary as separate authorization decisions.

Real limits

Apollo MCP Server does not remove GraphQL cost, context-window, rate-limit, or API capability limits. It makes operations callable; the client model and upstream services still set the practical ceiling.

A GraphQL response can be valid yet far too large for a useful model turn. Paginate lists, cap first/limit arguments, select only decision-relevant fields, and summarize server-side where possible. Schema introspection also consumes context; Apollo provides minification for introspect and search, but a smaller contract is safer and easier for an agent to navigate.

Rate limits belong to the GraphQL API, gateway, identity provider, and downstream data sources—not to MCP as a guarantee. An agent may retry or chain calls, so budget by user and operation, return clear retry signals, and trace downstream requests. Apollo documents OpenTelemetry spans and an operation counter in its telemetry guide.

Finally, the server cannot perform actions absent from the schema, bypass field-level authorization, make subscriptions useful in a request-response agent flow, or make a non-idempotent mutation safe. Validation only proves an operation matches the schema; it does not prove the result set is small, the request is permitted, or the business action is wise.

When not to use it

Skip Apollo MCP Server when a fixed API call, existing Apollo product feature, or narrow application endpoint solves the job with less machinery. MCP earns its place when multiple compatible clients need discoverable GraphQL tools and agent-driven composition.

Use a plain GraphQL script for a deterministic scheduled export, migration, or single workflow. It is easier to test, retry, and audit, and it avoids asking a model to choose a tool it never needed to choose. Use your existing application backend when you require a carefully designed transaction, human confirmation screen, or strict state machine.

Apollo's own GraphOS MCP Server is the better fit when the agent needs Apollo documentation and graph-building assistance rather than access to your application data. Likewise, conventional GraphOS tooling may be enough for schema checks and developer workflows.

Our verdict: deploy Apollo MCP Server when you already have a useful GraphQL surface and can curate a small allowlist of operations. Avoid exposing an entire production schema merely because introspection makes that convenient. The trade-off is simple—dynamic discovery reduces integration work, while predefined tools give you predictability, smaller context, and a blast radius you can actually explain.

FAQ

Is Apollo MCP Server official?

Yes. Apollo GraphQL maintains Apollo MCP Server and publishes its source and container images. It is separate from the hosted GraphOS MCP Server used for Apollo documentation and graph-development assistance.

Can Apollo MCP Server work with a non-Apollo GraphQL API?

Yes. Apollo states that the server can connect to any GraphQL API, not only one running Apollo Server. You still need a schema, an endpoint, suitable authentication, and operations the agent is allowed to invoke.

Is Apollo MCP Server safe for production mutations?

Not by default. Safety depends on the operations, OAuth scopes, upstream authorization, query-cost controls, and approval flow you configure. Start read-only, use persisted operations, and grant mutation access individually to a dedicated identity.

How much does Apollo MCP Server cost?

The server is open source, but operating it is not free. Budget for hosting, observability, identity infrastructure, model tokens, GraphQL traffic, and any GraphOS plan or downstream API usage your chosen setup requires.

Put this into practice

Browse MCP servers by capability, or check your own setup's tool budget and security.

More in Integrations

Browse all integrations articles.