In the Model Context Protocol, the application a person uses, such as an IDE, a chat app or a terminal agent, is called the host. Inside it, each connection to a server is held by a client. The client asks the server what it offers, shows those tools to the model, sends the model's tool calls to the server, and hands the results back. The model never talks to the server directly.
That separation is what makes MCP portable. A team can switch clients, or use several at once, and keep the same servers. A developer in a terminal agent and a colleague in a desktop chat app can both reach the same system with the same tools, under their own sign-in.
Clients differ in what they support. Some connect only to local servers started as processes, others also to remote servers over HTTP. Some handle OAuth sign-in in a browser, others need a token. Some expose resources and prompts as well as tools. When a server does not work in a client, the cause is usually one of those three: transport, authentication, or which capabilities the client implements.