---
title: "Tool call"
summary: "The model's output naming a tool and its arguments: structured text that the harness has to read and execute."
kind: concept
category: "MCP & Tooling"
published: 2026-11-09
updated: 2026-11-09
language: en
tags: ["tools", "agent loop"]
canonical: https://joaodavidsilva.com/knowledge/tool-call/
---

# Tool call

The [model](/knowledge/model/)'s output naming a [tool](/knowledge/tool/) and its arguments, just structured text. It doesn't do anything on its own; the [harness](/knowledge/harness/) has to read it and execute. Produced by the model in one model provider request.

The lifecycle of a tool call:

| Step | Who     | What happens                                                                                           |
| ---- | ------- | ------------------------------------------------------------------------------------------------------ |
| 1    | Model   | Learns which tools exist from descriptions in the system prompt |
| 2    | Model   | Emits a call: tool name plus arguments (usually JSON), then stops                                      |
| 3    | Harness | Parses the call and checks it against the permission mode     |
| 4    | Harness | Executes it if allowed                                                                                 |
| 5    | Harness | Sends the outcome back as a tool result in the next request       |

One [turn](/knowledge/turn/) of [agent](/knowledge/agent/) work is usually many of these round trips chained together.

Because the call is generated by next-token prediction like everything else, it can be wrong the way any model output can be wrong: a path that doesn't exist, a flag the command doesn't have, arguments that are plausible rather than correct. The harness executes what was written, not what was meant: a mistyped path doesn't error gracefully, it edits the wrong file.

*Usage:*

"It said it ran the tests but the file timestamps haven't changed."

"Look at the transcript: did it actually emit a tool call, or just describe running them? The model produces the call, but if the harness didn't execute it, nothing happened."

## Related

- [Model](https://joaodavidsilva.com/knowledge/model.md)
- [Tool](https://joaodavidsilva.com/knowledge/tool.md)
- [Harness](https://joaodavidsilva.com/knowledge/harness.md)
- [Turn](https://joaodavidsilva.com/knowledge/turn.md)
- [Agent](https://joaodavidsilva.com/knowledge/agent.md)
