MCPサーバー
MCP(Model Context Protocol)において、MCPサーバーは中核概念である。
MCPサーバーとは?
MCPサーバーは、AIモデルが外部リソース(ツール、データ、APIなど)にアクセスできるよう接続する標準化されたインターフェースを提供する役割を持つ。
簡単にいえば、AIが使えるツール集を提供するサーバーである。
構造
MCPは大きく**クライアント(Client)とサーバー(Server)**に分かれる。
- MCPクライアント
- LLM環境に接続されたアプリケーション(例: IDE、Chat UI、Notebookなど)
- ユーザーのプロンプトを受け取りモデルを実行し、必要に応じてMCPサーバーにリクエストする
- MCPサーバー
- 複数のリソース/ツール/関数を管理し提供する
- 標準化されたプロトコル(JSON-RPCベース)を通じてクライアントと通信
- 例: DB照会サーバー、ファイルシステムサーバー、API呼び出しサーバー

サーバーが提供するもの
MCPサーバーは大きく四つの機能を提供する。
- リソース(Resources)
- データベース、ファイル、文書、APIレスポンスなど
- 例:
resource://db/customers,resource://filesystem/project/README.md
- ツール(Tools)
- 呼び出し可能な関数/アクション
- 例:
searchCustomer(name),sendEmail(to, subject, body)
- プロンプト(Prompts)
- あらかじめ定義されたテンプレートを提供
- 例: 「SQLクエリ生成用プロンプト」
- イベント(Events)
- サーバーで発生する通知や変更イベントをリアルタイムで伝達
動作フロー例
- ユーザーがIDE内で「DBから顧客『洪吉童』を検索して」と入力
- LLMが判断し、MCPクライアントを通じて「searchCustomer」ツールの呼び出しを要求
- MCPクライアント -> MCPサーバーへリクエストを伝達
- MCPサーバーが実際のDB照会を実行し、結果を返す
- LLMが結果をユーザーに分かりやすい文で整理して表示
MCPサーバーの例
たとえば、ファイルシステムMCPサーバーなら次のようになる。
- Resource: プロジェクトフォルダー内のファイル(
/src/main.kt,/README.md) - Tools: ファイルの読み取り、書き込み、検索機能(
readFile,writeFile) - Prompts: 「このコードをリファクタリングして」のようなテンプレート
このように構成されたサーバーを接続すると、AIはプロジェクトファイルを直接探索・修正できるようになる。
比喩
- MCPサーバー = 「ホテルのコンシェルジュ」
- 客(LLM)が「観光地を推薦して」と言うと、コンシェルジュが複数のAPI/DBを裏側で扱い、整理された情報を提供する
- MCPクライアント = 「ホテルのフロント」
- 客と直接会話し、リクエストを受け取ってコンシェルジュへ伝える
まとめ
MCPサーバーは、LLMが外部ツールやデータを安全かつ一貫した方式で活用できるよう、標準化されたインターフェースを提供するバックエンドの役割を果たす。