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