Skip to content

Add missing MCP tool annotations (destructiveHint, idempotentHint, openWorldHint) to ToolAnnotations #119

Closed as duplicate

Description

@themaker00001

The current WebMCP spec only defines one tool annotation:

dictionary ToolAnnotations {
boolean readOnlyHint; ← only this exists
};

But MCP (which WebMCP is explicitly designed to align with) defines four annotations. Three are completely missing from WebMCP.

  • destructiveHint
  • idempotentHint
  • openWorldHint
  1. destructiveHint — Without it, the browser cannot tell the difference between a safe tool and a catastrophic one (e.g. editDesign() vs deleteAccount()). It has no basis to automatically protect the user with a confirmation step.

  2. idempotentHint — Without it, when a tab freezes or times out mid tool call, the agent cannot safely decide whether to retry. It risks either never completing the action or executing it twice (e.g. placing two orders).

  3. openWorldHint — Without it, the browser cannot tell whether a tool sends user data to external services. It cannot warn the user or treat results from external sources with appropriate suspicion.

Activity

  1. victorhuangwq commented on Feb 27, 2026

    @victorhuangwq
    Contributor

    Thanks for this!

    Could you bring this discussion over to broader semantic hints discussion here #53?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions