Loading...

Skip to content
MemonaIQ
ToolsLearnCompany
Sign in
ToolsLearnCompanyBrowse all tools
Knowledge Center
In this topic
TLS & Web Security
How HTTPS works: TLS handshake, keys and encryptionSSL certificates: validation, chains and common errorsHow website trust scores work and what they missSame-origin policy and CORS: how cross-origin reads workXSS, CSRF and SSRF: how they work and how to prevent themZero trust security: principles and where to startHTTP security headers: which to send and whyContent Security Policy (CSP): directives and rolloutWhat is HSTS? Strict-Transport-Security and preloadCookie security: Secure, HttpOnly and SameSite explainedMCP security: tools, prompt injection and least privilegeMCP authorization and why token passthrough is forbiddenMCP tool annotations: what the hints mean and their limits
A-Z glossary
HomeKnowledgeTLS & Web Security
TLS & Web Security•3 min read•intermediate

MCP tool annotations: what the hints mean and their limits

What MCP tool annotations such as readOnlyHint and destructiveHint declare, why clients must treat them as untrusted hints, and how to use them in approvals.

What MCP tool annotations are

Tool annotations are optional fields in an MCP tool definition that describe how the tool behaves. They say whether it changes anything, whether changes are destructive, whether a repeat call is safe and whether it reaches outside systems. The server writes them, and clients must treat them as untrusted unless the server itself is trusted.

The schema calls every annotation field a hint, including the display title. An annotation tells you what the server claims about its tool, and nothing more.

The annotation fields and their defaults

The 2026-07-28 schema defines five annotation fields. Their defaults are cautious, so a tool with no annotations should be read as one that can change things, destructively, in the outside world. The example after the list shows them on a file-deletion tool.

  • title: a display name for the tool. Even this is only a hint.
  • readOnlyHint: true means the tool does not modify its environment. The default is false.
  • destructiveHint: true means the tool may make destructive updates, and false means it only adds. The default is true, and the field only matters when readOnlyHint is false.
  • idempotentHint: true means calling the tool again with the same arguments has no further effect. The default is false, and it also applies only when readOnlyHint is false.
  • openWorldHint: true means the tool may interact with an open set of outside entities, as a web search does. False means a closed domain, such as a memory store. The default is true.
JSON Snippet
json
{
  "name": "delete_file",
  "description": "Delete a file inside the project directory",
  "inputSchema": {
    "type": "object",
    "properties": { "path": { "type": "string" } },
    "required": ["path"]
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false
  }
}

Why annotations cannot be trusted on their own

An annotation is a claim the server makes about itself. Nothing in the protocol checks it, and a malicious or buggy server can label a tool that deletes files as read-only. The schema itself says clients should never make tool use decisions based on annotations received from untrusted servers.

Descriptions share the weakness, and the model reads them as instructions. A server can also change a tool definition after you approved it, so annotations that were accurate at install time may not stay accurate.

Whether a server counts as trusted is your judgment, and its annotations cannot settle it. A server you build and run yourself, or one your organization has reviewed and pinned to a version, can reasonably be trusted. An unknown package from a public registry cannot.

Using annotations in approval flows

A safe rule: from an untrusted server, annotations may add friction but never remove it. In practice that looks like this:

  • Require confirmation for every tool from an untrusted server, whatever its annotations say.
  • Treat destructiveHint: true, or missing annotations, as a reason to show the full arguments, a preview or diff where possible, and a clear warning.
  • Use readOnlyHint: true to skip prompts only for servers you trust, and keep a log of those calls with their arguments.
  • Treat openWorldHint: true as a sign that data can leave the machine, which matters when the same agent can also read local files.
  • Use idempotentHint from a trusted server to decide whether an automatic retry after a timeout is safe. It says nothing about whether the first call is safe.
  • Record the tool definitions you approved, and ask again when a tool's annotations or description change.

Back the hint with real limits

Real enforcement comes from outside the server's claims: a read-only database role, a token with read scopes, a container with one directory mounted, or no network access. When a tool labeled read-only runs with read-only credentials, the label and the reality agree.

Accurate annotations from a trusted server are still useful. They let a client skip needless prompts for reads and focus attention on writes, which reduces the approval fatigue that makes people click yes without looking.

Previous guide
MCP authorization and why token passthrough is forbidden
MemonaIQ tools

Try it on your own input

Check what this guide describes against your own URL, domain, code or file.

MCP Security & Configuration Auditor

Paste the tools array from a tools/list result to see what each tool can reach and flag pairs such as file read plus outbound network.

Open tool

References

  • MCP specification: Tools (2026-07-28)
  • MCP schema reference: ToolAnnotations

On this page

What MCP tool annotations areThe annotation fields and their defaultsWhy annotations cannot be trusted on their ownUsing annotations in approval flowsBack the hint with real limits
Updated:2026-10-25
Format:Technical Guide
Related tool
MCP Security & Configuration Auditor

Paste the tools array from a tools/list result to see what each tool can reach and flag pairs such as file read plus outbound network.

Open tool
MemonaIQ

Focused tools for everyday digital work.

  • 18 focused tools
  • 9 run in your browser
Browse all tools Get help

Featured tools

URL Intelligence PlatformImage CompressorInvoice StudioDNS LookupAI Token Counter

Explore

All toolsKnowledge CenterGuidesResourcesCompany

Support

HelpContactSecurity

Legal

PrivacyTermsCookies

© 2026 MemonaIQ. Made in Colombo.

Back to top

MemonaIQ