diff --git a/src/mcp_server_appwrite/docs_search.py b/src/mcp_server_appwrite/docs_search.py index 465d575..a721263 100644 --- a/src/mcp_server_appwrite/docs_search.py +++ b/src/mcp_server_appwrite/docs_search.py @@ -144,6 +144,11 @@ def _load_index(self) -> bool: def get_tool(self) -> types.Tool: return types.Tool( name=DOCS_TOOL_NAME, + annotations=types.ToolAnnotations( + read_only_hint=True, + open_world_hint=True, + destructive_hint=False, + ), description=( "Search the Appwrite documentation with a natural-language query and " "return the most relevant documentation pages with their full content. " diff --git a/src/mcp_server_appwrite/operator.py b/src/mcp_server_appwrite/operator.py index c4bd6db..eb77628 100644 --- a/src/mcp_server_appwrite/operator.py +++ b/src/mcp_server_appwrite/operator.py @@ -145,6 +145,11 @@ def get_public_tools(self) -> list[types.Tool]: tools = [ types.Tool( name="appwrite_get_context", + annotations=types.ToolAnnotations( + read_only_hint=True, + open_world_hint=True, + destructive_hint=False, + ), description=( "Get an adaptive Appwrite account/project context summary, including " "available projects and per-project service counts where the current " @@ -186,6 +191,11 @@ def get_public_tools(self) -> list[types.Tool]: ), types.Tool( name="appwrite_search_tools", + annotations=types.ToolAnnotations( + read_only_hint=True, + open_world_hint=False, + destructive_hint=False, + ), description=( "Search the hidden Appwrite tool catalog by natural language query. " "Matches include parameter schemas (name, type, required/optional, " @@ -227,6 +237,11 @@ def get_public_tools(self) -> list[types.Tool]: ), types.Tool( name="appwrite_call_tool", + annotations=types.ToolAnnotations( + read_only_hint=False, + open_world_hint=True, + destructive_hint=True, + ), description=( "Call a hidden Appwrite tool by name. Put Appwrite parameters inside `arguments`. " "Mutating tools require confirm_write=true. Hidden Appwrite parameters accept "