Tool Approval Propagation and Agent-Oriented MCP Server Design for Large Toolsets #1203
Replies: 5 comments
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as spam.
This comment was marked as spam.
|
I think the architecture is viable, but I would avoid making the high-level orchestrator tool look atomic if it can trigger sensitive downstream tools. The clean pattern is to make the composite tool resumable:
That keeps the user in the loop at the real side-effect boundary instead of approving a vague high-level task and hoping the sub-agent chain stays inside the intended scope. For the tool-confusion part, I would combine this with progressive disclosure rather than hiding everything behind one broad "do task" tool. Let the client see a small set of task-level tools, but keep an operator-visible receipt that records which downstream tools became reachable, which approvals were requested, and which exact calls executed. The receipt is the important part for maintainability: it should show both the original orchestration intent and the specific downstream mutation that was approved. Disclosure: I work on Armorer Labs. |
|
I think there are really two authorization modes being mixed together here, and separating them makes the architecture much cleaner: Delegation is appropriate when the user has already granted bounded standing authority. Interactive approval is appropriate when the effective action cannot be authorized until runtime. Those are not interchangeable. For example, a user might delegate:
with bounded scope, cost, and expiry. A sub-agent can safely exercise that authority without interrupting the user. But if orchestration later resolves into:
and that mutation was not covered by the delegated authority, the correct behavior is not to extend the delegation chain. It is to suspend the run and request a new authorization decision for that resolved action. So I would model the boundary roughly as:
where the authorization mode is one of:
The important invariant is that authorization is evaluated against the resolved effective action, not merely the high-level orchestration tool. This also answers the protocol architecture question: putting an orchestrator behind an MCP server is reasonable, but the high-level tool should not be treated as one atomic authorization boundary if it can resolve into materially different downstream effects. For large toolsets, I would also avoid using orchestration as the only solution to tool overload. Progressive disclosure and discovery reduce schema pressure without introducing another autonomous decision boundary, while orchestration is useful when the task itself genuinely requires decomposition. So I would use: progressive disclosure for tool selection delegation for pre-authorized bounded authority pause/resume for new consequential authority Those solve three different problems and compose cleanly. |
Uh oh!
There was an error while loading. Please reload this page.
Pre-submission Checklist
Question Category
Your Question
Hi all,
I'm working on a solution to mitigate the degraded reliability performance that occurs when a large number of MCP-exposed tools are available to an LLM. When too many tools are exposed to a single agent, the LLM's ability to choose the right one deteriorates, resulting in less effective behavior.
I'm exploring whether an AI orchestration framework behind an MCP server is a valid way to handle this—both from a protocol compatibility standpoint and in terms of long-term maintainability.
🧠 The Problem: LLM Confusion with Large Tool Libraries
In setups where an MCP client interacts with a single agent that has access to many MCP-backed tools, LLM performance drops. With too many options, the model becomes less consistent and often makes poor tool selection choices.
The goal is to keep the tool context lean and focused, while still supporting a broad range of capabilities.
⚙️ The Architecture: Orchestrator + Sub-Agent Model
🔁 The Challenge: Approval Propagation
Here's where things get tricky: the client only sees a single high-level tool call (to the orchestrator). That orchestrator may call other MCP-backed tools through sub-agents—but if one of those calls requires user approval, there's no clear mechanism in MCP to propagate that approval request back to the original client.
Ideally, I'd like to:
This keeps the agent chain in control, while allowing the user to stay in the loop on sensitive or consequential decisions.
❓ The Questions:
Is this a valid architectural pattern?
This seems like a clean way to balance tool breadth with clarity, but MCP doesn't appear to support approval forwarding natively. Is this just an unsupported use case—or a misapplication of the protocol?
If viable, what's the best way to implement this?
Are there other approaches to reduce tool confusion without fragmenting execution this much?
I'd love to hear from anyone who's explored similar agent-based orchestration models with MCP—or who's run into and solved LLM confusion issues in large tool contexts.
Thanks for any insight you can offer!
All reactions