Skip to content

Commit c065bef

Browse files
authored
Merge pull request #407 from apollographql/sync/main-into-develop-pr-404
Sync main → develop (PR #404)
2 parents e82009f + 5c52beb commit c065bef

File tree

8 files changed

+121
-31
lines changed

8 files changed

+121
-31
lines changed

.changesets/fix_fix_remove_verbose_logging.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changesets/maint_up_rust.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,113 @@ All notable changes to this project will be documented in this file.
44

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

7+
# [1.0.0] - 2025-10-01
8+
9+
# Apollo MCP Server 1.0 Release Notes
10+
11+
Apollo MCP Server 1.0 marks the **General Availability (GA)** milestone, delivering a production-ready Model Context Protocol server that seamlessly bridges GraphQL APIs with AI applications. This release transforms how AI agents interact with GraphQL APIs through standardized MCP tools, enabling natural language access to your GraphQL operations.
12+
13+
## 🎯 GA Highlights
14+
15+
### **Production-Ready MCP Protocol Implementation**
16+
17+
Apollo MCP Server 1.0 provides full compliance with the [MCP specification](https://modelcontextprotocol.io/specification/2025-06-18), enabling AI applications to discover and invoke GraphQL operations through standardized protocols. The server acts as a translation layer, converting GraphQL operations into MCP tools that AI models can execute through natural language requests.
18+
19+
**Key Benefits:**
20+
21+
- **Standardized AI Integration**: No more custom API bridges - use the industry-standard MCP protocol
22+
- **Automatic Tool Discovery**: AI agents automatically discover available GraphQL operations as MCP tools
23+
- **Type-Safe Execution**: All operations are validated against your GraphQL schema before execution
24+
- **Enterprise-Ready**: Full OAuth 2.1 authentication and comprehensive observability
25+
26+
### **🚀 Multi-Transport Architecture**
27+
28+
Flexible communication options for every deployment scenario:
29+
30+
- **stdio**: Perfect for local development and debugging with MCP Inspector
31+
- **Streamable HTTP**: Production-grade transport with load balancer support and concurrent connections
32+
33+
All transports maintain full MCP protocol compliance while optimizing for specific use cases.
34+
35+
### **🔧 Advanced GraphQL Integration**
36+
37+
**Custom Scalar Support**: Seamlessly handle specialized types like `DateTime`, `UUID`, and domain-specific scalars with automatic JSON Schema mapping.
38+
39+
**Mutation Controls**: Fine-grained security controls to prevent unintended data changes:
40+
41+
- `all`: Enable all mutations (default)
42+
- `none`: Disable all mutations for read-only access
43+
- `allowlist`: Only allow specific mutations
44+
45+
### **📊 Flexible Schema & Operation Management**
46+
47+
**Dual Schema Sources:**
48+
49+
- **Local Files**: Direct schema control for development and offline scenarios
50+
- **Apollo GraphOS**: Centralized schema management with automatic updates via uplink integration
51+
52+
**Multiple Operation Sources:**
53+
54+
- **Local Statement Files**: Hot-reloading `.graphql` files for rapid development
55+
- **Persisted Query Manifests**: Security-focused pre-approved operation execution
56+
- **GraphOS Operation Collections**: Centrally managed operations with automatic polling
57+
- **GraphOS Persisted Queries**: Enterprise-grade operation management
58+
59+
### **🤖 AI-Optimized Introspection Tools**
60+
61+
**Core Tools:**
62+
63+
- **`introspect`**: Comprehensive schema exploration with AI-friendly formatting
64+
- **`execute`**: Safe dynamic operation execution with proper error handling
65+
- **`validate`**: Operation validation without execution to prevent side effects
66+
- **`search`**: Semantic schema search to efficiently find relevant types and fields
67+
68+
**AI Optimizations:**
69+
70+
- **Minified Output**: Configurable minification reduces context window usage by 30%+ while preserving essential information
71+
- **Semantic Search**: Natural language schema exploration with ranked results
72+
73+
### **⚙️ Configuration-Driven Architecture**
74+
75+
**YAML Configuration**: Replace complex command-line arguments with structured, version-controllable configuration files.
76+
77+
**Environment Variable Overrides**: Seamless environment-specific customization using the `APOLLO_MCP_` prefix convention.
78+
79+
**Comprehensive Validation**: Clear error messages and sensible defaults for rapid deployment.
80+
81+
### **🔐 Enterprise Security & Observability**
82+
83+
**OAuth 2.1 Authentication**: Production-ready authentication supporting major identity providers:
84+
85+
- Auth0, WorkOS, Keycloak, Okta
86+
- JWT token validation with audience and scope enforcement
87+
- OIDC discovery for automatic provider configuration
88+
89+
**Health Monitoring**: Kubernetes-ready health checks with configurable liveness and readiness probes.
90+
91+
**OpenTelemetry Integration**: Comprehensive observability with traces, metrics, and events:
92+
93+
- Operation-level performance tracking
94+
- Semantic conventions for HTTP servers when using the Streamable HTTP transport.
95+
- OTLP export to any OpenTelemetry-compatible collector
96+
- Integration with existing monitoring infrastructure
97+
98+
**CORS Support**: Enable browser-based MCP clients with comprehensive Cross-Origin Resource Sharing support following Apollo Router patterns.
99+
100+
## 🐛 Fixes
101+
102+
### fix: remove verbose logging - @swcollard PR #401
103+
104+
The tracing-subscriber crate we are using to create logs does not have a configuration to exclude the span name and attributes from the log line. This led to rather verbose logs on app startup which would dump the full operation object into the logs before the actual log line.
105+
106+
This change strips the attributes from the top level spans so that we still have telemetry and tracing during this important work the server is doing, but they don't make it into the logs. The relevant details are provided in child spans after the operation has been parsed so we aren't losing any information other than a large json blob in the top level trace of generating Tools from GraphQL Operations.
107+
108+
## 🛠 Maintenance
109+
110+
### deps: update rust to v1.90.0 - @DaleSeo PR #387
111+
112+
Updates the Rust version to v1.90.0
113+
7114
# [0.9.0] - 2025-09-24
8115

9116
## 🚀 Features

CHANGELOG_SECTION.md

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,16 @@
1-
# [0.8.0] - 2025-09-12
1+
# [1.0.0] - 2025-10-01
22

3-
## 🚀 Features
3+
## 🐛 Fixes
44

5-
### feat: Configuration for disabling authorization token passthrough - @swcollard PR #336
5+
### fix: remove verbose logging - @swcollard PR #401
66

7-
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.
7+
The tracing-subscriber crate we are using to create logs does not have a configuration to exclude the span name and attributes from the log line. This led to rather verbose logs on app startup which would dump the full operation object into the logs before the actual log line.
88

9-
## 🛠 Maintenance
10-
11-
### Configure Codecov with coverage targets - @DaleSeo PR #337
12-
13-
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`.
9+
This change strips the attributes from the top level spans so that we still have telemetry and tracing during this important work the server is doing, but they don't make it into the logs. The relevant details are provided in child spans after the operation has been parsed so we aren't losing any information other than a large json blob in the top level trace of generating Tools from GraphQL Operations.
1410

15-
### Implement Test Coverage Measurement and Reporting - @DaleSeo PR #335
16-
17-
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.
18-
19-
### chore: update RMCP dependency ([328](https://github.com/apollographql/apollo-mcp-server/issues/328))
11+
## 🛠 Maintenance
2012

21-
Update the RMCP dependency to the latest version, pulling in newer specification changes.
13+
### deps: update rust to v1.90.0 - @DaleSeo PR #387
2214

23-
### ci: Pin stable rust version ([Issue #287](https://github.com/apollographql/apollo-mcp-server/issues/287))
15+
Updates the Rust version to v1.90.0
2416

25-
Pins the stable version of Rust to the current latest version to ensure backwards compatibility with future versions.

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ edition = "2024"
1212
license-file = "LICENSE"
1313
repository = "https://github.com/apollographql/apollo-mcp-server"
1414
rust-version = "1.89.0"
15-
version = "0.9.0"
15+
version = "1.0.0"
1616

1717
[workspace.dependencies]
1818
apollo-compiler = "1.27.0"

scripts/nix/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ BINARY_DOWNLOAD_PREFIX="${APOLLO_MCP_SERVER_BINARY_DOWNLOAD_PREFIX:="https://git
1414

1515
# Apollo MCP Server version defined in apollo-mcp-server's Cargo.toml
1616
# Note: Change this line manually during the release steps.
17-
PACKAGE_VERSION="v0.9.0"
17+
PACKAGE_VERSION="v1.0.0"
1818

1919
download_binary_and_run_installer() {
2020
downloader --check

scripts/windows/install.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# Apollo MCP Server version defined in apollo-mcp-server's Cargo.toml
1010
# Note: Change this line manually during the release steps.
11-
$package_version = 'v0.9.0'
11+
$package_version = 'v1.0.0'
1212

1313
function Install-Binary($apollo_mcp_server_install_args) {
1414
$old_erroractionpreference = $ErrorActionPreference

0 commit comments

Comments
 (0)