Skip to content

Conversation

@therealnb
Copy link

Summary

This PR integrates the optimizer into the vMCP server, enabling semantic tool discovery at runtime.

This is part 2 of a 3-part PR split from #3440:

  • PR 1: Non-functional packages, deps, config schema
  • PR 2 (this): Integration/wiring into server startup
  • PR 3: Documentation and examples

Depends on: #3516 (PR 1)

Changes

Server Integration

  • Update server.go to use CreateOptimizerToolsFromProvider
  • Add capability_adapter.go optimizer support
  • Add pkg/vmcp/server/optimizer_test.go

CLI Integration

  • Wire optimizer initialization in cmd/vmcp/app/commands.go

Operator Integration

  • Add operator controller support for optimizer config
  • Update vmcpconfig/converter.go for optimizer settings

Build System

  • Update Taskfile.yml with optimizer build flags

Cleanup

  • Delete dummy_optimizer.go (replaced by EmbeddingOptimizer)
  • Delete dummy_optimizer_test.go

Test Updates

  • Update health checker and monitor tests
  • Update discovery middleware tests
  • Update E2E tests for optimizer integration

Test Plan

  • Unit tests pass
  • Integration tests pass
  • E2E tests pass with optimizer enabled
  • Manual testing of optimizer mode

This PR integrates the optimizer into the vMCP server, enabling
semantic tool discovery at runtime.

Changes include:
- Update server.go to use CreateOptimizerToolsFromProvider
- Wire optimizer initialization in CLI commands.go
- Add operator controller support for optimizer config
- Update vmcpconfig converter for optimizer settings
- Update capability_adapter for optimizer integration
- Add server optimizer_test.go
- Build system updates in Taskfile.yml
- Delete dummy_optimizer.go (replaced by EmbeddingOptimizer)
- Update health checker and monitor for optimizer support
- Update test files for integration changes

This is part 2 of a 3-part PR split. Depends on PR1 (optimizer packages).
Part 3 will add documentation and examples.
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Large PR Detected

This PR exceeds 1000 lines of changes and requires justification before it can be reviewed.

How to unblock this PR:

Add a section to your PR description with the following format:

## Large PR Justification

[Explain why this PR must be large, such as:]
- Generated code that cannot be split
- Large refactoring that must be atomic
- Multiple related changes that would break if separated
- Migration or data transformation

Alternative:

Consider splitting this PR into smaller, focused changes (< 1000 lines each) for easier review and reduced risk.

See our Contributing Guidelines for more details.


This review will be automatically dismissed once you add the justification section.

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

Labels

size/XL Extra large PR: 1000+ lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant