MCPクライアントの作成
🔗 MCP クライアントの作成
このレッスンでは、Section 3で作成したMCPサーバーと通信するためのMCPクライアントを実装します。
MCPクライアントは、AI AgentからMCPサーバーに接続し、ツールのリストを取得する役割を担います。
📝 実装するファイル
src/lib/mastra/mcp/client.tsファイルを作成し、以下のコードを記述します。
まず、ファイルを作成します:
cd jpyc-ai-agent
mkdir -p src/lib/mastra/mcp
touch src/lib/mastra/mcp/client.ts
以下のコードを記述します:
import { MCPClient } from "@mastra/mcp";
/**
* JPYC MCPサーバーを呼び出すためのMCPクライアント
*/
export const jpycMCPClient = new MCPClient({
servers: {
// JPYC MCPサーバーのURLを設定する(MCPサーバー事前に起動しておくこと)
"jpyc:mcp-server": {
url: new URL(
process.env.JPYC_MCP_SERVER_URL || "http://localhost:3001/sse",
),
},
},
});
💡 コードの解説
このファイルは非常にシンプルですが、重要な役割を果たします。
主要なポイントを見ていきましょう。
1. MCPClientのインポート
import { MCPClient } from "@mastra/mcp";
MastraのMCPクライアントをインポートします。
このクライアントは、MCPプロトコルを使用してサーバーと通信します。
2. MCPClientインスタンスの作成
export const jpycMCPClient = new MCPClient({
servers: {
"jpyc:mcp-server": {
url: new URL(
process.env.JPYC_MCP_SERVER_URL || "http://localhost:3001/sse",
),
},
},
});
MCPClientは、複数のMCPサーバーに接続できるように設計されています。
serversオブジェクトで、各サーバーの名前とURLを定義します。
主要なパラメータ:
- サーバー名:
"jpyc:mcp-server"- MCPサーバーを識別するための名前 - url: MCPサーバーのSSEエンドポイントURL
3. 環境変数の使用
process.env.JPYC_MCP_SERVER_URL || "http://localhost:3001/sse"
環境変数JPYC_MCP_SERVER_URLが設定されている場合はそれを使用し、設定されていない場合はデフォルトのhttp://localhost:3001/sseを使用します。
これにより、本番環境と開発環境で異なるMCPサーバーURLを使い分けることができます。
4. SSEエンドポイント
"http://localhost:3001/sse"
Section 3で作成したMCPサーバーのSSEエンドポイントに接続します。
このエンドポイントは、サーバーからクライアントへのイベント送信に使用されます。