-
Notifications
You must be signed in to change notification settings - Fork 7
MCP Gateway 0.6 blog post, inc mermaid plugin #89
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
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
106 changes: 106 additions & 0 deletions
106
src/blog/mcp-gateway-tech-preview/mcp-gateway-tech-preview.md
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,106 @@ | ||
| --- | ||
| title: "MCP Gateway 0.6: Tech Preview Release" | ||
| date: 2026-04-17 | ||
| author: David Martin | ||
| --- | ||
|
|
||
| The [MCP Gateway](https://github.com/kuadrant/mcp-gateway) has reached its [0.6 tech preview release](https://github.com/Kuadrant/mcp-gateway/releases/tag/v0.6.0). This release adds a Kubernetes operator, MCP specification elicitation support, and Redis-backed horizontal scaling. For the full list of changes you can check out the [0.6.0 release page](https://github.com/Kuadrant/mcp-gateway/releases/tag/v0.6.0) on GitHub. | ||
|
|
||
| For background on the MCP Gateway, see the previous [0.5 dev preview announcement](/blog/mcp-gateway-dev-preview/) or the [overview documentation](https://docs.kuadrant.io/dev/mcp-gateway/docs/guides/overview/). | ||
|
|
||
| ## From Dev Preview to Tech Preview | ||
|
|
||
| The 0.5 release was a dev preview, a first look at the core MCP Gateway functionality. With 0.6, the project moves to a tech preview as we work toward production readiness. APIs and interfaces may still change, but the foundations are now in place: | ||
|
|
||
| - **Installation** - OLM operator replaces Helm charts | ||
| - **Configuration** - declarative CRD (`MCPGatewayExtension`) replaces manual resource creation | ||
| - **Scaling** - Redis session store enables multi-replica deployments | ||
| - **Protocol** - elicitation support tracks the evolving MCP specification | ||
|
|
||
| ## What's New in 0.6 | ||
|
|
||
| ### Kubernetes Operator and MCPGatewayExtension CRD | ||
|
|
||
| The 0.6 release adds an [OLM-based installation](https://docs.kuadrant.io/dev/mcp-gateway/docs/guides/olm-install/) alongside the existing Helm chart approach. The operator introduces the `MCPGatewayExtension` custom resource for configuring the MCP Gateway. | ||
|
|
||
| An `MCPGatewayExtension` targets a Gateway listener and configures the MCP routing layer: | ||
|
|
||
| ```yaml | ||
| apiVersion: mcp.kuadrant.io/v1alpha1 | ||
| kind: MCPGatewayExtension | ||
| metadata: | ||
| name: mcp-gateway | ||
| spec: | ||
| targetRef: | ||
| group: gateway.networking.k8s.io | ||
| kind: Gateway | ||
| name: mcp-gateway | ||
| namespace: gateway-system | ||
| sectionName: mcp | ||
| ``` | ||
|
|
||
| The operator manages the MCP Router and Broker components, and (optionally) automatically creates `HTTPRoute` resources based on the `MCPGatewayExtension` configuration. Manual route definition is no longer needed. | ||
|
|
||
| See the [OLM install guide](https://docs.kuadrant.io/dev/mcp-gateway/docs/guides/olm-install/) to get started. | ||
|
|
||
| ### MCP Specification Elicitation Support | ||
|
|
||
| This release adds support for the MCP protocol's [elicitation](https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation) capability. Elicitation allows an MCP server to request additional information from the client during a tool call, enabling multi-turn exchanges between the agent and server. Below is a sequence diagram showing how elicitation events are mapped at the gateway between the client and server. Note the different request IDs on either side of the gateway, as the gateway abstracts this from the client. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Minor copy nits.
🤖 Prompt for AI Agents |
||
|
|
||
| ```mermaid | ||
| sequenceDiagram | ||
| participant Client as MCP Client | ||
| participant Gateway as Gateway/MCP Router/MCP Broker | ||
| participant Server as MCP Server | ||
|
|
||
| Note over Client, Server: Tool call with elicitation | ||
| Client ->> Gateway: POST /mcp "tools/call" | ||
| Gateway ->> Server: POST /mcp "tools/call" | ||
| Note over Server, Gateway: Elicitation event | ||
| Server -->> Gateway: Streamed event: elicitation/create (id: 42) | ||
| Gateway ->> Gateway: Map server request ID (42) to gateway request ID (gateway-123) | ||
| Gateway -->> Client: Streamed event: elicitation/create (id: gateway-123) | ||
| Note over Client: User provides input | ||
| Client ->> Gateway: POST /mcp elicitation response (id: gateway-123) | ||
| Gateway ->> Gateway: Map gateway request ID (gateway-123) to server request ID (42) | ||
| Gateway ->> Server: POST /mcp elicitation response (id: 42) | ||
| Note over Server, Gateway: Tool call continues/resumes | ||
| Server -->> Gateway: tool/call response | ||
| Gateway -->> Client: tool/call response | ||
| ``` | ||
|
|
||
| As the [MCP specification](https://modelcontextprotocol.io/) evolves, the MCP Gateway will continue to align its feature support with the spec. Teams adopting the gateway should not need to worry about protocol-level compatibility. | ||
|
|
||
| ### Redis Session Store for Horizontal Scaling | ||
|
|
||
| The release also introduces a Redis-backed session store for horizontal scaling. When the MCP Gateway aggregates multiple MCP servers behind a single endpoint, it maintains session ID mappings between client sessions and upstream servers. The session store moves these mappings into Redis so that multiple gateway replicas can share state, removing the single-instance constraint from the dev preview. | ||
|
|
||
| Configure it via the `sessionStore` field in the `MCPGatewayExtension` spec: | ||
|
|
||
| ```yaml | ||
| apiVersion: mcp.kuadrant.io/v1alpha1 | ||
| kind: MCPGatewayExtension | ||
| metadata: | ||
| name: mcp-gateway | ||
| spec: | ||
| targetRef: | ||
| group: gateway.networking.k8s.io | ||
| kind: Gateway | ||
| name: mcp-gateway | ||
| namespace: gateway-system | ||
| sectionName: mcp | ||
| sessionStore: | ||
| secretName: redis-credentials | ||
| ``` | ||
|
|
||
| With a session store configured, requests can be load-balanced across replicas without session affinity. | ||
|
|
||
| ## What's Next | ||
|
|
||
| There will likely be additional releases before the MCP Gateway reaches GA with a 1.0. The [0.7 milestone](https://github.com/Kuadrant/mcp-gateway/milestone/5) includes a review of the virtual server API, tool search and discovery, and an investigation into how [A2A](https://google.github.io/A2A/) fits into the picture, among other items. | ||
|
|
||
| ## Get Involved | ||
|
|
||
| - Try the [getting started guide](https://docs.kuadrant.io/dev/mcp-gateway/docs/guides/getting-started/). | ||
| - Report issues or request features on the [MCP Gateway Issues](https://github.com/kuadrant/mcp-gateway/issues) page. | ||
| - Engage with the [community](https://kuadrant.io/community/). | ||
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mermaid loader runs on every page; consider scoping and adding SRI.
A couple of observations on the new loader:
cdn.jsdelivr.neteven when no diagrams are present. Consider gating execution on the presence of acode.language-mermaidelement before importing, e.g. dynamicimport()inside anif (document.querySelector('code.language-mermaid'))check, to avoid the network/parse cost on unrelated pages.integrity) hash or version pin beyond the major (mermaid@11). A compromised or unexpectedly updated upstream would execute on every page. Pinning to an exact version and addingintegrity/crossorigin="anonymous"would harden this.♻️ Suggested guard to skip the import when no diagrams are on the page
📝 Committable suggestion
🤖 Prompt for AI Agents