Skip to content

Commit 6bd0d6d

Browse files
authored
Merge pull request #109317 from ShaunaDiaz/OSDOCS-18126
OSDOCS-18128: adds intro and arch to MCP gateway
2 parents ce72531 + 7ffdd2c commit 6bd0d6d

6 files changed

Lines changed: 92 additions & 12 deletions

File tree

_topic_maps/_topic_map.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ Distros: rhcl
3636
Topics:
3737
- Name: About the MCP gateway
3838
File: mcp-gateway-introduction
39-
- Name: MCP gateway architecture
40-
File: mcp-gateway-architecture
4139
---
4240
Name: Release notes
4341
Dir: release_notes

mcp_gateway_discover/mcp-gateway-architecture.adoc

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
:_mod-docs-content-type: ASSEMBLY
22
include::_attributes/attributes.adoc[]
33
[id="mcp-gateway-introduction"]
4-
= Introduction to {mcpg}
4+
= Introduction to the {mcpg}
55
:context: mcp-gateway-introduction
66

77
[role="_abstract"]
8-
FPO assembly
8+
You can centralize and manage the connectivity for your agentic AI applications that access your Model Context Protocol (MCP) servers by using the MCP gateway.
9+
10+
:FeatureName: MCP gateway
11+
12+
include::snippets/technology-preview.adoc[leveloffset=+1]
13+
14+
include::modules/con-about-mcp-gateway.adoc[leveloffset=+1]
15+
16+
include::modules/con-mcp-gateway-architecture.adoc[leveloffset=+1]
17+
18+
include::modules/con-mcp-gateway-arch-components.adoc[leveloffset=+2]

modules/con-about-mcp-gateway.adoc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
// Module included in the following assemblies:
3+
//
4+
// *mcp_gateway_discover/about-mcp-gateway.adoc
5+
6+
:_mod-docs-content-type: CONCEPT
7+
[id="con-about-mcp-gateway_{context}"]
8+
= About the {mcpg}
9+
10+
[role="_abstract"]
11+
You can focus on your agentic AI systems without building networking into your application code by using the Model Context Protocol (MCP) gateway. Application teams and platform engineers can operate and collaborate to expose MCP servers with the MCP gateway as secure and protected services just as you do with existing RESTFul based APIs.
12+
13+
For example, you can achieve the following goals by using the MCP gateway to connect your MCP servers:
14+
15+
* Aggregate MCP servers behind a single endpoint.
16+
* Grow your agentic AI applications at scale, keeping connectivity outside of application development.
17+
* Manage access to and the security of AI tools and MCP servers.
18+
19+
The {prodname} implementation of the MCP gateway extends the benefits of the Envoy proxy server to your customized AI agent systems.
20+
21+
The Envoy proxy server handles traffic from agentic AI clients to your backend MCP servers at the gateway ingress. Envoy is a conformance-tested implementation of the Kubernetes Gateway API. By using the MCP gateway, you can extend the capabilities of Envoy without the complexity of manual configuration.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Module included in the following assemblies:
2+
//
3+
// *mcp_gateway_discover/about-mcp-gateway.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="con-mcp-gateway-arch-components_{context}"]
7+
= {mcpg} architectural components
8+
9+
[role="_abstract"]
10+
The MCP gateway architecture consists of three components that manage connectivity: the router, broker, and controller.
11+
12+
MCP router::
13+
The MCP router is an Envoy-focused `ext_proc` component that is capable of parsing the MCP protocol. When `ext_proc` parses the MCP Protocol, the router uses the protocol to set headers to force the correct routing of the request to the correct MCP server.
14+
+
15+
The MCP router component is responsible for the following activities:
16+
17+
* Parsing and validating the `JSON-RPC` request object, which is the MCP message body
18+
* Setting the key request headers, `:authority`, `:path`, `x-mcp-method`, `x-mcp-servername`, `x-mcp-toolname`, and `mcp-session-id`
19+
* Watching for `404` responses from MCP servers and invalidating the session store
20+
* Handling session initialization and storage on behalf of a requesting MCP client during a tools call request
21+
22+
MCP broker::
23+
The MCP broker manages the complexity of connecting to multiple AI services simultaneously for you. The broker component aggregates multiple backend MCP servers and presents them as a unified MCP server to clients. This means that your MCP clients or applications do not have to manage a large set of MCP servers and configurations for each server.
24+
+
25+
The MCP broker component is a backend service that acts as a default MCP server backend for the `/mcp` endpoint. For example, the broker does the following activities:
26+
27+
* Handles the handshake, `init`.
28+
* Discovers tools from connected MCP servers and aggregates them into a unified list. Validates that discovered MCP servers meet minimum protocol version and capabilities before including their tools in the list.
29+
* Listens for updates and can change its state so that the agentic AI always has the latest information.
30+
* Handles notifications sent through whichever backend MCP server it is connected to, for example, `notifications/tools/list_changed`.
31+
* Handles notification requests from clients and MCP servers by proxying from the MCP server notification to registered clients.
32+
33+
MCP discovery controller::
34+
The MCP discovery controller is a Kubernetes-based controller that watches for changes to custom resources (CRs). The MCP discovery controller uses CRs to configure the MCP gateway and register MCP servers. The CRs are then turned into a configuration that is consumed by the MCP gateway so that it can route and present the tools from the registered MCP server to the client.
35+
+
36+
The MCP discovery controller component is responsible for the following activities:
37+
38+
* Watching `MCPServerRegistration` CRs
39+
* Maintaining a configuration from both `HTTPRoute` and `MCPServerRegistration` CRs
40+
* Updating the MCP broker and MCP router config secret based on discovered `MCPServerRegistration` CRs and the `HTTPRoutes` they target
41+
* Reporting the status of `MCPServerRegistrations` CRs
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Module included in the following assemblies:
2+
//
3+
// *mcp_gateway_discover/about-mcp-gateway.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="mcp-gateway-architecture_{context}"]
7+
= {mcpg} architecture
8+
9+
[role="_abstract"]
10+
The architecture of the Model Context Protocol (MCP) gateway builds on top of the routing capabilities of the Envoy proxy with capabilities to handle the MCP.
11+
12+
Design considerations include the following high-level goals:
13+
14+
* The MCP gateway must work with the Gateway API as a routing configuration.
15+
* Envoy controls routing and traffic as the implementation of the Gateway API.
16+
* The MCP gateway focuses on the MCP Protocol.
17+
* Use Istio as the gateway control plane in {ocp} with the Gateway API.
18+
* {prodname} is used for other key features, such as `AuthPolicy` and rate-limiting custom resources.

0 commit comments

Comments
 (0)