You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Infrastructure improvements and bugfixes for vMCP (#3439)
* Infrastructure improvements and bugfixes for vMCP
- Add OpenTelemetry tracing to capability aggregation
- Add singleflight deduplication for discovery requests
- Add health checker self-check prevention
- Add HTTP client timeout fixes
- Improve E2E test reliability
- Various build and infrastructure improvements
* fix: Update CallTool and GetPrompt signatures to match BackendClient interface
- Add conversion import for meta field handling
- Update CallTool to accept meta parameter and return *vmcp.ToolCallResult
- Update GetPrompt to return *vmcp.PromptGetResult
- Add convertContent helper function
* fix: Update ReadResource signature to match BackendClient interface
- Update ReadResource to return *vmcp.ResourceReadResult instead of []byte
- Extract and include meta field from backend response
- Include MIME type in result
* fix: Pass selfURL parameter to health.NewMonitor
- Construct selfURL from Host, Port, and EndpointPath
- Prevents health checker from checking itself
* Fix NewHealthChecker calls in checker_test.go to include selfURL parameter
* Fix NewMonitor calls in monitor_test.go to include selfURL parameter
All 10 calls to NewMonitor in monitor_test.go were missing the new selfURL parameter that was added to the function signature. This was causing compilation failures in CI.
* Fix Go import formatting issues (gci linter)
Fixed import ordering in:
- pkg/vmcp/client/client.go
- pkg/vmcp/health/checker_test.go
- pkg/vmcp/health/monitor_test.go
* Fix Chart.yaml version - restore to 0.0.103
The version was incorrectly downgraded to 0.0.102. Restore it to 0.0.103 to match main branch.
* Bump Chart.yaml version to 0.0.104
The chart-testing tool requires version bumps to be higher than the base branch version (0.0.103).
* Update README.md version badge to 0.0.104
Match the Chart.yaml version update to satisfy helm-docs pre-commit hook.
* Refactor vMCP tracing and remove health checker self-check
Move telemetry provider initialization earlier in vmcp serve command to
enable distributed tracing in the aggregator. The aggregator now accepts
an explicit tracer provider parameter instead of using the global otel
tracer, following dependency injection best practices.
Improve tracing error handling by using named return values and deferred
error recording in aggregator methods, ensuring errors are properly
captured in traces.
Remove health checker self-check functionality that prevented the server
from checking its own health endpoint. This simplifies the implementation
and removes unnecessary URL normalization logic.
Changes:
- Add tracerProvider parameter to aggregator.NewDefaultAggregator
- Use noop tracer when provider is nil
- Improve span error handling with deferred recording
- Remove selfURL parameter from health.NewHealthChecker
- Delete pkg/vmcp/health/checker_selfcheck_test.go
- Update all tests to match new function signatures
- Add debug logging for auth strategy application in client
* Add explanatory comment for MCP SDK Meta limitations
Restores comment explaining why Meta field preservation is important
for ReadResource, in anticipation of future SDK improvements.
This addresses PR feedback to maintain context about the SDK's
current limitations regarding Meta field handling.
* Update test helper comments to clarify pod readiness contract
- Clarify that checkPodsReady waits for at least one pod (not all pods)
- Add context that helpers are used for single replica deployments
- Update comments on WaitForPodsReady and WaitForVirtualMCPServerReady
Addresses code review feedback from PR review.
* Complete error capture pattern in MergeCapabilities defer
- Add named return value (retErr error) to MergeCapabilities
- Add error capture in defer statement with span.RecordError and span.SetStatus
- Ensures consistent error handling pattern across all aggregator methods
This completes the implementation of the error capture pattern suggested
in code review for all methods with tracing spans.
* Remove singleflight race condition fix
Moving the singleflight deduplication logic to a separate PR
as it addresses a different race condition from the one fixed in #3450.
The fix prevents duplicate capability aggregation when multiple
concurrent requests arrive simultaneously at startup.
* Add SPDX license headers to manager.go
0 commit comments