MastraとConnect AI MCPサーバーでXML を統合
Mastra は、インテリジェントで構成可能な AI エージェントを構築する開発者やエンタープライズチーム向けに設計されています。そのモジュラーフレームワークと宣言的なアーキテクチャにより、エージェントのオーケストレーション、LLM との統合、データ駆動ワークフローの自動化が簡単になります。しかし、エージェントがローカルメモリや事前定義された API を超えたデータを操作する必要がある場合、多くの実装はカスタムミドルウェアやスケジュールされた同期に依存して、外部システムからローカルストアにデータをコピーします。このアプローチは複雑さを増し、メンテナンスの負担を増加させ、レイテンシを導入し、エージェントのリアルタイムの可能性を制限します。
CData Connect AI は、XMLを含む数百のデータソースをMCP経由でAIツールにつなげるクラウドサービスです。接続情報はConnect AI側で一元管理されるため、Mastra エージェントにXMLの認証情報を直接渡すことなくセキュアに連携できます。
この記事では、CData Connect AI MCP 接続を設定し、Mastra Studio で MCP サーバーを登録し、リアルタイムの XML データをクエリするエージェントを構築するために必要な手順を説明します。
前提条件
始める前に、以下を準備してください:
- CData Connect AI アカウント
- Node.js 18 以上と npm がインストールされていること
- 動作する Mastra プロジェクト(npm create mastra@latest で作成)
- XML へのアクセス
認証情報チェックリスト
接続に必要な以下の認証情報を準備してください:
- USERNAME: CData のメールログイン
- PAT: Connect AI で Settings にアクセスし Access Tokens をクリック(一度だけコピー可能)
- MCP_BASE_URL: https://mcp.cloud.cdata.com/mcp
ステップ1:Mastra 用の XML 接続を設定
Mastra から XML への接続は、CData Connect AI のリモート MCP を通じて実現できます。Mastra からXML のデータを操作するには、まず CData Connect AI で XML 接続を作成・設定します。
- Connect AI にログインして「Sources」をクリック、次に「 Add Connection」をクリック
- 接続を追加パネルから「XML」を選択
-
XML に接続するために必要な認証プロパティを入力します。
データソースを認証するには、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。 データプロバイダーはXML API を双方向データベーステーブルとしてモデル化し、XML ファイルをread-only ビュー(ローカルファイル、人気のクラウドサービスに格納されたファイル、およびFTP サーバー)としてモデル化します。 HTTP Basic、Digest、NTLM、OAuth、およびFTP を含む主な認証スキームはサポートされています。認証のガイドについては、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。
URI と認証値を設定した後で、DataModel を設定することでデータの構造によりよくマッチするようデータの抽象化を調整できます。
DataModel プロパティはデータがどのようにテーブルとして抽象化されるかを制御するプロパティであり、次の基本的な設定を調整します。
- Document(デフォルト):XML データのトップレベルのドキュメントビューをモデル化します。データプロバイダーは入れ子化した要素をデータの集約値として返します。
- FlattenedDocuments:入れ子化したドキュメントとその親を結合して単一のテーブルに入力します。
- Relational:個別の関連テーブルを階層化されたデータから返します。テーブルは主キーと、親ドキュメントにリンクする外部キーを含みます。
リレーショナルな抽象化の設定についての詳細は、「XML データのモデリング」セクションを参照してください。次の例で使用されているサンプルデータも存在します。 このデータには、人名、その人たちが所有する車、車に施されたさまざまなメンテナンスに関する情報が含まれます。
- 「Save & Test」をクリック
-
XML 接続の追加ページで「Permissions」タブに移動し、ユーザーベースの権限を更新します。
パーソナルアクセストークンの追加
パーソナルアクセストークン(PAT)は、Mastra から Connect AI への接続を認証するために使用されます。アクセスを細かく管理するため、サービスごとに個別の PAT を作成することをお勧めします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして設定ページを開きます。
- 設定ページで「Access Tokens」セクションに移動し、「 Create PAT」をクリックします。
-
PAT に名前を付けて「Create」をクリックします。
- パーソナルアクセストークンは作成時にのみ表示されるため、必ずコピーして今後の使用に備えて安全に保管してください。
接続が設定され PAT が生成されたので、Mastra からXML のデータに接続する準備が整いました。
ステップ2:Mastra プロジェクトをセットアップ
- ターミナルを開き、目的のフォルダに移動します
- 新しいプロジェクトを作成します:
npm create mastra@latest - VS Code でフォルダを開きます
- 必要な Mastra 依存関係をインストールします:
npm install @mastra/core @mastra/libsql @mastra/memory - 次に MCP 統合パッケージを個別にインストールします:
npm install @mastra/mcp
ステップ3:環境変数を設定
プロジェクトルートに以下のキーを含む .env ファイルを作成します:
OPENAI_API_KEY=sk-...
[email protected]
CDATA_CONNECT_AI_PASSWORD=your_PAT
変更を保存した後、開発サーバーを再起動します:
npm run dev
ステップ4:CData Connect AI エージェントを追加
以下のコードで src/mastra/agents/connect-ai-agent.ts ファイルを作成します:
import { Agent } from "@mastra/core/agent";
import { Memory } from "@mastra/memory";
import { LibSQLStore } from "@mastra/libsql";
import { MCPClient } from "@mastra/mcp";
const mcpClient = new MCPClient({
servers: {
cdataConnectAI: {
url: new URL("https://connect.cdata.com/mcp/"),
requestInit: {
headers: {
Authorization: `Basic ${Buffer.from(
`${process.env.CDATA_CONNECT_AI_USER}:${process.env.CDATA_CONNECT_AI_PASSWORD}`
).toString("base64")}`,
},
},
},
},
});
export const connectAIAgent = new Agent({
name: "Connect AI Agent",
instructions: "You are a data exploration and analysis assistant with access to CData Connect AI.",
model: "openai/gpt-4o-mini",
tools: await mcpClient.getTools(),
memory: new Memory({
storage: new LibSQLStore({ url: "file:../mastra.db" }),
}),
});
ステップ5:index.ts を更新してエージェントを登録
src/mastra/index.ts の内容を以下に置き換えます:
import { Mastra } from "@mastra/core/mastra";
import { PinoLogger } from "@mastra/loggers";
import { LibSQLStore } from "@mastra/libsql";
import { connectAIAgent } from "./agents/connect-ai-agent.js";
export const mastra = new Mastra({
agents: { connectAIAgent },
storage: new LibSQLStore({ url: "file:../mastra.db" }),
logger: new PinoLogger({ name: "Mastra", level: "info" }),
observability: { default: { enabled: true } },
});
ステップ6:接続を実行して確認
Mastra サーバーを起動します:
npm run dev
ステップ7:Mastra Studio でライブクエリを実行
Mastra Studio でチャットインターフェースを開き、以下のサンプルプロンプトを入力します:
接続されたデータソースから利用可能なカタログを一覧表示してください。
Mastra と CData でリアルタイムのデータ対応エージェントを構築
Mastra と CData Connect AI を組み合わせることで、エージェントがエンタープライズデータにライブアクセスし、同期パイプラインや手動の統合ロジックなしにインテリジェントに動作する強力な AI 駆動ワークフローが実現できます。
無料トライアルを開始して、CData が Mastra に 数百種類の外部システムへのライブでセキュアなアクセスを提供する方法をぜひご確認ください。