ToolAnnotations class final
Additional properties describing a Tool to clients.
NOTE: all properties in ToolAnnotations are hints.
They are not guaranteed to provide a faithful description of
tool behavior (including descriptive properties like title).
Clients should never make tool use decisions based on ToolAnnotations
received from untrusted servers.
Revisions: 2025-03-26, 2025-06-18, 2025-11-25, 2026-07-28, ext-tasks/2026-07-28.
Constructors
Properties
- destructiveHint → bool?
-
If true, the tool may perform destructive updates to its environment.
If false, the tool performs only additive updates.
no setter
-
extra
→ Map<
String, Object?> -
Keys outside the schema (newer revisions, extensions, applications).
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- idempotentHint → bool?
-
If true, calling the tool repeatedly with the same arguments
will have no additional effect on its environment.
no setter
- openWorldHint → bool?
-
If true, this tool may interact with an "open world" of external
entities. If false, the tool's domain of interaction is closed.
For example, the world of a web search tool is open, whereas that
of a memory tool is not.
no setter
- readOnlyHint → bool?
-
If true, the tool does not modify its environment.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
schemaKeys
→ Set<
String> -
Property names the schema defines for this type.
no setteroverride
- title → String?
-
A human-readable title for the tool.
no setter
Methods
-
$optional<
T> (String key, T? read(Object? value, String path)) → T? -
Optional property
key, converted byread;nullwhen absent or null.inherited -
$required<
T> (String key, T read(Object? value, String path)) → T -
Required property
key, converted byread.inherited -
check(
) → List< String> -
Reads every property this type defines and returns what could not be
read (missing required properties, wrong types), nested types included.
Empty = the JSON matches the schema's shape for this type.
override
-
copyWith(
{bool? destructiveHint, bool? idempotentHint, bool? openWorldHint, bool? readOnlyHint, String? title}) → ToolAnnotations - A copy with the given properties replaced; everything else, unknown keys included, is kept.
-
has(
String key) → bool -
Whether
keyis present (anullvalue counts as present).inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, Object?> -
The JSON form of this value.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
Equal when the JSON is equal; key order does not matter.
inherited
-
operator [](
String key) → Object? -
The raw JSON value of
key.inherited