Skip to content

Commit 37500b0

Browse files
committed
fix external MCP server guide to match upstream corrections
1 parent c384fd7 commit 37500b0

6 files changed

Lines changed: 29 additions & 29 deletions

modules/proc-mcp-gateway-otel.adoc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The MCP gateway uses {OTELName} throughout all components to give you consistent
3434
.Example OpenTelemetryCollector custom resource (CR)
3535
[source,yaml,subs="+quotes"]
3636
----
37-
apiVersion: opentelemetry.io/v1alpha1
37+
apiVersion: opentelemetry.io/v1beta1
3838
kind: OpenTelemetryCollector
3939
metadata:
4040
name: _<mcp_otel_collector>_
@@ -73,15 +73,16 @@ spec:
7373
7474
. Apply the following environment variables to your {ocp} cluster by running the following command:
7575
+
76-
[source,terminal]
76+
[source,terminal,subs="+quotes"]
7777
----
7878
$ oc set env deployment/mcp-gateway \
79-
OTEL_EXPORTER_OTLP_ENDPOINT="http://mcp-otel-collector-collector.mcp-gateway-system.svc.cluster.local:4318" \
79+
OTEL_EXPORTER_OTLP_ENDPOINT="http://_<mcp_otel_collector>_-collector._<mcp_gateway_system>_.svc.cluster.local:4318" \
8080
OTEL_EXPORTER_OTLP_INSECURE="true" \
8181
OTEL_SERVICE_NAME="mcp-gateway"
8282
----
8383
+
84-
When {OTELName} creates a collector, the service name is `[metadata.name]-collector`.
84+
* Replace `_<mcp_otel_collector>_` with the name you used in your `OpenTelemetryCollector` CR. When {OTELName} creates a collector, the service name is `[metadata.name]-collector`.
85+
* Replace `_<mcp_gateway_system>_` with the namespace of your MCP gateway deployment.
8586
8687
. Optional. If you want to send traces to one collector and logs to a different one, set the following additional environment variables:
8788
+

modules/proc-mcp-gateway-register-mcp-server.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,10 @@ $ oc get mcpsr -A
129129
.Example output
130130
[source,text]
131131
----
132-
NAMESPACE NAME READY TARGET-ROUTE PREFIX AGE
133-
mcp-test mcp-server-one True mcp-api-key-server serverone 14m
134-
mcp-test mcp-server-two True mcp-generic-route servertwo 2d
135-
mcp-prod analytics-tools True analytics-route stats 5h
132+
NAMESPACE NAME PREFIX TARGET PATH READY TOOLS CREDENTIALS AGE
133+
mcp-test mcp-server-one serverone mcp-api-key-server /mcp True 4 14m
134+
mcp-test mcp-server-two servertwo mcp-generic-route /mcp True 7 2d
135+
mcp-prod analytics-tools stats analytics-route /mcp True 3 5h
136136
----
137137

138138
. Check on tool discovery status by running the following command:

modules/proc-register-ext-mcp-server-authpolicy.adoc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,12 @@ spec:
4646
authorization:
4747
plain:
4848
expression: 'request.headers["authorization"]'
49-
x-mcp-api-key:
50-
plain:
51-
expression: 'request.headers["authorization"].split(" ")[1]'
5249
----
5350
+
5451
* Replace the `metadata.name:` field value with the name you want to use. This approach uses service naming.
5552
* Replace the `metadata.namespace:` field value with the namespace you used in your `ServiceEntry` object.
5653
* Replace the `spec.name:` value with the name of your external MCP server route.
57-
* This `AuthPolicy` CR extracts the API key from the OAuth token and sets it as the `x-mcp-api-key` header.
54+
* This `AuthPolicy` CR passes through the `Authorization` header from the original request.
5855
5956
. Apply the CR by running the following command:
6057
+

modules/proc-register-ext-mcp-server-tls.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ spec:
3939
+
4040
* Replace `_<mcp_external_server>_` with the name of your external MCP server.
4141
* Replace `_<mcp_test>_` with the namespace that the MCP server is in.
42-
* Replace `_<tls_mode>` with the TLS traffic policy that you need according to your requirements. `SIMPLE` is the default value. Use `MUTUAL` in high-security environments or use `ISTIO_MUTUAL` with {service-mesh}. A value of `DISABLE` means that TLS is not used.
42+
* The default TLS mode is `SIMPLE`. Change it to `MUTUAL` in high-security environments or use `ISTIO_MUTUAL` with {service-mesh}. A value of `DISABLE` means that TLS is not used.
4343
* Replace `_<api.githubcopilot.com>_` with the host URL of the MCP server.
4444
4545
. Apply the CR by running the following command:

