Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions .changesets/feat_alocay_add_basic_e2e_test.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changesets/fix_fix_validate_exec_doc_validation.md

This file was deleted.

3 changes: 0 additions & 3 deletions .changesets/fix_missing_token_propagation.md

This file was deleted.

3 changes: 0 additions & 3 deletions .changesets/maint_hardcoded_versions.md

This file was deleted.

3 changes: 0 additions & 3 deletions .changesets/maint_snapshot_format.md

This file was deleted.

38 changes: 38 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,44 @@ All notable changes to this project will be documented in this file.

This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

# [0.7.5] - 2025-09-03

## 🐛 Fixes

### fix: Validate ExecutableDocument in validate tool - @swcollard PR #329

Contains fixes for https://github.com/apollographql/apollo-mcp-server/issues/327

The validate tool was parsing the operation passed in to it against the schema but it wasn't performing the validate function on the ExecutableDocument returned by the Parser. This led to cases where missing required arguments were not caught by the Tool.

This change also updates the input schema to the execute tool to make it more clear to the LLM that it needs to provide a valid JSON object

## 🛠 Maintenance

### test: adding a basic manual e2e test for mcp server - @alocay PR #320

Adding some basic e2e tests using [mcp-server-tester](https://github.com/steviec/mcp-server-tester). Currently, the tool does not always exit (ctrl+c is sometimes needed) so this should be run manually.

### How to run tests?
Added a script `run_tests.sh` (may need to run `chmod +x` to run it) to run tests. Basic usage found via `./run_tests.sh -h`. The script does the following:

1. Builds test/config yaml paths and verifies the files exist.
2. Checks if release `apollo-mcp-server` binary exists. If not, it builds the binary via `cargo build --release`.
3. Reads in the template file (used by `mcp-server-tester`) and replaces all `<test-dir>` placeholders with the test directory value. Generates this test server config file and places it in a temp location.
4. Invokes the `mcp-server-tester` via `npx`.
5. On script exit the generated config is cleaned up.

### Example run:
To run the tests for `local-operations` simply run `./run_tests.sh local-operations`

### Update snapshot format - @DaleSeo PR #313

Updates all inline snapshots in the codebase to ensure they are consistent with the latest insta format.

### Hardcoded version strings in tests - @DaleSeo PR #305

The GraphQL tests have hardcoded version strings that we need to update manually each time we release a new version. Since this isn't included in the release checklist, it's easy to miss it and only notice the test failures later.

# [0.7.4] - 2025-08-27

## 🐛 Fixes
Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ members = [

[workspace.package]
authors = ["Apollo <[email protected]>"]
version = "0.7.4"
version = "0.7.5"

[workspace.dependencies]
apollo-compiler = "1.27.0"
Expand Down
66 changes: 43 additions & 23 deletions docs/source/config-file.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,16 @@
- /apollo-mcp-server/command-reference
---

### Example config file
You can configure Apollo MCP Server using a configuration file. You can also [override configuration options using environment variables](#override-configuration-options-using-environment-variables).

The following example file sets your endpoint to `localhost:4001`, configures transport over Streamable HTTP, provides a GraphOS key and graph reference,
enables introspection, and provides two local MCP operations for the server to expose.

```yaml config.yaml
endpoint: http://localhost:4001/
transport:
type: streamable_http
graphos:
apollo_key: <YOUR_APOLLO_KEY>
apollo_graph_ref: <YOUR_APOLLO_GRAPH_REF>
introspection:
introspect:
enabled: true
operations:
source: local
paths:
- relative/path/to/your/operations/userDetails.graphql
- relative/path/to/your/operations/listing.graphql
```
See the [example config file](#example-config-file) for an example.

Check notice on line 10 in docs/source/config-file.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/config-file.mdx#L10

The phrase 'for an example' is redundant, which makes the sentence less concise. ```suggestion See the [example config file](#example-config-file). ```

## Configuration options

All fields are optional.

### Top-level options

| Option | Type | Default | Description |
| :--------------- | :-------------------- | :----------------------- | :--------------------------------------------------------------- |
| `custom_scalars` | `FilePath` | | Path to a [custom scalar map](/apollo-mcp-server/custom-scalars) |
Expand Down Expand Up @@ -58,7 +42,7 @@

### Health checks

These fields are under the top-level `health_check` key.
These fields are under the top-level `health_check` key. Learn more about [health checks](/apollo-mcp-server/health-checks).

| Option | Type | Default | Description |
| :---------------------------- | :--------- | :---------- | :--------------------------------------------------------------------------------- |
Expand Down Expand Up @@ -108,7 +92,7 @@
### Operation source

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"`.
The default value for `source` is `"infer"`. Learn more about [defining tools as operations](/apollo-mcp-server/define-tools).

Check warning on line 95 in docs/source/config-file.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/config-file.mdx#L95

When using code font for a string value, do not include the surrounding quotes. ```suggestion The default value for <code>source</code> is <code>infer</code>. Learn more about [defining tools as operations](/apollo-mcp-server/define-tools). ```

| Source | Option | Type | Default | Description |
| :----------------- | :------- | :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------ |
Expand Down Expand Up @@ -179,7 +163,7 @@

### Auth

These fields are under the top-level `transport` key, nested under the `auth` key.
These fields are under the top-level `transport` key, nested under the `auth` key. Learn more about [authorization and authentication](/apollo-mcp-server/auth).

| Option | Type | Default | Description |
| :----------------------- | :------------- | :------ | :------------------------------------------------------------------------------------------------- |
Expand Down Expand Up @@ -220,3 +204,39 @@
- mcp
- profile
```

## Example config file

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
endpoint: http://localhost:4001/
transport:
type: streamable_http
introspection:
introspect:
enabled: true
operations:
source: local
paths:
- relative/path/to/your/operations/userDetails.graphql
- relative/path/to/your/operations/listing.graphql
```

## 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.

For example, to override the `introspection.execute.enabled` option, you can set the `APOLLO_MCP_INTROSPECTION__EXECUTE__ENABLED` environment variable.

```sh

Check notice on line 232 in docs/source/config-file.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/config-file.mdx#L232

For terminal commands, line numbers are unhelpful and should be removed. ```suggestion ```sh showLineNumbers=false ```
APOLLO_MCP_INTROSPECTION__EXECUTE__ENABLED="true"
```

For list values, you can set the environment variable to a comma-separated list.

For example, to override the `transport.auth.servers` option, you can set the `APOLLO_MCP_TRANSPORT__AUTH__SERVERS` environment variable to a comma-separated list.

```sh

Check notice on line 240 in docs/source/config-file.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/config-file.mdx#L240

For terminal commands, line numbers are unhelpful and should be removed. ```suggestion ```sh showLineNumbers=false ```
APOLLO_MCP_TRANSPORT__AUTH__SERVERS='[server_url_1,server_url_2]'
```
8 changes: 4 additions & 4 deletions docs/source/install.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ To download a **specific version** of Apollo MCP Server (recommended for CI envi

```bash
# Note the `v` prefixing the version number
docker image pull ghcr.io/apollographql/apollo-mcp-server:v0.7.4
docker image pull ghcr.io/apollographql/apollo-mcp-server:v0.7.5
```

To download a specific version of Apollo MCP Server that is a release candidate:

```bash
# Note the `v` prefixing the version number and the `-rc` suffix
docker image pull ghcr.io/apollographql/apollo-mcp-server:v0.7.4-rc.1
docker image pull ghcr.io/apollographql/apollo-mcp-server:v0.7.5-rc.1
```

<Note>
Expand Down Expand Up @@ -65,7 +65,7 @@ To install or upgrade to a **specific version** of Apollo MCP Server (recommende

```bash
# Note the `v` prefixing the version number
curl -sSL https://mcp.apollo.dev/download/nix/v0.7.4 | sh
curl -sSL https://mcp.apollo.dev/download/nix/v0.7.5 | sh
```

If your machine doesn't have the `curl` command, you can get the latest version from the [`curl` downloads page](https://curl.se/download.html).
Expand All @@ -82,5 +82,5 @@ To install or upgrade to a **specific version** of Apollo MCP Server (recommende

```bash
# Note the `v` prefixing the version number
iwr 'https://mcp.apollo.dev/download/win/v0.7.4' | iex
iwr 'https://mcp.apollo.dev/download/win/v0.7.5' | iex
```
2 changes: 1 addition & 1 deletion scripts/nix/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ BINARY_DOWNLOAD_PREFIX="${APOLLO_MCP_SERVER_BINARY_DOWNLOAD_PREFIX:="https://git

# Apollo MCP Server version defined in apollo-mcp-server's Cargo.toml
# Note: Change this line manually during the release steps.
PACKAGE_VERSION="v0.7.4"
PACKAGE_VERSION="v0.7.5"

download_binary_and_run_installer() {
downloader --check
Expand Down
2 changes: 1 addition & 1 deletion scripts/windows/install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

# Apollo MCP Server version defined in apollo-mcp-server's Cargo.toml
# Note: Change this line manually during the release steps.
$package_version = 'v0.7.4'
$package_version = 'v0.7.5'

function Install-Binary($apollo_mcp_server_install_args) {
$old_erroractionpreference = $ErrorActionPreference
Expand Down