From 1c0bd3472dea3251f1412e1e2a0566a9104256fe Mon Sep 17 00:00:00 2001 From: Joseph Caudle Date: Thu, 18 Sep 2025 21:10:30 -0400 Subject: [PATCH 1/2] Simplify tables and add examples Remove unclear default columns and update exmples. --- docs/source/config-file.mdx | 91 ++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/docs/source/config-file.mdx b/docs/source/config-file.mdx index 83c404d8..8e92ca3e 100644 --- a/docs/source/config-file.mdx +++ b/docs/source/config-file.mdx @@ -94,17 +94,17 @@ These fields are under the top-level `logging` key. These fields are under the top-level `operations` key. The available fields depend on the value of the nested `source` key. The default value for `source` is `"infer"`. Learn more about [defining tools as operations](/apollo-mcp-server/define-tools). -| Source | Option | Type | Default | Description | -| :----------------- | :------- | :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------ | -| GraphOS Collection | `source` | `"collection"` | | Load operations from a GraphOS collection | -| GraphOS Collection | `id` | `string` | | The collection ID to use in GraphOS. Use `default` for the default collection. [Learn more](/apollo-mcp-server/define-tools#from-operation-collection). | -| Introspection | `source` | `"introspect"` | | Load operations by introspecting the schema. Note: You must enable introspection to use this source | -| Local | `source` | `"local"` | | Load operations from local GraphQL files or directories | -| Local | `paths` | `List` | | Paths to GraphQL files or directories to search. Note: These paths are relative to the location from which you are running Apollo MCP Server. | -| Manifest | `source` | `"manifest"` | | Load operations from a persisted queries manifest file | -| Manifest | `path` | `FilePath` | | The path to the persisted query manifest | -| Uplink | `source` | `"uplink"` | | Load operations from an uplink manifest. Note: This source requires an Apollo key and graph reference | -| Infer | `source` | `"infer"` | \* | Infer where to load operations based on other configuration options. | +| Source | Option | Type | Description | +| :----------------- | :------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| GraphOS Collection | `source` | `"collection"` | Load operations from a GraphOS collection | +| GraphOS Collection | `id` | `string` | The collection ID to use in GraphOS. Use `default` for the default collection. [Learn more](/apollo-mcp-server/define-tools#from-operation-collection). | +| Introspection | `source` | `"introspect"` | Load operations by introspecting the schema. Note: You must enable introspection to use this source | +| Local | `source` | `"local"` | Load operations from local GraphQL files or directories | +| Local | `paths` | `List` | Paths to GraphQL files or directories to search. Note: These paths are relative to the location from which you are running Apollo MCP Server. | +| Manifest | `source` | `"manifest"` | Load operations from a persisted queries manifest file | +| Manifest | `path` | `FilePath` | The path to the persisted query manifest | +| Uplink | `source` | `"uplink"` | Load operations from an uplink manifest. Note: This source requires an Apollo key and graph reference | +| Infer | `source` | `"infer"` | Infer where to load operations based on other configuration options. | ### Overrides @@ -122,46 +122,43 @@ These fields are under the top-level `overrides` key. These fields are under the top-level `schema` key. The available fields depend on the value of the nested `source` key. The default value for `source` is `"uplink"`. -| Source | Option | Type | Default | Description | -| :----- | :------- | :--------- | :------ | :---------------------------------------------------------------------------------- | -| Local | `source` | `"local"` | | Load schema from local file | -| Local | `path` | `FilePath` | | Path to the GraphQL schema | -| Uplink | `source` | `"uplink"` | \* | Fetch the schema from uplink. Note: This requires an Apollo key and graph reference | +| Source | Option | Type | Description | +| :----- | :------- | :--------- | :---------------------------------------------------------------------------------- | +| Local | `source` | `"local"` | Load schema from local file | +| Local | `path` | `FilePath` | Path to the GraphQL schema | +| Uplink | `source` | `"uplink"` | Fetch the schema from uplink. Note: This requires an Apollo key and graph reference | ### Transport These fields are under the top-level `transport` key, to configure running the MCP Server in different environments - stdio, Streamable HTTP or SSE (deprecated). -``` +```yaml transport: - type: stdio + type: streamable_http + address: 127.0.0.1 + port: 5000 + stateful_mode: true ``` -The available fields depend on the value of the nested `type` key: - -##### stdio (default) - -| Option | Value | Default Value | Description | -| :----- | :-------- | :------------ | :-------------------------------------------------------------- | -| `type` | `"stdio"` | \* | Use standard IO for communication between the server and client | +##### Type -##### Streamable HTTP +The available fields depend on the value of the nested `type` key. The default type is `stdio`: -| Option | Value | Value Type | Description | -| :-------------- | :-------------------- | :--------- | :------------------------------------------------------------------------ | -| `type` | `"streamable_http"` | | Host the MCP server on the configuration, using streamable HTTP messages. | -| `address` | `127.0.0.1` (default) | `IpAddr` | The IP address to bind to | -| `port` | `5000` (default) | `u16` | The port to bind to | -| `stateful_mode` | `true` (default) | `bool` | Flag to enable or disable stateful mode and session management. | +| Option | Description | +| :-------------------- | :--------------------------------------------------------------------------------------------------------------- | +| `"stdio"` | Use standard IO for communication between the server and client | +| `"streamable_http"` | Host the MCP server on the configuration, using streamable HTTP messages | +| `"sse"` | Host the MCP server on the supplied config, using SSE for communication. Deprecated in favor of `StreamableHTTP` | +##### Transport Type Specific options -##### SSE (Deprecated, use StreamableHTTP) +Some transport types support further configuration. Streamable HTTP and SSE both allow setting address and port. Streamable HTTP also supoorts setting stateful mode. -| Option | Value | Value Type | Description | -| :-------- | :-------------------- | :--------- | :--------------------------------------------------------------------------------------------------------------- | -| `type` | `"sse"` | | Host the MCP server on the supplied config, using SSE for communication. Deprecated in favor of `StreamableHTTP` | -| `address` | `127.0.0.1` (default) | `IpAddr` | The IP address to bind to | -| `port` | `5000` (default) | `u16` | The port to bind to | +| Option | Type | Default | Description | +| :-------------- | :--------- | :---------- | :----------------------------------------------------------------------------------- | +| `address` | `IpAddr` | `127.0.0.1` | The IP address to bind to | +| `port` | `u16` | `5000` | The port to bind to | +| `stateful_mode` | `bool` | `true` | Flag to enable or disable stateful mode and session management. Not supported by SSE | ### Auth @@ -208,11 +205,11 @@ transport: - profile ``` -## Example config file +## Example config files The following example file sets your endpoint to `localhost:4001`, configures transport over Streamable HTTP, enables introspection, and provides two local MCP operations for the server to expose. -```yaml config.yaml +```yaml title="config.yaml" endpoint: http://localhost:4001/ transport: type: streamable_http @@ -226,6 +223,18 @@ operations: - relative/path/to/your/operations/listing.graphql ``` +This configuration file will set up Streamable HTTP transport, enables introspection, and makes all operations derive from introspection: + +```yaml title="config.yaml" +transport: + type: streamable_http +introspection: + introspect: + enabled: true +operations: + source: introspect +``` + ## Override configuration options using environment variables You can override configuration options using environment variables. The environment variable name is the same as the option name, but with `APOLLO_MCP_` prefixed. You can use `__` to mark nested options. @@ -242,4 +251,4 @@ For example, to override the `transport.auth.servers` option, you can set the `A ```sh APOLLO_MCP_TRANSPORT__AUTH__SERVERS='[server_url_1,server_url_2]' -``` \ No newline at end of file +``` From 30e876e8b3bc2cf6d334cb89420c8bd270bd0189 Mon Sep 17 00:00:00 2001 From: Joseph Caudle Date: Tue, 23 Sep 2025 20:57:11 -0400 Subject: [PATCH 2/2] Fix indentation in example YAML --- docs/source/config-file.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/config-file.mdx b/docs/source/config-file.mdx index 8e92ca3e..370779b5 100644 --- a/docs/source/config-file.mdx +++ b/docs/source/config-file.mdx @@ -135,9 +135,9 @@ These fields are under the top-level `transport` key, to configure running the M ```yaml transport: type: streamable_http - address: 127.0.0.1 - port: 5000 - stateful_mode: true + address: 127.0.0.1 + port: 5000 + stateful_mode: true ``` ##### Type