ClaudeとCData Connect AIを連携する方法 — 1つのMCPで複数のデータソースを引く
CData Connect AIのコネクタをClaudeに追加し、Salesforceやスプレッドシートなど複数のデータソースを1つのリモートMCPから引く手順。ツールの権限分け、読み取り専用URL、Claude Codeでの登録まで。
CData Connect AIは、CRMやデータベース、スプレッドシートなど多数のデータソースを、1本のリモートMCPサーバーにまとめて見せるサービスです。Claudeにはコネクタとして用意されているので、設定ファイルを書かずに、サインインだけでつなげます。
個別のコネクタをデータソースごとに足していく方式とは発想が逆です。Claudeに追加するコネクタは1つだけで、中身の増減はCData側の「Sources」画面で行います。この記事では、接続手順と、束ねる設計だからこそ必要になる権限の絞り方を扱います。
CData Connect AIコネクタで何がつながるか
接続先のMCPサーバーのURLは https://mcp.cloud.cdata.com/mcp です。OAuthでブラウザからサインインして認可します。Claudeのコネクタ一覧では「CData Connect AI」の名前で探せます。
仕組みとしては、CData側に登録した「接続(connection)」がそのままデータソースの単位になります。Claudeは次のツールで中身をたどります。
| ツール | 役割 |
|---|---|
| getCatalogs | 役割利用できる接続の一覧を取る |
| getSchemas | 役割接続ごとのスキーマを取る |
| getTables | 役割スキーマ内のテーブルを取る |
| getColumns | 役割テーブルの列定義を取る |
| getInstructions | 役割データソース固有の書き方や制限事項を取る |
| getProcedures / getProcedureParameters | 役割ストアドプロシージャとその引数を取る |
| executeProcedure | 役割ストアドプロシージャを実行する |
| queryData | 役割SQLのSELECTを実行する |
| execute_insert | 役割行を挿入する |
| execute_update | 役割既存の行を更新する |
全部で11個です。読むためのツールが大半で、書き込みに使うのは execute_insert と execute_update の2つです。ストアドプロシージャを実行する executeProcedure は書き込みを伴う場合があるので、実質的には3つを警戒対象として扱うほうが安全です。
SQLは queryData に渡しますが、SELECTしか通りません。書き込みが別ツールに分かれているため、権限を操作の種類ごとに切れます。結果はCSV形式で返ります。
テーブル名は [カタログ].[スキーマ].[テーブル] の完全修飾名で指定する決まりです。ハイフンを含む名前は角括弧で囲む必要があります。Claudeに任せていれば getCatalogs から順にたどって組み立てますが、自分でSQLを書かせるときは覚えておくと、エラーの原因を読み解きやすくなります。
前提 — 先にCData側でデータソースを1つ作る
コネクタを追加しても、CDataのアカウントに接続が1つも無ければ、Claudeが読む対象がありません。先にConnect AIのアカウントを作り、少なくとも1つのデータソースを登録します。
接続までの流れ
- 1
アカウントを作る
Connect AIのサインアップページで無料アカウントを作ります。各プランの内容は料金ページに載っています。
- 2
データソースを足す
Connect AIの画面で「Sources」を開き、「+ Add Connection」から対象を選びます。保存時に「Save and Test」で疎通を確かめます。
- 3
Claudeにコネクタを追加する
Claudeの設定でコネクタを開き、「CData Connect AI」を探して接続します。
- 4
権限を確認して使い始める
ツールごとの許可を設定し、新しいチャットで質問します。
動作確認だけなら、CDataのクイックスタートが用意している公開のCSVファイルで足ります。認証が要らないので、Claudeとの接続が正しいかを、自分の業務データに触れる前に確かめられます。
プランには注意点があります。SnowflakeやGoogle BigQueryのように、追加画面で「Premium」と表示されるデータソースは、Growthプラン以上が必要です。無料アカウントで試して「この接続先が出てこない」と詰まったときは、まずこの区分を見ます。
Claudeにコネクタを追加する手順
CDataのClaude向けドキュメントに沿った流れです。画面の名称は変わることがあり、CData側も最新の手順はAnthropicのヘルプを見るよう案内しています。
- claude.aiにサインインする
- 左下のユーザー名から「Settings」を開く
- 「Connectors」を選び、右上の「Browse connectors」を押す
- 「CData Connect AI」を検索して選ぶ
- 「Connect」を押し、CDataのサインイン画面で認可する
- 必要なら「Configure」を押して、ツールごとの許可を決める
- 左のメニューから「New chat」で新しい会話を開く
認可が済むと、会話の中でClaudeがデータの取得手順を示しながら進めます。ツール設定によっては、実行の前にClaudeが許可を求めます。
最初の質問は、データそのものではなく見えている範囲の確認がおすすめです。たとえば次のように頼みます。
CData Connect AIで、見えているデータソースを一覧にしてクイックスタートによれば、このときClaudeは getCatalogs を呼び、登録済みの接続を返します。ここで想定した接続が出なければ、CData側の登録かアカウントを疑います。Claude側の問題を先に疑うと遠回りになります。
ツールの許可は3段階で決める
「Configure」では、MCPサーバーが提供するツールごとに「Always allow」「Needs approval」「Block」のいずれかを選べます。11個あるツールをどう割り振るかが、このコネクタの運用の中心になります。
ツール権限の割り振り例
Always allow
getCatalogsgetSchemasgetTablesgetColumnsgetInstructionsのようなメタデータの参照。データの中身は返さないので、確認の手間を省けます。Needs approval
queryData。どのSQLを投げるかを毎回目で見られます。慣れてきたら緩める余地があります。Block
execute_insertexecute_updateexecuteProcedure。会話から書き込む必要が無い間は止めておきます。
これは筆者の提案する割り振りで、CDataが推奨する設定ではありません。ストアドプロシージャの中身はデータソース次第なので、読み取りだけの手続きと更新を伴う手続きが混ざる場合は、Blockにしておくほうが無難です。
コネクタの権限変更の履歴がどこまで追えるかは、プランによって差があります。確認が必要な組織はClaudeコネクタの権限と監査ログで扱っています。
書き込みをURLの段階で止める — opsパラメータ
Claudeの許可設定は、あくまでClaude側の約束事です。CDataのMCPサーバーには、URL自体で広告するツールを絞る仕組みがあります。サーバーURLに ops パラメータを付けると、tools/list に載るツールが減ります。
読み取り専用にする場合の例が、CDataのドキュメントに載っています。
https://mcp.cloud.cdata.com/mcp?ops=get_catalogs,get_schemas,get_tables,get_columns,get_instructions,queryDataこの形だと、サーバーが見せるツールは11個から6個に減ります。書き込み系の3つはそもそも存在しないので、会話の中で誤って呼ぶ余地がありません。
注意点が3つあります。
opsは絞り込み専用で、サーバー側が無効にしたツールを有効にはできません- 空の値や未知の値を渡すと、HTTP 400とJSON-RPCエラー
-32602が返ります。エラーメッセージに指定できる値が並ぶので、綴りの確認に使えます toolsというパラメータは絞り込みに使えません。ドキュメントは、sqlやsourceを指定するとtools/listが失敗すると警告しています
Claudeのコネクタ追加画面でURLを自由に書き換えられるかは、このドキュメントには書かれていません。ops で絞った運用をしたい場合は、次のClaude Codeでの登録か、カスタムコネクタとしてURLを直接指定できる環境で使います。
Claude Codeから同じサーバーを使う
Claude Codeなら、URLを自分で指定して登録できます。CDataのクイックスタートにある手順は次のとおりです。
claude mcp add --transport http connectai https://mcp.cloud.cdata.com/mcpこの時点では登録しただけで、認証は済んでいません。セッションを開いて /mcp を実行し、connectai を選んで「Authenticate」に進むと、ブラウザでConnect AIのサインイン画面が開きます。完了するとサーバーの状態が接続済みに変わります。
読み取り専用で使うなら、前節の ops 付きURLで登録します。
claude mcp add --transport http connectai-ro \
"https://mcp.cloud.cdata.com/mcp?ops=get_catalogs,get_schemas,get_tables,get_columns,get_instructions,queryData"JSONで一括登録する書き方はclaude mcp add-jsonの手順にまとめています。URLにカンマや ? を含むので、シェルでは引用符で囲んでおくと崩れません。
会話の質を上げる運用のコツ
束ねる設計の利点は、1つの会話で複数のデータソースをまたげることです。CDataのクイックスタートには、SalesforceのオープンなOpportunity上位10件を取り、そのアカウントごとにHubSpotの直近のマーケティング活動を調べる、という依頼例が載っています。接続を足してもClaude側の再設定は要りません。
一方で、接続が増えるほど、どのデータソースをどう読むかをClaudeが推測する余地も増えます。次のような指示をプロジェクトの指示欄や、Claude Codeの CLAUDE.md に置いておくと、迷いが減ります。
データ取得はCData Connect AIのMCPだけを使う。
テーブルは [カタログ].[スキーマ].[テーブル] の完全修飾名で指定する。
最初に getInstructions で対象データソースの注意点を読み、SELECTだけを実行する。
結果が多いときは、行数を聞き返してからLIMITを付ける。getInstructions は、データソースごとの構文要件やデータ型の対応、既知の制限を返すツールです。データソースの癖を会話の冒頭で読ませる使い方に向いています。
また、プロンプトに「CData Connect AIを使って」とサーバー名を入れておくと、答えがモデルの記憶ではなくデータソースから来たかを後から確かめやすくなります。クイックスタートも同じ理由で、サーバー名を入れる書き方を勧めています。
ツールを多数並べたくないときは、MCPコネクタのmcp_tool_listingでツール一覧を固定する手順も選択肢になります。
権限は誰の資格情報で決まるか
束ねる設計の落とし穴は、権限の所在が2か所に分かれることです。Claude側で許可した操作でも、CData側のロールと権限が足りなければ通りません。逆に、CData側で許されている操作は、Claude側でBlockしていない限り通ります。
CDataの権限は、接続や仮想スキーマ(Virtual Schema)ごとに、Select・Insert・Update・Delete・Executeの5種類で付けます。ユーザーにはロールを割り当てます。システムロールはAdministrator、Workspace Administrator、Connection Administrator、User Administrator、Queryの5つです。複数のロールを持つユーザーの権限は、すべての和集合になります。ある役割が許可を持っていれば、別の役割が持たなくても許可が残る仕組みです。
接続の認証方式にも2通りあります。
- 共有認証: サービスアカウントを1つ使い、全ユーザーが同じ資格情報でデータソースに入る
- ユーザーごとの認証: 各ユーザーが自分の資格情報でサインインする
ユーザー固有のデータや規制の要件があるデータソースには、ユーザーごとの認証が向いています。ただし、対応していないデータソースもあります。また、キャッシュは共有認証のときだけ使えます。どちらにするかは管理者だけが切り替えられます。
仮想スキーマ経由のアクセスには、もう1つ注意点があります。仮想スキーマの中の資産は、元の接続の権限ではなく、仮想スキーマの権限で守られます。仮想スキーマへのアクセスを持つユーザーは、元の接続にアクセスできなくても、その資産を読めます。この挙動は、仮想スキーマをツールキット経由でAIに見せる場合も同じです。仮想スキーマを共有するときは、元のデータの機密度を見直してください。
絞った公開が必要なときはツールキットを使う
ops は、ツールの種類で絞る仕組みです。「このテーブルだけ」「この操作だけ」まで絞りたい場合は、CDataのツールキット(Toolkits)が使えます。管理者が接続や仮想スキーマに対してカスタムのMCPツールを定義し、そのエンドポイントをAIに渡す形です。
制約があります。
- ツールキットはGrowthプラン以上で使える
- 作成と設定ができるのは管理者だけ
- ドキュメントによると、新規の構成には「MCP Gateway」のツールサーバー(Tool Servers)を使う流れに移行している。既存のツールキットとURLは使い続けられる。SQLのカスタムツールなど、ツールキットでしか使えない機能もある
アカウント内のすべての接続を見せるか、用途ごとに絞った別のエンドポイントを作るかは、データの機密度で決まります。営業データだけを扱うエージェントに、人事データまで見せる必要はありません。
つまずいたときの切り分け
接続できない、ツールが出ない、といった症状は、層を分けると原因を絞れます。
接続の切り分け
- QConnect AIにサインインできますか?答えがアカウントやSSOの設定を確認する答えがはい
次の層に進みます。
- QSourcesで接続を保存し、テストが通りますか?答えがデータソース側の認証や権限を直す答えがはい
次の層に進みます。
- Qcurlの tools/list が通りますか?答えがトークンの期限をSettingsのSecurityタブで確認する答えがはい
CData側は正常です。Claude側の設定を確認します。
Claude側で再接続する
コネクタを一度切断してから接続し直し、新しいチャットで試します。
curlでの確認は、CDataのドキュメントが「クライアントの問題とConnect AI側の問題を切り分ける」ために用意している方法です。個人アクセストークン(PAT)を作り、メールアドレスとトークンでBasic認証をかけて tools/list を送ります。
curl -X POST https://mcp.cloud.cdata.com/mcp \
-u "<メールアドレス>:<PAT>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'応答にツールの一覧が並べば、サーバーは生きています。認証エラーが返ったら、トークンの期限切れを疑います。
個別コネクタではなく束ねるかの判断
束ねる設計には向き不向きがあります。
- 向いている: SalesforceとHubSpotとスプレッドシートなど、3つ以上のデータソースを横断して質問する業務。接続の追加をCData側で完結させたい管理者
- 向かない: 1つのサービスだけを深く操作したい場合。そのサービスの公式コネクタのほうが、サービス固有の操作を細かく持っていることが多い
CDataのMCPサーバーはSQLの形でデータを扱うため、SQLで表せない操作や、データソース固有の機能は、ツールキットのソースツールを使わない限り直接は呼べません。分析寄りの使い方なら、同じくデータ分析を預けるHexコネクタとの役割の違いを見比べると選びやすくなります。
まとめ
CData Connect AIのコネクタは、データソースを増やす手間をCData側に寄せ、Claude側のコネクタを1つに保つ選択肢です。便利さの裏返しとして、権限の守りも2か所に分かれます。最初はメタデータ参照だけをAlways allow、queryData をNeeds approval、書き込み系をBlockにして始め、ops で読み取り専用のURLを使えるClaude Codeでも同じ構成を試す。ここまで整えてから、仮想スキーマやツールキットでの絞り込みに進むと、見せたくないデータまで届く事故を避けられます。