Mastra と Salesforce のデータを 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 サーバーを登録し、リアルタイムの Salesforce データをクエリするエージェントを構築するために必要な手順を説明します。
Salesforce データ連携について
CData を使用すれば、Salesforce のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:
- カスタムエンティティやフィールドにアクセスでき、Salesforce ユーザーは Salesforce のすべてにアクセスできます。
- アトミックおよびバッチ更新操作を作成できます。
- Salesforce データの読み取り、書き込み、更新、削除ができます。
- SOAP API バージョン 30.0 のサポートにより、最新の Salesforce 機能を活用できます。
- SOQL サポートによる複雑なクエリの Salesforce サーバーへのプッシュダウンにより、パフォーマンスの向上を実現できます。
- SQL ストアドプロシージャを使用して、ジョブの作成・取得・中止・削除、添付ファイルやドキュメントのアップロード・ダウンロードなどのアクションを実行できます。
ユーザーは、Salesforce データを以下と頻繁に統合しています:
- 他の ERP、マーケティングオートメーション、HCM など。
- Power BI、Tableau、Looker などのお気に入りのデータツール。
- データベースやデータウェアハウス。
CData ソリューションが Salesforce とどのように連携するかについての詳細は、Salesforce 統合ページをご覧ください。
はじめに
前提条件
始める前に、以下を準備してください:
- CData Connect AI アカウント
- Node.js 18 以上と npm がインストールされていること
- 動作する Mastra プロジェクト(npm create mastra@latest で作成)
- Salesforce へのアクセス
認証情報チェックリスト
接続に必要な以下の認証情報を準備してください:
- USERNAME: CData のメールログイン
- PAT: Connect AI で Settings にアクセスし Access Tokens をクリック(一度だけコピー可能)
- MCP_BASE_URL: https://mcp.cloud.cdata.com/mcp
ステップ1:Mastra 用の Salesforce 接続を設定
Mastra から Salesforce への接続は、CData Connect AI のリモート MCP を通じて実現できます。Mastra からSalesforce のデータを操作するには、まず CData Connect AI で Salesforce 接続を作成・設定します。
- Connect AI にログインして「Sources」をクリック、次に「 Add Connection」をクリック
- 接続を追加パネルから「Salesforce」を選択
-
Salesforce に接続するために必要な認証プロパティを入力します。
Salesforce 接続プロパティの設定方法
埋め込みOAuth(UI でのログイン)による接続設定
それでは、Salesforce への接続について説明していきましょう。最も簡単な方法として、Salesforce にログインする際と同様にUI 上からログインするだけで接続設定が完了します(埋め込みOAuth)。この方法をご利用になる場合は、「Salesforce への接続」をクリックしてください。
標準認証の設定
埋め込みOAuth 以外の方法を利用する場合、以下の3つの認証方式をご利用いただけます。標準的な認証方式では、以下の情報が必要となります。
- ユーザー名
- パスワード
- セキュリティトークン
セキュリティトークンの取得方法については、セキュリティトークン取得手順をご確認ください。
OAuth 認証の設定
ユーザー名とパスワードによる認証がご利用いただけない(避けたい)場合は、OAuth 認証をお使いいただけます。
SSO(シングルサインオン)の設定
最後に、IDプロバイダー経由でのシングルサインオンをご利用になる場合は、以下のプロパティを設定してください。
- SSOProperties
- SSOLoginUrl
- TokenUrl
より詳細な設定手順については、ヘルプドキュメントの「はじめに」セクションをご確認ください。
- 「Save & Test」をクリック
-
Salesforce 接続の追加ページで「Permissions」タブに移動し、ユーザーベースの権限を更新します。
パーソナルアクセストークンの追加
パーソナルアクセストークン(PAT)は、Mastra から Connect AI への接続を認証するために使用されます。アクセスを細かく管理するため、サービスごとに個別の PAT を作成することをお勧めします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして設定ページを開きます。
- 設定ページで「Access Tokens」セクションに移動し、「 Create PAT」をクリックします。
-
PAT に名前を付けて「Create」をクリックします。
- パーソナルアクセストークンは作成時にのみ表示されるため、必ずコピーして今後の使用に備えて安全に保管してください。
接続が設定され PAT が生成されたので、Mastra からSalesforce のデータに接続する準備が整いました。
ステップ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 以上の外部システムへのライブでセキュアなアクセスを提供する方法をぜひご確認ください。