2 min read
What triggers it
An MCP tool name was not recognised. A typo in the tool name in a tools/call request.
Example response
{
"error": {
"type": "invalid_request_error",
"code": "mcp_tool_not_found",
"message": "An MCP tool name was not recognised.",
"param": "name"
}
}
How to fix it
List tools first and call one that exists.
This is deterministic; fix the cause before resending. See the error code catalogue for related codes.
In practice
In a well-built client, mcp_tool_not_found is handled by branching on error.code rather than on the human error.message, which may be reworded over time. The HTTP status (404) gives the broad invalid_request_error class; the code gives the specifics; and, on field errors, error.param pinpoints the input to fix.
This code is deterministic — retrying the identical request reproduces it — so keep it out of your retry path and instead map it to a clear, actionable message. See Map errors to user-facing messages and Read the error envelope for the pattern.
Frequently asked questions
Is mcp_tool_not_found safe to retry?
No. Retrying the identical request reproduces the identical error. Fix the cause first.
Will this code ever change?
No. Error codes are stable contract; only the human message may be reworded.
Do I branch on the code or the HTTP status?
Both — status for retry-or-not, code for the specific behaviour. See the error envelope.
Funding for UK limited companies
Credicorp lends to your company, not to you personally — short-term working capital with no personal guarantee. See what your business could access.