|
1 | | -# [1.0.0] - 2025-10-01 |
| 1 | +# [1.1.0] - 2025-10-16 |
2 | 2 |
|
3 | | -## 🐛 Fixes |
| 3 | +## ❗ BREAKING ❗ |
| 4 | + |
| 5 | +### Change default port from 5000 to 8000 - @DaleSeo PR #417 |
| 6 | + |
| 7 | +The default server port has been changed from `5000` to `8000` to avoid conflicts with common development tools and services that typically use port 5000 (such as macOS AirPlay, Flask development servers, and other local services). |
| 8 | + |
| 9 | +**Migration**: If you were relying on the default port 5000, you can continue using it by explicitly setting the port in your configuration file or command line arguments. |
| 10 | + |
| 11 | +- Before |
| 12 | + |
| 13 | +```yaml |
| 14 | +transport: |
| 15 | + type: streamable_http |
| 16 | +``` |
| 17 | +
|
| 18 | +- After |
| 19 | +
|
| 20 | +```yaml |
| 21 | +transport: |
| 22 | + type: streamable_http |
| 23 | + port: 5000 |
| 24 | +``` |
| 25 | +
|
| 26 | +## 🚀 Features |
| 27 | +
|
| 28 | +### feat: Add configuration option for metric temporality - @swcollard PR #413 |
| 29 | +
|
| 30 | +Creates a new configuration option for telemetry to set the Metric temporality to either Cumulative (default) or Delta. |
| 31 | +
|
| 32 | +* Cumulative - The metric value will be the overall value since the start of the measurement. |
| 33 | +* Delta - The metric will be the difference in the measurement since the last time it was reported. |
4 | 34 |
|
5 | | -### fix: remove verbose logging - @swcollard PR #401 |
| 35 | +Some observability vendors require that one is used over the other so we want to support the configuration in the MCP Server. |
6 | 36 |
|
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. |
| 37 | +### Add support for forwarding headers from MCP clients to GraphQL APIs - @DaleSeo PR #428 |
8 | 38 |
|
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. |
| 39 | +Adds opt-in support for dynamic header forwarding, which enables metadata for A/B testing, feature flagging, geo information from CDNs, or internal instrumentation to be sent from MCP clients to downstream GraphQL APIs. It automatically blocks hop-by-hop headers according to the guidelines in [RFC 7230, section 6.1](https://datatracker.ietf.org/doc/html/rfc7230#section-6.1), and it only works with the Streamable HTTP transport. |
| 40 | +
|
| 41 | +You can configure using the `forward_headers` setting: |
| 42 | + |
| 43 | +```yaml |
| 44 | +forward_headers: |
| 45 | + - x-tenant-id |
| 46 | + - x-experiment-id |
| 47 | + - x-geo-country |
| 48 | +``` |
| 49 | + |
| 50 | +Please note that this feature is not intended for passing through credentials as documented in the best practices page. |
| 51 | + |
| 52 | +### feat: Add mcp-session-id header to HTTP request trace attributes - @swcollard PR #421 |
| 53 | + |
| 54 | +Includes the value of the [Mcp-Session-Id](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#session-management) HTTP header as an attribute of the trace for HTTP requests to the MCP Server |
| 55 | + |
| 56 | +## 🐛 Fixes |
| 57 | + |
| 58 | +### Fix compatibility issue with VSCode/Copilot - @DaleSeo PR #447 |
| 59 | + |
| 60 | +This updates Apollo MCP Server’s tool schemas from [Draft 2020-12](https://json-schema.org/draft/2020-12) to [Draft‑07](https://json-schema.org/draft-07) which is more widely supported across different validators. VSCode/Copilot still validate against Draft‑07, so rejects Apollo MCP Server’s tools. Our JSON schemas don’t rely on newer features, so downgrading improves compatibility across MCP clients with no practical impact. |
10 | 61 |
|
11 | 62 | ## 🛠 Maintenance |
12 | 63 |
|
13 | | -### deps: update rust to v1.90.0 - @DaleSeo PR #387 |
| 64 | +### Update rmcp sdk to version 0.8.x - @swcollard PR #433 |
| 65 | + |
| 66 | +Bumping the Rust MCP SDK version used in this server up to 0.8.x |
| 67 | + |
| 68 | +### chore: Only initialize a single HTTP client for graphql requests - @swcollard PR #412 |
| 69 | + |
| 70 | +Currently the MCP Server spins up a new HTTP client every time it wants to make a request to the downstream graphql endpoint. This change creates a static reqwest client that gets initialized using LazyLock and reused on each graphql request. |
14 | 71 |
|
15 | | -Updates the Rust version to v1.90.0 |
| 72 | +This change is based on the suggestion from the reqwest [documentation](https://docs.rs/reqwest/latest/reqwest/struct.Client.html) |
| 73 | +> "The Client holds a connection pool internally, so it is advised that you create one and reuse it." |
16 | 74 |
|
0 commit comments