diff --git a/src/everything/resources/templates.ts b/src/everything/resources/templates.ts index 6d4903f74c..2d138652b6 100644 --- a/src/everything/resources/templates.ts +++ b/src/everything/resources/templates.ts @@ -25,7 +25,7 @@ export const RESOURCE_TYPES: string[] = [ * The completion logic matches the input against available resource types. */ export const resourceTypeCompleter = completable( - z.string().describe("Type of resource to fetch"), + z.string().describe("Type of resource — must be 'Text' or 'Blob'."), (value: string) => { return RESOURCE_TYPES.filter((t) => t.startsWith(value)); } diff --git a/src/fetch/src/mcp_server_fetch/server.py b/src/fetch/src/mcp_server_fetch/server.py index b42c7b1f6b..562a3eb8d1 100644 --- a/src/fetch/src/mcp_server_fetch/server.py +++ b/src/fetch/src/mcp_server_fetch/server.py @@ -14,6 +14,7 @@ PromptMessage, TextContent, Tool, + ToolAnnotations, INVALID_PARAMS, INTERNAL_ERROR, ) @@ -203,6 +204,11 @@ async def list_tools() -> list[Tool]: Although originally you did not have internet access, and were advised to refuse and tell the user this, this tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that.""", inputSchema=Fetch.model_json_schema(), + annotations=ToolAnnotations( + readOnlyHint=True, + idempotentHint=True, + openWorldHint=True, + ), ) ]