Design your MCP server like a UI, not an API
MCPサーバーをAPIではなくUIのように設計するための4つのルールを解説。ツール名や説明をユーザーの認知負荷を下げる形で設計し、パラメータのバリデーションを厳格に行い、エラーメッセージは人間が理解できる形で返すといった実践的なガイドラインを、TypeScriptとZodを用いた具体例とともに紹介する。
背景メモ
- MCP(Model Context Protocol)は、Anthropic社が2024年末に公開したオープンなプロトコル。AIアシスタント(Claudeなど)が外部のツールやデータソースに安全にアクセスするための仕様で、関数呼び出しの標準化版とイメージするとよい
- MCP Serverは、AIモデルがファイルシステム、データベース、APIなどにアクセスするための「ブリッジ」役。サーバーが定義した「ツール」や「リソース」をモデルが動的に呼び出せる
- 従来のAPI設計の常識(幅広いエンドポイント、細かいパラメータ)はMCPでは逆効果になりやすい。UIのように「画面数は最小に、アクションは絞る」設計が求められる理由として、モデルの推論コストと人間と違い逐次的にしか呼び出せない制約がある
- この記事は、MCPサーバーの実装が急増するなかで「設計思想の転換」を促している。特に「ツールを細かく分けすぎない」「返すデータの粒度に注意」など実践的な4ルールが提示されており、LLMアプリケーション開発におけるプロトコル設計のベストプラクティスとして注目されている