A local Kubernetes playground for Model Context Protocol (MCP) servers, powered by Kind, the MCP Lifecycle Operator, and MCP Gateway.
Spin up a fully working MCP environment on your machine โ a Kind cluster, Gateway API with Istio, the MCP Gateway for federated tool access, and the MCP Launcher web UI for browsing and deploying MCP servers from a catalog.
- ๐ MCP Gateway โ Federated access to all MCP servers through a single endpoint
- ๐ช Gateway API + Istio โ Envoy-based gateway with ext_proc routing, no service mesh required
- ๐ MCP Launcher โ Web UI to browse, configure, and deploy MCP servers from a catalog
- ๐ Auto-registration โ Launcher automatically creates
HTTPRouteandMCPServerRegistrationfor each deployed server - ๐งฉ MCP Lifecycle Operator โ Manages MCP server pods via
MCPServercustom resources - ๐ฆ Single command setup โ
./mcp-box.shgets you from zero to a working MCP gateway
localhost:7001 (NodePort)
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Kind Cluster โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ gateway-system โ โ โ
โ โ โโ Istio (Gateway API provider) โ โ
โ โ โโ mcp-gateway (Envoy + ext_proc) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ mcp-system โ โ
โ โ โโ MCP Gateway broker + router โ โ
โ โ โโ MCP Gateway controller โ โ
โ โ โโ MCP Launcher (web UI) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ mcp-catalog โ โ
โ โ โโ Catalog ConfigMaps (server entries) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ kubernetes-mcp-server (optional, script 05) โ โ
โ โ โโ MCPServer CR โ โ
โ โ โโ HTTPRoute + MCPServerRegistration (kube_ prefix) โ โ
โ โ โโ ServiceAccount (mcp-editor) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Run everything with a single command:
./mcp-box.shThis installs the full platform: Kind cluster, MCP Lifecycle Operator, Istio, MCP Gateway, and the Launcher UI.
Deploy the Kubernetes MCP Server with gateway integration (kube_ tool prefix):
./scripts/05-kubernetes-mcp-server.shUse install-base.sh to set up the gateway stack without the Launcher:
./install-base.sh./scripts/00-installer-kind.sh # 1๏ธโฃ Create Kind cluster (NodePort on 7001)
./scripts/01-mcp-lifecycle-operator.sh # 2๏ธโฃ Install MCP Lifecycle Operator
./scripts/02-gateway-api-istio.sh # 3๏ธโฃ Install Istio as Gateway API provider
./scripts/03-mcp-gateway.sh # 4๏ธโฃ Install MCP Gateway
./scripts/04-mcp-launcher.sh # 5๏ธโฃ Deploy MCP Launcher (web UI + catalog)
./scripts/05-kubernetes-mcp-server.sh # 6๏ธโฃ Deploy Kubernetes MCP Server (optional)| Script | Description |
|---|---|
mcp-box.sh |
๐ Wrapper that runs scripts 00โ04 in order |
install-base.sh |
๐ง Runs scripts 00โ03 (gateway infrastructure only) |
00-installer-kind.sh |
๐๏ธ Creates a Kind cluster with NodePort mapping (host 7001 โ container 30080), patches CoreDNS for external resolution |
01-mcp-lifecycle-operator.sh |
โ๏ธ Installs the MCP Lifecycle Operator and waits for readiness |
02-gateway-api-istio.sh |
๐ช Installs Istio as a Gateway API provider (no service mesh, just the gateway) |
03-mcp-gateway.sh |
๐ Installs MCP Gateway (broker, router, controller) with NodePort service |
04-mcp-launcher.sh |
๐ Installs the MCP Launcher web UI with sample catalog entries |
05-kubernetes-mcp-server.sh |
๐งฉ Deploys the Kubernetes MCP Server with HTTPRoute + MCPServerRegistration (kube_ prefix). Not run by mcp-box.sh |
Check that all pods are running:
kubectl get pods -ACheck registered MCP servers on the gateway:
kubectl get mcpserverregistrations.mcp.kuadrant.io -AThe gateway is exposed via NodePort on localhost:7001:
http://localhost:7001/mcp
Or via port-forward:
kubectl port-forward -n gateway-system svc/mcp-gateway-istio 8001:8080
# โ http://localhost:8001/mcpkubectl port-forward -n mcp-system svc/mcp-launcher 9090:8080Then open http://localhost:9090 in your browser.
Test the gateway with the MCP Inspector:
podman run --rm --network host ghcr.io/modelcontextprotocol/inspector:latestOpen http://localhost:6274 and connect to http://localhost:7001/mcp.
Delete the entire Kind cluster:
kind delete clusterApache License 2.0 โ see LICENSE.