MCPとは?MCPサーバーの仕組みと社内システム連携の権限設計

MCP(Model Context Protocol)は、AIアプリケーションを外部のデータやツール、業務システムにつなぐためのオープンな標準です。Anthropicが2024年11月に公開し、現在はClaude、ChatGPT、Visual Studio Codeなどが対応しています。社内システムに対応するMCPサーバーを用意すると、AIエージェントが社内のデータを読んだり、システムを操作したりできるようになります。その分、どの操作を許可し、どこで人が確認するかを先に決めておく必要があります。この記事では、MCPの仕組みとMCPサーバーが公開する機能、提供元のMCPサーバーの使い方、社内システムにつなぐときの権限と承認の考え方、自社でMCPサーバーを作るかどうかの判断を解説します。
MCP(Model Context Protocol)とは
MCPを作った組織と現在の管理
MCPは、Anthropicが2024年11月25日にオープンソースとして公開しました。発表では、AIアシスタントを、コンテンツの保管場所や業務ツール、開発環境など「データがある場所」につなぐための新しい標準と説明しています。作ったのはAnthropicのDavid Soria Parra氏とJustin Spahr-Summers氏です。公開時には、仕様とSDK、Claudeのデスクトップアプリでのローカル接続への対応、Google Drive、Slack、GitHubなどに対応したMCPサーバーの公開リポジトリがあわせて提供されました。
その後、Anthropicは2025年12月9日に、MCPをLinux Foundation傘下のAgentic AI Foundation(AAIF)に寄贈すると発表しました。AAIFはAnthropic、Block、OpenAIが共同で設立した基金で、Google、Microsoft、AWS、Cloudflare、Bloombergが支援しています。発表では、MCPの運営方法は変えず、メンテナーが引き続きコミュニティの意見を重視して透明に決定すると説明しています。Anthropicは、この寄贈をMCPが中立でオープンな標準であり続けるための取り組みと位置づけています。
個別に連携を作る場合との違い
Anthropicの発表は、MCPが解決する課題として「新しいデータソースごとに個別の実装が必要になること」を挙げています。AIアプリとシステムを1組ずつ専用の方法でつなぐと、AIアプリやシステムが増えるたびに連携の開発と保守が増えます。MCPでは、データやツールを提供する側がMCPサーバーを用意し、AIアプリ側がMCPに対応していれば、同じ方法で接続できます。
MCPの公式ドキュメントは、MCPを「AIアプリケーションのためのUSB-Cポート」にたとえています。電子機器をUSB-Cでつなぐように、AIアプリと外部のシステムを決まった方法でつなぐ、という意味です。一方で、MCPが定めるのは情報をやり取りする方法だけです。AIアプリがどのAIモデルを使い、受け取った情報をどう扱うかまでは決めていません。
MCPの仕組みとホスト・クライアント・サーバーの役割
MCPの接続には、ホスト、クライアント、サーバーの3つの役割があります。公式ドキュメントの説明をまとめると次のとおりです。
- MCPホスト:利用者が使うAIアプリケーションです。Claude Code、Claudeのデスクトップアプリ、Visual Studio Codeなどがこれに当たり、1つ以上のMCPクライアントをまとめて管理します。
- MCPクライアント:ホストの中で、1つのMCPサーバーとの接続を保つ部品です。ホストは接続するMCPサーバーごとにクライアントを1つ作ります。
- MCPサーバー:AIアプリに情報や機能を提供するプログラムです。社内のファイル、データベース、業務アプリなどの前に置きます。
図の要点をテキストで読む
MCPの構成を左から右へ示した図。MCPホストは利用者が使うAIアプリで、ClaudeやChatGPTなどが当たり、ツールの実行前に利用者の同意を得る。MCPクライアントはホストの中の部品で、MCPサーバー1つにつき1つ作られ、専用の接続を保つ。MCPサーバーはツール、リソース、プロンプトを公開し、公開する機能は必要な範囲に絞る。その先に、データベース、業務アプリ、SaaSなどの社内システムがあり、既存の権限の設定で守る。手元のパソコンで動くローカルのサーバーは標準入出力でつなぎ、ネットワーク越しのリモートのサーバーはStreamable HTTPでつなぐ。リモートの認証にはOAuthが推奨されている。
MCPサーバーには、利用者のパソコン上で動く「ローカル」のサーバーと、ネットワーク越しに使う「リモート」のサーバーがあります。ローカルのサーバーは標準入出力(stdio)でホストとやり取りし、通常は1つのクライアントだけに応答します。リモートのサーバーはStreamable HTTPという方式を使い、多くのクライアントに応答します。リモートの場合の認証について、公式ドキュメントはOAuthでトークンを取得する方法を推奨しています。
やり取りするメッセージの形式はJSON-RPC 2.0です。2026年10月6日時点で最新の仕様(2026-07-28版)では、リクエストごとにプロトコルのバージョンと必要な機能の情報を含め、サーバーが1件ずつ処理できる形になっています。業務担当者が細部まで理解する必要はありません。ただし、Claudeの開発者向け資料が、ClaudeはMCPの仕様の一部を実装しており、リソースの更新通知の購読などには対応していないと説明しているように、AIアプリごとに対応する範囲は異なります。使うAIアプリが対応している仕様の版と機能は、導入前に確認しておきます。
MCPサーバーが公開する3つの機能
MCPサーバーがAIアプリに提供する機能は、ツール、リソース、プロンプトの3種類です。公式ドキュメントは、それぞれを誰が使うかを決める主体で区別しています。
ツール:AIが実行する操作
ツールは、AIモデルが必要に応じて呼び出す関数です。公式ドキュメントでは、フライトの検索、メッセージの送信、カレンダーへの予定の登録が例に挙がっています。ツールはデータベースへの書き込み、外部APIの呼び出し、ファイルの変更などもできます。各ツールには名前、説明、入力の形式(JSON Schema)が定義されており、AIアプリは一覧を取得してから必要なツールを実行します。どのツールをいつ使うかはAIモデルが判断するため、書き込みを伴うツールでは特に権限と人の確認の設計が必要です。
リソース:AIに渡す参照用のデータ
リソースは、ファイルの内容、データベースの構造、APIの仕様書など、参照用のデータです。公式ドキュメントでは読み取り専用の情報源と説明しており、データのどの部分をAIモデルに渡すかはAIアプリ側が決めます。各リソースにはURIが割り当てられ、都市名や日付などの値を入れて取得するテンプレートも定義できます。
プロンプト:利用者が呼び出す定型の指示
プロンプトは、特定の作業のために用意した指示のひな形です。利用者が明示的に選んだときだけ使われ、スラッシュコマンドなどの形でAIアプリに表示されます。たとえば「会議の要約」「メールの下書き」のように、よく使う作業の手順とツールの使い方を決めておけます。
公式ドキュメントは、データベースに対応するMCPサーバーの例として、データを検索するツール、データベースの構造を示すリソース、ツールの使い方の例を含むプロンプトを組み合わせる構成を挙げています。また、MCPサーバーの側から利用者に追加の情報や操作の確認を求める「elicitation」という機能も定義されています。
提供元が公開しているMCPサーバーを使う方法
社内でよく使うSaaSや開発ツールには、提供元が自社でMCPサーバーを公開しているものがあります。まずは、使いたいAIアプリがMCPにどう対応しているかを確認します。
- Claude:リモートのMCPサーバーを「コネクタ」として追加できます。Anthropicの開発者向け資料によると、claude.ai、デスクトップアプリ、モバイルアプリ、Cowork、Claude Codeから接続できます。利用者または組織の管理者(Owner)がURLを入力して追加する「カスタムコネクタ」は、Anthropicの審査を経ません。Anthropicが審査したものはディレクトリに掲載されます。
- ChatGPT:OpenAIの資料では、プラグインの画面から「Add custom MCP server」を選び、サーバーのURLと認証情報を入力して接続します。接続の前にはリスクの警告が表示されます。OpenAIは、カスタムのMCPサーバーはOpenAIが開発・検証したものではない第三者のサービスだと明記しています。
- Visual Studio Code:拡張機能の画面で「@mcp」と検索すると、MCPサーバーの一覧から追加できます。サーバーを起動する前に信頼してよいかの確認があり、ツールを実行するたびに確認を求められる場合もあります。組織はGitHubのポリシーでMCPサーバーの利用をまとめて管理できます。
提供元のMCPサーバーの例として、GitHubは自社でホストするリモートのGitHub MCP Serverを公開しています。リポジトリの参照、IssueやPull Requestの管理、GitHub Actionsの実行状況の確認などができます。使う機能のまとまり(ツールセット)を指定して公開するツールを絞る設定や、書き込みのツールを除いて読み取りのツールだけを提供するモードも用意されています。
MCPサーバーを選ぶときは、提供元が自ら運営しているかを確かめます。OpenAIは、サービスの提供元がホストする公式のサーバーを選ぶよう勧めており、Stripeであれば第三者による非公式のサーバーではなく、Stripeが運営するサーバーにつなぐ例を挙げています。なお、MCPの公式リポジトリにある参照用のサーバーは、機能やSDKの使い方を示す教育用の例とされており、本番で使うことを想定したものではありません。
MCPで社内システムにつなぐときのセキュリティと権限設計
MCPの仕様は、データへのアクセスやコードの実行ができる分、すべての実装者がセキュリティと信頼の問題に対処する必要があるとしています。ただし、これらの原則をプロトコルの側で強制することはできないため、AIアプリとMCPサーバーを導入する側の設計が欠かせません。
仕様が求める同意と人の確認
仕様の基本原則では、利用者がすべてのデータアクセスと操作を理解し、明示的に同意することを求めています。ホスト(AIアプリ)は、利用者のデータをサーバーに渡す前と、ツールを実行する前に、利用者の明示的な同意を得る必要があります。ツールの仕様には、安全のため、ツールの実行を人が拒否できる状態を常に保つべきだと書かれています。
あわせて、MCPサーバーの側には、ツールへの入力の検証、適切なアクセス制御、呼び出し回数の制限、出力の無害化を求めています。AIアプリの側には、慎重に扱うべき操作の前の確認、ツールへの入力内容を利用者に見せること、時間制限の設定、監査のための利用記録を推奨しています。ChatGPTについては、OpenAIの資料に、現時点では書き込みの操作の前に手動での確認を必ず求めていると記載されています。
権限は読み取りの最小限から始める
MCPのセキュリティのベストプラクティスは、権限の範囲(スコープ)を最小限にすることを求めています。最初はリスクの低い参照や読み取りの操作だけを許可し、より強い権限が必要な操作を実行するときに、その分だけ追加で許可を求める進め方です。避けるべき例として、すべての権限をまとめて与えるスコープや、将来の確認を減らすために関係のない権限を一緒に付けることが挙げられています。
また、MCPサーバーは、自分宛てに発行されたもの以外のトークンを受け付けてはいけないと定められています。MCPサーバー宛てではないトークンを受け取り、そのまま社内の別のAPIに渡す作り方(トークンのパススルー)は、認可の仕様で明確に禁止されています。アクセス制御が働かなくなったり、監査の記録から誰の操作かを追えなくなったりするためです。
ローカルで動くMCPサーバーの注意点
利用者のパソコンで動くMCPサーバーは、AIアプリと同じ権限で動きます。ベストプラクティスでは、悪意のある起動コマンドや配布物によって任意のコードを実行されたり、データを持ち出されたりする危険を挙げています。対策として、ワンクリックで設定できるAIアプリには、実行するコマンドを省略せずに見せて利用者の承認を得ることを求め、ファイルやネットワークへのアクセスを制限した環境で動かすことを推奨しています。Visual Studio Codeの資料も、ローカルのMCPサーバーは任意のコードを実行できるため、信頼できる提供元のものだけを追加するよう注意しています。
プロンプトインジェクションへの備え
プロンプトインジェクションは、AIが読み込む文章に悪意のある指示を埋め込み、AIに意図しない操作をさせる攻撃です。OpenAIの資料は、MCPの開発元を信頼していても、それだけでは安全にならないと説明しています。たとえば、問い合わせ対応のMCPサーバーに攻撃者が指示を埋め込んだ問い合わせを送ったり、メールを読むMCPサーバー経由で、社内のツールから機密データを取り出して外部へ送らせたりする手口です。
対策としてOpenAIは、信頼できない入力を含むMCPサーバーを使わないこと、機密性の高いデータに接続できる人を絞ること、書き込みの操作は実行される前に人が内容を確認することを挙げています。社外から届くメールや問い合わせのように、誰でも書き込める情報を読むMCPサーバーと、社内のデータを更新・送信できるMCPサーバーを同じAIエージェントに持たせるときは、特に慎重に設計します。
ここまでの考え方を、社内でMCPを使う場面ごとに整理すると次のようになります。
図の要点をテキストで読む
社内でMCPを使う場面ごとに、MCPサーバーで公開する機能と、権限と人の確認の置き方を整理した表。社内規程やマニュアルの検索では、リソースと検索ツールを読み取りだけで公開し、部署ごとの閲覧権限に合わせる。顧客情報の参照では、顧客検索の読み取りツールを公開し、担当範囲に限定して利用記録を残す。問い合わせ返信の下書きでは、下書きを作るツールだけを公開し、送信は人が承認してから行う。基幹システムのデータ更新では、更新ツールを1件ずつ人が承認し、権限は必要な操作に絞る。社外から届くメールのように誰でも書き込める情報の読み込みでは、メール取得の読み取りツールだけを公開し、更新や送信のツールとは別のAIエージェントに分ける。
人の承認をどの操作の前に置くかは、AIエージェントに任せる仕事、人が確認する仕事の分け方で詳しく解説しています。権限管理の基本はQ&A「セキュリティと権限管理はどう考えるべきですか?」でも整理しています。
自社でMCPサーバーを作るかどうかの判断
つなぎたいシステムの提供元が公式のMCPサーバーを公開している場合は、まずそれを使う方法を検討します。公開しているツールの一覧、読み取り専用で使う設定があるか、認証の方式を確認し、業務に必要な範囲に絞って接続します。
自社でMCPサーバーを作る候補になるのは、次のような場合です。
- 社内で独自に作った基幹システムやデータベースのように、提供元のMCPサーバーがないシステムをAIにつなぎたい
- 既存のAPIをすべて公開するのではなく、業務に必要な操作だけをツールとして公開したい
- 社内の認証基盤や権限の区分、操作記録の保管方法に合わせて接続を管理したい
- Claude、ChatGPT、Visual Studio Codeなど、複数のAIアプリから同じ社内システムを使いたい
開発には公式のSDKを使えます。MCPの公式ドキュメントによると、TypeScript、Python、C#、Go、Rust、Rubyなどの言語でSDKが提供されており、どのSDKでもツール・リソース・プロンプトを公開するサーバーを作れます。動作の確認には、公式の開発ツールであるMCP Inspectorが用意されています。
一方で、MCPサーバーを追加しなくてよい場合もあります。Visual Studio Codeの資料は、すでにあるツールで足りるなら追加のサーバーは必要なく、追加するとアクセスの設定と信頼の判断が必要になると説明しています。社内の1つのアプリから1つのシステムを呼ぶだけであれば、AIモデルのAPIが持つツール呼び出しの機能で直接つなぐ方法も比べて検討します。ツール連携の設計の考え方は、Q&A「ツール連携やAPI統合はどのように設計すべきですか?」でも整理しています。
想定例:受注管理システムをMCPでAIエージェントにつなぐ場合
以下は説明のための架空の例です。営業部門が、Claudeから社内の受注管理システムの情報を確認できるようにしたいとします。受注管理システムは社内で開発したもので、提供元のMCPサーバーはありません。
最初に作るMCPサーバーでは、受注状況の検索と在庫の照会という2つの読み取りのツールだけを公開します。利用者は自分のアカウントで認証し、MCPサーバーは受注管理システムでのその人の閲覧権限の範囲だけを返します。ツールの呼び出しはすべて記録し、どの担当者がいつ何を検索したかを後から確認できるようにします。
読み取りの運用が安定したら、見積書の下書きを作るツールを追加します。受注データの更新や取引先へのメール送信は、AIが内容を用意したうえで担当者が確認し、承認してから実行する形にします。取引先から届いたメールを読むツールは、更新や送信のツールとは別のAIエージェントに分けることを検討します。
MCPサーバーで公開する操作が増えるほど、AIエージェント全体の設計を見直す場面も増えます。処理の手順を決めておくか、AIに判断を任せるかの選び方は、AIエージェントの設計パターンとは?で解説しています。
MCPの導入を相談する場合
MCPを使うと、AIエージェントを社内システムに標準的な方法でつなげます。一方で、公開する操作の範囲、利用者ごとの権限、人が承認する操作、操作の記録を決めないまま接続すると、誤った操作や情報の持ち出しにつながるおそれがあります。社内に設計と開発を進められる担当者がいる場合は、この記事の確認項目を検討の出発点に使えます。
inovieでは、AIエージェントにつなぐ業務とシステムの整理から、MCPサーバーの設計と開発、権限と承認の設計、試作での検証までを支援しています。AIエージェントの導入と改善についてはAIエージェント導入・改善支援、社内システムとの連携を含む開発についてはAI導入・システム開発支援をご覧ください。MCPで社内システムをつなぐ範囲や進め方のご相談は、お問い合わせから受け付けています。
出典確認日:2026-10-06
この記事をシェアする



