ワンクリックで
update-vmcp-yaml-example
// Updates vMCP YAML examples in documentation, verifies against toolhive source, and creates e2e tests
// Updates vMCP YAML examples in documentation, verifies against toolhive source, and creates e2e tests
Analyze an upstream project's new release, verify changes against source code, and update documentation. Covers discovery, deep-dive into PRs/issues, docs audit, source-verified implementation, and review feedback handling.
Perform comprehensive editorial reviews of documentation with a tech writer / copyeditor lens. Use when asked to review docs, documentation PRs, or documentation changes - especially net-new documentation or LLM-generated content. Reviews can be for single documents or multiple related documents. Focuses on information architecture, clarity, conciseness, structure, readability, and style. Identifies common LLM writing patterns that harm documentation quality and catches multi-document issues like content duplication or misplaced content.
Fast CRD schema validation for ToolHive documentation. Extracts all YAML blocks from K8s and vMCP docs, runs kubectl apply --dry-run=server to catch field name errors, type mismatches, and schema drift. No cluster resources are created. Use for: "dry-run the docs", "validate the YAML", "check for schema issues", "run a quick doc check", or after any CRD/API change to catch doc rot. Requires a Kubernetes cluster with ToolHive CRDs installed.
Generate weekly product updates by analyzing GitHub activity across ToolHive repositories and transforming technical changes into marketing-ready content. Use when you need to create product announcements, blog posts, or customer communications summarizing what shipped.
Test ToolHive documentation by executing the steps in tutorials and guides against a real environment, verifying that examples are correct and ToolHive has not regressed. Use when the user asks to test, validate, or verify documentation such as: "test the vault integration tutorial", "verify the K8s quickstart", "check the CLI install docs", "test toolhive vault integration in kubernetes", or any request to run through a doc's instructions to confirm they work. Supports both Kubernetes-based docs (tutorials, K8s guides) and CLI-based docs.
| name | update-vmcp-yaml-example |
| description | Updates vMCP YAML examples in documentation, verifies against toolhive source, and creates e2e tests |
This skill guides you through updating VirtualMCPServer YAML examples in the documentation, ensuring they match the canonical examples in the ToolHive repository and are verified through tests.
When updating vMCP documentation examples, you must:
deploying-vmcp-locally skillEnsure ToolHive has the latest changes from main:
cd ../toolhive
git checkout main
git pull
Find all files containing vMCP YAML examples:
In docs-website:
docs/toolhive/guides-vmcp/*.mdx - vMCP how-to guidesdocs/toolhive/tutorials/quickstart-vmcp.mdx - vMCP tutorialdocs/toolhive/concepts/vmcp.mdx - vMCP conceptsIn ToolHive (source of truth):
examples/operator/virtual-mcps/ - Canonical YAML examplesexamples/vmcp-config.yaml - CLI configuration exampleReference the following ToolHive example files:
| Documentation Topic | ToolHive Example |
|---|---|
| Basic vMCP setup | vmcp_simple_discovered.yaml |
| Conflict resolution | vmcp_conflict_resolution.yaml |
| Authentication | vmcp_inline_incoming_auth.yaml |
| Production config | vmcp_production_full.yaml |
| Simple composite tools | composite_tool_simple.yaml |
| Complex composite tools | composite_tool_complex.yaml |
| Composite with elicitation | composite_tool_with_elicitations.yaml |
Make the requested changes to the YAML examples in the documentation to match ToolHive.
Important guidelines:
my-group, my-vmcp)/CLAUDE.md for style guide)Choose the appropriate verification method based on the feature type:
Use this for features like tool aggregation, conflict resolution, composite tools, etc.
Create a Ginkgo test in ../toolhive/test/e2e/thv-operator/virtualmcp/ that verifies the documented configuration works as expected.
Test structure pattern:
var _ = Describe("VirtualMCPServer <Feature Name>", Ordered, func() {
var (
testNamespace = "default"
mcpGroupName = "test-<feature>-group"
vmcpServerName = "test-vmcp-<feature>"
timeout = 3 * time.Minute
pollingInterval = 1 * time.Second
)
BeforeAll(func() {
By("Creating MCPGroup")
CreateMCPGroupAndWait(ctx, k8sClient, mcpGroupName, testNamespace,
"Test MCP Group for <feature> E2E tests", timeout, pollingInterval)
By("Creating backend MCPServer")
// Create backend servers...
By("Creating VirtualMCPServer with <feature> configuration")
// Create VirtualMCPServer matching the documented configuration...
})
It("should <expected behavior>", func() {
// Verify the feature works as documented
})
AfterAll(func() {
// Cleanup resources
})
})
Use helper functions from helpers.go:
CreateMCPGroupAndWait() - Create and wait for MCPGroupWaitForVMCPReady() - Wait for VirtualMCPServer to be readyGetVMCPNodePort() - Get the NodePort for testingRun only the new test:
cd ../toolhive
KUBECONFIG="kconfig.yaml" ginkgo -v --focus="<Feature Name>" ./test/e2e/thv-operator/virtualmcp/
Use this for features like telemetry/OTEL exports, external integrations (Zipkin, Jaeger), or UI-dependent verification.
Use the deploying-vmcp-locally skill from the ToolHive repository:
cd ../toolhive
# Follow the deploying-vmcp-locally skill instructions
Manual verification steps:
Ensure the documentation builds without errors:
npm run build
Create separate commits for:
Before completing this skill, verify:
toolhive/examples/operator/virtual-mcps/npm run build)npm run prettier:fix && npm run eslint:fix)