Update MCP Optimizer tutorial to use K8s/vMCP path#718
Update MCP Optimizer tutorial to use K8s/vMCP path#718aponcedeleonch wants to merge 1 commit intomainfrom
Conversation
Replace the deprecated Python-based standalone optimizer tutorial with a Kubernetes-first walkthrough using VirtualMCPServer and EmbeddingServer CRDs. Update cross-references in the vMCP optimizer guide accordingly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Updates the MCP Optimizer tutorial to follow the Kubernetes-first deployment path using vMCP (VirtualMCPServer + EmbeddingServer), aligning the docs with the recommended approach going forward.
Changes:
- Rewrites the MCP Optimizer tutorial to deploy on Kubernetes via MCPGroup, EmbeddingServer, and VirtualMCPServer (optimizer enabled).
- Adds production exposure guidance (Ingress/Gateway/LoadBalancer), cleanup steps, and a legacy pointer to the standalone/UI guide.
- Updates the vMCP optimizer guide to point readers to the new end-to-end tutorial.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| docs/toolhive/tutorials/mcp-optimizer.mdx | Full rewrite of the tutorial to use the K8s/vMCP optimizer workflow, with port-forwarding, validation, cleanup, and legacy note. |
| docs/toolhive/guides-vmcp/optimizer.mdx | Adjusts references to position the tutorial as the end-to-end walkthrough and keeps this doc focused on configuration details. |
danbarr
left a comment
There was a problem hiding this comment.
Nice rewrite - the K8s/vMCP path is a big improvement over the old standalone tutorial. A few minor items beyond the inline comments:
Missing local workload cleanup - Step 4 runs thv run http://localhost:4483/mcp --name optimizer-vmcp to register a local workload, but the Clean up section only covers kubectl delete commands. Add a step to remove the local workload (e.g., thv rm optimizer-vmcp) before the kubectl deletions.
"What you'll learn" last bullet - "How to verify the optimizer reduces the visible toolset to find_tool and call_tool" reads more as an expected outcome than a learning objective. Consider folding verification into the "connect your AI client" bullet, or rephrasing.
Legacy note placement - The :::note[Legacy: standalone MCP Optimizer] admonition between "Clean up" and "Next steps" breaks the flow slightly. It would fit more naturally as a bullet in "Related information" (where the UI guide is already linked).
"Next steps" lead-in - "Now that you've set up the MCP Optimizer, consider exploring these next steps:" can be trimmed - the heading already tells the reader what this section is.
| transport: streamable-http | ||
| proxyPort: 8080 | ||
| mcpPort: 8080 | ||
| groupRef: optimizer-demo |
There was a problem hiding this comment.
This will need to be updated to match the latest CRD changes:
| groupRef: optimizer-demo | |
| groupRef: | |
| name: optimizer-demo |
| transport: streamable-http | ||
| proxyPort: 8080 | ||
| mcpPort: 8080 | ||
| groupRef: optimizer-demo |
There was a problem hiding this comment.
| groupRef: optimizer-demo | |
| groupRef: | |
| name: optimizer-demo |
| type: anonymous | ||
| serviceType: ClusterIP | ||
| config: | ||
| groupRef: optimizer-demo |
There was a problem hiding this comment.
| groupRef: optimizer-demo | |
| groupRef: | |
| name: optimizer-demo |
| optimizer. Adding `embeddingServerRef` is the only change needed to enable the | ||
| optimizer - sensible defaults are applied automatically: | ||
|
|
||
| ```yaml {8-9} title="virtualmcpserver.yaml" |
There was a problem hiding this comment.
Redundant highlighting metastring since the comment tags are inline
| ```yaml {8-9} title="virtualmcpserver.yaml" | |
| ```yaml title="virtualmcpserver.yaml" |
| [ARM64 compatibility](../guides-vmcp/optimizer.mdx#arm64-compatibility) for the | ||
| workaround steps. |
There was a problem hiding this comment.
This anchor link doesn't work since Docusaurus doesn't generate anchors for admonition titles. The nearest heading is pretty close:
| [ARM64 compatibility](../guides-vmcp/optimizer.mdx#arm64-compatibility) for the | |
| workaround steps. | |
| [ARM64 compatibility](../guides-vmcp/optimizer.mdx#embeddingserver-resource) for | |
| the workaround steps. |
But...since we found that pre-loading the amd64 image like this doesn't work on arm64 kind nodes anyway, maybe best to just note that this is pending availability of an official arm64 image? (Is your last update in Slack still current, that it's addressed upstream now but not yet published?)
Description
Replace the deprecated standalone optimizer tutorial with a
Kubernetes-first walkthrough using VirtualMCPServer and EmbeddingServer
CRDs. The tutorial now walks readers through deploying the optimizer
on Kubernetes via vMCP, which is the recommended path going forward.
Key changes:
EmbeddingServer, VirtualMCPServer)
the new tutorial scope
with link to configuration docs
a legacy note
Type of change
Submitter checklist
Content and formatting
🤖 Generated with Claude Code