MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

by 杉本和也 | May 22, 2026

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

こんにちは。CData Software Japan リードエンジニアの杉本です。

「社内の基幹システムのデータをAI エージェントに活用させたい。でも、Salesforce や SAP 、RDB をそのまま MCP で公開するだけでいいのか?」

こういった問いを持ち始めた企業の IT チームやデータ基盤担当のアーキテクトが増えています。私自身、お客様と打ち合わせをする中で、同じような質問を度々受けました。

MCP を通じて接続・連携は技術的にできる。データも取れる。でも、いざ AI エージェントが動き始めると、思ったように使いこなしてくれない。迷う、ズレる、確認を繰り返す。コンテキストウインドウを無作為に消費してしまう。

この記事では、その「なぜ?」を設計の視点から解説してみます。

そして、同じ問いに以前別の文脈で答えた設計思想を MCP の世界に応用することで、社内 AI エージェントが本来の力を発揮できるインターフェースをどのように設計するべきか? その考え方を整理してみましょう。

既存 API をそのまま MCP 化するだけでは不十分な理由

2024年11月に発表されたMCP(Model Context Protocol)の普及とともに、「既存の REST API や社内システムの API を MCP サーバーとして公開する」というアプローチが急速に広がっています。

https://www.anthropic.com/news/model-context-protocol

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

コネクタライブラリや変換ツールも充実しており、技術的なハードルは下がり続けています。生成AI でMCP サーバーを開発して、業務に組み込んでみた、という実例も度々目にするようになりました。

しかし、「MCP 化した」ことと「AI が使いやすいツールを渡した」ことは、まったく別の話です。

たとえば、「今月の製品別売上を担当者ごとに集計して」という指示を社内の AI エージェントに与えた場合を考えてみましょう。Salesforce の汎用 API をそのまま MCP ツールとして公開していると、AI は次のような行動をとります。

まず、どのツールが目的に合うかを探索します。テーブル一覧を取得し、カラム定義を確認し、どのテーブルに何のデータが入っているかを推論します。次に、対象テーブルからデータを取得しますが、ページネーション対応の API の場合は全件取得まで何度もリクエストを繰り返します。大量のレコードをコンテキストに乗せたうえで、集計処理を行うために Python コードを生成して実行させる、といった手順を踏むことになります。

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

このプロセスで何が起きているか。探索・取得・加工のすべてのステップがコンテキストを消費します。コンテキストウィンドウの上限に近づくほど AI の判断精度は落ちていきます。最終的に「それらしい答え」を生成するハルシネーション的な挙動が起きやすくなるのは、AI の能力の問題ではなく、渡しているインターフェースの設計の問題です。

汎用的なツールを渡すほど、AI は「どれを使えばいいか」を自力で判断しなければなりません。ツール数が増えれば増えるほど、その探索コストも上がります。API 設計の世界ではとっくに解かれた問題が、MCP の世界でいま改めて浮上しています。

なお「汎用ツールそのものが不要だ」ということではありません。新しいデータソースの構造を把握したいときや、仮説を立てて素早く検証したい探索・分析フェーズでは、汎用ツールは本来の力を発揮します。

問題が顕在化するのは、業務に定着させようとしたときです。「毎朝パイプラインを確認する」「週次でレポートを生成する」——繰り返しの業務タスクに汎用ツールを使い続けると、毎回 AI が探索から始めるため、同じ質問でも返答の品質が安定しません。再現性のなさが、エンタープライズ現場での AI エージェント定着を妨げる第一の課題です。

もうひとつの問題は、ドメインコンテキストの欠如です。汎用ツールを渡された AI は、業務用語・運用ルール・指標定義を知らないまま動き始めます。技術的にはデータを取得できていても、「受注」が Opportunity なのか Order なのか、「今月のクローズ見込み」に Commit ステージを含めるべきかどうか——そういったドメインの文脈なしには、業務目的に即した答えを返すことはできません。

再現性の欠如ドメインコンテキストの欠如——この 2 つが、既存 API をそのまま MCP 化するだけでは不十分な理由であると考えることができます。

「コンシューマーに合わせたインターフェース」の先例:API-led Connectivity

2010 年代、MuleSoft が提唱した API-led Connectivity という設計思想があります。「API を用途に応じた 3 つの層に分類し、データとアプリケーションの接続における再利用性を高める」というアーキテクチャパターンです。

https://www.salesforce.com/blog/api-led-connectivity/

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

当時の課題は以下のようなものでした。

