Tools changedspecification/2025-06-18/server/tools
Nearest release: v2.1.305, published under an hour before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 20 Oct 2026 20:02 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 20 Oct 2026 20:07 UTC.
Upstream edited
Recorded here
Lines+30added
Lines−32removed
From line
1
where the diff opens
First seen
26 Aug 2026
this site's first read of the page
Recorded edits3to this page, all time
The whole hunk
from line 1, old and new numbered
/
from line 1
11# Tools
22
3<div id="enable-section-numbers" />
4
53The Model Context Protocol (MCP) allows servers to expose tools that can be invoked by
64language models. Tools enable models to interact with external systems, such as querying
75databases, calling APIs, or performing computations. Each tool is uniquely identified by
from line 15
1715suits their needs—the protocol itself does not mandate any specific user
1816interaction model.
1917
20<Warning>
21 For trust & safety and security, there **SHOULD** always
22 be a human in the loop with the ability to deny tool invocations.
18> [!WARNING]
19>
20> For trust & safety and security, there **SHOULD** always
21> be a human in the loop with the ability to deny tool invocations.
22>
23> Applications **SHOULD**:
24>
25> * Provide UI that makes clear which tools are being exposed to the AI model
26> * Insert clear visual indicators when tools are invoked
27> * Present confirmation prompts to the user for operations, to ensure a human is in the
28> loop
2329
24 Applications **SHOULD**:
25
26 * Provide UI that makes clear which tools are being exposed to the AI model
27 * Insert clear visual indicators when tools are invoked
28 * Present confirmation prompts to the user for operations, to ensure a human is in the
29 loop
30</Warning>
31
3230## Capabilities
3331
3432Servers that support tools **MUST** declare the `tools` capability:
from line 182
184182* `outputSchema`: Optional JSON Schema defining expected output structure
185183* `annotations`: optional properties describing tool behavior
186184
187<Warning>
188 For trust & safety and security, clients **MUST** consider
189 tool annotations to be untrusted unless they come from trusted servers.
190</Warning>
185> [!WARNING]
186>
187> For trust & safety and security, clients **MUST** consider
188> tool annotations to be untrusted unless they come from trusted servers.
191189
192190### Tool Result
193191
from line 193
195193
196194**Unstructured** content is returned in the `content` field of a result, and can contain multiple content items of different types:
197195
198<Note>
199 All content types (text, image, audio, resource links, and embedded resources)
200 support optional
201 [annotations](/specification/2025-06-18/server/resources#annotations) that
202 provide metadata about audience, priority, and modification times. This is the
203 same annotation format used by resources and prompts.
204</Note>
196> [!NOTE]
197>
198> All content types (text, image, audio, resource links, and embedded resources)
199> support optional
200> [annotations](/specification/2025-06-18/server/resources#annotations) that
201> provide metadata about audience, priority, and modification times. This is the
202> same annotation format used by resources and prompts.
205203
206204#### Text Content
207205
from line 257
259257
260258Resource links support the same [Resource annotations](/specification/2025-06-18/server/resources#annotations) as regular resources to help clients understand how to use them.
261259
262<Info>
263 Resource links returned by tools are not guaranteed to appear in the results
264 of a `resources/list` request.
265</Info>
260> [!NOTE]
261>
262> Resource links returned by tools are not guaranteed to appear in the results
263> of a `resources/list` request.
266264
267265#### Embedded Resources
268266
from line 291
293291
294292For backwards compatibility, a tool that returns structured content SHOULD also return the serialized JSON in a TextContent block.
295293
296<Note>
297 `structuredContent` is server-produced result data and is unrelated to LLM
298 "structured outputs" (schema-constrained model generation).
299</Note>
294> [!NOTE]
295>
296> `structuredContent` is server-produced result data and is unrelated to LLM
297> "structured outputs" (schema-constrained model generation).
300298
301299#### Output Schema
302300
No line in this hunk matches that.