Repository navigation
feat(vmcp): add configurable tool search and generic invocation - #8144
Open
calvinmclean wants to merge 11 commits into
Open
calvinmclean wants to merge 11 commits into
calvinmclean wants to merge 11 commits into
Conversation
calvinmclean
commented
Oct 5, 2026
| sigs.k8s.io/structured-merge-diff/v6 v6.4.1 // indirect | ||
| ) | ||
|
|
||
| replace github.com/obot-platform/mmmcp => github.com/calvinmclean/mmmcp v0.0.0-20261005220025-2e7920dd13d5 |
Member
Author
There was a problem hiding this comment.
This will be removed when obot-platform/mmmcp#19 is merged
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Generic invocation bypasses tool-specific filters and loses audit identity, while JSON editing can alter or misrepresent submitted arguments.
Review effort: Balanced
Findings: 1
Open (4)
What changed in this PR
Adds configurable tool search and generic invocation to Obot’s vMCPs, addressing #8065.
Changes:
- Carries
toolSearchthrough API schemas, runtime configuration, and the vMCP editor. - Adds freeform JSON argument editing to the MCP inspector.
- Adds tests, documentation, and search dependencies.
| File | Description |
|---|---|
| ui/user/src/lib/services/vmcps/utils.ts | Initializes and preserves tool-search settings. |
| ui/user/src/lib/services/user/types.ts | Adds the manifest setting. |
| ui/user/src/lib/components/vmcps/VMcpToolSearch.svelte.spec.ts | Tests creation, editing, and read-only behavior. |
| ui/user/src/lib/components/vmcps/CreateEditVMcp.svelte | Adds the tool-search toggle. |
| ui/user/src/lib/components/mcp/tester/JsonSchemaGenericObject.svelte.spec.ts | Tests freeform object arguments. |
| ui/user/src/lib/components/mcp/tester/JsonSchemaField.svelte | Adds a JSON object editor. |
| pkg/storage/openapi/generated/openapi_generated.go | Updates generated schemas. |
| pkg/mcpcatalog/validation_test.go | Tests manifest decoding. |
| pkg/mcp/vmcp.go | Passes the setting into runtime configuration. |
| pkg/mcp/vmcp_test.go | Tests configuration propagation. |
| pkg/mcp/types.go | Adds the runtime setting. |
| pkg/mcp/backend.go | Enables MMMCP tool search. |
| pkg/api/handlers/mcpgateway/handler_test.go | Tests embedded search and generic invocation. |
| go.sum | Updates dependency checksums. |
| go.mod | Selects the MMMCP fork and search dependencies. |
| docs/docs/functionality/virtual-mcps.md | Explains search mode. |
| docs/docs/configuration/mcp-server-gitops.md | Shows GitOps configuration. |
| apiclient/types/vmcp.go | Adds the API manifest field. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
calvinmclean
force-pushed
the
feat/8065-toolsearch
branch
from
October 6, 2026 18:22
91697c1 to
260e38a
Compare
calvinmclean
marked this pull request as ready for review
October 6, 2026 18:23
Return completed MMMCP tool error results for stale generic references so clients can search again. Inspect generic calls only when hooks or auditing need resolution, preserving large passthrough requests.
Record request and response audit entries when generic tool resolution returns a tool error or discovery failure. Return written response details to the audit path without a response recorder.
Drop checksums for the replaced upstream MMMCP module after resolving the rebase conflict.
calvinmclean
force-pushed
the
feat/8065-toolsearch
branch
from
October 6, 2026 22:27
260e38a to
cb1f1fd
Compare
| headers.Set("Authorization", "Bearer "+token) | ||
| } | ||
| ctx := component.ContextWithRequestHeaders(req.Context(), headers) | ||
| call, ok, err := h.composite.ResolveToolCall(ctx, cfg, params.Name, params.Arguments) |
| if authErr, ok := errors.AsType[*mmmcp.AuthorizationError](callErr); ok && authErr.StatusCode == http.StatusUnauthorized { | ||
| return http.StatusUnauthorized, writeMCPAuthRequired(req, false), true | ||
| } | ||
| response, ok := mcpJSONRPCErrorResponse(req.Request, callErr) |
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.


Summary
search_toolsandcall_toolin place of direct component tools when enabled.addresses #8065