同じバックエンドシステムに対して、モバイルアプリ・Web ブラウザ・IoT デバイスなど、異なる「コンシューマー」が接続しようとしている。それぞれのコンシューマーが必要とするデータの形・粒度・頻度はまったく異なるのに、バックエンドの生のデータをそのまま渡そうとすると、コンシューマー側の実装が複雑になり、変更にも弱くなる。

その解として提示されたのが、3 層の分離です。

名称

役割

下層

System API

バックエンドのシステムやデータベースへの直接接続。データの取得・更新を担う

中間層

Process API

ビジネスロジックの実装とオーケストレーション。複数の System API を組み合わせ、ルールに従って処理する

上層

Experience API

特定のコンシューマー(デバイス・チャネル・ユースケース)に最適化されたインターフェース。コンシューマーが必要な形・粒度でデータを提供する

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

このアーキテクチャが解いた本質は、「コンシューマーが変わればインターフェースも変わるべき」という原則です。モバイルアプリ向けの Experience API とコールセンター向けの Experience API は、裏側の System API を共有しながらも、表に出す形はまったく異なります。

この考え方は、MCP の設計にそのまま応用できます。そして応用先における「新しいコンシューマー」とは「AI エージェント」であると考えることができます。

AI が持ち合わせていない、3 種類の組織の暗黙知

AI エージェントは、これまでのどの API コンシューマーとも異なる特性を持っています。

人間の開発者であれば、API ドキュメントや社内のナレッジを読んで設計を理解し、適切なエンドポイントを選んで実装します。ツールの使い方を様々なナレッジから「事前に学習」するため、実行時のコストはかかりません。

一方、AI エージェントはツールの一覧から実行時に推論します。ツール名・説明・パラメータ定義を手がかりに「これを使えばいいか」を都度判断します。つまり、ツールの意図や用途が曖昧であるほど、AI が迷い、コンテキストを消費するということです。

ここで重要な概念が「アフォーダンス」です。ドアノブを見ると「ひねる」という操作が自然に伝わるように、ツールの名前・説明・パラメータが「何をどう使えばいいか」を自己説明的に伝えることが、AI には特に重要です。人間の開発者はドキュメントを熟読して理解できますが、AI はツール定義そのものから意図を読み取るしかありません。

https://ja.wikipedia.org/wiki/アフォーダンス

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

この問題が特に顕著に現れるのが、Oracle・PostgreSQL などの RDB や、Salesforce・SAP・kintone といった Horizontal SaaS を基幹システムとして導入している企業です。

Salesforce に代表される Horizontal SaaS は汎用設計が強みです。標準オブジェクトやフィールドを提供しつつ、各企業が自社のビジネスプロセスに合わせてカスタムフィールドを追加し、ワークフローを定義し、独自の運用ルールを組み込んでいきます。結果として、「同じ Salesforce を使っていても、A 社と B 社のスキーマは実質的にまったく異なる」という状態が生まれます。

AI にとっての問題はここにあります。スキーマは「標準的に見える」のに、その実態は会社固有の知識で埋め尽くされています。そしてその知識は、スキーマではなく組織の中に暗黙知として蓄積されています

汎用 API をそのまま汎用的な MCP ツールとして渡された AI は、この暗黙知を持たないまま動き始めます。そのときに構造的に生じるのが、次の 3 種類のギャップです。

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

Domain Gap(ドメイン知識のズレ)

業務用語とデータ構造の対応関係に関する知識が、AI に渡っていない問題です。「受注」と言ったときに Salesforce の Opportunity を指すのか Order を指すのか Contract を指すのか。Stage = "Negotiation" が自社のどの営業フェーズを指すのか。こうした対応関係は担当者が業務の中で習得するものであり、スキーマには書かれていません。

新入社員が Salesforce を使い始めたとき、最初に戸惑うのがまさにこの部分です。AI も毎回、同じ問いに直面しています。

Operations Gap(運用知識のズレ)

データがいつ・どのように作られ・更新されるかのルールに関する知識が、AI に渡っていない問題です。

Salesforce の Stage フィールドを例に考えてみましょう。標準の Stage 値として "Negotiation" や "Closed Won" が並んでいますが、「どの段階でステージを進めるか」の基準は各社が独自に定めています。ある企業では口頭合意の段階でカスタムステージの "Commit" に変更し、その時点で売上予測に含めるルールがあります。Closed Won に変更するのは契約書への署名が完了した後です。

