MCP導入の進め方|FDEが現場で実践する5ステップと設計の勘所

- AIアプリごとに接続コードを個別実装
- 仕様変更時に各連携を個別に改修
- 認可・ログの方式が連携ごとにばらつく
- MCPサーバーを一度作れば複数クライアントで再利用
- プロトコルが標準化され保守範囲が限定される
- 権限と監査の設計をサーバー側に集約しやすい
- 1. ユースケース選定頻度が高く、判断がAIで補える業務を1つ選ぶ
- 2. データとシステムの棚卸し必要なデータソース、権限、既存APIを洗い出す
- 3. ツール設計と実装業務単位でTools/Resourcesを設計し、サーバーを実装する
- 4. 評価と検証代表的な質問セットで精度・誤用・失敗時の挙動を確かめる
- 5. 本番展開と運用設計認可・ログ・監視を整えて対象ユーザーに広げる
MCPとは何で、なぜ企業導入が進んでいるのか?
MCPは、AIエージェントと社内外のツールやデータをつなぐオープン標準です。個別連携の開発コストを下げられるため、企業での採用が広がっています。
MCP(Model Context Protocol)は、Anthropicが2024年11月に公開したプロトコルです。LLMアプリケーションがファイル、データベース、SaaS、社内APIといった外部コンテキストにアクセスする方法を共通化しています。公開後はOpenAIやGoogle、Microsoftなど主要なAIベンダーも対応を表明しました。そのため、特定ベンダーの独自仕様ではなく、業界の共通インターフェースとして扱われるようになっています。
MCPの基本構造はどうなっているのか?
MCPは「ホスト・クライアント・サーバー」の3層で構成されます。通信にはJSON-RPC 2.0を使います。
| 構成要素 | 役割 | 具体例 |
|---|---|---|
| ホスト | ユーザーが操作するAIアプリ本体 | Claude Desktop、IDE、自社のエージェント基盤 |
| クライアント | ホスト内でサーバーと1対1で接続する部品 | ホストが生成する接続単位 |
| サーバー | ツールやデータを公開するプログラム | GitHub、Slack、社内DBのMCPサーバー |
サーバーが公開する機能は、主に次の3つです。
- Tools:モデルが呼び出せる関数(チケット作成、SQL実行など)
- Resources:モデルが参照できるデータ(ファイル、ドキュメント、レコード)
- Prompts:再利用できる定型の指示テンプレート
通信方式(トランスポート)は2種類あります。ローカルで動かす場合はstdio、リモートで動かす場合はStreamable HTTPを使うのが基本です。
企業がMCPに注目する理由は何か?
企業が注目する一番の理由は、AIとツールの連携を「N×M問題」から解放できる点です。一度作った連携を、複数のAIアプリで使い回せます。
MCPがない場合、AIアプリがN個、ツールがM個あれば、最大でN×M通りの個別連携が必要になります。MCPに準拠すれば、ツール側はMCPサーバーを1つ用意するだけで、対応する複数のホストから使えます。FDEとして現場に入ると、「Copilotでも自社エージェントでも同じ社内データを使いたい」という要望は多い印象です。こうした要望に応えやすくなる点で、MCPは導入の動機を説明しやすい技術だと感じます。
MCPは従来のAPI連携と何が違うのか?
MCPはAPIを置き換えるものではありません。APIの手前に「AIが自分で理解して呼び出せる層」を加えるものです。
REST APIやGraphQLは、人間の開発者がドキュメントを読んで実装することを前提にしています。MCPでは、サーバーが自分の持つツールの名前・説明・入力スキーマをクライアントに伝えます。モデルはその説明を読んで、どのツールをいつ使うかを判断します。
機能面での違いはどこにあるのか?
一番の違いは、機能を動的に見つけられることと、モデルが呼び出す前提で設計されていることです。認証や実行の仕組み自体はAPIを使い続けます。
| 観点 | 従来のAPI連携 | MCP |
|---|---|---|
| 呼び出しの主体 | 開発者が書いたコード | LLM(ホスト経由) |
| 機能の発見 | ドキュメントを読んで静的に実装 | tools/list などで動的に取得 |
| インターフェースの単位 | エンドポイント | Tools / Resources / Prompts |
| 再利用性 | 連携先ごとに個別実装 | 準拠したホスト間で共通利用 |
| 認可 | APIごとの方式 | リモートはOAuth 2.1ベースの仕様を定義 |
| 主な関心事 | 正確なリクエストとレスポンス | モデルが誤用しない説明と粒度 |
APIをそのままMCP化すればよいのか?
APIのエンドポイントを1対1でMCPツールに変換するやり方は、多くの場合うまくいきません。業務の単位でツールを設計し直す必要があります。
現場でよく見る失敗は、数十個のエンドポイントをそのままツールとして公開してしまうことです。ツールが多すぎるとモデルが選び間違えやすくなります。説明文がコンテキストを圧迫して、精度とコストの両方が悪くなりがちです。たとえば「顧客を検索する」「顧客の契約状況をまとめて返す」のように、ユーザーが実際にやりたいことの単位でツールをまとめると、安定しやすいと考えています。
MCP導入はどう進めるのが確実か?
確実に進めるには、ユースケースを1つに絞ることです。そのうえで、読み取り専用から段階的に広げる5ステップが有効です。
MCPは技術的には始めやすい反面、「とりあえずサーバーを立てた」で止まってしまうことが少なくありません。FDEの立場からは、業務成果につながる順番で進めることをおすすめします。
MCP導入の5ステップとは何か?
5ステップは「業務選定→データ棚卸し→ツール設計→検証→本番展開」です。各ステップの終わりに完了条件を決めておくことが大切です。
| ステップ | 内容 | 完了条件の目安 |
|---|---|---|
| 1. ユースケース選定 | 頻度が高く、判断がAIで補える業務を1つ選ぶ | 対象業務・利用者・成功指標が決まっている |
| 2. データとシステムの棚卸し | 必要なデータソース、権限、既存APIを洗い出す | 接続先ごとに認証方式と責任者がわかっている |
| 3. ツール設計と実装 | 業務単位でTools/Resourcesを設計し、サーバーを実装する | 読み取り系ツールがローカルで動く |
| 4. 評価と検証 | 代表的な質問セットで精度・誤用・失敗時の挙動を確かめる | 評価セットで合格ラインを満たしている |
| 5. 本番展開と運用設計 | 認可・ログ・監視を整えて対象ユーザーに広げる | 運用担当とインシデント対応の手順が決まっている |
最初のユースケースはどう選ぶべきか?
最初は「読み取り中心」で、「間違えても被害が小さい」業務を選ぶのが安全です。書き込み系は2段階目以降に回しましょう。
候補になりやすいのは、社内ナレッジの検索、問い合わせ履歴の要約、データ分析の下調べなどです。反対に、発注、送金、顧客への送信のように外部へ影響が出る操作は、最初の対象から外しておくほうが無難です。私自身の感覚では、最初の数週間は「現場が毎日使うかどうか」を見るのが一番の評価指標になります。精度の数字よりも、継続して使われているかのほうが導入の成否を正直に表すことが多いです。
ツール設計で押さえるべき勘所は何か?
設計の勘所は「少ない数・明確な説明・狭い権限」の3点です。モデルが迷わない設計が、そのまま精度に効いてきます。
- ツール数を絞る:1つのサーバーで公開するツールは、必要なものに限ります
- 説明文は仕様書として書く:いつ使うか、いつ使わないかを明記します
- 入力スキーマを厳密にする:列挙型や必須項目を指定して、自由入力を減らします
- 出力は要約して返す:生データをそのまま大量に返さず、モデルが扱える量に整えます
- エラーメッセージで次の行動を示す:「権限不足のため管理者に確認」のように、回復の手がかりを返します
MCP導入でFDEはどんな役割を担うのか?
FDEは、業務要件とMCPの技術設計の間を埋める役割を担います。PoCで終わらせず、現場に定着させるまで伴走する担当者です。
Palantirが広めたFDE(Forward Deployed Engineer)は、顧客の現場に入り込み、課題の発見から実装・定着までを担う職種です。MCP導入は、まさにFDEの強みが活きるテーマです。プロトコル自体はシンプルでも、「どの業務を、どのデータで、どの権限で」AIに任せるかは、現場を理解していないと決められないからです。
FDEが担う具体的な業務は何か?
FDEの業務は、要件の整理・ツール設計・評価・社内展開の4つに大きく分けられます。どれも現場との対話が出発点です。
| 領域 | FDEの具体的な業務 | 関わる相手 |
|---|---|---|
| 要件整理 | 業務フローを観察し、AIに任せる範囲を決める | 現場担当者、業務部門長 |
| ツール設計 | 既存APIやDBを業務単位のMCPツールに組み直す | 社内エンジニア、システム管理者 |
| 評価 | 現場の実際の質問から評価セットを作り、改善を繰り返す | 現場担当者、品質管理 |
| 展開と定着 | 利用ガイドの作成、勉強会、フィードバックの回収 | 情報システム部門、経営層 |
エンジニア個人にはどんなスキルが求められるのか?
求められるのは、実装力に加えて「業務を言語化する力」と「セキュリティを設計する力」です。プロトコルの知識だけでは足りません。
技術面では、TypeScriptやPythonの公式SDKでMCPサーバーを実装できること、OAuthを含む認可の仕組みを理解していることが土台になります。ただ、FDEとして差がつくのは、現場の暗黙知をツールの説明文や評価セットに落とし込めるかどうかだと考えています。MCPに関わった経験は、FDE職を目指すエンジニアにとって、「AIを業務に実装した」ことを具体的に示せるポートフォリオになりやすい領域です。
MCP導入で注意すべきセキュリティと運用の課題は?
一番大きなリスクは、プロンプトインジェクションと過剰な権限の組み合わせです。最小権限と人間による承認で被害を抑える設計が欠かせません。
MCPを使うと、モデルが外部データを読み、外部システムを操作できるようになります。便利になる一方で、攻撃される面も広がります。MCPの仕様自体にも、セキュリティに関するベストプラクティスが盛り込まれるようになってきました。それでも、運用側の設計に任される部分は大きいままです。
代表的なセキュリティリスクは何か?
代表的なリスクは、インジェクション・ツール汚染・権限の過剰付与・トークンの不適切な扱いの4つです。それぞれ別の対策が必要です。
| リスク | 内容 | 主な対策 |
|---|---|---|
| プロンプトインジェクション | 読み込んだ文書やメールに埋め込まれた指示にモデルが従ってしまう | 書き込み系操作に人間の承認を挟む、信頼できない入力を区別する |
| ツール汚染(Tool Poisoning) | 悪意あるサーバーがツールの説明文に不正な指示を仕込む | 利用するサーバーを許可リストで管理し、出所を確認する |
| 過剰な権限 | サーバーが管理者権限で動き、想定外の操作ができてしまう | 最小権限のサービスアカウント、ユーザー単位の認可 |
| トークンの不適切な扱い | 受け取ったトークンをそのまま下流のAPIに流用する | 仕様に沿ってトークンの受け渡し(パススルー)を避け、対象リソース専用のトークンを使う |
特に注意したいのは、「社内データを読める」「外部に送信できる」「信頼できない入力を読む」の3つが1つのエージェントにそろう構成です。この組み合わせはデータ流出につながりやすいため、設計の段階で分けておくことをおすすめします。
運用で見落としがちな課題は何か?
見落としやすいのは、サーバーの乱立・監査ログの不足・仕様の改訂への追従です。導入より運用のほうが長く続きます。
- 野良サーバーの乱立:各部署が独自にMCPサーバーを立てると、誰がどのデータにアクセスしているか把握できなくなります。社内のサーバー登録簿やゲートウェイで一元管理する方法が考えられます
- 監査ログ:「誰の依頼で、どのツールが、どの引数で呼ばれたか」を記録しないと、事故が起きたときに原因を追えません
- 仕様の改訂:MCPの仕様は日付付きのバージョンで改訂が続いています。SDKやサーバーの更新計画を運用に組み込んでおく必要があります
- コストと遅延:ツールの説明文や大きなレスポンスはトークン消費を増やします。定期的に棚卸しすると効果があります
現場の実感としては、PoCの段階でセキュリティ担当者を巻き込んでおくと、本番展開のときの手戻りが大きく減ります。MCPは「つなげば動く」技術だからこそ、どこまでつなぐかを決める判断が、導入する側の腕の見せどころです。FDEはその判断を、技術と業務の両方の言葉で説明できる立場にいます。





