📰
DevToolsTutorialEN → JA
38

azukiazusa · 356日前

MCP のツールアノテーションでユーザーにヒントを提供する

要約

MCPはLLMが外部ツールと連携するための標準プロトコルで、ツール実行時にユーザーの許可が必要になるケースがある。ツールアノテーションは、ツールの性質(読み取り専用か、破壊的か、冪等か等)をクライアントやユーザーに伝えるヒント情報として機能する。アノテーションの種類には `readOnlyHint`・`destructiveHint`・`idempotentHint`・`openWorldHint` などがある。ただしこれらはあくまでヒントであり、実際の動作を保証するものではないため、セキュリティ判断の根拠にはならない。記事ではTypeScript SDKを使ったTODOリスト管理MCPサーバーを例に、アノテーションの設定方法と表示を実践的に解説している。

📌

Key Points

  • •MCPツールアノテーションは `readOnlyHint`・`destructiveHint`・`idempotentHint`・`openWorldHint`・`title` の5種類があり、ツールの動作特性をクライアントに伝えるヒントとして機能する
  • •アノテーションはあくまで「ヒント」であり、MCPサーバーが実際の動作を保証するものではないため、セキュリティ上の判断基準として使用してはならない
  • •TypeScript SDKを使ったTODOリスト管理サーバーの実装例で、`add_todo`(書き込み)と `list_todos`(読み取り専用)にそれぞれ適切なアノテーションを設定する方法を具体的に示している

Why it matters

MCPツールアノテーションを適切に設定することで、LLMがツールを呼び出す際のユーザー体験と意思決定の質が向上し、意図しない破壊的操作のリスクを低減できる。

関連エンティティ
MCP (Minecraft Coder Pack)@ToolAnnotationNBT (Named Binary Tag)IntelliJ IDEAVS Code (Visual Studio Code)mcp-configMinecraftModel Context Protocol (MCP)@modelcontextprotocol/sdkzodTypeScript