AI が「今月のクローズ見込みを教えて」と問われたとき、Closed Won だけを参照すると、実態の売上予測から大きくズレた数字を返します。データに誤りはなく、スキーマも正しい。「いつ・どの基準でステージを進めるか」という運用ルールを AI が持っていないことが原因です。このような運用知識は、チームのオンボーディング資料や担当者の経験値として存在しており、スキーマからは読み取れません。

なお、表記ゆれや入力の揺れといったデータ品質の問題は Operations Gap と似て非なるものです。Operations Gap はルール自体が AI に渡っていない問題であり、データ品質問題はデータ移行・外部統合・入力の徹底不足に起因する別の問題です。前者はツール設計で吸収できますが、後者は完全には解消できない部分もあります。ツール設計と並行してデータガバナンスの整備も求められます。

Metrics Gap(定義知識のズレ)

ビジネス指標や KPI の定義に関する知識が、AI に渡っていない問題です。「売れた数」という一言の中に、新規購入(New Sale)と更新(Renewal)が混在していても、どう集計するかは組織の方針によって異なります。Horizontal SaaS では部門やチームごとにカスタムフィールドで独自の指標を管理していることも多く、「売上」「受注」「成約」という言葉が指す数字が組織内で統一されていないケースも珍しくありません。

指標の定義が曖昧なままツールを渡すと、AI は都合よく解釈して集計するか、確認のやり取りを繰り返すかのどちらかになります。

この 3 つのギャップに共通するのは、「スキーマを見ても分からない、組織固有の暗黙知」だという点です。AI でアドホックにこれらを解消させようとすると、探索コストが積み重なり、コンテキストが圧迫され、最終的な答えの精度が下がります。暗黙知をデザインタイムにツールへ埋め込むことが、MCP インターフェース設計の核心です。

MCP-led Architecture:3 層モデル

この3 つのギャップは「何が問題か」を示す動機軸です。それに対して、MCP-led Architecture の 3 層は「どう解決するか」を示す構造軸です。ギャップと層は 1 対 1 に対応するわけではなく、3 層全体が協調することで暗黙知をインターフェースのデザインとして吸収します。

API-led Connectivity の 3 層をそのまま MCP に対応させると、以下の構造になります。

API-led の層

MCP での役割

Experience Tools

AI エージェントのユースケースに特化したインターフェース

Process Tools

ビジネスロジックの実装・データ変換・複数ソースの結合

System Tools

バックエンドへの汎用接続・スキーマ探索

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

各層の役割を詳しく見ていきましょう。

Experience Tools(AI 最適化・体験層)

AI エージェントというコンシューマーに特化して最適化された最上位の層です。この層の役割は、「AI のユースケースに合わせてインターフェースをチューニングする」ことです。Process Tools で業務ドメインに変換・マッピングされたデータをベースに、営業担当者向けエージェント・バックオフィス向けエージェントといった具体的な AI ペルソナに対して、必要なツールだけを過不足なく提供します。この層の設計原則は、「AI が考えなくても使えるツールを作る」ことです。

Domain Gap への対処としては、ビジネスの意図をツール名に込めることが重要です。queryData ではなく get_monthly_sales_by_ownersearch ではなく search_high_priority_unassigned_issues のように、ツール名と説明だけで「いつ・何のために使うべきか」が自明に伝わる設計が理想です。これがアフォーダンスの実践であり、ドメイン知識をツール定義に翻訳する作業でもあります。

Metrics Gap への対処としては、AI が曖昧に解釈できないパラメータ設計が重要です。「New Sale のみ」と「New Sale + Renewal」のどちらで集計するかという定義そのものは Process Tools に実装しておき、Experience Tools ではそれを get_monthly_sales_summary(month, owner?, sale_type?) のようにパラメータで明示的に選ばせる設計にします。sale_type で「新規」「更新」「両方」を指定させることで、AI が勝手に解釈して集計することを防げます。

Process Tools(処理・変換層)

ビジネスロジックを実装し、データを加工・変換する中間層です。この層の役割は、「業務ドメインに合わせてデータを変換・マッピングする」ことです。

先の Stage の例で言えば、「有効な商談」の定義(どのステージ・どの期間・どのフィールドが入力済みか)を SQL に埋め込んでおくことで、AI は運用ルールを知らなくても正しいデータセットを受け取れます。また、複数データソースをまたぐ分析が必要な場合も、この層でデータを結合・統合してから上位層に渡すアーキテクチャが有効です。「Salesforce の商談データと Jira のチケットを突き合わせる」ような処理を AI に逐次実行させると、ツール呼び出しのたびにコンテキストが積み重なります。Process Tools でセマンティックレイヤーとして統合済みのビューを用意しておくと、AI から見ると「1 つのデータソース」として扱えます。

