MastraとConnect AI MCPサーバーでAnaplan を統合
Mastra は、インテリジェントで構成可能な AI エージェントを構築する開発者やエンタープライズチーム向けに設計されています。そのモジュラーフレームワークと宣言的なアーキテクチャにより、エージェントのオーケストレーション、LLM との統合、データ駆動ワークフローの自動化が簡単になります。しかし、エージェントがローカルメモリや事前定義された API を超えたデータを操作する必要がある場合、多くの実装はカスタムミドルウェアやスケジュールされた同期に依存して、外部システムからローカルストアにデータをコピーします。このアプローチは複雑さを増し、メンテナンスの負担を増加させ、レイテンシを導入し、エージェントのリアルタイムの可能性を制限します。
CData Connect AI は、Anaplanを含む数百のデータソースをMCP経由でAIツールにつなげるクラウドサービスです。接続情報はConnect AI側で一元管理されるため、Mastra エージェントにAnaplanの認証情報を直接渡すことなくセキュアに連携できます。
この記事では、CData Connect AI MCP 接続を設定し、Mastra Studio で MCP サーバーを登録し、リアルタイムの Anaplan データをクエリするエージェントを構築するために必要な手順を説明します。
前提条件
始める前に、以下を準備してください:
- CData Connect AI アカウント
- Node.js 18 以上と npm がインストールされていること
- 動作する Mastra プロジェクト(npm create mastra@latest で作成)
- Anaplan へのアクセス
認証情報チェックリスト
接続に必要な以下の認証情報を準備してください:
- USERNAME: CData のメールログイン
- PAT: Connect AI で Settings にアクセスし Access Tokens をクリック(一度だけコピー可能)
- MCP_BASE_URL: https://mcp.cloud.cdata.com/mcp
ステップ1:Mastra 用の Anaplan 接続を設定
Mastra から Anaplan への接続は、CData Connect AI のリモート MCP を通じて実現できます。Mastra からAnaplan のデータを操作するには、まず CData Connect AI で Anaplan 接続を作成・設定します。
- Connect AI にログインして「Sources」をクリック、次に「 Add Connection」をクリック
- 接続を追加パネルから「Anaplan」を選択
-
Anaplan に接続するために必要な認証プロパティを入力します。
Anaplan への認証
ドライバーはBasic、証明書、またはOAuth による認証をサポートしています。いずれの場合も、Region をAnaplan アカウントデータがホストされているリージョン(例:US1、これがデフォルト)に設定してください。
Basic 認証の使用
AuthScheme をBasic に設定し、Anaplan のUser とPassword を入力します。ワークスペースがシングルサインオン(SSO)を使用している場合は、Basic 認証を使用するために Exception User として割り当てられている必要があります。
証明書認証の使用
AuthScheme をCertificate に設定し、Certificate、CertificateType、PrivateKey プロパティを入力します(どちらかが暗号化されている場合はCertificatePassword / PrivateKeyPassword も設定してください)。証明書は、Anaplan テナント管理者に登録されたCA 発行のX.509 証明書である必要があります。
OAuth 認証の使用
Anaplan でカスタムOAuth アプリケーションを登録し、以下のプロパティを設定します:
- OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
- CallbackURL:アプリケーションの登録時に定義したリダイレクトURI。
- InitiateOAuth:GETANDREFRESH に設定すると、ドライバーがOAuth トークンの交換と更新を自動的に管理します。
カスタムOAuth アプリの作成方法とOAuth の使用方法については、ヘルプドキュメントの「はじめに」の章を参照してください。
- 「Save & Test」をクリック
-
Anaplan 接続の追加ページで「Permissions」タブに移動し、ユーザーベースの権限を更新します。
パーソナルアクセストークンの追加
パーソナルアクセストークン(PAT)は、Mastra から Connect AI への接続を認証するために使用されます。アクセスを細かく管理するため、サービスごとに個別の PAT を作成することをお勧めします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして設定ページを開きます。
- 設定ページで「Access Tokens」セクションに移動し、「 Create PAT」をクリックします。
-
PAT に名前を付けて「Create」をクリックします。
- パーソナルアクセストークンは作成時にのみ表示されるため、必ずコピーして今後の使用に備えて安全に保管してください。
接続が設定され PAT が生成されたので、Mastra からAnaplan のデータに接続する準備が整いました。
ステップ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 に 数百種類の外部システムへのライブでセキュアなアクセスを提供する方法をぜひご確認ください。