Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for Apollo MCP Server

Pod holds 24 of 100 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to Apollo MCP Server.

Most discussed

Set tool annotation

We have a use case where we need to set annotations on tools https://modelcontextprotocol.io/specification/2025-11-25/server/tools

Ideally, for us, it would be possible to specify the annotations on the individual operations. But if it was possible to specify in the config, like the descriptions override, that would also be workable. https://www.apollographql.com/docs/apollo-mcp-server/config-file

Read the thread · 2026-03-04 · closed · external user · 8 comments

OpenAI fails to load tools

I have a deployed MCP server on public k8s, it can integrate with Cursor through mcp-remote, it successfully loads tools, and I can execute operations on the GraphQL schema. Auth is handled through Auth0.

But when I add it to OpenAI with an Access token / API key, which is valid, it just says there are no tools available.

How should I debug this?

Read the thread · 2025-10-08 · closed · external user · 7 comments

v0.6.0 - v1.0.0 return 0 operations for tools list MCP call (working in v0.5.2 and lower)

The Apollo MCP Server v0.6.0 - v1.0.0 always returns 0 operations for a GraphQL schema that return introspect and execute in v0.5.2. There are no errors in the docker container for v0.6.0 - v1.0.0 and the schema is visible in the container logs without any errors.

Expectation: The following operations are return in the tools list call to the MCP

  • introspect
  • execute
  • search

Infrastructure:

  • GraphQL server: self hosted Apollo Router

Difference in versions:

  • v0.5.2 the schema is loading us

Read the thread · 2025-10-02 · closed · external user · 8 comments

Name and version of MCP server?

Is there a way to specify the name and version of GraphQL MCP server?

From MCP docs

const server = new McpServer({
  name: "weather",
  version: "1.0.0",
  ....
});

Read the thread · 2025-09-02 · closed · external user · 7 comments

Using ${env.APOLLO_COLLECTION_ID} for operations.id throws UUID validation

Description

When configuring operations.id in mcp.yaml with an environment variable, such as:

operations:
  source: collection
  id: ${env.APOLLO_COLLECTION_ID}

The server fails to start and throws the following error:

Error loading collection: Error in response: ${env.APOLLO_COLLECTION_ID} is not a valid UUID

This happens even though the environment variable is properly set in .env file and exported in the shell before running the command:

s

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/288) · 2025-08-26 · closed · external user · 10 comments

### GraphQL API responding with 403 Forbidden for unauthenticated operations

Hi, I'm trying to use the Apollo MCP Server with OAuth to connect to a GraphQL API. I'm getting 403 Forbidden errors when the MCP server tries to perform unauthenticated operations. It looks like it's automatically adding a bearer token to all outgoing requests, which causes the GraphQL API to reject operations that shouldn't need authentication. Is there a way to set up the MCP Server so that bearer tokens aren't included in requests for unauthenticated operations?

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/280) · 2025-08-24 · closed · external user · 11 comments

### Multiuser: authentication with the upstream GraphQL API

How should I do authentication with upstream GraphQL for multiple users? So the upstream GraphQL can do its own authentication of the user and return relevant results?

If I understand correctly, the OIDC is only for authenticating the MCP Client with the MCP server, but that auth is not sent to the upstream tools? 

So how should my GraphQL server know which user is making the request?

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/241) · 2025-08-12 · closed · external user · 9 comments

### OAuth2 does not send scope to auth page

<img width="417" height="640" alt="Image" src="https://github.com/user-attachments/assets/77c24e67-cfff-4352-a3f3-2c9cbcda3492" />

<img width="580" height="598" alt="Image" src="https://github.com/user-attachments/assets/f398a9b0-4b94-4541-b7ef-621e11ca553a" />

<img width="491" height="336" alt="Image" src="https://github.com/user-attachments/assets/e89ac16d-1309-4fdd-ab16-29181b2a4720" />

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/237) · 2025-08-10 · closed · external user · 15 comments

## Most recent

### Generated input schemas can't express a nullable variable, so strict clients must send placeholder values

In a generated `inputSchema`, the only thing marking a variable as nullable is that it's missing from `required`. There's never a `{"type": "null"}` on the input side.

So the only way for a model to say "no filter" is to leave the property out. That breaks as soon as a client rewrites the schema for strict function calling — OpenAI-style structured outputs require every key in `properties` to also be in `required`, so the transform removes the one escape hatch the schema had. The model then has

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/815) · 2026-08-28 · open · external user · 0 comments

