# What a failing MCP tool call actually looks like through ToolCallingManager -- read_text_file against a path that does not exist

tool: read_text_file
arguments: {"path":"/home/claude/work/spring-ai-clone/mcp-client/fixtures/workspace/does-not-exist.txt"}

response: Error calling tool: [TextContent[annotations=null, text=ENOENT: no such file or directory, open '/home/claude/work/spring-ai-clone/mcp-client/fixtures/workspace/does-not-exist.txt', meta=null]]

note: ToolCallingManager does not throw here. The MCP tools/call result came back
with isError:true (HTTP-equivalent 200-but-failed, same shape documented for the
server side in the mcp-server article); DefaultToolCallingManager turns that into a
normal ToolResponseMessage whose responseData is the error text, not an exception.
