feat: adding tool annotation used by MCP

This commit is contained in:
Lance Galletti 2025-06-23 10:56:08 -04:00
parent 51b179e1c5
commit 7123e9723c
9 changed files with 168 additions and 0 deletions

View file

@ -95,10 +95,19 @@ class ToolParamDefinition(BaseModel):
default: Any | None = None
class ToolAnnotations(BaseModel):
title: str | None = None
read_only_hint: bool | None = Field(default=None, alias="readOnlyHint")
destructive_hint: bool | None = Field(default=None, alias="destructiveHint")
idempotent_hint: bool | None = Field(default=None, alias="idempotentHint")
open_world_hint: bool | None = Field(default=None, alias="openWorldHint")
class ToolDefinition(BaseModel):
tool_name: BuiltinTool | str
description: str | None = None
parameters: dict[str, ToolParamDefinition] | None = None
annotations: ToolAnnotations | None = None
@field_validator("tool_name", mode="before")
@classmethod