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 Client Server

サーバーが提供するもの

MCPサーバーは大きく四つの機能を提供する。

  1. リソース(Resources)
    • データベース、ファイル、文書、APIレスポンスなど
    • 例: resource://db/customers, resource://filesystem/project/README.md
  2. ツール(Tools)
    • 呼び出し可能な関数/アクション
    • 例: searchCustomer(name), sendEmail(to, subject, body)
  3. プロンプト(Prompts)
    • あらかじめ定義されたテンプレートを提供
    • 例: 「SQLクエリ生成用プロンプト」
  4. イベント(Events)
    • サーバーで発生する通知や変更イベントをリアルタイムで伝達

動作フロー例

  1. ユーザーがIDE内で「DBから顧客『洪吉童』を検索して」と入力
  2. LLMが判断し、MCPクライアントを通じて「searchCustomer」ツールの呼び出しを要求
  3. MCPクライアント -> MCPサーバーへリクエストを伝達
  4. MCPサーバーが実際のDB照会を実行し、結果を返す
  5. LLMが結果をユーザーに分かりやすい文で整理して表示

MCPサーバーの例

たとえば、ファイルシステムMCPサーバーなら次のようになる。

  • Resource: プロジェクトフォルダー内のファイル(/src/main.kt, /README.md
  • Tools: ファイルの読み取り、書き込み、検索機能(readFile, writeFile
  • Prompts: 「このコードをリファクタリングして」のようなテンプレート

このように構成されたサーバーを接続すると、AIはプロジェクトファイルを直接探索・修正できるようになる。

比喩

  • MCPサーバー = 「ホテルのコンシェルジュ」
    • 客(LLM)が「観光地を推薦して」と言うと、コンシェルジュが複数のAPI/DBを裏側で扱い、整理された情報を提供する
  • MCPクライアント = 「ホテルのフロント」
    • 客と直接会話し、リクエストを受け取ってコンシェルジュへ伝える

まとめ

MCPサーバーは、LLMが外部ツールやデータを安全かつ一貫した方式で活用できるよう、標準化されたインターフェースを提供するバックエンドの役割を果たす。