System Tools(汎用接続・探索層)

バックエンドのシステムやデータベースに対して汎用的にアクセスするための層です。getTablesgetColumnsqueryData のようなスキーマ探索・汎用ツールがここに属します。

この層の特徴は「何に使うかが決まっていない段階」に適している点です。新しいデータソースに接続して構造を把握したい場合や、仮説を立てて素早く検証したい探索・分析フェーズでは、System Tools が本来の力を発揮します。

ただし、繰り返しの業務タスクや定常レポートを担う本番フェーズに System Tools だけを渡すのは避けるべきです。AI は毎回探索から始めるため、同じ質問でも返答の品質が安定しません。System Tools は探索フェーズに割り当て、業務定着を目指す本番フェーズには渡さないという使い分けが、再現性を確保するうえで重要です。

横断的な設計原則:認可や権限をインターフェース・ツールの設計で制御

3 種類の暗黙知と同様に、認可や権限の設計もAI に判断させるのではなく、インターフェース・ツールの設計で制御することが重要です。AI が「このデータを見ていいか」を自分で判断するのではなく、そもそも見えないように設計しておく、という発想です。

AI は自律的に動くため、「整理して」という指示を「不要なレコードを削除する」と解釈することがあります。意図しない操作を防ぐには、AI に意志を持たせないのではなく、物理的にできない設計にしておくことが本質的な対策です。

3 層それぞれに認可の境界を設けることができます。

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

認可の設計は後付けで行うことが難しく、ツール設計の初期段階から組み込んでおく必要があります。

実践例:Salesforce・SAP で 3 層を設計する

ここまでの考え方を、実際のエンタープライズシステムに当てはめてみましょう。Salesforce と SAP は導入企業数が多い Horizontal SaaS の代表例であり、それぞれ 3 種類の暗黙知が異なる形で顕在化します。

Salesforce:営業パイプライン分析エージェントの場合

Salesforce の標準オブジェクトは一見わかりやすいように見えますが、「受注」「売上」「契約」という業務用語がどのオブジェクトに対応するかは、各社の運用によって大きく異なります。

3 種類の暗黙知の顕れ方

暗黙知の種類

Salesforce での具体例

Domain Gap

「受注」は Stage = "Closed Won" の Opportunity か、作成済みの Order か。「製品」は Product2 か OrderItem の ProductCode か。会社ごとに違う

Operations Gap

ステージ進行の基準(口頭合意で "Commit"、署名完了で "Closed Won" にするなど)、Opportunity の作成タイミング、必須フィールドの入力ルール

Metrics Gap

「売上」は Opportunity.Amount か OpportunityLineItem の合計か。税込みか税抜きか。更新(Renewal)を新規と同じ軸で見るか

3 層の設計例

設計内容

System Tools

getTablesgetColumnsqueryData を探索フェーズ専用に用意。本番フェーズには渡さない

Process Tools

"active_opportunities" ビュー(自社の有効ステージ・必須フィールド条件を SQL に埋め込む)。OpportunityLineItem を JOIN して金額を正規化

Experience Tools

get_pipeline_summary(owner?, stage?, period?) でパイプラインを集計済みで返す。get_won_deals(month, include_renewal?) で新規・更新を明示的に分離

SAP:受注・売上分析エージェントの場合

SAP は Salesforce 以上にスキーマが複雑で、同じ「受注」を指すテーブルや項目でも、使用するモジュール・導入構成・伝票タイプ(Belegart)によって実態が異なります。以下は SD モジュール・FI モジュールを中心とした一般的な例です(実際の実装は構成次第です)。

3 種類の暗黙知の顕れ方

暗黙知の種類

SAP での具体例

Domain Gap

「受注」は VBAK(受注ヘッダ)の伝票タイプ OR か、自社カスタムの ZOR か。「売上計上」は VBRK(請求ヘッダ)か BKPF(会計伝票)か。会社・モジュール設定次第

Operations Gap

伝票タイプの使い分けルール(OR / ZOR / RE 等)、プラントコード(Werke)の意味、売上計上タイミング(出荷基準か請求基準か)は社内設定に依存

Metrics Gap

「純売上」は VBRP.NETWR か BSEG の貸方金額か。税額(MWST)を含むか。「受注残」は未出荷の VBAP 行の NETWR 合計か

3 層の設計例

