Tool Use & Environment

Model Context Protocol

Standardise how agents discover and call tools so that a tool written once is usable by any conformant agent.

Problem

Without a shared protocol, every tool has to be re-implemented as a vendor-specific function-calling adapter for each host. The same GitHub integration ends up rewritten three times with subtly different argument names and error shapes, and the implementations drift as each host evolves. Authentication is rewired per host, and there is no clean way for a new agent host to discover what tools already exist in the organisation.

Solution

Tools live behind a server speaking a common protocol. Hosts list available tools, call them with typed arguments, and receive typed results. The protocol covers discovery, invocation, errors, and (in some implementations) prompts and resources alongside tools.

When to use

  • Tool palettes need to be portable across multiple host applications.
  • Multiple clients (IDEs, agents, CLIs) consume the same tool set.
  • Tools are written in different languages and a transport-level protocol is needed.

Open the full interactive page

Diagram, neighbourhood map, code examples, related patterns and full provenance.

Related