Skip to main content
Glama
mabdullah679

Apollo MCP Demo

by mabdullah679

Apollo MCP Demo

This folder sets up the same core architecture Apollo demonstrates for MCP:

  1. a normal GraphQL API,

  2. an Apollo MCP Server in front of it,

  3. a small allowlist of GraphQL operations that become MCP tools.

This version uses the standalone Apollo MCP Server container instead of the rover init --mcp wizard because it is simpler to run locally without GraphOS credentials.

What gets started

  • api: a tiny Apollo Server on http://localhost:4001/

  • mcp: Apollo MCP Server on http://localhost:8000/mcp

Related MCP server: mcp4gql

Architecture Diagram

flowchart LR
    subgraph LocalMachine["Local machine"]
        Client["MCP client\nInspector / Codex / Cursor"]

        subgraph Docker["docker compose"]
            MCP["Apollo MCP Server\n:8000/mcp"]
            API["Apollo GraphQL API\n:4001"]
        end

        Ops["graphql/operations/*.graphql\nApproved operations"]
        Schema["graphql/api.graphql\nSchema snapshot"]
    end

    Client -->|"MCP over Streamable HTTP"| MCP
    Ops -->|"tool definitions"| MCP
    Schema -->|"schema metadata"| MCP
    MCP -->|"GraphQL queries/mutations"| API
    API -->|"GraphQL JSON response"| MCP
    MCP -->|"MCP tool results"| Client

Run it

cd C:\Users\muham\Documents\apollo-mcp
npm install
docker compose up --build

In a second terminal, inspect the MCP server:

npx @modelcontextprotocol/inspector

Then open the Inspector URL it prints, choose:

  • Transport Type: Streamable HTTP

  • URL: http://127.0.0.1:8000/mcp

Click Connect, then List Tools.

You should see MCP tools derived from:

  • GetBooks

  • GetBookById

  • GetBooksByGenre

Optional client config

For MCP clients that use mcp-remote, the local config shape is:

{
  "mcpServers": {
    "apollo-demo": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://127.0.0.1:8000/mcp"
      ]
    }
  }
}

What's actually happening

The GraphQL API is still the real data service. It knows the schema, resolves fields, and returns JSON for GraphQL queries.

Apollo MCP Server does not replace that API. It sits in front of it and translates approved GraphQL operations into MCP tools that an AI client can discover and call.

The important files are:

The request flow is:

  1. Your MCP client connects to http://localhost:8000/mcp.

  2. Apollo MCP Server advertises tools based on the .graphql operation files.

  3. The client calls one of those tools with arguments.

  4. Apollo MCP Server converts that tool call back into the underlying GraphQL operation.

  5. Apollo MCP Server sends that GraphQL request to http://api:4001/.

  6. The GraphQL API executes the query and returns data.

  7. Apollo MCP Server returns the result to the MCP client in MCP format.

Request Flow Diagram

sequenceDiagram
    autonumber
    participant C as MCP Client
    participant M as Apollo MCP Server
    participant O as Operation Files
    participant G as GraphQL API

    C->>M: Connect to http://localhost:8000/mcp
    M->>O: Load approved .graphql operations
    O-->>M: GetBooks / GetBookById / GetBooksByGenre
    M-->>C: Advertise MCP tools
    C->>M: Invoke tool with arguments
    M->>M: Convert tool call to GraphQL operation
    M->>G: Send GraphQL request to http://api:4001/
    G-->>M: Return GraphQL JSON data
    M-->>C: Return MCP-formatted tool result

Why there is no router here

Apollo Router is useful when:

  • you are serving a federated supergraph,

  • you want Apollo's GraphOS-managed runtime,

  • or you want GraphQL and MCP bundled in Apollo Runtime.

For a simple local demo with one existing GraphQL API, Apollo's own deployment docs support using the standalone Apollo MCP Server container directly against that endpoint. That is what this project uses.

Sources

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • The Grafbase MCP server sits in front of a GraphQL API and exposes an MCP protocol-compliant interface that allows AI agents and LLMs to explore and query GraphQL APIs using natural language. It provides tools to search schemas, introspect types and fields, and execute GraphQL queries while minimizing context bloat by returning only relevant schema subsets, with built-in support for authentication, authorization, and configurable access control.

  • An MCP server that provides an API to LLMs to manage their JumpCloud resources.

  • MCP server that lets AI assistants use all OneSchema features exposed via the public API.

  • The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A MCP server that exposes GraphQL schema information to LLMs like Claude. This server allows an LLM to explore and understand large GraphQL schemas through a set of specialized tools, without needing to load the whole schema into the context
    57
    47
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    GraphQL MCP Server that acts as a bridge allowing MCP clients (like Cursor or Claude Desktop) to interact with target GraphQL APIs through standard tools for schema introspection and operation execution.
    2
    20
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A generic MCP (Model Context Protocol) server that bridges any GraphQL API to Claude Code. It introspects your GraphQL schema and exposes each query and mutation as an individual tool, letting Claude interact with your API directly.
    2
    48
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mabdullah679/apollo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server