|
1 | | -# [1.1.0] - 2025-10-16 |
2 | | - |
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 | | -``` |
| 1 | +# [1.2.0] - 2025-11-13 |
25 | 2 |
|
26 | 3 | ## 🚀 Features |
27 | 4 |
|
28 | | -### feat: Add configuration option for metric temporality - @swcollard PR #413 |
| 5 | +### Adding config option to specify metadata/header values for telemetry exporters - @alocay PR #460 |
29 | 6 |
|
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. |
34 | | -
|
35 | | -Some observability vendors require that one is used over the other so we want to support the configuration in the MCP Server. |
36 | | -
|
37 | | -### Add support for forwarding headers from MCP clients to GraphQL APIs - @DaleSeo PR #428 |
38 | | -
|
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: |
| 7 | +Adding a `metadata` (for `grpc` protocol) and `headers` (for `http/protobuf` protocol) config option for the `telemetry.exporters.metrics.otlp` yaml config section. |
42 | 8 |
|
43 | 9 | ```yaml |
44 | | -forward_headers: |
45 | | - - x-tenant-id |
46 | | - - x-experiment-id |
47 | | - - x-geo-country |
| 10 | +telemetry: |
| 11 | + exporters: |
| 12 | + metrics: |
| 13 | + otlp: |
| 14 | + endpoint: "http://127.0.0.1:4317" |
| 15 | + protocol: "grpc" |
| 16 | + metadata: |
| 17 | + the-key: some-value |
| 18 | + tracing: |
| 19 | + otlp: |
| 20 | + endpoint: "http://127.0.0.1:4317" |
| 21 | + protocol: "http/protobuf" |
| 22 | + headers: |
| 23 | + some-key: another-value |
48 | 24 | ``` |
49 | 25 |
|
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 | 26 | ## 🐛 Fixes |
57 | 27 |
|
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. |
61 | | - |
62 | | -## 🛠 Maintenance |
63 | | - |
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 |
| 28 | +### Allow using builtin names for custom tools - @dylan-apollo PR #481 |
67 | 29 |
|
68 | | -### chore: Only initialize a single HTTP client for graphql requests - @swcollard PR #412 |
| 30 | +Previously, the names of builtin tools were reserved even if the tool was disabled. |
| 31 | +These names are now available for custom tools _if_ the matching builtin tool is disabled via config: |
| 32 | +- `introspect` |
| 33 | +- `search` |
| 34 | +- `explorer` |
| 35 | +- `execute` |
| 36 | +- `validate` |
69 | 37 |
|
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. |
| 38 | +### Improved performance of parallel tool calls - @dylan-apollo PR #475 |
71 | 39 |
|
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." |
| 40 | +Responsiveness of all tools is improved when many clients are connected. |
74 | 41 |
|
0 commit comments