MCP Serverの3つのコアプリミティブ(Resources、Tools、Prompts)それぞれの用途と使い分けは?
Resources(リソース):MCPサーバーがClaudeに読み取らせることができるデータを表します。Resourcesは「受動的」——Claudeはそれらの読み取りをリクエストできますが、それ自体は操作を実行しません。
Tools(ツール):Claudeが実行できる機能を表します。Toolsは「能動的」——Claudeは必要と判断したときに呼び出し、パラメータを渡して結果を受け取ります。最も一般的に使用されるプリミティブ。
Prompts(プロンプト):MCPクライアントが標準化されたタスクを素早く呼び出せるように、事前定義されたプロンプトワークフローを表します。「再利用可能なタスクテンプレート」です。
選択原則:Claudeにデータソースを読み取らせたい場合はResources;Claudeに操作を実行させたい場合はTools;ユーザーが素早くアクセスできる標準化されたタスクフローにはPrompts。
PythonでどのようにMCPサーバーを構築しますか?最小限の実行可能バージョンの構造は?
AnthropicのオフィシャルPython MCP SDKを使用したコア構造:
FastMCPクラスを使用してサーバーインスタンスを作成し、@mcp.tool()デコレータでツールを定義し、@mcp.resource()デコレータでリソースを定義します。
最も重要な設計決定:ToolのDocstring。ClaudeはいつこのToolを呼び出すかを決定するために完全にこのテキストに依存しています。良いDocstringには、Toolが何をするか(一文の説明)、いつ呼び出すか(適用シナリオ)、いつ呼び出さないか(除外シナリオ)、入力パラメータの意味とフォーマットが含まれている必要があります。
ローカルMCPサーバーとリモートMCPサーバーの技術的な違いと適用シナリオは?
ローカルMCPサーバー:ユーザー自身のコンピューター上で動作し、Standard I/O(stdio)を介してMCPクライアントと通信します。現在Claude Desktopの主要なMCP接続方式です。
ローカルサーバーに適したシナリオ:ローカルファイルシステムやデータベースへのアクセス;ローカルコマンドラインツールの実行;個人開発とテスト。
リモートMCPサーバー:クラウドまたは企業サーバーにデプロイされ、HTTP/HTTPSとSSEを介して通信します。複数のユーザーが1つのリモートサーバーを共有できます。
リモートサーバーに適したシナリオ:チーム共有ツール;外部SaaSサービス(Slack、GitHub、Salesforce)への接続;集中管理とアップデート。
MCP Serverを本番環境にデプロイする際の一般的な間違いとベストプラクティスは?
最も一般的な間違い1:Toolのdescriptionが曖昧すぎる
最も一般的で影響が大きい問題。「情報を検索する」「データベースをクエリする」といった説明ではClaudeにいつこのツールを使うべきか、他のツールとどう違うかが伝わりません。
最も一般的な間違い2:返すデータ量が多すぎる
サーバー側で前処理を行い、Claudeが実際に必要とするキーフィールドとサマリーのみを返します。
最も一般的な間違い3:エラー処理の設計がない
ツール実行が失敗した場合、構造化されたエラーメッセージを返します(エラータイプ、理由、推奨される次のステップを含む)。
ベストプラクティス:Claude Desktopに接続する前にMCP Inspectorでサーバーをテストする;サーバー側で入力検証を行う;複雑なマルチステップタスクには複数のToolsに分割する。
メディア企業が編集チームのために内部MCPサーバーを構築し、Claudeに記事データベース、画像ライブラリ、発行システムへのアクセスを提供します。この実装は実際のエンタープライズシナリオでのToolの設計を示しています:
間違った設計(説明が曖昧すぎる):
search_contentツールの説明が「コンテンツを検索する」だけでは、Claudeは「この技術記事に合う画像を探して」というリクエストに対して、このツールが画像を検索できることを知りません。
正しい設計(各ツールに正確なdescription):
search_articlesとsearch_imagesを別々のツールとして定義し、それぞれのdescriptionに適用シナリオと除外シナリオを明記することで、呼び出し精度が40%から95%に向上します。
MCPサーバー開発のコアなトレードオフ:柔軟性 vs 保守コスト。カスタム構築のMCPサーバーはニーズに完全に対応できますが、開発と継続的なメンテナンスが必要;既製のサードパーティMCPサーバーはセットアップが簡単ですが、サードパーティのセキュリティプラクティスを信頼する必要があります。推奨戦略:一般的なツール(Google Drive、Slack、GitHub)の接続には公式または著名なオープンソースサーバーを優先;ビジネスシステムの接続には自作サーバーが全面的な制御とセキュリティコンプライアンスを確保します。もう一つのトレードオフはToolの粒度です:一つのToolに一つの明確な責任が最良の設計原則です。