Apollo MCP Demo
Демо Apollo MCP
В этой папке настроена та же базовая архитектура, которую Apollo демонстрирует для MCP:
обычный GraphQL API,
Apollo MCP Server перед ним,
небольшой список разрешенных операций GraphQL, которые становятся инструментами MCP.
В этой версии используется автономный контейнер Apollo MCP Server вместо мастера rover init --mcp, так как его проще запустить локально без учетных данных GraphOS.
Что запускается
api: небольшой Apollo Server наhttp://localhost:4001/mcp: Apollo MCP Server наhttp://localhost:8000/mcp
Related MCP server: mcp4gql
Схема архитектуры
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Запуск
cd C:\Users\muham\Documents\apollo-mcp
npm install
docker compose up --buildВо втором терминале проверьте MCP-сервер:
npx @modelcontextprotocol/inspectorЗатем откройте URL инспектора, который он выведет, и выберите:
Тип транспорта:
Streamable HTTPURL:
http://127.0.0.1:8000/mcp
Нажмите Connect, затем List Tools.
Вы должны увидеть инструменты MCP, полученные из:
GetBooksGetBookByIdGetBooksByGenre
Дополнительная конфигурация клиента
Для MCP-клиентов, использующих mcp-remote, локальная конфигурация выглядит так:
{
"mcpServers": {
"apollo-demo": {
"command": "npx",
"args": [
"mcp-remote",
"http://127.0.0.1:8000/mcp"
]
}
}
}Что происходит на самом деле
GraphQL API по-прежнему является реальной службой данных. Он знает схему, разрешает поля и возвращает JSON для запросов GraphQL.
Apollo MCP Server не заменяет этот API. Он располагается перед ним и преобразует одобренные операции GraphQL в инструменты MCP, которые может обнаружить и вызвать ИИ-клиент.
Важные файлы:
mcp-config.yaml: сообщает Apollo MCP Server, где находится конечная точка GraphQL, где находится файл схемы, где находятся разрешенные операции и как предоставлять MCP через HTTP.
graphql/api.graphql: снимок схемы, используемый Apollo MCP Server, чтобы он мог правильно описывать инструменты.
graphql/operations/GetBooks.graphql: один одобренный запрос, который становится одним инструментом MCP.
src/server.mjs: фактическая реализация GraphQL API.
docker-compose.yml: запускает обе службы вместе в одной локальной сети.
Поток запроса:
Ваш MCP-клиент подключается к
http://localhost:8000/mcp.Apollo MCP Server анонсирует инструменты на основе файлов операций
.graphql.Клиент вызывает один из этих инструментов с аргументами.
Apollo MCP Server преобразует этот вызов инструмента обратно в базовую операцию GraphQL.
Apollo MCP Server отправляет этот запрос GraphQL на
http://api:4001/.GraphQL API выполняет запрос и возвращает данные.
Apollo MCP Server возвращает результат MCP-клиенту в формате MCP.
Схема потока запросов
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Почему здесь нет маршрутизатора (router)
Apollo Router полезен, когда:
вы обслуживаете федеративный суперграф,
вам нужна среда выполнения Apollo, управляемая GraphOS,
или вы хотите, чтобы GraphQL и MCP были объединены в Apollo Runtime.
Для простого локального демо с одним существующим GraphQL API документация по развертыванию Apollo поддерживает использование автономного контейнера Apollo MCP Server непосредственно для этой конечной точки. Именно это и использует данный проект.
Источники
Краткое руководство по Apollo MCP Server: https://www.apollographql.com/docs/apollo-mcp-server/quickstart
Справочник по конфигурации Apollo MCP Server: https://www.apollographql.com/docs/apollo-mcp-server/command-reference
Документация по развертыванию Apollo MCP Server: https://www.apollographql.com/docs/apollo-mcp-server/deploy
Документация по отладке Apollo MCP Server: https://www.apollographql.com/docs/apollo-mcp-server/debugging
This server cannot be deployed
Maintenance
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.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
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.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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 context83 npm46MIT
- AlicenseAqualityDmaintenanceGraphQL 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.213 npm3MIT
- AlicenseAqualityAmaintenanceA 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.230 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA generic MCP server that converts .graphql query files into tools for Claude, enabling interaction with any GraphQL API without coding.MIT