A team is adding an AI coding assistant to its IDE. The assistant must read files in the open repository, inspect commit history, and create branches when the developer asks. How should this be designed with MCP?
Select an answer to reveal the explanation.
Short Explanation
Think of your IDE as a workshop foreman who sends one assistant to the file cabinet and another to the version-control desk. The trap is the one-client-for-everything idea, because MCP pairs each client with exactly one server.
Full Explanation
In MCP the host is the AI application that coordinates connections, and it creates one client per server. An IDE assistant therefore connects to a filesystem server and a git server, each through its own client. Repository files and history are context the application reads, which fits resources addressed by URI, while creating a branch is an action the model invokes, which fits a tool, subject to the host's consent policy. A single client connected to every server contradicts the one-to-one client-server relationship and would blur the isolation the host maintains between servers. Prompts are user-controlled templates that the user chooses to run; they are not the primitive the model calls autonomously, so exposing branch creation as a prompt misplaces it. Under revision 2026-07-28 servers never send JSON-RPC requests to clients; content flows back in results to requests the client made, and change notifications are opted into through subscriptions/listen, so file contents are not pushed as server-initiated requests. Exam caveat: a host may still choose to show resources to the user rather than inject them automatically. Operational check: list each server's capabilities through server/discover and confirm repository reads appear as resources and write operations appear as tools with appropriate annotations.