
MCPはAIアプリケーションのUSB-Cになる
バラバラだったLLM連携の世界で、Model Context Protocol(MCP)が、モデルとデータソースやツールをつなぐ統一的なオープン標準として台頭しつつあります。
何年ものあいだ、AIアプリケーション開発の体験は、モバイル機器の黎明期のようなものでした。LLMプロバイダーも、エージェントフレームワークも、開発環境も、それぞれがモデルとデータをつなぐ独自の方式を持っていたのです。ローカルにあるソースコードのディレクトリをClaudeに読み込ませたいなら、スクリプトを書くしかありませんでした。GPT-4oを自分のPostgresデータベースにつなぎたいなら、カスタムのAPIコネクタを自作しました。土台となるフレームワークをLangChainからLlamaIndexに乗り換えれば、データ読み込みのパイプラインを半分書き直すはめになりました。
私たちはカスタムアダプタの海に溺れていました。すべてを束ねる標準のポートがなかったのです。
だからこそ、Model Context ProtocolMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →(MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →)は、Function Callingの登場以来、AIエンジニアリングにおける最も重要なアーキテクチャの転換なのです。もともとAnthropicがオープンソースとして公開したMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →は、「AIのUSB-C」としての地位を急速に固めつつあります。LLMがデータソースやファイルシステム、ツールとどうつながるかを抽象化する、シンプルでオープンな双方向の標準です。
$N$種類のモデルと$M$種類の開発環境のあいだで$N \times M$通りの連携を書く代わりに、MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →なら、モデルがクライアントとして標準化されたMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーと対話する、すっきりとしたプラグアンドプレイのアーキテクチャを実現できます。
AI開発における連携のボトルネック
プロトコルそのものを見る前に、それが解決する問題を詳しく見ておきましょう。LLMアプリケーション開発の初期の波の中で、開発者は大きな壁にぶつかりました。モデルが孤立している、という壁です。LLMは単体では、あなたのコードリポジトリのことも、データベーススキーマのことも、チームのSlackの履歴のことも知りません。
このギャップを埋めるために、私たちはカスタムのパイプラインを作りました。RAGRAG検索拡張生成:モデルが回答を生成する前に外部の知識データベースから関連する文書の断片を検索し、コンテキストとして与えることで信頼性を最大限に高める技術です。Read More →(検索拡張生成)システムを立ち上げ、APIゲートウェイを構築し、独自のツールセットを定義しました。でも、どの連携も一つひとつがオーダーメイドでした。
+--------------+ +-------------+
| AI Model / | ----(Custom)-->| Postgres DB |
| Framework | +-------------+
| | +-------------+
| (LangChain/ | ----(Custom)-->| GitHub API |
| LlamaIndex) | +-------------+
| | +-------------+
| | ----(Custom)-->| Local Files |
+--------------+ +-------------+
このモデル中心の連携パターンは、大きな問題を生みました。まず、すべての接続がその場しのぎのコードで実装されていたため、セキュリティの監査が極めて困難でした。次に、ツールの再利用が制限されました。LangChainのエージェント向けに何日もかけて堅牢なSlackコネクタを作っても、連携部分のラッパーを書き直さない限り、Cursorのような開発ツールやClaude Codeのようなターミナルエディタには簡単に移植できなかったのです。
必要だったのは、関心の分離でした。データをどう取得するかと、モデルがそれについてどう推論するかのあいだに、境界線が必要だったのです。
MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →の基本コンセプト
Model Context ProtocolMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →は、システムを2つの明確なコンポーネントに分けます。
- MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →クライアント:ツールやデータへのアクセスを必要とする開発アプリケーション、IDE、エージェント環境(Cursor、VS Code、Claude Desktopなど)。
- MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバー:特定のデータソースや機能を、標準プロトコルを通じて公開する軽量でモジュール型のプログラム。
graph LR
subgraph Clients [MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →クライアント]
IDE[VS Code / Cursor]
Term[Claude Code CLI]
App[カスタムエージェントアプリ]
end
subgraph Protocol [Model Context ProtocolMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →]
direction TB
JSON[SSEまたはStdpipe上のJSON-RPC 2.0]
end
subgraph Servers [MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバー]
GitSrv[GitHubサーバー]
DbSrv[Postgresサーバー]
FsSrv[ローカルファイルサーバー]
end
Clients --> Protocol
Protocol --> Servers
クライアントとサーバーのあいだの通信は、JSON-RPC 2.0で行われます。ローカルのサーバーには標準入出力(stdio)を、リモートのサービスにはServer-Sent Events(SSE)を使うことで、MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →はアダプタをローカルで動かすことも、クラウドでホストすることも簡単にしてくれます。
プロトコルは、3種類の中核的な機能を定義しています。
- リソース(Resources):読み取り可能なデータソース。ローカルファイル、データベースのテーブル、APIの出力などがこれにあたります。
- プロンプト(PromptsPrompt Engineering生成AIモデルが意図どおりの最適な出力を返すように、指示文(テキスト入力)を設計・洗練・最適化する技術です。Read More →):モデルが構造化された指示を組み立てるのを助ける、標準化されたテンプレート(例:コードレビュー用のプロンプト)。
- ツール(Tools):モデルが外の世界に変更を加えられるようにする、実行可能な関数(例:コマンドの実行やファイルの書き込み)。
内部の仕組み:シンプルなMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーを作る
これがどれだけシンプルでエレガントかを知るために、Node.jsで基本的なMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーを実装する方法を見てみましょう。たとえば、ローカルのデータベースのテーブル構造を公開して、エディタで動いているどのAIモデルでも、こちらがコピー&ペーストしなくてもスキーマを理解できるようにしたいとします。
公式のTypeScript SDKを使った、シンプルなローカルMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーはこちらです。
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
ListResourcesRequestSchema,
ReadResourceRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
// MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーを初期化
const server = new Server(
{
name: "schema-inspector",
version: "1.0.0",
},
{
capabilities: {
resources: {},
},
}
);
// 利用可能なリソースを定義
const SCHEMAS = {
"users": "CREATE TABLE users (id SERIAL PRIMARY KEY, email VARCHAR(255), created_at TIMESTAMP);",
"posts": "CREATE TABLE posts (id SERIAL PRIMARY KEY, title TEXT, author_id INT REFERENCES users(id));"
};
// 1. リソース一覧のハンドラを登録
server.setRequestHandler(ListResourcesRequestSchema, async () => {
return {
resources: Object.keys(SCHEMAS).map((name) => ({
uri: `db://schema/${name}`,
name: `${name} table schema`,
mimeType: "text/plain",
description: `DDL schema statement for the ${name} table`
})),
};
});
// 2. リソース読み込みのハンドラを登録
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
const uri = new URL(request.params.uri);
const tableName = uri.pathname.split("/").pop();
if (!tableName || !(tableName in SCHEMAS)) {
throw new Error(`Resource not found: ${request.params.uri}`);
}
return {
contents: [
{
uri: request.params.uri,
mimeType: "text/plain",
text: SCHEMAS[tableName as keyof typeof SCHEMAS],
},
],
};
});
// トランスポートに接続
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("Schema Inspector MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More → Server running on stdio");
このサーバーをCursorやClaude Desktopのようなエディタで動かすには、クライアントの設定ファイルに起動コマンドの設定を追加するだけです。
{
"mcpServers": {
"schema-inspector": {
"command": "node",
"args": ["/path/to/server.js"]
}
}
}
読み込まれると、クライアント(たとえばCursor)は、どんなリソースが利用できるのかをサーバーに自動で問い合わせます。「usersとpostsをJOINするクエリを書くのを手伝って」のようなプロンプトを書くと、Cursorは裏側でdb://schema/usersとdb://schema/postsのリソースを読み込み、DDLスキーマをプロンプトのコンテキストに直接注入します。
実践的な連携戦略
AIエージェントや開発者向けツールを作っているなら、カスタムのAPIクライアントを書くのは今すぐやめるべきです。代わりに、データレイヤーをMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →に合わせましょう。今日から実装を始められる3つの戦略を紹介します。
- 社内APIを標準化する:チームの独自AIツールのために社内ダッシュボード用のAPIを作るのではなく、それらのエンドポイントをMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーでラップしましょう。そうすれば、チームのどのエンジニアでも、自分のIDEの中から直接データベースに問い合わせたり、ビルドを実行したり、ドキュメントにアクセスしたりできます。
- コミュニティのサーバーを活用する:サーバーをゼロから作る前に、増え続けているオープンソースのMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーの一覧を確認しましょう。GitHub、Slack、Postgres、Jira、Google Maps、ローカルのターミナル向けには、すでに高度に最適化されたサーバーがあります。
- ツールの権限を切り離す:ツールの実行ロジックをMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーの中に置いておけば、トランスポートのレベルでアクセス制御を管理し、ログを書き出せます。サーバーが明示的に読み書きの権限を与えない限り、エージェントはデータベースにアクセスできません。
今後の展望:ユニバーサルなインターフェース
近い将来、何をもって「アプリケーション」とするのか、その境界が変わるでしょう。今日の私たちは、グラフィカルユーザーインターフェース(GUI)を通じてソフトウェアを操作しています。明日には、AIエージェントが標準化されたアプリケーションスキーマを使って、リソースやツールを渡り歩くようになります。
あらゆるSaaS企業、クラウドデータベースのプロバイダー、ローカルデバイスのOSがMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →経由で機能を公開するようになれば、連携の複雑さはほぼゼロになります。開発者はもう、API連携を自分で書かなくなるでしょう。データベースの公式MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーを立ち上げるだけで、コーディングエージェントがテーブルへの書き込み方も、スキーマの読み方も、マイグレーションの実行方法も、すぐに理解してくれるのです。
MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →は、ありふれたAPIフォーマットの一つではありません。自律型ソフトウェアエージェントの時代を動かす、ユニバーサルなミドルウェアなのです。
関連記事
- 標準化されたプロトコルの上に構築されたエージェント型コーディング環境がどう違うのかは、Claude Code vs Cursor:作り手目線の徹底比較をどうぞ。
- こうした連携を構築しながら構造の健全性を保つには、AIでコード品質を保つための原則をご覧ください。
- AIを使ったワークフローが、単純な自動補完から自律的なターミナル操作へとどう進化しているのか、より広い視点で知りたい方はコパイロットの先へ:AIエージェントが私の日々のワークフローを変えた理由を読んでみてください。
参考リンク
- オープンソース化の発表については、Anthropic MCP Blogで詳しく読めます。
- プロトコルの公式仕様とドキュメントは、Model Context Protocol公式サイトで確認できます。
- 標準化されたアーキテクチャを採用した開発者ツールについては、Vercel Developer Blogが参考になります。
考えが変わったきっかけ
長いあいだ、私はLLM連携の未来はもっと賢いモデルにあると信じていました。コンテキストウィンドウが数百万トークンにまで広がれば、ドキュメントも、データベースのダンプも、リポジトリのコードも、すべてそのままモデルのプロンプトに放り込めばいい。そう思っていたのです。
でも、本番環境で動くエージェントを作ってみて学んだのは、ボトルネックはコンテキストのサイズではなく、ノイズとアクセス制御だということでした。生のログやテーブルをプロンプトに流し込むと、推論の効率は落ち、トークンのコストは上がり、セキュリティ上の脆弱性も生まれます。
MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →によって、LLMはデータベースではなくCPUなのだと思い知らされました。従来のマイクロプロセッサと同じように、LLMにもきれいなメモリキャッシュと厳格なデバイスドライバが必要です。MCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →は、そのドライバを提供してくれます。ローカルのMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバー経由でエディタをPostgresデータベースにつなぎ、モデルが遅延なく、スキーマについて明快に推論していくのを見た瞬間、もう後戻りできない地点を越えたのだと悟りました。私たちはついに、自分たちのUSB-Cを手に入れたのです。
更新履歴
MCPをAIアプリケーション連携のUSB-Cとして紹介。
- •MCPのアーキテクチャ概要を公開
知識のつながり
バックリンク
この記事に言及している記事
DailySayに聞く
Related Posts
続けて読む

PMI韓国支部の教育委員会でボランティアを始めました:合格体験記のその後
PMP合格後にPMI韓国支部の教育委員会でボランティアを始めた理由、支部と教育委員会の活動、一緒に勉強したい人の参加方法をまとめた、「PMP合格ロードマップ」シーズン1の最終回です。
残しておきたいノートを、ときどき。
プロジェクトマネジメント、AI、プロダクト、旅、そしていま作っているものについて、ときどきお届けします。
スパムは送りません。届くのはときどきのノートだけ。詳しくは プライバシーポリシー.


