The team sheet — how discovery works.
Two questions: where is the server, and what can it do? You answer the first; the server answers the second.
“Discovers” makes it sound like the client scans the network, hunting for a server. It never does. The client never searches. Discovery in MCP is really two separate questions — and each has a different answerer.
That second step — asking a connected server what it offers — is the “discovery” MCP means. It is about capabilities, not location. A server on another machine is reached exactly the same way, except you hand the client a URL instead of a command.
Pick a local or a remote server, then step through it: you give the location, the client connects, and the roll call runs the same either way.
You give the where. The server gives the what.
A client finds a server because you told it where — a command for a local one, a URL for a remote one. It never scans or guesses. Then, over whichever connection, it asks the server what tools it has, and the server answers. Location is yours to supply; capability is the server's to report.
That is why a server on another machine is no harder to use: swap the launch command for a URL, and the discovery — initialise, then tools/list — is byte-for-byte the same. One protocol, wherever the server lives.