demo scripts#3375
Closed
therealnb wants to merge 17 commits intojerm/2026-01-13-optimizer-in-vmcpfrom
Closed
Conversation
#3253) * feat: Add optimizer package with semantic tool discovery and ingestion This PR introduces the optimizer package, a Go port of the mcp-optimizer Python service that provides semantic tool discovery and ingestion for MCP servers. - **Semantic tool search** using vector embeddings (384-dim) - **Token counting** for LLM cost estimation - **Full-text search** via SQLite FTS5 - **Multiple embedding backends**: Ollama, vLLM, or placeholder (testing) - **Production-ready database** with sqlite-vec for vector similarity search
* feat: Add optimizer integration endpoints and tool discovery - Add find_tool and call_tool endpoints to vmcp optimizer - Add semantic search and string matching for tool discovery - Update optimizer integration documentation - Add test scripts for optimizer functionality
* feat: Add token metrics and observability to optimizer integration
…failures The checkPodsReady function was checking all pods with matching labels, including old pods that had completed (Phase: Succeeded) from previous deployments. This caused the auth discovery e2e test to fail when old pods were still present during deployment updates. Fix: Skip pods that are not in Running phase and ensure at least one running pod exists after filtering.
The test was failing with 'connection reset by peer' errors when trying to connect to the health endpoint. This can happen if pods crash or restart between the BeforeAll setup and the actual test execution. Fix: Add explicit pod readiness verification right before the health check and also check pod readiness inside the Eventually loop to catch pods that crash during health check retries. This makes the test more robust by ensuring pods are stable before attempting HTTP connections.
The health check was using http.Get() without a timeout, which could cause hangs. Add an explicit HTTP client with 10s timeout and improve error messages to help diagnose connection reset issues.
* remove docs * fixes from review * simplify code and fixes from review * fixes from review * fix ci --------- Co-authored-by: taskbot <taskbot@users.noreply.github.com>
…nfig - Use DeepCopy() for automatic passthrough of config fields (Optimizer, Metadata, etc.) - Add resolveEmbeddingService() to resolve Kubernetes Service names to URLs - Ensures optimizer config is properly converted from CRD to runtime config - Resolves embeddingService references in Kubernetes deployments
- Add CLI fallback for embeddingService when not resolved by operator - Normalize localhost to 127.0.0.1 in embeddings to avoid IPv6 issues - Add HTTP timeout (30s) to prevent hanging connections - Remove WithContinuousListening() to use timeout-based approach
Add tracing spans to all aggregator methods to enable visibility of capability aggregation in Jaeger. This includes spans for: - AggregateCapabilities (parent span) - QueryAllCapabilities (parallel backend queries) - QueryCapabilities (per-backend queries) - ResolveConflicts (conflict resolution) - MergeCapabilities (final merge) All spans include relevant attributes like backend counts, tool/resource/prompt counts, and error recording. This fixes the issue where capability aggregation logs appeared but no spans were visible in Jaeger.
Signed-off-by: nigel brown <nigel@stacklok.com>
Signed-off-by: nigel brown <nigel@stacklok.com>
Contributor
There was a problem hiding this comment.
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 transformationAlternative:
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.
1f6f22b to
91a210d
Compare
Signed-off-by: nigel brown <nigel@stacklok.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
These are some demo scripts that bootstrap a kind k8s cluster, build and install the components.