MCPとは何か──「AIのUSBポート」
MCPは、AIモデルが外部のデータやツールにアクセスするための標準化されたプロトコルだ。従来、各AIツールは独自のAPI連携方式を採用していたため、同じ機能を実現するために開発者はツールごとに異なるコードを書く必要があった。
従来のAIツール連携(M×N問題)
Claude ──独自API──→ GitHub
Claude ──独自API──→ Slack
Claude ──独自API──→ DB
GPT ──独自API──→ GitHub(別の実装)
GPT ──独自API──→ Slack(別の実装)
GPT ──独自API──→ DB(別の実装)
→ M個のAI × N個のツール = M×N通りの実装が必要
MCPによる標準化
Claude ──MCP──┐
GPT ──MCP──┤──→ MCPサーバー群
Gemini ──MCP──┘ ├─ GitHub Server
├─ Slack Server
└─ DB Server
→ M + N の実装で済む
MCPのアーキテクチャは、クライアント/サーバーモデルを採用している。
| コンポーネント | 役割 | 例 |
|---|---|---|
| MCPホスト | ユーザーが操作するアプリケーション | Claude Desktop, Cursor, VS Code |
| MCPクライアント | ホスト内でサーバーと通信するモジュール | ホストに内蔵 |
| MCPサーバー | 特定のツールやデータを提供するプロセス | GitHub MCP Server, Slack MCP Server |
MCPの3つの基本機能
MCPサーバーは、3種類の機能をAIモデルに提供する。
Resources(リソース)
ファイル、データベースの行、APIレスポンスなど、AIが参照できるデータ。Read-onlyでコンテキストに注入される。
{
"resources": [
{
"uri": "file:///projects/myapp/src/index.ts",
"name": "index.ts",
"mimeType": "text/typescript"
},
{
"uri": "postgres://db/users?query=SELECT * FROM users LIMIT 10",
"name": "最近のユーザー一覧"
}
]
}
Tools(ツール)
AIが実行できるアクション。関数呼び出しのように、引数を渡して結果を受け取る。
// MCPサーバー側のツール定義例
server.tool(
"create_issue",
"GitHubにIssueを作成する",
{
repo: z.string().describe("リポジトリ名(owner/repo形式)"),
title: z.string().describe("Issueのタイトル"),
body: z.string().describe("Issueの本文"),
labels: z.array(z.string()).optional()
},
async ({ repo, title, body, labels }) => {
const issue = await github.createIssue(repo, { title, body, labels })
return { content: [{ type: "text", text: JSON.stringify(issue) }] }
}
)
Prompts(プロンプト)
再利用可能なプロンプトテンプレート。特定のワークフローを標準化し、一貫した操作を可能にする。
{
"prompts": [
{
"name": "code_review",
"description": "PRのコードレビューを実行",
"arguments": [
{ "name": "pr_url", "required": true },
{ "name": "focus_areas", "required": false }
]
}
]
}
MCPサーバーの実装方法
MCPサーバーの構築は、公式SDKを使えば数十行で実現できる。ここではTypeScript SDKを使った最小限のサーバー実装を示す。
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
import { z } from "zod"
const server = new McpServer({
name: "weather-server",
version: "1.0.0"
})
// ツールを定義
server.tool(
"get_weather",
"指定した都市の天気を取得",
{ city: z.string() },
async ({ city }) => {
const res = await fetch(
`https://api.weather.example.com/${city}`
)
const data = await res.json()
return {
content: [{
type: "text",
text: `${city}: ${data.temp}°C, ${data.condition}`
}]
}
}
)
// サーバーを起動
const transport = new StdioServerTransport()
await server.connect(transport)
利用可能なSDKは以下の通りだ。
| 言語 | SDK | 成熟度 |
|---|---|---|
| TypeScript | @modelcontextprotocol/sdk | 公式・最も成熟 |
| Python | mcp (PyPI) | 公式・安定 |
| Kotlin | mcp-kotlin | 公式 |
| Go | mcp-go | コミュニティ |
| C# | mcp-dotnet | 公式 |
| Ruby | mcp-ruby | コミュニティ |
主要MCPサーバー一覧(2026年3月時点)
2026年3月現在、500以上のMCPサーバーが公開されている。主要なカテゴリと代表的なサーバーを整理する。
| カテゴリ | サーバー名 | 機能 |
|---|---|---|
| 開発ツール | GitHub MCP | Issue/PR/リポジトリ操作 |
| 開発ツール | Linear MCP | プロジェクト管理・Issue追跡 |
| コミュニケーション | Slack MCP | チャンネル検索・メッセージ送信 |
| コミュニケーション | Gmail MCP | メール検索・送信・ドラフト |
| データベース | PostgreSQL MCP | SQLクエリ実行・スキーマ参照 |
| データベース | Supabase MCP | DB操作・認証・ストレージ |
| ファイル | Google Drive MCP | ファイル検索・作成・共有 |
| ファイル | Filesystem MCP | ローカルファイル読み書き |
| 検索 | Brave Search MCP | Web検索 |
| カレンダー | Google Calendar MCP | 予定作成・空き時間検索 |
| デザイン | Figma MCP | デザインデータ取得・コンポーネント情報 |
| モニタリング | Sentry MCP | エラー取得・パフォーマンス分析 |
MCPの設定方法
MCPサーバーをClaude Desktopで使う場合、設定ファイルにサーバーの起動コマンドを記述する。
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx..."
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/mydb"
}
}
}
}
Claude Codeでは claude mcp add コマンドで追加できる。
# Claude CodeにMCPサーバーを追加
claude mcp add github -- npx -y @modelcontextprotocol/server-github
# 追加済みサーバーの一覧
claude mcp list
2026年のMCPロードマップ
2026年のMCP公式ロードマップでは、以下の4つの重点領域が示されている。
2026年 MCPロードマップ
Q1-Q2: トランスポート拡張
- Streamable HTTPの進化
- ステートレスなマルチインスタンス対応
- セッションの作成・再開・マイグレーション
Q2-Q3: エージェント間通信
- Agent-to-Agent Protocol
- エージェント間のコンテキスト共有
- マルチエージェント協調の標準化
Q3-Q4: エンタープライズ対応
- 監査ログ・コンプライアンス
- SSO統合認証
- ゲートウェイ・ポリシー管理
通年: ガバナンスの成熟
- 仕様策定プロセスの透明化
- SEP(仕様拡張提案)の優先順位付け
- コミュニティ参画の拡大
特にエージェント間通信の標準化は、マルチエージェントシステムの普及に大きな影響を与える。現状では各フレームワーク(LangGraph, CrewAI, AutoGenなど)が独自のエージェント連携方式を持っているが、MCPがこれを統一する可能性がある。
MCPの制限と注意点
MCPは強力なプロトコルだが、導入時に知っておくべき制限もある。
| 制限事項 | 詳細 | 対処法 |
|---|---|---|
| セキュリティ | MCPサーバーはローカルプロセスとして動作し、環境変数でクレデンシャルを管理 | 本番環境では認証ゲートウェイを配置 |
| パフォーマンス | stdio通信のオーバーヘッド | 高頻度呼び出しにはStreamable HTTPトランスポートを検討 |
| デバッグ | サーバーのログが標準出力と混在しやすい | MCP Inspectorツールを活用 |
| 互換性 | サーバーの品質はまちまち | 公式・Anthropic認定サーバーを優先 |
まとめ:MCPが変えるAI開発の未来
MCPは単なるAPIラッパーではない。AIと外部世界をつなぐ「共通言語」として、開発者がAIアプリケーションを構築する方法を根本から変えようとしている。
2026年3月時点で、MCPはすでにClaude Desktop、Claude Code、Cursor、VS Code、Zed、Windsurf、Clineなど主要な開発ツールに採用されている。Google DeepMindやOpenAIもMCPのサポートを表明しており、事実上の業界標準になりつつある。
AIエージェントを開発するエンジニアにとって、MCPの理解は今後避けて通れない。まずは公式ドキュメントを読み、一つのMCPサーバーを動かしてみることから始めてほしい。
出典・参考
- Model Context Protocol 公式ドキュメント(modelcontextprotocol.io)
- Anthropic「Introducing the Model Context Protocol」(2024年11月)
- Model Context Protocol Blog「The 2026 MCP Roadmap」
- GitHub modelcontextprotocol/modelcontextprotocol(仕様リポジトリ)
- Model Context Protocol Wikipedia
導入5ステップ
ステップ1: SDKをインストールする
開発言語に合わせて公式SDKを導入する。TypeScriptなら@modelcontextprotocol/sdk、Pythonならmcpをパッケージマネージャでインストールする。zodなどの型定義ライブラリも併せて用意しておく。
ステップ2: 最小構成のMCPサーバーを書く
McpServerを初期化し、server.tool()でツールを1つ定義する。引数スキーマをzodで記述し、非同期ハンドラで実際の処理を書く。最後にStdioServerTransportで起動する。数十行で完成する。
ステップ3: Claude Desktopに登録する
設定ファイルclaude_desktop_config.jsonのmcpServersに、作成したサーバーの起動コマンドと環境変数を記述する。GitHub MCPならnpx -y @modelcontextprotocol/server-githubとGITHUB_PERSONAL_ACCESS_TOKENを設定する。
ステップ4: Claude Codeで動作確認する
claude mcp addコマンドでサーバーを追加し、claude mcp listで登録状態を確認する。Resources(参照データ)、Tools(実行アクション)、Prompts(テンプレート)が期待どおり呼び出せるかテストする。
ステップ5: 既存MCPサーバーを組み合わせる
500以上公開されているMCPサーバーから、GitHub、Slack、PostgreSQL、Google Driveなど必要なものを追加する。デバッグはMCP Inspectorツールを使い、本番環境では認証ゲートウェイ経由で運用する。
よくある質問(FAQ)
Q. MCPを使うと開発者には何がうれしいですか?
一度MCPサーバーを書けば、Claude・GPT・Geminiなど複数のAIで共通利用できます。 AIごとに独自APIを実装する必要がなくなり、M×N問題がM+Nに圧縮されます。 社内ツールやデータベースをAIに繋ぐハードルが劇的に下がります。
Q. MCPサーバーの構築はどのくらい難しいですか?
公式SDKを使えば、最小構成のサーバーは数十行のコードで動きます。 TypeScript SDKやPython SDKが安定しており、zodなどの型定義ライブラリと組み合わせて記述します。 StdioServerTransportで起動すれば、すぐにClaude Desktopなどから呼び出せます。
Q. ResourcesとToolsとPromptsの違いは何ですか?
ResourcesはRead-onlyのデータで、ファイルやDB行などをコンテキストに注入します。 ToolsはAIが実行するアクションで、引数を渡して結果を受け取る関数呼び出しに相当します。 Promptsは再利用可能なテンプレートで、特定ワークフローを標準化するために使います。
Q. MCPは今後どのように広がっていきますか?
2026年時点でインストール数は9,700万を突破し、事実上の業界標準となりつつあります。 OpenAI、Google、Microsoft、MetaなどもMCP対応ツールを出荷し始めています。 IDE・エンタープライズソフトのネイティブサポートが進み、AIエージェント実用化の基盤になります。

