Claude Media
ClaudeとCData Connect AIを連携する方法 — 1つのMCPで複数のデータソースを引く

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. 1

    アカウントを作る

    Connect AIのサインアップページで無料アカウントを作ります。各プランの内容は料金ページに載っています。

  2. 2

    データソースを足す

    Connect AIの画面で「Sources」を開き、「+ Add Connection」から対象を選びます。保存時に「Save and Test」で疎通を確かめます。

  3. 3

    Claudeにコネクタを追加する

    Claudeの設定でコネクタを開き、「CData Connect AI」を探して接続します。

  4. 4

    権限を確認して使い始める

    ツールごとの許可を設定し、新しいチャットで質問します。

動作確認だけなら、CDataのクイックスタートが用意している公開のCSVファイルで足ります。認証が要らないので、Claudeとの接続が正しいかを、自分の業務データに触れる前に確かめられます。

プランには注意点があります。SnowflakeやGoogle BigQueryのように、追加画面で「Premium」と表示されるデータソースは、Growthプラン以上が必要です。無料アカウントで試して「この接続先が出てこない」と詰まったときは、まずこの区分を見ます。

Claudeにコネクタを追加する手順

CDataのClaude向けドキュメントに沿った流れです。画面の名称は変わることがあり、CData側も最新の手順はAnthropicのヘルプを見るよう案内しています。

  1. claude.aiにサインインする
  2. 左下のユーザー名から「Settings」を開く
  3. 「Connectors」を選び、右上の「Browse connectors」を押す
  4. 「CData Connect AI」を検索して選ぶ
  5. 「Connect」を押し、CDataのサインイン画面で認可する
  6. 必要なら「Configure」を押して、ツールごとの許可を決める
  7. 左のメニューから「New chat」で新しい会話を開く

認可が済むと、会話の中でClaudeがデータの取得手順を示しながら進めます。ツール設定によっては、実行の前にClaudeが許可を求めます。

最初の質問は、データそのものではなく見えている範囲の確認がおすすめです。たとえば次のように頼みます。

CData Connect AIで、見えているデータソースを一覧にして

クイックスタートによれば、このときClaudeは getCatalogs を呼び、登録済みの接続を返します。ここで想定した接続が出なければ、CData側の登録かアカウントを疑います。Claude側の問題を先に疑うと遠回りになります。

ツールの許可は3段階で決める

「Configure」では、MCPサーバーが提供するツールごとに「Always allow」「Needs approval」「Block」のいずれかを選べます。11個あるツールをどう割り振るかが、このコネクタの運用の中心になります。

運用例

ツール権限の割り振り例

  • Always allow

    getCatalogs getSchemas getTables getColumns getInstructions のようなメタデータの参照。データの中身は返さないので、確認の手間を省けます。

  • Needs approval

    queryData。どのSQLを投げるかを毎回目で見られます。慣れてきたら緩める余地があります。

  • Block

    execute_insert execute_update executeProcedure。会話から書き込む必要が無い間は止めておきます。

これは筆者の提案する割り振りで、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のカスタムツールなど、ツールキットでしか使えない機能もある

アカウント内のすべての接続を見せるか、用途ごとに絞った別のエンドポイントを作るかは、データの機密度で決まります。営業データだけを扱うエージェントに、人事データまで見せる必要はありません。

つまずいたときの切り分け

接続できない、ツールが出ない、といった症状は、層を分けると原因を絞れます。

切り分け

接続の切り分け

  1. QConnect AIにサインインできますか?
    答えがアカウントやSSOの設定を確認する

    次の層に進みます。

    答えがはい
  2. QSourcesで接続を保存し、テストが通りますか?
    答えがデータソース側の認証や権限を直す

    次の層に進みます。

    答えがはい
  3. 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でも同じ構成を試す。ここまで整えてから、仮想スキーマやツールキットでの絞り込みに進むと、見せたくないデータまで届く事故を避けられます。

この記事を共有:XはてブLinkedIn