Tools changedspecification/2026-07-28/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 22 Oct 2026 20:37 UTC.
Upstream edited
Recorded here
Lines+13added
Lines−13removed
From line
72
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits3to this page, all time
The whole hunk
from line 72, old and new numbered
/
from line 72
7272### Listing Tools
7373
7474To discover available tools, clients send a `tools/list` request. This operation supports
75[pagination](/specification/2026-07-28/server/utilities/pagination) and [caching](/specification/2026-07-28/server/utilities/caching).
75[pagination](/specification/2026-07-28/server/utilities/pagination.md) and [caching](/specification/2026-07-28/server/utilities/caching.md).
7676
7777**Request:**
7878
from line 167
167167
168168### Input Required Tool Results
169169
170Servers **MAY** respond to `tools/call` with an [`InputRequiredResult`](/specification/2026-07-28/basic/patterns/mrtr#inputrequiredresult) to indicate that additional input is needed before the tool call can be completed. This follows the [multi round-trip requests](/specification/2026-07-28/basic/patterns/mrtr#multi-round-trip-requests) mechanism.
170Servers **MAY** respond to `tools/call` with an [`InputRequiredResult`](/specification/2026-07-28/basic/patterns/mrtr#inputrequiredresult) to indicate that additional input is needed before the tool call can be completed. This follows the [multi round-trip requests](/specification/2026-07-28/basic/patterns/mrtr.md#multi-round-trip-requests) mechanism.
171171
172172When retrying the request with input responses, clients include `inputResponses` and, if provided by the server, `requestState` in the request parameters:
173173
from line 282
282282* `description`: Human-readable description of functionality
283283* `icons`: Optional array of icons for display in user interfaces
284284* `inputSchema`: JSON Schema defining expected parameters
285 * Follows the [JSON Schema usage guidelines](/specification/2026-07-28/basic#json-schema-usage)
285 * Follows the [JSON Schema usage guidelines](/specification/2026-07-28/basic.md#json-schema-usage)
286286 * Defaults to 2020-12 if no `$schema` field is present
287287 * **MUST** be a valid JSON Schema object (not `null`)
288288 * For tools with no parameters, use one of these valid approaches:
from line 291
291291 * Properties **MAY** include an [`x-mcp-header`](#x-mcp-header) annotation to expose
292292 parameter values as HTTP headers
293293* `outputSchema`: Optional JSON Schema defining expected output structure
294 * Follows the [JSON Schema usage guidelines](/specification/2026-07-28/basic#json-schema-usage)
294 * Follows the [JSON Schema usage guidelines](/specification/2026-07-28/basic.md#json-schema-usage)
295295 * Defaults to 2020-12 if no `$schema` field is present
296296* `annotations`: Optional properties describing tool behavior
297297
from line 327
327327
328328The `x-mcp-header` extension property allows servers to designate specific tool
329329parameters to be mirrored into HTTP headers when using the
330[Streamable HTTP transport](/specification/2026-07-28/basic/transports/streamable-http#custom-headers-from-tool-parameters).
330[Streamable HTTP transport](/specification/2026-07-28/basic/transports/streamable-http.md#custom-headers-from-tool-parameters).
331331This enables network intermediaries (load balancers, proxies, WAFs) to route and process
332332requests based on parameter values without parsing the request body.
333333
from line 348
348348 safe range for integers represented using IEEE754 double-precision floating point numbers (−2<sup>53</sup>+1 to 2<sup>53</sup>−1)
349349* **MUST** only be applied to properties that are *statically reachable* from the schema
350350 root, as defined in
351 [Custom Headers from Tool Parameters](/specification/2026-07-28/basic/transports/streamable-http#custom-headers-from-tool-parameters),
351 [Custom Headers from Tool Parameters](/specification/2026-07-28/basic/transports/streamable-http.md#custom-headers-from-tool-parameters),
352352 which also defines how header values are extracted from call arguments
353353
354354Clients using the Streamable HTTP transport **MUST** reject tool definitions where any
from line 401
401401>
402402> All content types (text, image, audio, resource links, and embedded resources)
403403> support optional
404> [annotations](/specification/2026-07-28/server/resources#annotations) that
404> [annotations](/specification/2026-07-28/server/resources.md#annotations) that
405405> provide metadata about audience, priority, and modification times. This is the
406406> same annotation format used by resources and prompts.
407407
from line 440
440440
441441#### Resource Links
442442
443A tool **MAY** return links to [Resources](/specification/2026-07-28/server/resources), to provide additional context
443A tool **MAY** return links to [Resources](/specification/2026-07-28/server/resources.md), to provide additional context
444444or data. In this case, the tool will return a URI that can be subscribed to or fetched by the client:
445445
446446```json theme={null}
from line 453
453453}
454454```
455455
456Resource links support the same [Resource annotations](/specification/2026-07-28/server/resources#annotations) as regular resources to help clients understand how to use them.
456Resource links support the same [Resource annotations](/specification/2026-07-28/server/resources.md#annotations) as regular resources to help clients understand how to use them.
457457
458458> [!NOTE]
459459>
from line 462
462462
463463#### Embedded Resources
464464
465[Resources](/specification/2026-07-28/server/resources) **MAY** be embedded to provide additional context
466or data using a suitable [URI scheme](./resources#common-uri-schemes). Servers that use embedded resources **SHOULD** implement the `resources` capability:
465[Resources](/specification/2026-07-28/server/resources.md) **MAY** be embedded to provide additional context
466or data using a suitable [URI scheme](/specification/2026-07-28/server/resources.md#common-uri-schemes). Servers that use embedded resources **SHOULD** implement the `resources` capability:
467467
468468```json theme={null}
469469{
from line 481
481481}
482482```
483483
484Embedded resources support the same [Resource annotations](/specification/2026-07-28/server/resources#annotations) as regular resources to help clients understand how to use them.
484Embedded resources support the same [Resource annotations](/specification/2026-07-28/server/resources.md#annotations) as regular resources to help clients understand how to use them.
485485
486486#### Structured Content
487487
from line 728
7287281. **Protocol Errors** indicate issues with the request structure itself that models are less likely to be able to fix:
729729
730730 * Unknown tool
731 * Malformed requests (requests that fail to satisfy [CallToolRequest schema](/specification/2026-07-28/schema#calltoolrequest))
731 * Malformed requests (requests that fail to satisfy [CallToolRequest schema](/specification/2026-07-28/schema.md#calltoolrequest))
732732 * Server errors
733733
734734 They are returned as standard JSON-RPC errors:
No line in this hunk matches that.