Skip to content

Commit 5b1218c

Browse files
mabuyoDaleSeo
authored andcommitted
docs edits for consistency and clarity
1 parent 56b6dc4 commit 5b1218c

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

docs/source/deploy.mdx

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
---
22
title: Deploy the MCP Server
3+
subtitle: Deployment using Docker containers, when to choose which option, and production considerations
34
---
45

5-
## Recommended: Apollo Runtime Container (All-in-One)
6+
Apollo MCP Server can be deployed in your production environment using the [Apollo Runtime Container](#apollo-runtime-container-recommended) or the [standalone Apollo MCP Server container](#standalone-apollo-mcp-server-container).
67

7-
**For most production deployments, we recommend Apollo Runtime container.** It includes everything you need to serve both GraphQL and MCP requests in a single, optimized container.
8+
## Apollo Runtime Container (Recommended)
89

9-
### Why choose the All-in-One container?
10+
For most production deployments, use the all-in-one [Apollo Runtime Container](/graphos/routing/self-hosted/containerization/docker). It includes everything you need to serve both GraphQL and MCP requests in a single, optimized container.
11+
12+
### Why choose the Apollo Runtime Container?
1013

1114
- **Simplified operations**: Single container to deploy and manage
1215
- **Optimized performance**: Apollo Router and Apollo MCP Server are co-located
1316
- **Built-in best practices**: Pre-configured for production use
1417
- **Easier scaling**: Scale both GraphQL and MCP together
1518
- **Unified monitoring**: Single service to monitor and debug
1619

17-
### Deploy Apollo Runtime container
20+
### Deploy the Apollo Runtime Container
1821

19-
Apollo Runtime container includes all services necessary to serve GraphQL and MCP requests, including Apollo Router and Apollo MCP Server. Both port `4000` (GraphQL) and `5000` (MCP) are exposed.
22+
The Apollo Runtime Container includes all services necessary to serve GraphQL and MCP requests, including Apollo Router and Apollo MCP Server. Both port `4000` (GraphQL) and `5000` (MCP) are exposed.
2023

2124
```bash title="Deploy with GraphOS (Recommended)"
2225
docker run \
@@ -31,32 +34,29 @@ docker run \
3134

3235
When you run this, it will:
3336

34-
- Fetch your schema from GraphOS
35-
- Configure Apollo Router with your supergraph
36-
- Enable Apollo MCP Server endpoint at `/mcp`
37-
- Provide access to your GraphOS persisted queries for MCP tool configuration
38-
39-
<Note>
37+
- Fetch your schema from GraphOS using your graph credentials (`APOLLO_GRAPH_REF` and `APOLLO_KEY`)
38+
- Start the Apollo Router with your graph configuration
39+
- Enable the Apollo MCP Server endpoint at `/mcp`
4040

41-
You'll still need to configure which operations to expose as MCP tools. See [Define MCP Tools](/apollo-mcp-server/define-tools) for configuration options.
41+
This command uses GraphOS-managed persisted queries for MCP tools. You'll need to publish your operations to the [GraphOS-managed persisted queries list](/apollo-mcp-server/define-tools#from-graphos-managed-persisted-queries). If you want to use other methods for defining MCP tools, see the [Define MCP Tools](/apollo-mcp-server/define-tools) page.
4242

43-
</Note>
43+
You can provide a configuration file for the MCP server in `config/mcp_config.yaml`. The container will automatically use this file if it exists.
4444

45-
To learn more, review the [Apollo Runtime container documentation](/graphos/routing/self-hosted/containerization/docker).
45+
To learn more, see the [Apollo Runtime Container documentation](/graphos/routing/self-hosted/containerization/docker).
4646

47-
## Alternative: Standalone Apollo MCP Server container
47+
## Standalone Apollo MCP Server container
4848

49-
**Use this option only if you already have a GraphQL API running elsewhere** and want to add MCP capabilities to it.
49+
Use the standalone Apollo MCP Server container if you already have a GraphQL API running elsewhere and want to add MCP capabilities to it.
5050

5151
### Deploy standalone Apollo MCP Server container
5252

5353
Apollo MCP Server is available as a standalone Docker container. Container images are downloadable using the image `ghcr.io/apollographql/apollo-mcp-server`.
5454

5555
By default, the container expects all schema and operation files to be present in the `/data` directory within the container and that clients use Streamable HTTP transport on container port `5050`.
5656

57-
Here's an example `docker run` command that runs Apollo MCP Server for the space dev example:
57+
Here's an example `docker run` command that runs Apollo MCP Server for an example using [TheSpaceDevs graph](https://thespacedevs-production.up.railway.app/):
5858

59-
```yaml title="Example config for using Docker"
59+
```yaml title="mcp_config.yaml"
6060
endpoint: https://thespacedevs-production.up.railway.app/
6161
operations:
6262
source: local
@@ -72,27 +72,27 @@ docker run \
7272
-it --rm \
7373
--name apollo-mcp-server \
7474
-p 5050:5050 \
75-
-v <path to the preceding config>:/config.yaml \
75+
-v <path/to>/mcp_config.yaml \
7676
-v $PWD/graphql/TheSpaceDevs:/data \
7777
--pull always \
7878
ghcr.io/apollographql/apollo-mcp-server:latest /config.yaml
7979
```
8080

8181
## When to choose which option?
8282

83-
| Scenario | Recommended Option | Why |
84-
|----------|-------------------|-----|
85-
| **New GraphQL + MCP deployment** | **Apollo Runtime Container** | Single container, easier to manage, optimized performance |
86-
| **Adding MCP to existing GraphQL API** | Standalone Apollo MCP Server | Connect to your existing GraphQL endpoint |
87-
| **GraphOS managed graph** | **Apollo Runtime Container** | Automatic schema/PQ sync, unified telemetry |
88-
| **Local development** | Either option works | Choose what matches your production setup |
89-
| **Kubernetes/orchestrated environment** | **Apollo Runtime Container** | Fewer moving parts, simpler networking |
83+
| Scenario | Recommended Option | Why |
84+
| --------------------------------------- | ---------------------------- | --------------------------------------------------------- |
85+
| **New GraphQL + MCP deployment** | **Apollo Runtime Container** | Single container, easier to manage, optimized performance |
86+
| **Adding MCP to existing GraphQL API** | Standalone Apollo MCP Server | Connect to your existing GraphQL endpoint |
87+
| **GraphOS managed graph** | **Apollo Runtime Container** | Automatic schema/PQ sync, unified telemetry |
88+
| **Local development** | Either option works | Choose what matches your production setup |
89+
| **Kubernetes/orchestrated environment** | **Apollo Runtime Container** | Fewer moving parts, simpler networking
9090

9191
## Production Considerations
9292

9393
### Load Balancing & Session Affinity
9494

95-
**Important**: MCP is a stateful protocol that requires session affinity (sticky sessions).
95+
MCP is a stateful protocol that requires session affinity (sticky sessions).
9696

9797
When an MCP client initializes a session with Apollo MCP Server, it receives a session identifier unique to that server instance through the `mcp-session-id` header. You must enable session affinity in your load balancer so that all requests sharing the same `mcp-session-id` are routed to the same backend instance.
9898

@@ -103,13 +103,13 @@ When an MCP client initializes a session with Apollo MCP Server, it receives a s
103103

104104
### Scaling Recommendations
105105

106-
**Apollo Runtime Container** (Recommended):
106+
For the Apollo Runtime Container:
107107

108108
- Scale both GraphQL and MCP together as a single unit
109109
- Simpler horizontal scaling
110110
- Consistent performance characteristics
111111

112-
**Standalone Apollo MCP Server**:
112+
For the standalone Apollo MCP Server container:
113113

114114
- Scale Apollo MCP Server independently of your GraphQL API
115115
- More complex but enables fine-tuned resource allocation

0 commit comments

Comments
 (0)