You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor tool annotations to add effectHints property
- Replace readOnly property with more descriptive effectHints object
- Rename openWorld to openWorldHint to clarify it's a hint
- Add additional tool effect properties (destructive, idempotent)
- Clarify these properties are hints only in documentation
- Remove unused DisplayAnnotations interface
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
Copy file name to clipboardExpand all lines: schema/draft/schema.json
+36-53Lines changed: 36 additions & 53 deletions
Original file line number
Diff line number
Diff line change
@@ -464,35 +464,6 @@
464
464
"description": "An opaque token used to represent a cursor for pagination.",
465
465
"type": "string"
466
466
},
467
-
"DisplayAnnotations": {
468
-
"description": "Annotations that provide display-facing information to the client.",
469
-
"properties": {
470
-
"icon": {
471
-
"properties": {
472
-
"contentType": {
473
-
"type": "string"
474
-
},
475
-
"data": {
476
-
"type": "string"
477
-
}
478
-
},
479
-
"required": [
480
-
"contentType",
481
-
"data"
482
-
],
483
-
"type": "object"
484
-
},
485
-
"icon_url": {
486
-
"description": "A URL from which a client can fetch an icon to represent this object.",
487
-
"type": "string"
488
-
},
489
-
"title": {
490
-
"description": "A human-readable title for the object or data.",
491
-
"type": "string"
492
-
}
493
-
},
494
-
"type": "object"
495
-
},
496
467
"EmbeddedResource": {
497
468
"description": "The contents of a resource, embedded into a prompt or tool call result.\n\nIt is up to the client how best to render embedded resources for the benefit\nof the LLM and/or the user.",
"description": "A human-readable description of the tool.\n\nThis can be used by clients to improve the LLM's understanding of available tools. It can be thought of like a \"hint\" to the model.",
@@ -2014,37 +1985,49 @@
2014
1985
"type": "object"
2015
1986
},
2016
1987
"ToolAnnotations": {
2017
-
"description": "Annotations that provide display-facing and operational information for a Tool.",
1988
+
"description": "Additional properties describing a Tool to clients.",
2018
1989
"properties": {
2019
-
"icon": {
2020
-
"properties": {
2021
-
"contentType": {
2022
-
"type": "string"
1990
+
"effectHints": {
1991
+
"anyOf": [
1992
+
{
1993
+
"properties": {
1994
+
"readOnly": {
1995
+
"const": true,
1996
+
"type": "boolean"
1997
+
}
1998
+
},
1999
+
"required": [
2000
+
"readOnly"
2001
+
],
2002
+
"type": "object"
2023
2003
},
2024
-
"data": {
2025
-
"type": "string"
2004
+
{
2005
+
"properties": {
2006
+
"destructive": {
2007
+
"type": "boolean"
2008
+
},
2009
+
"idempotent": {
2010
+
"type": "boolean"
2011
+
},
2012
+
"readOnly": {
2013
+
"const": false,
2014
+
"type": "boolean"
2015
+
}
2016
+
},
2017
+
"required": [
2018
+
"readOnly"
2019
+
],
2020
+
"type": "object"
2026
2021
}
2027
-
},
2028
-
"required": [
2029
-
"contentType",
2030
-
"data"
2031
2022
],
2032
-
"type": "object"
2033
-
},
2034
-
"icon_url": {
2035
-
"description": "A URL from which a client can fetch an icon to represent this object.",
2036
-
"type": "string"
2037
-
},
2038
-
"openWorld": {
2039
-
"description": "If true, this tool may interact with an open set of \"external\"\nentities, e.g. by making web queries.\n\nIf not set, this is assumed to be true.",
2040
-
"type": "boolean"
2023
+
"description": "Describes the effects a tool may have on its environment.\n\nNOTE: these properties are **hints**. They do not guarantee tool behavior.\n\nIf not set, this property is assumed to have the value:\n { readOnly: false, destructive: true, idempotent: false }"
2041
2024
},
2042
-
"readOnly": {
2043
-
"description": "If true, this tool does not perform writes or updates,\nor otherwise change server-side state in ways that would\nbe visible in subsequent tool calls.\n\nIf not set, this is assumed to be false.",
2025
+
"openWorldHint": {
2026
+
"description": "If true, this tool may interact with an \"open world\" of external\nentities. If false, the tool's domain of interaction is closed.\nFor example, the world of a web search tool is open, whereas that\nof a memory tool is not.\n\nNOTE: this property is a **hint**. It does not guarantee tool behavior.\n\nIf not set, this is assumed to be true.",
2044
2027
"type": "boolean"
2045
2028
},
2046
2029
"title": {
2047
-
"description": "A human-readable title for the object or data.",
2030
+
"description": "A human-readable title for the tool.",
0 commit comments