MCP(Model Context Protocol)は、AnthropicがClaudeのために開発したオープンプロトコルで、AIアシスタントと外部ツール・データソースを安全に連携させる規格です。2025年の登場以来、AI開発者の間で急速に普及しており、2026年現在ではOpenAIやGoogleも対応を進めています。本記事ではMCPの基本概念から実装方法まで詳しく解説します。
MCPとは何か?なぜ重要なのか
MCP(Model Context Protocol)は、AIモデルが外部ツール・データベース・APIなどと統一された方法で連携できるようにするプロトコルです。従来はAIとツールの連携方法がバラバラでしたが、MCPにより標準化されました。
MCPが解決する問題
- 統一インターフェース:異なるAIモデルでも同じMCPサーバーが使える
- セキュリティ:AIに直接API Keyを渡さずに安全に連携
- 再利用性:一度作ったMCPサーバーを複数のAIアプリで再利用
- エコシステム:GitHub・Google Drive・Slack・Notionなど多数の公式MCPサーバーが公開済み
MCPのアーキテクチャを理解する
MCPの構成要素
- MCP Host:Claude Desktop・Cursor・カスタムAIアプリなど、MCPクライアントを含むAIアプリケーション
- MCP Client:HostとServerの間でプロトコルを処理するクライアントコンポーネント
- MCP Server:ファイルシステム・データベース・APIなどのリソースを提供する軽量サーバー
MCPが提供する3つの機能
- Resources:テキスト・ファイル・データベースレコードなどのデータをAIに提供
- Tools:AIが呼び出せる関数(APIコール・ファイル操作・計算など)
- Prompts:再利用可能なプロンプトテンプレート
MCPサーバーの作り方(Python/TypeScript)
Python SDKを使ったMCPサーバー作成
まずMCP Python SDKをインストールします。
pip install mcp
シンプルなMCPサーバーの例:
from mcp.server import Server
from mcp.server.models import InitializationOptions
import mcp.server.stdio
import mcp.types as types
app = Server("my-mcp-server")
@app.list_tools()
async def handle_list_tools() -> list[types.Tool]:
return [
types.Tool(
name="get_weather",
description="指定した都市の天気情報を取得します",
inputSchema={
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "都市名"
}
},
"required": ["city"]
}
)
]
@app.call_tool()
async def handle_call_tool(name: str, arguments: dict) -> list[types.TextContent]:
if name == "get_weather":
city = arguments.get("city")
# 実際のAPI呼び出し処理をここに実装
return [types.TextContent(type="text", text=f"{city}の天気: 晴れ、気温25℃")]
async def main():
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
await app.run(read_stream, write_stream, InitializationOptions())
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Claude Desktopにカスタムツールを追加する方法
作成したMCPサーバーをClaude Desktopで使うには、設定ファイルに追加します。
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"my-weather-server": {
"command": "python",
"args": ["/path/to/your/server.py"]
}
}
}
人気のMCPサーバー一覧
GitHubのMCP公式リポジトリには多数のリファレンス実装が公開されています:
| MCPサーバー | 機能 | 用途 |
|---|---|---|
| Filesystem | ローカルファイル操作 | ファイル読み書き・検索 |
| GitHub | GitHub API連携 | リポジトリ・Issue管理 |
| Google Drive | Googleドライブ操作 | ドキュメント・スプレッドシート |
| Slack | Slack連携 | メッセージ送受信・チャンネル操作 |
| SQLite | SQLiteデータベース | データの読み書き・クエリ |
| Puppeteer | ブラウザ自動化 | Webスクレイピング・スクリーンショット |
MCPを使ったAIエージェント開発のユースケース
- 社内情報検索エージェント:社内ドキュメント・Slack・Confluenceを横断検索
- コードレビューボット:GitHubのPRを自動でレビュー・コメント
- データ分析エージェント:DBのデータをSQLで取得して分析・可視化
- カスタマーサポートBot:問い合わせ対応・チケット管理を自動化
まとめ
MCPは、AIと外部ツールを標準化された方法で連携させる革命的なプロトコルです。Python SDKやTypeScript SDKを使えば、エンジニアであれば比較的簡単に独自のMCPサーバーを構築できます。
2026年現在、MCPのエコシステムは急速に拡大しており、AIエージェント開発において必須の知識となっています。本記事を参考に、ぜひカスタムAIエージェントの開発に挑戦してみてください。