In depth
Tool use is how Claude reaches outside the conversation. In the Anthropic Messages API, you declare a `tools` array with each tool's name, description, and input schema. Claude, during inference, can emit a `tool_use` content block: it says 'I want to call `get_weather` with `{ location: 'Paris' }`.' The host executes that call and sends a follow-up message with a `tool_result` block containing the output.
Tool use is foundational to agentic behavior. Without it, Claude can only talk; with it, Claude can read files, query APIs, run code, and interact with the world. The MCP ecosystem is essentially a way to distribute ready-made tools that Claude (and other LLMs) can use.
Claude's tool use has a few powerful extensions: **parallel tool calls** (Claude 4+ can emit multiple tool_use blocks per turn), **tool choice control** (force a specific tool or let Claude choose), and **streaming tool use** (the tool_use block streams as it's generated).
In MCP deployments, tool use connects directly to MCP tools. The host passes MCP tool definitions into Claude's `tools` parameter; when Claude emits tool_use, the host translates it into an MCP `tools/call` request.