
Model Context Protocol(MCP)入門:AIと外部ツールを繋ぐ新標準プロトコル
AIエージェント時代の接続基盤「MCP」。仕組みの理解からサーバー構築、実践的な連携パターンまで、開発者向けに完全解説します。
MCPとは何か
Model Context Protocol(MCP)は、Anthropicが策定したAIモデルと外部データソース・ツールを接続するためのオープンプロトコルです。2025年にLinux Foundationに寄贈され、業界標準として広まりつつあります。
簡単に言えば、MCPは「AIが外部の世界と対話するための共通言語」です。
MCPが解決する問題
従来、AIにデータベースやAPIを使わせるには、個別にカスタム統合を作る必要がありました。MCPはこの問題を標準化し、一度MCPサーバーを作れば、対応するあらゆるAIクライアントから利用可能にします。
AIクライアント(Claude等)
↕ MCP Protocol
MCPサーバー(ツール・データソース)
MCPの基本構造
MCPは3つの要素で構成されます。
1. MCPホスト(クライアント)
AIアプリケーション側。Claude Desktop、Claude Codeなどが該当します。
2. MCPサーバー
外部ツールやデータを提供する側。ファイルシステム、データベース、API等を公開します。
3. トランスポート層
ホストとサーバー間の通信。標準入出力(stdio)またはHTTP(SSE)で行います。
MCPサーバーの3つの機能
MCPサーバーは以下の3種類の機能を提供できます。
Tools(ツール)
AIが実行できるアクション。例:「ファイルを検索」「データベースにクエリ」「メール送信」
Resources(リソース)
AIが読み取れるデータ。例:「設定ファイル」「ドキュメント」「API応答」
Prompts(プロンプト)
再利用可能なプロンプトテンプレート。例:「コードレビューテンプレート」
実践:シンプルなMCPサーバーを作る
天気情報を提供するMCPサーバーを例に、基本的な構築方法を紹介します。
プロジェクトの初期化
mkdir weather-mcp-server
cd weather-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk
サーバーの実装
// index.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new McpServer({
name: "weather-server",
version: "1.0.0",
});
// ツールの定義
server.tool(
"get_weather",
"指定した都市の天気を取得します",
{
city: { type: "string", description: "都市名(例:Tokyo)" }
},
async ({ city }) => {
// 実際にはAPIを呼び出す
const weather = await fetchWeather(city);
return {
content: [
{ type: "text", text: `${city}の天気: ${weather.condition}, ${weather.temp}°C` }
],
};
}
);
// サーバーの起動
const transport = new StdioServerTransport();
await server.connect(transport);
Claude Desktopでの設定
claude_desktop_config.jsonに以下を追加します。
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["path/to/weather-mcp-server/index.js"]
}
}
}
設定後、Claude Desktopを再起動すると「天気を調べて」と指示するだけで天気情報を取得できるようになります。
公式MCPサーバー一覧
Anthropicや公式が公開している主要なMCPサーバーです。
| サーバー | 機能 |
|---------|------|
| @modelcontextprotocol/server-filesystem | ファイルの読み書き |
| @modelcontextprotocol/server-github | GitHub操作 |
| @modelcontextprotocol/server-postgres | PostgreSQLクエリ |
| @modelcontextprotocol/server-slack | Slackメッセージ送受信 |
| @modelcontextprotocol/server-puppeteer | ブラウザ操作 |
活用パターン
パターン1:データベース連携
社内のデータベースにMCPサーバーを立て、AIが自然言語でデータを検索・集計。
パターン2:ドキュメント検索
社内Wikiやドキュメントをリソースとして公開し、AIが質問に答える。
パターン3:ワークフロー自動化
GitHub + Slack + データベースの複数MCPサーバーを組み合わせ、「Issueを作成してSlackに通知」のようなマルチステップタスクを自動化。
セキュリティの考慮事項
MCPサーバーは強力な機能を提供する反面、セキュリティにも配慮が必要です。
- 認証情報の管理:APIキーは環境変数で管理し、設定ファイルにハードコードしない
- 権限の最小化:MCPサーバーには必要最小限の権限のみ付与
- ローカル実行:MCPサーバーはローカルマシンで動作するため、データが外部に送信されることはない
- 監査ログ:重要な操作にはログを記録する仕組みを組み込む
まとめ
MCPは「AIにツールを使わせる」ための標準プロトコルとして、急速に普及しています。
- 一度作ったMCPサーバーは、Claude Desktop、Claude Code、その他MCP対応クライアントから利用可能
- 公式SDKを使えば、数十行のコードでMCPサーバーを構築できる
- ファイル操作、API連携、データベースクエリなど、あらゆる外部ツールをAIに統合できる
AIエージェント時代の到来に備え、MCPの理解は開発者にとって必須のスキルになりつつあります。まずは公式のMCPサーバーを試してみることから始めてみましょう。



