RFC: First-class vMCP support in the local CLI experience#59
RFC: First-class vMCP support in the local CLI experience#59
Conversation
Add RFC proposing integration of the Virtual MCP Server (vMCP) into the main thv CLI as a `thv vmcp` subcommand, bringing local optimizer support with managed TEI container lifecycle, and formalizing the library embedding pattern used by brood-box. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jerm-dro
left a comment
There was a problem hiding this comment.
LGTM! The fact this already works for broodbox indicates this is very feasible.
|
|
||
| ## Non-Goals | ||
|
|
||
| - Removing the standalone `vmcp` binary (it remains the deployment target for Kubernetes via the operator) |
There was a problem hiding this comment.
Why not make this a goal?
There was a problem hiding this comment.
Because it's a lot lighter weight to ship a container with just that binary.
| - **Regression tests**: Verify that the standalone `vmcp serve` command still works identically after the refactor. | ||
| - **Security tests**: Verify that quick mode binds to `127.0.0.1` only, that strict YAML parsing rejects unknown fields, and that HMAC session binding is enforced when configured. | ||
|
|
||
| ## Documentation |
There was a problem hiding this comment.
The docs website will need to be updated. We can also then remove the legacy mcp-optimizer.
|
|
||
| - Add a `thv vmcp` subcommand with `serve`, `validate`, and `init` sub-commands that integrate vMCP into the main CLI | ||
| - Support a zero-config quickstart: `thv vmcp serve --group <name>` should work without a config file for simple aggregation | ||
| - Bring the optimizer to the local experience with managed embedding service lifecycle (`--optimizer` flag auto-manages a TEI container) |
There was a problem hiding this comment.
You could more simply state the goal is to deprecate and later remove the legacy optimizer.
| - **Examples**: `examples/vmcp-local-quickstart/` with a minimal setup, `examples/vmcp-advanced/` with auth, composite tools, and telemetry | ||
| - **Existing docs updates**: Update `docs/arch/10-virtual-mcp-architecture.md` to reference the new CLI integration and library embedding path | ||
|
|
||
| ## Open Questions |
There was a problem hiding this comment.
Are there sharp edges given vMCP has typically been run in k8s? or can you easily replace / disable all the K8s dependencies?
There was a problem hiding this comment.
It's unclear so far. I haven't personally stumbled upon any issues, but we need to test and get more data.
Summary
thvCLI as athv vmcpsubcommand (serve, validate, init)--optimizer), managed TEI container (--optimizer-embedding), and full config controlvmcpbinary for K8s deployments and backwards compatibilityKey Design Decisions
thv vmcp serve --group defaultworks without a config filepkg/vmcp/cli/: Boththv vmcpand standalonevmcpdelegate to the same package--optimizer-embeddingauto-manages a TEI container with named volume for model caching, health polling, and graceful fallback to FTS5-onlyRelated RFCs
🤖 Generated with Claude Code