### Disable ANSI styling in non-terminal log output and honor NO_COLOR

## Summary

Apollo MCP Server emits ANSI SGR escape sequences in stdout logs even when
stdout is not connected to a terminal, such as when the server runs in a
container whose output is collected by a logging pipeline.

There is currently no configuration option to request plain-text stdout logs.

## Version tested

I reproduced this from current `main` at commit
`5b5a079cabc266ca9be9818c94ad09cb45742061`, which reports Apollo MCP Server
version `1.17.0`.

## Reproduction

I built the repository

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/813) · 2026-08-26 · open · outside contributor · 0 comments

### feat: progressive tool discovery over pre-defined operations

## Summary

Apollo MCP Server has no way to expose a large set of pre-defined operations without putting every tool definition into the model's context up front. Today the only escape is `introspection.search` + `execute`, which trades the pre-defined-operation model for arbitrary query authoring. Those should not be the same decision.

We would like a third mode: **tool discovery over the curated operation set**, with no schema introspection and no arbitrary query authoring.

## Problem

We run

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/812) · 2026-08-18 · open · external user · 0 comments

### Telemetry: W3C baggage is not propagated (only TraceContextPropagator is registered)

### Summary

Apollo MCP Server registers only `TraceContextPropagator`, so W3C Baggage is neither
extracted from incoming requests nor injected into the outgoing request to the router.
Any context an upstream service places in baggage is silently dropped at the MCP hop.

`baggage` does not appear anywhere in the Rust sources as of v1.17.0:

$ git clone --depth 1 https://github.com/apollographql/apollo-mcp-server.git $ grep -rni baggage --include='*.rs' . | wc -l 0


The propagator is regi

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/807) · 2026-08-04 · open · external user · 1 comment

### feat: Expose server_info.icons so operators can advertise a server icon

## Motivation

The MCP protocol grew an `icons` field on the `Implementation` object in
revision `2025-11-25` so hosts (Claude Desktop, Cursor, Zed, …) can show a
per-server icon next to the server's name. `apollo-mcp-server` renders every
other `Implementation` field on `initialize` — `name`, `version`, `title`,
`description`, `website_url` — but `icons` is currently unreachable from
config, so any downstream project that wraps this binary shows up in the
host UI with the generic default icon.

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/805) · 2026-08-03 · open · external user · 1 comment

### Roadmap for supporting 2026-07-28 stateless MCP Spec?

I haven't seen much talk of the new MCP spec in this repo, so I just wanted to open a discussion-style issue to inquire whether you all have talked about it, whether it's on the roadmap, etc. 

https://blog.modelcontextprotocol.io/posts/2026-07-28/

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/801) · 2026-07-28 · open · external user · 1 comment

### 1.16 does not negotiate protocol version down to 2025-06-18

Attempting to integrate with AWS AgentCore.

AgentCore sends 2025-06-18 as protocol version. Per release notes in 1.16 Apollo MCP should negotiate this protocol version, but instead it sends back 2025-11-25, which AgentCore does not understand.

See log: [apollomcp_log.txt](https://github.com/user-attachments/files/30259326/apollomcp_log.txt)
Config: [apollomcp_config.yaml](https://github.com/user-attachments/files/30259371/apollomcp_config.yaml)

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/794) · 2026-07-22 · closed · external user · 3 comments

### Built-in introspection tools (execute/introspect/search/validate) ship without tool annotations, so clients can't auto-allow them

### Problem

Operation tools get `ToolAnnotations` — `readOnlyHint` since #103, `destructiveHint` since #510, per-operation `overrides.annotations` since #726 (v1.13.0) — but the four built-in introspection tools (`execute`, `introspect`, `search`, `validate`) are constructed with a bare `Tool::new(...)` and carry **no annotations at all** (checked on `main` / v1.16.0, e.g. `crates/apollo-mcp-server/src/introspection/tools/execute.rs`).

`overrides.annotations` can't reach them either: the overr

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/793) · 2026-07-21 · open · external user · 0 comments

### Support authorization servers without a discovery endpoint

## Problem