modules/proc-register-ext-mcp-server-verify.adoc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
= Verifying that your external MCP server is ready to use
88

99
[role="_abstract"]
10-
To verify that your an external MCP server is ready to use, check the status of your `MCPServerRegistration` custom resource (CR).
10+
To verify that an external MCP server is ready to use, check the status of your `MCPServerRegistration` custom resource (CR).
1111

1212
.Prerequisites
1313

@@ -29,9 +29,9 @@ $ oc get mcpsr -A
2929
.Example output
3030
[source,text]
3131
----
32-
NAMESPACE NAME READY TARGET-ROUTE PREFIX AGE
33-
mcp-test mcp-server-ext True external-mcp-server extserver 14m
34-
mcp-test mcp-server-one True mcp-api-key-server serverone 1d
35-
mcp-test mcp-server-two True mcp-generic-route servertwo 2d
36-
mcp-prod analytics-tools True analytics-route stats 5h
32+
NAMESPACE NAME PREFIX TARGET PATH READY TOOLS CREDENTIALS AGE
33+
mcp-test mcp-server-ext extserver external-mcp-server /mcp True 5 ext-server-secret 14m
34+
mcp-test mcp-server-one serverone mcp-api-key-server /mcp True 4 1d
35+
mcp-test mcp-server-two servertwo mcp-generic-route /mcp True 7 2d
36+
mcp-prod analytics-tools stats analytics-route /mcp True 3 analytics-secret 5h
3737
----

modules/proc-verify-virt-mcp-server.adoc

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ After you create your virtual MCP servers, you can check that they are returning
1414
* You completed all of the installation and configuration steps for {mcpg}.
1515
* You registered your MCP servers.
1616
* You installed the {oc-first}.
17+
* You installed the `jq` command-line JSON processor.
1718
* You applied `MCPVirtualServer` custom resource (CRs) for your virtual servers.
1819
1920
.Procedure
@@ -47,13 +48,13 @@ $ curl -s -D /tmp/mcp_headers -X POST _<http:example.com:port/mcp>_ \
4748
"result": {
4849
"protocolVersion": "2025-11-25",
4950
"capabilities": {
50-
"tools": {},
51-
"prompts": {},
52-
"resources": {}
51+
"tools": {
52+
"listChanged": true
53+
}
5354
},
5455
"serverInfo": {
55-
"name": "mcp-gateway-server",
56-
"version": "1.0.0"
56+
"name": "Kuadrant MCP Gateway",
57+
"version": "0.0.1"
5758
}
5859
}
5960
}
@@ -66,10 +67,11 @@ $ curl -s -D /tmp/mcp_headers -X POST _<http:example.com:port/mcp>_ \
6667
$ SESSION_ID=$(grep -i "mcp-session-id:" /tmp/mcp_headers | cut -d' ' -f2 | tr -d '\r')
6768
----
6869
+
69-
.Expected output
70-
[source,text]
70+
Verify that the session ID was extracted by running the following command:
71+
+
72+
[source,terminal]
7173
----
72-
echo "MCP Session ID: $SESSION_ID"
74+
$ echo "MCP Session ID: $SESSION_ID"
7375
----
7476

7577
. Request the tools from the `dev_tools` virtual MCP server by running the following command:
@@ -92,7 +94,7 @@ $ curl -X POST _<http:example.com:port/mcp>_ \
9294
+
9395
[source,terminal,subs="+quotes"]
9496
----
95-
$ curl -X POST _<http:example.com:port>_/mcp \
97+
$ curl -X POST _<http:example.com:port/mcp>_ \
9698
-H "Content-Type: application/json" \
9799
-H "mcp-session-id: $SESSION_ID" \
98100
-H "X-Mcp-Virtualserver: _<mcp_system>_/_<data_tools>_" \
@@ -108,7 +110,7 @@ $ curl -X POST _<http:example.com:port>_/mcp \
108110
+
109111
[source,terminal,subs="+quotes"]
110112
----
111-
$ curl -X POST _<http:example.com:port>_/mcp \
113+
$ curl -X POST _<http:example.com:port/mcp>_ \
112114
-H "mcp-session-id: $SESSION_ID" \
113115
-H "Content-Type: application/json" \
114116
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | jq '.result.tools[].name'

0 commit comments

Comments
 (0)