📖 推定読了時間:約6分
2024年末にAnthropicがオープンソースとして発表し、またたく間にAIコミュニティや開発者ツールのデファクトスタンダードへと駆け上がった規格をご存知でしょうか。それが「Model Context Protocol(MCP)」です。「AIにとってのUSBポート」とも例えられるこのオープンプロトコルは、孤立していたLLM(大規模言語モデル)と企業・個人のデータ資産をシームレスに接続する革命を起こしています。
これまで各ツールやエージェントフレームワークごとにバラバラに開発されていた「ツール呼び出し(Tool Call)」や「データ連携プラグイン」の仕組みを統一し、AIが安全に現実世界のコンテキストへアクセスできるようにするMCPの全貌を、基礎から実践まで徹底解説します。
この記事のポイント
- MCPが解決する「N対Mの統合爆発問題」とプロトコル統一のメリット
- Host、Client、Serverからなる3層アーキテクチャの基本構造
- Claude DesktopやCursor、自作エージェントでの実践的な活用パターン
- ローカルLLMや高セキュリティ環境で運用する際の必須セーフティ対策
1. なぜ今MCPなのか?「N対M」の連携爆発を解決する共通規格
従来のAIエージェント開発では、極めて非効率な「サイロ化」が発生していました。たとえば、Claude用のプラグインを作ってもChatGPTでは動かず、LangChain用に書いたコネクタはCursorで再利用できないといった具合です。データソースが10個、エージェント基盤が10個あれば、最大で100通り(N × M)の独自アダプターを個別に実装・保守しなければなりませんでした。
MCPはこの状況を一変させます。データ提供側が一度「MCPサーバー」を実装すれば、Claude Desktop、Cursor、VS Code、あるいは自作のAIエージェントなど、あらゆる「MCPクライアント」から即座に利用可能になります。
- ✅共通規格化による開発コスト激減:データ連携コードを1度書くだけで全AIツールから呼び出せる。
- ✅動的コンテキスト取得:LLMが自ら判断し、必要な瞬間にのみPostgreSQLやGitHubから最新データを引き出せる。
- ✅セキュリティの境界制御:ユーザーの明示的な許可がない限り、ローカルファイルや外部APIへの危険な書き込みを遮断できる。
AIモデルの進化スピードに振り回されず、長期的に運用可能な自律システムを組むためには、プロトコル設計の基礎やAIエージェント開発・Agentic Workflow実践ガイド本などを通じて、エージェントの自律ループと外部制御のベストプラクティスを体系的に学んでおくことが大切です。
2. MCPのアーキテクチャ:Host・Client・Serverの3層構造
MCPの通信は、軽量で言語を選ばない**JSON-RPC 2.0**をベースにしています。システム全体は主に3つの役割に分割されています。
| コンポーネント | 役割 | 具体例 |
|---|---|---|
| MCP Host | ユーザーが操作するUI・LLM実行環境 | Claude Desktop, Cursor, LibreChat, 自作アプリ |
| MCP Client | Host内部で動作し、各Serverとの通信を仲介 | 1対1のセッション管理、権限プロンプトの表示制御 |
| MCP Server | 特定のデータやツールを外部に公開する軽量プログラム | Git操作サーバー、SQLite検索サーバー、Slack投稿サーバー |
MCPサーバーが提供できる機能(プリミティブ)は主に次の3つに分類されます。
- Resources(リソース):ファイル内容やDBレコードなど、モデルが読み取り可能なコンテキスト情報(RESTにおけるGETに近い)。
- Prompts(プロンプト):ユーザー向けにあらかじめ定義されたプロンプトテンプレートや定型ワークフロー。
- Tools(ツール):LLMが実際に実行できる関数(SQLクエリの実行、APIリクエストの送信など)。
「AIが勝手にDBを書き換えないか心配」という場合でも、MCPならTool実行の直前に必ず人間の承認(Human-in-the-loop)を挟む設計が規格レベルで組み込まれているのが大きな魅力です。
3. 簡単!TypeScriptで自作MCPサーバーを立ち上げる
MCPの公式SDKはTypeScript(Node.js)やPython向けに提供されており、数十分で自分専用のカスタムMCPサーバーを作成できます。以下は、ローカルのログファイルを読み込んでAIに渡すシンプルなMCPサーバーの例です。
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
const server = new Server({ name: "my-log-server", version: "1.0.0" }, {
capabilities: { tools: {} }
});
// 利用可能なツールを定義
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{
name: "fetch_recent_errors",
description: "直近のエラーログを取得する",
inputSchema: { type: "object", properties: { limit: { type: "number" } } }
}]
}));
// ツールの実行ハンドラ
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "fetch_recent_errors") {
return { content: [{ type: "text", text: "ERROR 2026-10-01: DB Connection timeout" }] };
}
throw new Error("Unknown tool");
});
const transport = new StdioServerTransport();
await server.connect(transport);
基礎概念の理解をより深めたい方は、AI・生成AI入門書籍などを並行して確認すると、LLMのトークン生成の仕組みやプロンプトエンジニアリングの勘所がスッキリ掴めます。
4. セキュリティの落とし穴とローカルLLM環境での運用
MCPの利便性の裏で、絶対に軽視してはならないのがセキュリティリスクです。悪意のあるプロンプトインジェクションによって、AIが意図せず社外秘リソースを外部送信させられたり、重要ファイルを削除させられたりする危険があります。
💡 機密データを扱うならローカルLLMとローカルMCPの組み合わせが最強
金融データやプライベートコードを扱う場合、パブリッククラウドのAPIを使わず、社内LANやローカルPC上で完結するエージェント基盤を構築する企業が急増しています。70Bクラスのオープンモデルを低遅延で回すには、ローカルLLM向け高VRAMグラフィックボード(RTX 4090等)を組み込んだワークステーションを用意し、ネットワークから遮断された安全なMCP環境を整えるのが現代の王道構成です。
まとめ
Model Context Protocol(MCP)は、単なる一企業の独自ツールではなく、AIエージェント時代における「Web標準」のような存在になりつつあります。ツールの再利用性が高まり、開発者がデータ接続コードの車輪の再発明から解放される恩恵は計り知れません。
まずはClaude Desktopの設定ファイルにオープンソースのMCPサーバーを追加し、AIがローカルPC上のツールを操る驚きを体験してみてください。



0 件のコメント:
コメントを投稿