Apollo MCP Server's `transport.auth.servers` requires every configured authorization server to expose an RFC 8414 (`/.well-known/oauth-authorization-server`) or OIDC Discovery (`/.well-known/openid-configuration`) metadata endpoint. Apollo MCP Server tries both, in a fixed priority order, and uses whichever responds first — but there's no way to configure a server that exposes neither.

Some authorization servers genuinely don't expose either endpoint — for example, internal or legac

[Read the thread](https://github.com/apollographql/apollo-mcp-server/issues/787) · 2026-07-09 · open · outside contributor · 1 comment

### Support OR-of-AND per-operation required scopes

## Problem

Apollo Router supports Boolean scope requirements through `@requiresScopes`, where the inner array is AND and outer arrays are OR:

```graphql
@requiresScopes(scopes: [["scope1", "scope2"], ["admin"]])

That authorizes either:

  • scope1 AND scope2
  • OR admin

Apollo MCP Server currently supports global scope_mode: require_all|require_any, but per-operation overrides.required_scopes is modeled as an operation-to-flat-scope-list map. That makes operation-specific alternat

Read the thread · 2026-07-01 · open · outside contributor · 0 comments

Feature Request: introspect tool does not return custom directive definitions

Description

When using the introspect tool, custom directive definitions (e.g. @auth, @cache) are never included in the output, even when those directives are applied to fields on the type being introspected.

This means developers using the MCP server have no way to discover what directives are defined in the schema or what they mean — making it impossible to understand field-level access control, validation constraints, or other custom schema behaviour through the MCP tooling alone.

Read the thread · 2026-06-19 · open · external user · 0 comments

bug: transient Uplink persisted-query manifest fetch failure silently clears tool catalog while /health reports UP

Problem Statement

When operations.source: uplink is configured, a transient Uplink persisted-query manifest fetch failure (network timeout, DNS failure, HTTP 5xx, retryable retry_later response) causes the server to replace its active tool catalog with an empty list. The server continues to report {"status": "UP"} from /health, sends a tools/list_changed notification to all connected clients, and those clients receive {"tools": []} — with no error, no degraded signal, and no indi

Read the thread · 2026-06-09 · closed · outside contributor · 0 comments

Add JWT issuer (iss) validation to auth, for parity with Apollo Router

Is your feature request related to a problem?

When delegating authentication to one or more upstream OAuth servers, Apollo MCP Server currently validates a JWT's signature, expiry, and audience (aud), but it does not validate the issuer (iss) claim. There is no configuration option to restrict which issuer an access token must come from.

Apollo Router supports this via its JWT authentication (authentication.router.jwt → per-J

Read the thread · 2026-05-30 · closed · outside contributor · 0 comments

Support parameter-level descriptions for local GraphQL operations

Problem

When using local GraphQL operations, Apollo MCP Server allows overrides schema description providing a new description for the operation itself through comments.

Example:

# Searches for resources matching the provided filters.
query SearchResources($filters: SearchInput) {
  searchResources(filters: $filters) {
    id
    name
  }
}

This works well for describing when a tool should be used, but there is currently no way to provide MCP-specific descriptions for indi

Read the thread · 2026-05-29 · open · external user · 1 comment

Enable MCP Resources Support in Apollo MCP Server

Summary

Enable support for MCP Resources in Apollo MCP Server, allowing resources to be backed by either static files or GraphQL queries.

Problem Statement

Apollo MCP Server currently supports tools backed by GraphQL operations, but does not expose MCP Resources. This limits the ability to provide reusable contextual data such as documentation, schemas, metadata, or dynamically generated content to MCP clients.

Could we enable support for MCP Resources in the Apollo MCP Server?

It

Read the thread · 2026-05-26 · open · external user · 2 comments

Map query/response attributes to OpenTelemetry GenAI semantic conventions for I/O capture

Problem

Following the fix in #748 , we tested Apollo MCP Server v1.14.0 and confirmed that GraphQL queries and responses are now being captured in traces with the following attributes:

  • apollo.mcp.graphql_query
  • apollo.mcp.graphql_response
  • apollo.mcp.tool_arguments
  • apollo.mcp.tool_result

However, these appear only in the trace metadata section. Observability platforms like Langfuse expect standardized OpenTelemetry GenAI semantic convention attributes (eg: gen_ai.input.messag

Read the thread · 2026-05-26 · open · external user · 1 comment

The remaining reports are on the project's issue tracker.