From 818d0c36fbef218bbe3fedb0f383a38d9fab3adc Mon Sep 17 00:00:00 2001 From: triepod-ai Date: Sun, 28 Dec 2025 10:22:53 -0600 Subject: [PATCH 1/2] feat: Add tool annotations for improved LLM tool understanding Add readOnlyHint, destructiveHint, and openWorldHint annotations to all 10 tools to help LLMs better understand tool behavior and make safer decisions. Changes: - Added readOnlyHint: true to read-only tools (scrape_webpage, crawl_webpages, extract_structured_data, search_with_bing, list_profiles) - Added destructiveHint: true to tools that modify state or execute actions (browser_use_agent, openai_computer_use_agent, claude_computer_use_agent, create_profile, delete_profile) - Added openWorldHint: true to all web-facing tools - Added human-readable title annotations for all tools This improves tool safety metadata for MCP clients. Co-Authored-By: Claude --- src/transports/setup_server.ts | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/transports/setup_server.ts b/src/transports/setup_server.ts index 9073bf3..157055d 100644 --- a/src/transports/setup_server.ts +++ b/src/transports/setup_server.ts @@ -80,30 +80,55 @@ function setupServer(server: McpServer) { scrapeWebpageToolName, scrapeWebpageToolDescription, scrapeWebpageToolParamSchemaRaw, + { + title: "Scrape Webpage", + readOnlyHint: true, + openWorldHint: true, + }, scrapeWebpageTool ); server.tool( crawlWebpagesToolName, crawlWebpagesToolDescription, crawlWebpagesToolParamSchemaRaw, + { + title: "Crawl Webpages", + readOnlyHint: true, + openWorldHint: true, + }, crawlWebpagesTool ); server.tool( extractStructuredDataToolName, extractStructuredDataToolDescription, extractStructuredDataToolParamSchemaRaw, + { + title: "Extract Structured Data", + readOnlyHint: true, + openWorldHint: true, + }, extractStructuredDataTool ); server.tool( browserUseToolName, browserUseToolDescription, browserUseToolParamSchemaRaw, + { + title: "Browser Use Agent", + destructiveHint: true, + openWorldHint: true, + }, browserUseTool ); server.tool( oaiCuaToolName, oaiCuaToolDescription, oaiCuaToolParamSchemaRaw, + { + title: "OpenAI Computer Use Agent", + destructiveHint: true, + openWorldHint: true, + }, oaiCuaTool ); @@ -111,6 +136,11 @@ function setupServer(server: McpServer) { claudeComputerUseToolName, claudeComputerUseToolDescription, claudeComputerUseToolParamSchemaRaw, + { + title: "Claude Computer Use Agent", + destructiveHint: true, + openWorldHint: true, + }, claudeComputerUseTool ); @@ -118,6 +148,11 @@ function setupServer(server: McpServer) { bingSearchToolName, bingSearchToolDescription, bingSearchToolParamSchemaRaw, + { + title: "Search with Bing", + readOnlyHint: true, + openWorldHint: true, + }, bingSearchTool ); @@ -126,18 +161,30 @@ function setupServer(server: McpServer) { createProfileToolName, createProfileToolDescription, {}, // createProfileToolParamSchemaRaw is just an empty object + { + title: "Create Profile", + destructiveHint: true, + }, createProfileTool ); server.tool( deleteProfileToolName, deleteProfileToolDescription, deleteProfileToolParamSchemaRaw, + { + title: "Delete Profile", + destructiveHint: true, + }, deleteProfileTool ); server.tool( listProfilesToolName, listProfilesToolDescription, listProfilesToolParamSchemaRaw, + { + title: "List Profiles", + readOnlyHint: true, + }, listProfilesTool ); From 9973495154eacc75f6dafba8e636001afdda2845 Mon Sep 17 00:00:00 2001 From: triepod-ai <199543909+triepod-ai@users.noreply.github.com> Date: Wed, 31 Dec 2025 10:22:24 -0600 Subject: [PATCH 2/2] fix: correct destructiveHint for Create Profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed Create Profile to destructiveHint=false (creates profile, additive). Kept destructiveHint=true for: - Delete Profile (actually deletes) - Browser/Computer Use agents (can perform destructive actions) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- src/transports/setup_server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transports/setup_server.ts b/src/transports/setup_server.ts index 157055d..8d97c2e 100644 --- a/src/transports/setup_server.ts +++ b/src/transports/setup_server.ts @@ -163,7 +163,7 @@ function setupServer(server: McpServer) { {}, // createProfileToolParamSchemaRaw is just an empty object { title: "Create Profile", - destructiveHint: true, + destructiveHint: false, }, createProfileTool );