-
Notifications
You must be signed in to change notification settings - Fork 125
Add Virtual MCP Server proposal #2106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
a2a5279
to
9312f00
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2106 +/- ##
==========================================
- Coverage 48.71% 48.64% -0.07%
==========================================
Files 241 241
Lines 30592 30592
==========================================
- Hits 14902 14883 -19
- Misses 14567 14589 +22
+ Partials 1123 1120 -3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
@claude please review this |
Claude finished @JAORMX's task —— View job Code Review: Virtual MCP Server ProposalI've reviewed the Virtual MCP Server proposal. This is a well-thought-out design that appropriately leverages existing ToolHive constructs. Here's my detailed feedback: Strengths1. Excellent reuse of existing patterns ✓
2. Clear phased implementation ✓
3. Good alignment with MCP specification ✓
Issues & Recommendations1. Authentication design needs clarification
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a technical proposal for a Virtual MCP Server feature that consolidates multiple MCP servers from a ToolHive group into a single unified interface. The proposal aims to simplify client integration and centralize authentication complexity while maintaining backward compatibility.
- Adds comprehensive design documentation for the Virtual MCP Server (
thv virtual
command) - Defines group-based architecture leveraging existing ToolHive constructs
- Outlines phased implementation approach from basic aggregation to enterprise features
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
@JAORMX This part of Claudes review is what I was getting at in the vMCP GDoc. I'll explain more here just so it's visible to others. If the benefit of vMCP itself is that it can aggregate 10 backing MCP servers, that's great, but let's think of the security implications / risks of this. In this case, a single vMCP server will have access to different 10 MCP servers. In the event that vMCP is ever exploited, would it be able to make calls to the backing MCP servers directly? Or will they themselves be protected by authn/z? If so, then this isn't as much of a concern from me. |
I see. So... we should clarify the architecture and deployment recommendations then. backed MCP servers should still not be deployed as they are without appropriate protections. That is, they should still enforce authentication and perhaps even authorization. If the vMCP is ever exploited, the backed MCP servers will still authenticate and authorize the request. I'm more keen on a zero-trust policy in general. |
@JAORMX Yep, that would be my understanding (and hope) too! I had a feeling you thought the same way but I just wanted to triple check 😄 |
@ChrisJBurns picture me with a tinfoil hat on at any given moment 😄 |
Hmm, but the vMCP server would be an OAuth app so the user would connect with a token that says That would work if we can use token exchange all the way through, but not if we need to drive a consent and do the full flow (we would want to drive the consent chain to the consent on the vMCP server correct)? So in that case we'd have to send the back end server through a back channel? |
This proposal introduces a Virtual MCP Server that aggregates multiple MCP servers from a ToolHive group into a single unified interface. Key features: - Leverages existing ToolHive groups for backend management - Uses existing ToolsFilter and ToolOverride constructs - Supports per-backend authentication strategies - Enables composite tools for cross-service workflows - Maintains full MCP protocol compatibility The Virtual MCP Server will simplify client integration by providing a single connection point while handling the complexity of multiple backend authentication requirements and tool namespace management. Signed-off-by: Juan Antonio Osorio <[email protected]>
…erns Add MCP elicitation support to composite tools, enabling interactive workflows with human-in-the-loop confirmations. Include state persistence strategy for long-running workflows and demonstrate reusing single tools with different parameters through incident investigation example. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
f0a767e
to
13e4f9d
Compare
Summary
This PR introduces a proposal for the Virtual MCP Server, a new ToolHive feature that aggregates multiple MCP servers from a group into a single unified interface.
What does this PR do?
Adds a technical proposal document that outlines the design and implementation approach for the Virtual MCP Server (
thv virtual
command).Key Design Decisions
ToolsFilter
for including specific tools andToolOverride
for renaming/redescribing toolsBenefits
Testing
This is a proposal document - implementation and testing will follow in subsequent PRs.
Related Issues
This proposal addresses the need for consolidating multiple MCP servers as discussed in the Virtual MCP design document.