はじめに
モデル コンテキスト プロトコル (MCP) — Anthropic によって開発された — は、エージェントが一貫した方法であらゆるデータ ソースまたはツールに接続するのに役立つオープン スタンダードです。ツールごとにカスタム統合を作成する代わりに、MCP サーバーを一度実装すれば、すべての MCP 互換クライアントがそれを使用できるようになります。
1. MCP アーキテクチャ
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ MCP Client │◄───►│ MCP Server │◄───►│ Data Source │
│ (Agent/IDE) │ │ (Your code) │ │ (DB/API/FS) │
└──────────────┘ └──────────────┘ └──────────────┘
2. MCP サーバーを構築する
from mcp.server import Server
from mcp.types import Tool
server = Server("my-tools")
@server.tool("query_database")
async def query_db(sql: str) -> str:
"""Execute read-only SQL query."""
result = await db.execute(sql)
return json.dumps(result)
@server.tool("search_github")
async def search_github(query: str, repo: str) -> str:
"""Search code in a GitHub repository."""
...
概要
- MCP = AI 用 USB-C — ユニバーサル接続規格
- クライアント/サーバー アーキテクチャ: エージェントはクライアント、ツールはサーバー
- ツールの検出: エージェントはどのツールが利用可能であるかを認識します。
- エコシステム: 1000 以上の MCP サーバーが利用可能
演習
- SQLite データベース用の MCP サーバーを構築する
- GitHub API 用の MCP サーバーの構築 (リポジトリの検索、ファイルの読み取り)
- エージェントを 3 つ以上の MCP サーバーに同時に接続する
- カスタム ツールと MCP ツールの比較: 開発経験