| Field | Type | Required | Description |
|---|---|---|---|
serverId |
String | ✔️ | Tool server this tool belongs to. |
name |
String | ✔️ | Name to invoke the tool by. |
displayName |
Optional<String> | ➖ | Human-readable name of the tool. |
description |
Optional<String> | ➖ | What the tool does, as surfaced to a model. |
inputSchema |
Map<String, Object> | ➖ | JSON Schema for the tool's input parameters. |
annotations |
Optional<ToolAnnotations> | ➖ | Behavioural hints for the tool, exactly as declared by the tool server. No defaults are filled in — see the per-field notes for what an absent value means. Per the MCP specification, clients MUST treat these hints as untrusted unless the tool server is itself trusted. They are advisory metadata, not an authorization signal, and must not be the sole basis of a security decision. |