Tools changedspecification/2025-11-25/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 edits2to 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 203
205203* `execution`: Optional object describing execution-related properties
206204 * `taskSupport`: Indicates whether this tool supports [task-augmented execution](/specification/2025-11-25/basic/utilities/tasks#tool-level-negotiation). Values: `"forbidden"` (default), `"optional"`, or `"required"`
207205
208<Warning>
209 For trust & safety and security, clients **MUST** consider tool annotations to
210 be untrusted unless they come from trusted servers.
211</Warning>
206> [!WARNING]
207>
208> For trust & safety and security, clients **MUST** consider tool annotations to
209> be untrusted unless they come from trusted servers.
212210
213211#### Tool Names
214212
from line 227
229227
230228**Unstructured** content is returned in the `content` field of a result, and can contain multiple content items of different types:
231229
232<Note>
233 All content types (text, image, audio, resource links, and embedded resources)
234 support optional
235 [annotations](/specification/2025-11-25/server/resources#annotations) that
236 provide metadata about audience, priority, and modification times. This is the
237 same annotation format used by resources and prompts.
238</Note>
230> [!NOTE]
231>
232> All content types (text, image, audio, resource links, and embedded resources)
233> support optional
234> [annotations](/specification/2025-11-25/server/resources#annotations) that
235> provide metadata about audience, priority, and modification times. This is the
236> same annotation format used by resources and prompts.
239237
240238#### Text Content
241239
from line 285
287285
288286Resource links support the same [Resource annotations](/specification/2025-11-25/server/resources#annotations) as regular resources to help clients understand how to use them.
289287
290<Info>
291 Resource links returned by tools are not guaranteed to appear in the results
292 of a `resources/list` request.
293</Info>
288> [!NOTE]
289>
290> Resource links returned by tools are not guaranteed to appear in the results
291> of a `resources/list` request.
294292
295293#### Embedded Resources
296294
from line 319
321319
322320For backwards compatibility, a tool that returns structured content SHOULD also return the serialized JSON in a TextContent block.
323321
324<Note>
325 `structuredContent` is server-produced result data and is unrelated to LLM
326 "structured outputs" (schema-constrained model generation).
327</Note>
322> [!NOTE]
323>
324> `structuredContent` is server-produced result data and is unrelated to LLM
325> "structured outputs" (schema-constrained model generation).
328326
329327#### Output Schema
330328
No line in this hunk matches that.