Async MCP tools need the contract in the description, not just in the job ticket

Confident-Truck-7186 · reddit · 2026-07-21

If your MCP tool is async, say so in the description — not just the response

The author smoke-tested their MCP server the way Claude Code would actually use it: spawn over stdio, initialize, list tools, then make a real tool call.

The call returned a job ticket:

That part worked. The problem was that the tool description did not say the operation was asynchronous or that the model should poll a status tool until completion. The author found that only 2 of 45 tool descriptions mentioned poll/job/async language.

Their takeaway is simple: the model reads descriptions before acting and responses after acting, so the async contract belongs in the description, not only in the payload. Otherwise a weaker model may just report success and stop at the job ID.

They also note two engineering lessons:

The author says this came from their own SEO API for agents, but the advice applies to any MCP server with long-running work.

Original post →

More from coding & agent

coding & agent channel →