概要
https://vlaaad.github.io/mcp-tools-with-dependent-types
詳細内容
## MCP tools with dependent types
https://vlaaad.github.io/mcp-tools-with-dependent-types
LLMツール呼び出しプロトコルの動的スキーマの欠陥を特定し、依存型を用いた解決策を提案する。
**Content Type**: ⚙️ Tools
**Scores**: Signal:4/5 | Depth:5/5 | Unique:5/5 | Practical:5/5 | Anti-Hype:5/5
**Main Journal**: 96/100 | **Annex Potential**: 97/100 | **Overall**: 96/100
**Topics**: [[LLMツール呼び出し, 依存型, JSONスキーマ, エージェントの精度, API設計]]
現在のLLMエージェントは、DefoldエディタのMCP(Multi-Modal Command Protocol)のような外部ツールとの連携で、APIドキュメントより試行錯誤を優先し、「面白いが不正確なバグ」を生み出すことがあります。LLMの成熟に伴い、この不正確性は大きな問題となるでしょう。JSONスキーマによる構造化出力は一般的な解決策ですが、MCPでは入力スキーマを動的に解決する「依存型」を定義できないという根本的な課題があります。例えば、3Dモデルのプロパティが選択されたファイルやマテリアルによって変化するような、複雑で文脈に依存するデータの編集ツールをMCPで正確に定義することは困難です。
これは、LLMエージェントがより複雑な現実世界データと正確にやり取りするための重大なボトルネックとなります。カスタムAIチャットでは、LLMがリソース選択後にデータ構造からJSONスキーマを動的に生成し、それを用いて編集を行う2段階プロセスが可能です。しかし、MCPのような汎用プロトコルでは、特定引数のスキーマを別のツールで動的に取得させるような指示はできません。
筆者はこの課題に対し、MCPツール呼び出しプロトコルに`x-schemaTool`や`x-schemaToolArgs`といったカスタム属性の追加を提案します。これにより、ツールは特定の引数のスキーマが別のツールによって動的に提供されることを宣言でき、LLMエージェントは「推測」ではなく、より正確で文脈に即した入力生成が可能になります。この具体的な技術的アプローチは、AIエージェントの精度と信頼性を大幅に向上させ、より堅牢で実用的なツール連携を実現する上で極めて重要です。