The Model Context Protocol quietly turned every internal script, database query, and admin action into an API.

The client for that API is not a developer reading your docs. It's a language model reading your tool descriptions at runtime and deciding — on its own — what to call and with what arguments.

When a human developer integrates your API, ambiguity gets absorbed by their judgment. They read the docs twice, test in staging, and email you when the 409 makes no sense. An agent does none of that. It reads the tool's name, description, and input schema, forms a belief about what the tool does, and acts on that belief immediately, in production, possibly hundreds of times an hour.

Every ambiguity in a human-facing API costs you a support thread. Every ambiguity in an agent-facing tool costs you whatever the agent decided it meant, multiplied by every session that reaches the same fork.

The fix isn't better prompting on the client side — client prompts are the one thing you don't control. The fix is a contract on the server side.