Skip to content

docs(rfd): add Agent-Configured MCP Servers draft - #2446

Open
ruchirkemnaik wants to merge 1 commit into
agentclientprotocol:mainfrom
ruchirkemnaik:rfd/agent-configured-mcp-servers
Open

ruchirkemnaik wants to merge 1 commit into
agentclientprotocol:mainfrom
ruchirkemnaik:rfd/agent-configured-mcp-servers

Conversation

@ruchirkemnaik

Copy link
Copy Markdown

Summary

This RFD proposes letting Clients see, and turn off for a session, the MCP servers an Agent loads from its own configuration (user and project settings, plugins). Today ACP only knows about the mcpServers a Client sends on session/new, so the Client never sees the rest.

The draft covers the problem and a direction, in two parts:

  • Read path: list the Agent's own MCP servers with their identity, transport, and scope, ideally before session/new.
  • Control path: let a Client turn some or all of them off for one session, without changing the Agent's stored configuration.

The wire format and method name are deliberately left open for discussion.

Why now

Related

Feedback wanted

I'd especially like to hear whether the problem statement matches what Client and Agent implementers see in practice. I'm happy to drive the design and schema work, and would welcome a champion to work with.

Changes

  • Add docs/rfds/agent-configured-mcp-servers.mdx
  • List it under the Draft RFDs in docs/docs.json

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY.

Propose a way for Clients to see and turn off the MCP servers an Agent
loads from its own configuration, in addition to the `mcpServers` a
Client sends on `session/new`.

- Add docs/rfds/agent-configured-mcp-servers.mdx
- List it under the Draft RFDs in docs/docs.json
@ruchirkemnaik
ruchirkemnaik requested a review from a team as a code owner October 20, 2026 13:46
@mgoldsborough

Copy link
Copy Markdown

The read path and the per-session off switch are what a host needs from an agent, and doing it per session without touching the agent's stored config is right.

Built-in tools are the other half, and they matter more to us than config-loaded servers. We run agents as remote workers for many tenants. Every tool call has to go through the MCP servers we hand over at session/new, because that's where permissions, audit and the tenant boundary are enforced. An agent that also has its own shell or file tools can step around all three, and the host can't tell from ACP whether it will.

Agents already handle this, each in its own way. Goose takes an explicit extension set in _meta, claude-agent-acp has disableBuiltInTools, and codex-acp is discussing a strict mode in #548. So the behavior exists; what's missing is a way to ask for it and know it took. Could the control path cover built-in tools too, behind a capability the agent advertises at initialize? Then a host can refuse an agent that can't run with only the client's tools, instead of finding out from a tool call. I'm aware of the "90% of what Codex does is bash" point. An agent like that doesn't advertise the capability, and the host decides what to do about it.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants