Skip to content

Commit 9619b65

Browse files
authored
docs: adds streamable http examples and documentation (#96)
Signed-off-by: ChrisJBurns <[email protected]>
1 parent ae16233 commit 9619b65

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

docs/toolhive/guides-k8s/intro.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,18 @@ The operator introduces a new Custom Resource Definition (CRD) called
3636
flowchart TB
3737
subgraph K8s["<h3>Kubernetes cluster</h3>"]
3838
subgraph K8s1["**Deployment**"]
39-
Svc1["SSE Proxy<br>Service"] -- http/sse --> Proxy1["SSE Proxy<br>Pod"] -- stdio or http/sse --> MCP1["MCP Server<br>Pod"]
39+
Svc1["HTTP Proxy<br>Service"] -- http --> Proxy1["HTTP Proxy<br>Pod"] -- stdio or http --> MCP1["MCP Server<br>Pod"]
4040
Proxy1 -.->|creates| MCP1
4141
end
4242
subgraph K8s2["**Deployment**"]
43-
Svc2["SSE Proxy<br>Service"] -- http/sse --> Proxy2["SSE Proxy<br>Pod"] -- stdio or http/sse --> MCP2["MCP Server<br>Pod"]
43+
Svc2["HTTP Proxy<br>Service"] -- http --> Proxy2["HTTP Proxy<br>Pod"] -- stdio or http --> MCP2["MCP Server<br>Pod"]
4444
Proxy2 -.->|creates| MCP2
4545
end
46-
Ingress["Ingress"] -- http/sse --> Svc1 & Svc2
46+
Ingress["Ingress"] -- http --> Svc1 & Svc2
4747
Operator["ToolHive<br>Operator"] -.->|creates| K8s1 & K8s2
4848
end
4949
50-
Client["MCP Client<br>[ex: Copilot]"] -- http/sse --> Ingress
50+
Client["MCP Client<br>[ex: Copilot]"] -- http --> Ingress
5151
```
5252

5353
## Installation

docs/toolhive/guides-k8s/run-mcp-k8s.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ flowchart LR
6565
Proxy -->|Attaches/STDIO| MCP
6666
```
6767

68-
### SSE transport flow
68+
### Streamable HTTP and SSE transport flow
6969

70-
For MCP servers using Server-Sent Events (SSE) transport, the proxy creates both
71-
a pod and a headless service. This allows direct HTTP/SSE communication between
72-
the proxy and MCP server while maintaining network isolation and service
73-
discovery.
70+
For MCP servers using Server-Sent Events (SSE) or Stremable HTTP transport, the
71+
proxy creates both a pod and a headless service. This allows direct HTTP/SSE or
72+
HTTP/Streamable HTTP communication between the proxy and MCP server while
73+
maintaining network isolation and service discovery.
7474

7575
```mermaid
7676
flowchart LR
@@ -87,8 +87,8 @@ flowchart LR
8787
MCPPod["POD: MCP Server"]
8888
end
8989
90-
Client["Client"] -->|HTTP/SSE| Proxy
91-
Proxy -->|HTTP/SSE| MCP
90+
Client["Client"] -->|HTTP| Proxy
91+
Proxy -->|HTTP| MCP
9292
MCPService --> MCPPod
9393
```
9494

@@ -117,7 +117,7 @@ metadata:
117117
namespace: my-namespace # Update with your namespace
118118
spec:
119119
image: ghcr.io/stackloklabs/osv-mcp/server
120-
transport: sse
120+
transport: streamable-http
121121
port: 8080
122122
permissionProfile:
123123
type: builtin
@@ -153,8 +153,9 @@ When you apply an `MCPServer` resource, here's what happens:
153153
service to handle client connections
154154
4. The proxy creates the actual `MCPServer` pod containing your specified
155155
container image
156-
5. For STDIO transport, the proxy attaches directly to the pod; for SSE
157-
transport, a headless service is created for direct pod communication
156+
5. For STDIO transport, the proxy attaches directly to the pod; for SSE and
157+
Streamable HTTP transport, a headless service is created for direct pod
158+
communication
158159
6. Clients can now connect through the service → proxy → MCP server chain to use
159160
the tools and resources (note: external clients will need an ingress
160161
controller or similar mechanism to access the service from outside the
@@ -217,9 +218,8 @@ metadata:
217218
namespace: development # Can be any namespace
218219
spec:
219220
image: ghcr.io/stackloklabs/gofetch/server
220-
transport: sse
221+
transport: streamable-http
221222
port: 8080
222-
targetPort: 8080
223223
permissionProfile:
224224
type: builtin
225225
name: network
@@ -474,8 +474,8 @@ Common causes include:
474474
selectors
475475
- **Port configuration**: Verify the `port` field matches the MCP server's
476476
listening port
477-
- **Transport mismatch**: Ensure the `transport` field (stdio/sse) matches the
478-
MCP server's capabilities
477+
- **Transport mismatch**: Ensure the `transport` field
478+
(stdio/sse/streamable-http) matches the MCP server's capabilities
479479
- **Network policies**: Check if network policies are blocking communication
480480

481481
</details>

0 commit comments

Comments
 (0)