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.
A JSON Schema object defining the expected parameters for the tool. Must be an object type schema. Defines what arguments the tool accepts.
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.
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.