diff --git a/CHANGELOG.md b/CHANGELOG.md index 87d061bc..2a67ebda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,34 @@ 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.8.0] - 2025-09-12 + +## 🚀 Features + +### feat: Configuration for disabling authorization token passthrough - @swcollard PR #336 + +A new optional new MCP Server configuration parameter, `transport.auth.disable_auth_token_passthrough`, which is `false` by default, that when true, will no longer pass through validated Auth tokens to the GraphQL API. + +## 🛠 Maintenance + +### Configure Codecov with coverage targets - @DaleSeo PR #337 + +This PR adds `codecov.yml` to set up Codecov with specific coverage targets and quality standards. It helps define clear expectations for code quality. It also includes some documentation about code coverage in `CONTRIBUTING.md` and adds the Codecov badge to `README.md`. + +### Implement Test Coverage Measurement and Reporting - @DaleSeo PR #335 + +This PR adds the bare minimum for code coverage reporting using [cargo-llvm-cov](https://crates.io/crates/cargo-llvm-cov) and integrates with [Codecov](https://www.codecov.io/). It adds a new `coverage` job to the CI workflow that generates and uploads coverage reporting in parallel with existing tests. The setup mirrors that of Router, except it uses `nextest` instead of the built-in test runner and CircleCI instead of GitHub Actions. + +### chore: update RMCP dependency ([328](https://github.com/apollographql/apollo-mcp-server/issues/328)) + +Update the RMCP dependency to the latest version, pulling in newer specification changes. + +### ci: Pin stable rust version ([Issue #287](https://github.com/apollographql/apollo-mcp-server/issues/287)) + +Pins the stable version of Rust to the current latest version to ensure backwards compatibility with future versions. + + + # [0.7.5] - 2025-09-03 ## 🐛 Fixes diff --git a/CHANGELOG_SECTION.md b/CHANGELOG_SECTION.md new file mode 100644 index 00000000..139ce9fe --- /dev/null +++ b/CHANGELOG_SECTION.md @@ -0,0 +1,26 @@ +# [0.8.0] - 2025-09-12 + +## 🚀 Features + +### feat: Configuration for disabling authorization token passthrough - @swcollard PR #336 + +A new optional new MCP Server configuration parameter, `transport.auth.disable_auth_token_passthrough`, which is `false` by default, that when true, will no longer pass through validated Auth tokens to the GraphQL API. + +## 🛠 Maintenance + +### Configure Codecov with coverage targets - @DaleSeo PR #337 + +This PR adds `codecov.yml` to set up Codecov with specific coverage targets and quality standards. It helps define clear expectations for code quality. It also includes some documentation about code coverage in `CONTRIBUTING.md` and adds the Codecov badge to `README.md`. + +### Implement Test Coverage Measurement and Reporting - @DaleSeo PR #335 + +This PR adds the bare minimum for code coverage reporting using [cargo-llvm-cov](https://crates.io/crates/cargo-llvm-cov) and integrates with [Codecov](https://www.codecov.io/). It adds a new `coverage` job to the CI workflow that generates and uploads coverage reporting in parallel with existing tests. The setup mirrors that of Router, except it uses `nextest` instead of the built-in test runner and CircleCI instead of GitHub Actions. + +### chore: update RMCP dependency ([328](https://github.com/apollographql/apollo-mcp-server/issues/328)) + +Update the RMCP dependency to the latest version, pulling in newer specification changes. + +### ci: Pin stable rust version ([Issue #287](https://github.com/apollographql/apollo-mcp-server/issues/287)) + +Pins the stable version of Rust to the current latest version to ensure backwards compatibility with future versions. + diff --git a/Cargo.lock b/Cargo.lock index 2d76b142..5da0ac42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -175,7 +175,7 @@ dependencies = [ [[package]] name = "apollo-mcp-registry" -version = "0.7.5" +version = "0.8.0" dependencies = [ "derive_more", "educe", @@ -203,7 +203,7 @@ dependencies = [ [[package]] name = "apollo-mcp-server" -version = "0.7.5" +version = "0.8.0" dependencies = [ "anyhow", "apollo-compiler", @@ -257,7 +257,7 @@ dependencies = [ [[package]] name = "apollo-schema-index" -version = "0.7.5" +version = "0.8.0" dependencies = [ "apollo-compiler", "enumset", diff --git a/Cargo.toml b/Cargo.toml index 69dbc455..c3c09c07 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ edition = "2024" license-file = "LICENSE" repository = "https://github.com/apollographql/apollo-mcp-server" rust-version = "1.89.0" -version = "0.7.5" +version = "0.8.0" [workspace.dependencies] apollo-compiler = "1.27.0" diff --git a/docs/source/deploy.mdx b/docs/source/deploy.mdx index 0cac85ca..4a03a633 100644 --- a/docs/source/deploy.mdx +++ b/docs/source/deploy.mdx @@ -56,3 +56,13 @@ docker run \ ``` To learn more, review the [Apollo Runtime container documentation](/graphos/routing/self-hosted/containerization/docker). + +### Using a load balancer + +Because [MCP is a stateful protocol](https://modelcontextprotocol.io/docs/learn/architecture#lifecycle-management), you need to configure your load balancer to keep each session on the _same server instance_. + +When the 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 ("sticky sessions") in your load balancer so that all requests that share the same `mcp-session-id` are routed to the same backend instance. + +If the load balancer routes subsequent requests to a different instance, Apollo MCP Server rejects the request because it doesn't recognize the session id. + +Many load balancers offered by major cloud vendors don't support header-based session affinity. If yours does not, use software such as Nginx, HAProxy, or Envoy/Istio in front of the Apollo MCP Server instances. diff --git a/docs/source/index.mdx b/docs/source/index.mdx index 14eb3477..42203d4d 100644 --- a/docs/source/index.mdx +++ b/docs/source/index.mdx @@ -89,8 +89,8 @@ The architecture enables intelligent API orchestration through these components: * Persisted Query Manifests: Pre-approved operation lists from Apollo GraphOS * Schema Introspection: Dynamic operation discovery for flexible AI exploration -Secure Execution: When invoked, the server executes GraphQL operations against your API endpoint, respecting all existing authentication, headers, and security policies. -Existing Infrastructure: Your GraphQL API handles requests normally, with Apollo MCP Server acting as a controlled gateway rather than requiring any changes to your graph. +* Secure Execution: When invoked, the server executes GraphQL operations against your API endpoint, respecting all existing authentication, headers, and security policies. +* Existing Infrastructure: Your GraphQL API handles requests normally, with Apollo MCP Server acting as a controlled gateway rather than requiring any changes to your graph. This design lets you expose precise GraphQL capabilities to AI while maintaining complete control over data access and security. diff --git a/docs/source/install.mdx b/docs/source/install.mdx index 9ec643e1..5e4114a0 100644 --- a/docs/source/install.mdx +++ b/docs/source/install.mdx @@ -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.5 +docker image pull ghcr.io/apollographql/apollo-mcp-server:v0.8.0 ``` 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.5-rc.1 +docker image pull ghcr.io/apollographql/apollo-mcp-server:v0.8.0-rc.1 ``` @@ -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.5 | sh +curl -sSL https://mcp.apollo.dev/download/nix/v0.8.0 | 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). @@ -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.5' | iex +iwr 'https://mcp.apollo.dev/download/win/v0.8.0' | iex ``` diff --git a/scripts/nix/install.sh b/scripts/nix/install.sh index 40767447..de8fa9d0 100755 --- a/scripts/nix/install.sh +++ b/scripts/nix/install.sh @@ -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.5" +PACKAGE_VERSION="v0.8.0" download_binary_and_run_installer() { downloader --check diff --git a/scripts/windows/install.ps1 b/scripts/windows/install.ps1 index d8007236..05072c3e 100644 --- a/scripts/windows/install.ps1 +++ b/scripts/windows/install.ps1 @@ -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.5' +$package_version = 'v0.8.0' function Install-Binary($apollo_mcp_server_install_args) { $old_erroractionpreference = $ErrorActionPreference