設計内容

System Tools

汎用アクセスを探索フェーズ専用に用意

Process Tools

"sales_orders" ビュー(VBAK ⊕ VBAP ⊕ KNA1 を JOIN し、自社で使用する伝票タイプのみにフィルタ)。プラント・販売組織コードを人間が読めるラベルに正規化

Experience Tools

get_open_orders(customer?, material?, plant?) で受注残一覧を返す。get_monthly_revenue(month, sales_org?, material_group?) で月次売上を集計済みで返す

SAP の場合、Process Tools で「自社が使っている伝票タイプと販売組織の定義」を SQL に埋め込んでおくことが特に重要です。これをしないと、AI は全伝票タイプのデータを引いてきて、自社に関係ない伝票が混入した集計結果を返します。

2 つの例に共通するのは、「スキーマを知るだけでは不十分で、そのシステムをこの会社がどう使っているかを知らなければ AI は正しく動けない」という点です。その「使い方の知識」を 「Process Tools」で適切にモデリングし、「Experience Tools」でAI に理解しやすいように届ける設計することが、MCP-led Architecture の実践です。

まとめ:「MCP で公開する」から「AI のインターフェースを設計する」へ

3 層の対応関係を改めて整理すると、以下のようになります。

API-led の層

MCP での役割

設計のポイント

Experience API → Experience Tools

AI コンシューマーに最適化されたインターフェース

AI ユースケースに合わせてインターフェースをチューニング

Process API → Process Tools

ビジネスロジックの処理・変換・結合

業務ドメインに合わせてデータを変換・マッピング

System API → System Tools

バックエンドへの汎用接続・スキーマ探索

探索フェーズに限定して使う

3 層モデルが生む明確なオーナーシップ

3 層モデルの利点は、技術的な整理にとどまりません。「誰が・何を・いつ管理するか」という責任の境界も自然に明確になります。

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

多くの企業では、情報システム部門が既存システムの安定運用を担う「守り」の役割を、DX チームや AI 導入推進チームが新しい活用方法を模索する「攻め」の役割を担っています。System Tools は前者が、Experience Tools は後者が自然なオーナーになりやすく、Process Tools はその接点として両チームが協業する領域です。この境界が明確になることは、AI エージェント導入を組織として推進するうえでの大きなメリットです。

API-led Connectivity が「モバイル・Web・IoT という多様なコンシューマー」に答えたように、MCP-led Architecture は「AI エージェントという新しいコンシューマー」に答える設計思想です。

重要なのは、この設計アプローチが AI の賢さに依存していない点です。AI がどれだけ優秀であっても、渡されるツールの設計が悪ければパフォーマンスは下がります。逆に言えば、組織の中に蓄積された暗黙知を 3 層のどこかに適切に埋め込むことで、AI は本来持っている推論能力を余すことなく発揮できます。

「社内システムを MCP で公開する」という発想から「社内 AI エージェントのためのインターフェースを設計する」という発想への転換が、エンタープライズにおける AI エージェント活用の鍵だと考えています。

MCP を使った AI エージェントの構築を進めている方のヒントになれば幸いです。

CData Connect AI でこの設計を実践する

本記事で説明した 3 層モデルは、CData Connect AIToolkits 機能によっても実践できます。

CData Connect AI は 350 種類以上のデータソースに対してリモート MCP 経由でのアクセスを提供するプラットフォームです。Toolkits 機能では、AI エージェントに渡すツール群を用途ごとに分離・管理でき、本記事の 3 層モデルに対応した構成を取ることができます。

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル

MCP-led Architecture の層

Toolkits での実装

Experience Tools

Custom SQL Tools でパラメータ付きの事前定義クエリを作成し、AI が曖昧に解釈できないインターフェースを設計。Source Tools に AI Instructions を設定してドメイン文脈を明示する

Process Tools

Workspace 上で Derived Views として複数データソースを結合。運用ルールをクエリに埋め込み、業務ドメインに合わせたデータモデルを構築する

System Tools

Universal Tools(getTables・getColumns・queryData 等)を有効化したツールキット。スキーマ探索フェーズ専用として切り出す

認可の設計については、CData Connect AI が提供する多層アクセス制御モデル(データソース側の権限・認証モデル・コネクション権限・公開範囲・Toolkit の 5 層)を活用することで、3 層それぞれの認可の境界を実装できます。詳細はこちらの記事を参照ください。

MCP-led Connectivity:エンタープライズデータを AI に渡すためのインターフェース設計 3 層モデル