-
Notifications
You must be signed in to change notification settings - Fork 44
Releasing 0.9.0 #377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Releasing 0.9.0 #377
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Using Claude's support documentation and the methods we've been demonstrating on live streams and webinars, this change gives instructions for adding an MCP server to Claude through their Custom Connectors feature.
Co-authored-by: Michelle Mabuyo <[email protected]>
Sync main → develop (PR #331)
Sync main → develop (PR #332)
This commit pins the rust-toolchain to a specific rust version (1.89.0) for compatibility guarantees. Renovate will handle warning on outdated versions of stable rust. A minimal supported rust version was also added to the underlying crates to ensure compatibility guarantees as the stable verison increments in future updates.
Implement Test Coverage Measurement and Reporting
Configure Codecov with coverage targets
* Allow config for not forwarding Auth tokens to GraphQL API * use serde default to make new config optional * Changeset * Fix default case in main.rs * Add new config option to documentation
ci: update github checkout actions
Sync main → develop (PR #339)
Sync main → develop (PR #317)
…n-directives Minify: Add support for deprecated directive
Add CORS support
* Create a prototype of otel emitting traces to local jaegar instance * Add tracing annotations * Combine logging and tracing * copilot feedback * Add changeset * Instrument other tools * Clippy fixes * PR feedback * Change default env name to development Co-authored-by: Dale Seo <[email protected]> * Remove some extraneous extensions --------- Co-authored-by: Dale Seo <[email protected]>
* Implement metrics for mcp tool and operation counts and durations * Changeset * Unit test attribute setting in graphql.rs * Add axum_otel_metrics for emitting basic http metrics about requests * Lazy load singleton Meter for metrics * Alphabetize * Simplify result.is_error checking
…l headers downstream (#307) * Fix sending OTLP trace headers downstream to GQL API * Changeset
* Add basic config file options to otel telemetry * Happy path unit test for telemetry config * Changeset * Taplo format * Refactor to add a couple more tests * Update unit test for clippy after rust upgrade * Rename unit tests
* feat: adding ability to omit attributes for traces and metrics * chore: adding changeset * chore: updating changeset text * chore: removing unused file * chore: renaming exporter file * chore: renaming module * re-running checks * chore: auto-gen the as_str function using enums instead of constants * chore: updating changeset entry and fixing fields in instruemnt attribute * chore: adding description as a doc string * chore: updating changeset entry * chore: updating operation attribute descriptions * chore: updating operation_type attribute to operation_source * chore: skipping request from instrumentation * chore: fixing clippy issues * re-running nix build * updating unit test snapshot * chore: fixing toml formatting issues * test: removing asserts on constants * chore: format issues * test: adjusting unit test to not use local envar * revert: undoing accidental commit * test: removing unnecessary assert
* feat: adding config option for trace sampling * chore: adding changeset entry
re-run checks
Add status code to the http trace
Changeset Unit tests for auth.rs Add raw_operation as a telemetry attribute Unit test starting a streamable http server Rename self to operation_source
Add telemetry docs to sidebar Cleaning up Fix title on grafana guide Update the overview Update configuration section to be more complete Add a quick start guide and info about prod Update production section with more useful ino Apply suggestions from code review Style edits Co-authored-by: Joseph Caudle <[email protected]> Remove custom from 'custom metrics' Remove Grafana how-to guide Move configuration reference to the config page Add a note about cardinality control using sampling and attribute filtering Fix typo: traaces -> traces
Fix links to external vendors OTLP docs pr feedback: LazyLock meter, debug and todo removal, comments
feat: Open Telemetry Integration
✅ Docs preview readyThe preview is ready to be viewed. View the preview File Changes 2 new, 5 changed, 0 removed
Build ID: 7011a778e3dec22f8e2980f9 URL: https://www.apollographql.com/docs/deploy-preview/7011a778e3dec22f8e2980f9 |
Hmm... 🤔 I'm seeing quite a few conflicts with this release branch. Probably due to recent squash merge to main? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[0.9.0] - 2025-09-24
🚀 Features
Add CORS support - @DaleSeo PR #362
This PR implements comprehensive CORS support for Apollo MCP Server to enable web-based MCP clients to connect without CORS errors. The implementation and configuration draw heavily from the Router's approach. Similar to other features like health checks and telemetry, CORS is supported only for the StreamableHttp transport, making it a top-level configuration.
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 isfalse
by default, that when true, will no longer pass through validated Auth tokens to the GraphQL API.Implement metrics for mcp tool and operation counts and durations - @swcollard PR #297
This PR adds metrics to count and measure request duration to events throughout the MCP server
feat: adding config option for trace sampling - @alocay PR #366
Adding configuration option to sample traces. Can use the following options:
Defaults to always on if not provided.
Prototype OpenTelemetry Traces in MCP Server - @swcollard PR #274
Pulls in new crates and SDKs for prototyping instrumenting the Apollo MCP Server with Open Telemetry Traces.
Telemetry: Trace operations and auth - @swcollard PR #375
feat: Enhance tool descriptions - @DaleSeo PR #350
This PR enhances the descriptions of the introspect and search tools to offer clearer guidance for AI models on efficient GraphQL schema exploration patterns.
feat: adding ability to omit attributes for traces and metrics - @alocay PR #358
Adding ability to configure which attributes are omitted from telemetry traces and metrics.
build.rs
) to auto-generate telemetry attribute code based on the data found intelemetry.toml
.telemetry_attributes.rs
to mapTelemetryAttribute
enum to a OTELKey
.The
telemetry.toml
file includes attributes (both for metrics and traces) as well as list of metrics gathered. An example would look like the following:This would generate a file that looks like the following:
An example configuration that omits
tool_name
attribute for metrics andrequest_id
for tracing would look like the following:🐛 Fixes
fix: Include the cargo feature and TraceContextPropagator to send otel headers downstream - @swcollard PR #307
Inside the reqwest middleware, if the global text_map_propagator is not set, it will no op and not send the traceparent and tracestate headers to the Router. Adding this is needed to correlate traces from the mcp server to the router or other downstream APIs
Update SDL handling in sdl_to_api_schema function - @lennyburdette PR #365
Loads supergraph schemas using a function that supports various features, including Apollo Connectors. When supergraph loading failed, it would load it as a standard GraphQL schema, which reveals Federation query planning directives in when using the
search
andintrospection
tools.Minify: Add support for deprecated directive - @esilverm PR #367
Includes any existing
@deprecated
directives in the schema in the minified output of builtin tools. Now operations generated via these tools should take into account deprecated fields when being generated.📃 Configuration
fix: Disable statefulness to fix initialize race condition - @swcollard PR #351
We've been seeing errors with state and session handling in the MCP Server. Whether that is requests being sent before the initialized notification is processed. Or running a fleet of MCP Server pods behind a round robin load balancer. A new configuration option under the streamable_http transport
stateful_mode
, allows disabling session handling which appears to fix the race condition issue.Add basic config file options to otel telemetry - @swcollard PR #330
Adds new Configuration options for setting up configuration beyond the standard OTEL environment variables needed before.
🛠 Maintenance
Fix version on mcp server tester - @alocay PR #374
Add a specific version when calling the mcp-server-tester for e2e tests. The current latest (1.4.1) as an issue so to avoid problems now and in the future updating the test script to invoke the testing tool via specific version.
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 inCONTRIBUTING.md
and adds the Codecov badge toREADME.md
.Implement Test Coverage Measurement and Reporting - @DaleSeo PR #335
This PR adds the bare minimum for code coverage reporting using cargo-llvm-cov and integrates with Codecov. 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 usesnextest
instead of the built-in test runner and CircleCI instead of GitHub Actions.test: add tests for server event and SupergraphSdlQuery - @DaleSeo PR #347
This PR adds tests for some uncovered parts of the codebase to check the Codecov integration.
chore: update RMCP dependency (328)
Update the RMCP dependency to the latest version, pulling in newer specification changes.
ci: Pin stable rust version (Issue #287)
Pins the stable version of Rust to the current latest version to ensure backwards compatibility with future versions.