Tool
Definition for a tool the client can call.
Tools allow servers to expose functionality that can be invoked by clients and LLMs. Each tool has a name, description, and schema defining its input (and optionally output) parameters.
Display name precedence order: title → annotations.title → name
Constructors
Properties
Optional additional tool information providing hints about tool behavior. All properties in ToolAnnotations are hints and not guaranteed to provide a faithful description of tool behavior.
A human-readable description of the tool and when to use it. Clients can use this to improve the LLM's understanding of available tools. It can be thought of like a "hint" to the model.
Optional execution-related properties for this tool, such as task-augmented execution support.
A JSON Schema object defining the expected parameters for the tool. Must be an object type schema. Defines what arguments the tool accepts. Defaults to the JSON Schema 2020-12 dialect when no explicit $schema is provided.
Optional metadata for this tool.
An optional JSON Schema object defining the structure of the tool's output returned in the structuredContent field of a CallToolResult. Must be an object type schema if provided. Defaults to the JSON Schema 2020-12 dialect when no explicit $schema is provided.
Optional human-readable display name for this tool. Intended for UI and end-user contexts, optimized to be easily understood even by those unfamiliar with domain-specific terminology. Note: For Tool specifically, annotations.title takes precedence over this field.