The five parts, plainly
- Server: the endpoint that advertises what is available and executes calls.
- Client: the assistant or application that connects and decides what to call.
- Tool: a named action with a typed input schema and a handler behind it.
- Resource: readable context the client can pull without executing anything.
- Transport: the HTTP or streaming connection that carries requests and responses.
Why the separation matters
Vendors describe MCP support as a single feature. It is not. A server can answer a handshake while advertising zero tools. It can advertise ten tools where three have handlers. A handler can exist in source and never be deployed. A deployed handler can run and still not persist anything the business can verify later.
Reading the layers separately turns a vague claim into five specific questions with five specific answers.
Transport exposure is not verified capability
The most common overstatement in agent infrastructure is treating a live endpoint as proof of function. A successful connection means the transport works. It says nothing about whether the tool you care about exists, whether your role may call it, or whether the write it claims to perform actually landed in a record you can open afterwards.