Skip to content

Update MCP Optimizer tutorial to use K8s/vMCP path#718

Open
aponcedeleonch wants to merge 1 commit intomainfrom
update-optimizer-tutorial-vmcp
Open

Update MCP Optimizer tutorial to use K8s/vMCP path#718
aponcedeleonch wants to merge 1 commit intomainfrom
update-optimizer-tutorial-vmcp

Conversation

@aponcedeleonch
Copy link
Copy Markdown
Member

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:

  • Tutorial rewritten end-to-end for the K8s/vMCP path (MCPGroup,
    EmbeddingServer, VirtualMCPServer)
  • Includes the "Moving to vMCP" note from main, adapted to reflect
    the new tutorial scope
  • Updated cross-references in the vMCP optimizer guide
  • Added clean up section
  • Added production exposure guidance (Ingress/Gateway/LoadBalancer)
    with link to configuration docs
  • Old standalone/CLI content preserved via link to the UI guide as
    a legacy note

Type of change

  • Documentation update

Submitter checklist

Content and formatting

  • I have reviewed the content for technical accuracy
  • I have reviewed the content for spelling, grammar, and style

🤖 Generated with Claude Code

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>
Copilot AI review requested due to automatic review settings April 15, 2026 15:02
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs-website Ready Ready Preview, Comment Apr 15, 2026 3:03pm

Request Review

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docs/toolhive/tutorials/mcp-optimizer.mdx
@aponcedeleonch aponcedeleonch requested a review from danbarr April 15, 2026 15:08
Copy link
Copy Markdown
Collaborator

@danbarr danbarr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need to be updated to match the latest CRD changes:

Suggested change
groupRef: optimizer-demo
groupRef:
name: optimizer-demo

transport: streamable-http
proxyPort: 8080
mcpPort: 8080
groupRef: optimizer-demo
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
groupRef: optimizer-demo
groupRef:
name: optimizer-demo

type: anonymous
serviceType: ClusterIP
config:
groupRef: optimizer-demo
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant highlighting metastring since the comment tags are inline

Suggested change
```yaml {8-9} title="virtualmcpserver.yaml"
```yaml title="virtualmcpserver.yaml"

Comment on lines +99 to +100
[ARM64 compatibility](../guides-vmcp/optimizer.mdx#arm64-compatibility) for the
workaround steps.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This anchor link doesn't work since Docusaurus doesn't generate anchors for admonition titles. The nearest heading is pretty close:

Suggested change
[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?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants