# Mcp tool reliability

The Model Context Protocol (MCP) is a standard way to give a model tools that live in a separate
process or service. The agent connects to an MCP server, asks what tools it offers, and calls
them. What this changes for reliability is ownership: the tools your agent depends on are now
someone else's deployment, updated on someone else's schedule.

Four things go wrong because of that.

Errors come back in two shapes, and servers mix them up. A tool that ran and failed is supposed
to return a normal result marked as an error, with the reason in the content, so the model can
read it and try something else. A protocol problem, like an unknown tool or a malformed request,
comes back as a protocol error the model never sees. When a server reports a tool failure as a
protocol error, the agent has no way to recover from it.

Tool definitions change under you. Clients cache the list of tools, a server is supposed to
announce when its tools change, and a client that misses that announcement builds arguments for
a tool that no longer looks like that.

Slow servers become agents that never return. Every request needs a timeout, and the timeout has
to hold even while the server keeps sending progress updates.

Cancellation differs by transport. Over HTTP, closing the stream is the cancel. Over stdio, it's
an explicit message, and both sides have to cope with a response that arrives after the cancel
anyway.

Evaluating an MCP server means testing each of these on purpose: return a failed tool result,
change a schema mid-session, stall a response, cancel a call, and check what the agent does.

## Questions answered under this concept

- [How do I cancel an in-flight MCP tool call?](https://tessary.ai/answers/mcp-tool-reliability/how-do-i-cancel-an-in-flight-mcp-tool-call)
- [How do I evaluate an MCP server's reliability?](https://tessary.ai/answers/mcp-tool-reliability/how-do-i-evaluate-an-mcp-servers-reliability)
- [How do I set a timeout on an MCP tool call?](https://tessary.ai/answers/mcp-tool-reliability/how-do-i-set-a-timeout-on-an-mcp-tool-call)
- [Should an MCP tool failure be a protocol error or a failed result?](https://tessary.ai/answers/mcp-tool-reliability/mcp-tool-failure-protocol-error-or-failed-result)
- [What happens when an MCP server changes its tool schema?](https://tessary.ai/answers/mcp-tool-reliability/what-happens-when-an-mcp-server-changes-its-tool-schema)
- [What's the difference between MCP and a plain API call?](https://tessary.ai/answers/mcp-tool-reliability/whats-the-difference-between-mcp-and-a-plain-api-call)
- [What's the difference between MCP and A2A?](https://tessary.ai/answers/mcp-tool-reliability/whats-the-difference-between-mcp-and-a2a)
- [What's the difference between MCP and Claude Skills?](https://tessary.ai/answers/mcp-tool-reliability/whats-the-difference-between-mcp-and-claude-skills)
- [What's the difference between MCP and LangChain?](https://tessary.ai/answers/mcp-tool-reliability/whats-the-difference-between-mcp-and-langchain)
- [What's the difference between MCP and RAG?](https://tessary.ai/answers/mcp-tool-reliability/whats-the-difference-between-mcp-and-rag)

---

Source: https://tessary.ai/answers/mcp-tool-reliability
All concepts: https://tessary.ai/answers
From Tessary, agent reliability for AI agents in production: https://tessary.ai
