Mastra と Amazon Athena のデータを CData Connect AI MCP サーバーで統合
Mastra は、インテリジェントで構成可能な AI エージェントを構築する開発者やエンタープライズチーム向けに設計されています。そのモジュラーフレームワークと宣言的なアーキテクチャにより、エージェントのオーケストレーション、LLM との統合、データ駆動ワークフローの自動化が簡単になります。しかし、エージェントがローカルメモリや事前定義された API を超えたデータを操作する必要がある場合、多くの実装はカスタムミドルウェアやスケジュールされた同期に依存して、外部システムからローカルストアにデータをコピーします。このアプローチは複雑さを増し、メンテナンスの負担を増加させ、レイテンシを導入し、エージェントのリアルタイムの可能性を制限します。
CData Connect AI は、300 以上のエンタープライズアプリケーション、データベース、ERP、分析プラットフォームへのライブな直接接続でこのギャップを埋めます。CData のリモート Model Context Protocol(MCP)サーバーを通じて、Mastra エージェントはレプリケーションなしにリアルタイムデータをセキュアにクエリ、読み取り、操作できます。結果として、グラウンドされたレスポンス、高速な推論、システム全体での自動化された意思決定が実現し、ガバナンスが強化され、可動部品が削減されます。
この記事では、CData Connect AI MCP 接続を設定し、Mastra Studio で MCP サーバーを登録し、リアルタイムの Amazon Athena データをクエリするエージェントを構築するために必要な手順を説明します。
Amazon Athena データ連携について
CData は、Amazon Athena のライブデータにアクセスし、統合するための最も簡単な方法を提供します。お客様は CData の接続機能を以下の目的で使用しています:
- IAM 認証情報、アクセスキー、インスタンスプロファイルなど、さまざまな方法で安全に認証できます。多様なセキュリティニーズに対応し、認証プロセスを簡素化します。
- 詳細なエラーメッセージにより、セットアップを効率化し、問題を迅速に解決できます。
- サーバーサイドでのクエリ実行により、パフォーマンスを向上させ、クライアントリソースへの負荷を最小限に抑えます。
ユーザーは、Tableau、Power BI、Excel などの分析ツールと Athena を統合し、お気に入りのツールから詳細な分析を行うことができます。
CData を使用した Amazon Athena のユニークなユースケースについては、ブログ記事をご覧ください:https://jp.cdata.com/blog/amazon-athena-use-cases
はじめに
前提条件
始める前に、以下を準備してください:
- CData Connect AI アカウント
- Node.js 18 以上と npm がインストールされていること
- 動作する Mastra プロジェクト(npm create mastra@latest で作成)
- Amazon Athena へのアクセス
認証情報チェックリスト
接続に必要な以下の認証情報を準備してください:
- USERNAME: CData のメールログイン
- PAT: Connect AI で Settings にアクセスし Access Tokens をクリック(一度だけコピー可能)
- MCP_BASE_URL: https://mcp.cloud.cdata.com/mcp
ステップ1:Mastra 用の Amazon Athena 接続を設定
Mastra から Amazon Athena への接続は、CData Connect AI のリモート MCP を通じて実現できます。Mastra からAmazon Athena のデータを操作するには、まず CData Connect AI で Amazon Athena 接続を作成・設定します。
- Connect AI にログインして「Sources」をクリック、次に「 Add Connection」をクリック
- 接続を追加パネルから「Amazon Athena」を選択
-
Amazon Athena に接続するために必要な認証プロパティを入力します。
Amazon Athena 接続プロパティの取得・設定方法
それでは、早速Athena に接続していきましょう。
データに接続するには、以下の接続パラメータを指定します。
- DataSource:接続するAmazon Athena データソース。
- Database:接続するAmazon Athena データベース。
- AWSRegion:Amazon Athena データがホストされているリージョン。
- S3StagingDirectory:クエリの結果を保存するS3 フォルダ。
Database またはDataSource が設定されていない場合、CData 製品はAmazon Athena の利用可能なデータソースからすべてのデータベースのリスト化を試みます。そのため、両方のプロパティを設定することでCData 製品のパフォーマンスが向上します。
Amazon Athena の認証設定
CData 製品は幅広い認証オプションに対応しています。詳しくはヘルプドキュメントの「はじめに」を参照してみてください。
AWS キーを取得
IAM ユーザーの認証情報を取得するには、以下のステップお試しください。
- IAM コンソールにサインインします。
- ナビゲーションペインでユーザーを選択します。
- ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してからセキュリティ認証情報タブに移動します。
AWS ルートアカウントの資格情報を取得するには、以下のステップをお試しください。
- ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
- アカウント名または番号を選択します。
- 表示されたメニューでMy Security Credentials を選択します。
- ルートアカウントのアクセスキーを管理または作成するには、Continue to Security Credentials をクリックし、[Access Keys]セクションを展開します。
その他の認証オプションについては、ヘルプドキュメントの「Amazon Athena への認証」を参照してください。
- 「Save & Test」をクリック
-
Amazon Athena 接続の追加ページで「Permissions」タブに移動し、ユーザーベースの権限を更新します。
パーソナルアクセストークンの追加
パーソナルアクセストークン(PAT)は、Mastra から Connect AI への接続を認証するために使用されます。アクセスを細かく管理するため、サービスごとに個別の PAT を作成することをお勧めします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして設定ページを開きます。
- 設定ページで「Access Tokens」セクションに移動し、「 Create PAT」をクリックします。
-
PAT に名前を付けて「Create」をクリックします。
- パーソナルアクセストークンは作成時にのみ表示されるため、必ずコピーして今後の使用に備えて安全に保管してください。
接続が設定され PAT が生成されたので、Mastra からAmazon Athena のデータに接続する準備が整いました。
ステップ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-... CDATA_CONNECT_AI_USER=your@email.com 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 に 300 以上の外部システムへのライブでセキュアなアクセスを提供する方法をぜひご確認ください。