MCP(Model Context Protocol)と Claude|業務データを繋ぐときの権限設計
目次 クリックで開く
生成AIを単なるチャットボットとしてではなく、業務を遂行する「AIエージェント」として活用するためには、社内ドキュメントやデータベースへの安全なアクセスが不可欠です。Anthropic社が提唱したMCP(Model Context Protocol)は、このデータ連携を標準化する画期的なプロトコルです。
しかし、Claudeに社内データを接続する際、最も大きな壁となるのが「権限設計」です。万が一、一般社員用のClaudeが役員会議事録や給与データにアクセスできてしまえば、重大なインシデントに繋がります。本記事では、IT実務担当者がMCPを導入する際に押さえるべき、セキュリティと権限管理の核心を解説します。
MCP(Model Context Protocol)とは? Claudeと業務データを繋ぐ新標準
API連携の「バラバラ」を解消するMCPの役割
これまで、AIモデルに外部データを参照させるには、サービスごとに独自のAPI連携コード(コネクタ)を書く必要がありました。MCPは、AIアプリケーション(ホスト)とデータソース(リソース・ツール)の間の通信を標準化するオープンな規格です。一度MCPサーバーを構築すれば、Claudeだけでなく、他のMCP対応クライアントからも同じインターフェースでデータを呼び出せるようになります。
ClaudeがMCPを強力に推進する理由
Anthropicは、Claude Desktopを通じてMCPをいち早くサポートしました。これにより、ローカル環境のファイル操作、GitHubのIssue管理、Google Driveの検索などが、ClaudeのチャットUIから直接実行可能になっています。企業にとっては、独自のRAG(検索拡張生成)システムをゼロから開発せずとも、既存のMCPサーバーを活用することで、即座に業務特化型AIを構築できるメリットがあります。
例えば、社内のSaaS管理において、退職者のアカウント削除漏れを防ぐためにMCP経由で各SaaSのステータスを確認するといった運用も現実的です。こうしたID管理の重要性については、SaaS増えすぎ問題と退職者のアカウント削除漏れを防ぐ。Entra ID・Okta・ジョーシスを活用した自動化アーキテクチャで詳しく解説していますが、AIがこれらの中間層として機能する未来がMCPによって加速しています。
MCPのアーキテクチャと権限設計の基礎
MCPを利用する際、データの流れは「Claude App (Host) ↔ MCP Server ↔ Data Source」となります。この構造において、権限設計は2つのパターンに分かれます。
ローカル接続とリモート接続の権限境界
- ローカル接続: ユーザーのPC上でMCPサーバーを起動します。この場合、MCPサーバーは「そのユーザーがPC上で持っている権限」を継承します。例えば、ローカルのSQLiteファイルにアクセスする場合、ユーザー自身が読み取り権限を持っていればClaudeもそれを読み取れます。
- リモート接続: 社内サーバーやクラウド(AWS/GCP等)上でMCPサーバーを稼働させます。複数のユーザーが共有して利用するため、サーバー側に「誰がどのデータにアクセスできるか」を制御する認可レイヤーが必要です。
セキュアなデータ接続のための3つの認証レイヤー
- Transport Layer: MCPサーバーとClaude間の通信。ローカルではstdio(標準入出力)、リモートではSSE(Server-Sent Events)が使われ、HTTPS等による暗号化が必須です。
- App Authentication: ClaudeがMCPサーバーにアクセスするための認証。APIキーやOAuth 2.0を用いて、許可されたクライアントのみがサーバーを叩けるようにします。
- Data Source Authorization: MCPサーバーがGoogle DriveやSalesforce等のデータソースにアクセスするための権限。ここでは「サービスアカウント」を利用するか「ユーザー委任(OAuth)」を利用するかを慎重に選ぶ必要があります。
【実務比較】MCP vs 従来のAPI連携 vs カスタムGPT
業務データを繋ぐ手法は複数ありますが、MCPは「汎用性」と「ローカル完結」において優位性があります。各手法の特徴を以下の表にまとめました。
| 比較項目 | MCP (Model Context Protocol) | 従来のAPI連携 (Custom App) | OpenAI Actions (GPTs) |
|---|---|---|---|
| プロトコル | JSON-RPCベース(標準規格) | REST / GraphQL (独自実装) | OpenAPI Specification |
| 主な実行環境 | ローカルPC / 自社サーバー | クラウドサーバー | OpenAIプラットフォーム |
| データ露出リスク | 低い(ローカル完結が可能) | 中(API公開が必要) | 中(外部からアクセス可能なURLが必要) |
| 開発コスト | 低〜中(OSSサーバーが豊富) | 高(フルスクラッチ開発) | 低(定義ファイル作成のみ) |
| 主な対象ツール | GitHub, Google Drive, Postgres等 | 全般 | WebAPIを持つ全SaaS |
特に、会計データや人事データのように、クラウド上に公開したくない情報を扱う場合は、社内LAN内蔵のデータベースに対してMCPサーバーをローカル、またはプライベートネットワーク内で立てる構成が最もセキュアです。例えば、経理業務の自動化において、楽楽精算×freee会計の「CSV手作業」を滅ぼす。経理の完全自動化を目指す際、MCPを活用して直接データベースから仕訳候補を取得するような高度な連携も可能になります。
ClaudeでMCPを導入する具体的ステップ
ここでは、最も一般的なClaude Desktopを用いて、OSSのMCPサーバーを導入する手順を解説します。
手順1:Claude DesktopへのMCPサーバー登録
Claude Desktopの設定ファイル(claude_desktop_config.json)を編集します。このファイルは通常、以下のパスに存在します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
手順2:MCPサーバー(OSS/自作)の起動と認証設定
例えば、Google DriveにアクセスするためのMCPサーバーを追加する場合、以下のような設定を記述します。
{
"mcpServers": {
"googledrive": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-google-drive"],
"env": {
"GOOGLE_DRIVE_CREDENTIALS": "your_credentials_here"
}
}
}
}
ここで重要なのは、GOOGLE_DRIVE_CREDENTIALSの管理です。環境変数に直接APIキーを書き込むのは避け、OSのキーチェーンや安全なシークレット管理サービスを利用することを推奨します。公式のドキュメント(Model Context Protocol Official)では、セキュリティに関する最新の仕様が随時更新されているため、実装前に必ず参照してください。
手順3:Enterprise環境におけるゲートウェイ管理
企業でClaude Enterpriseを利用している場合、個々のPCでMCPサーバーを立てるのではなく、組織で認証された「共有MCPサーバー」を用意することが一般的です。これにより、システム管理者は「どのユーザーがGitHub MCPサーバーを利用できるか」を組織単位で制御可能になります。
【重要】業務データ接続時の権限設計チェックリスト
MCPサーバーを本番運用する前に、以下の項目を必ずチェックしてください。
アクセストークンの最小権限原則(PoLP)
MCPサーバーに発行するAPIトークンは、ReadOnly(読み取り専用)から始めるべきです。Claudeに「メールを送信する」「ファイルを削除する」といった書き込み権限を与えるのは、AIの誤作動やプロンプトインジェクション(悪意のある指示による操作)のリスクを考慮してからにしてください。
機密情報のマスキングとプロンプトインジェクション対策
MCPサーバー側で、特定のキーワード(例:給与、パスワード)を含むデータをフィルタリングするロジックを実装することは非常に有効です。AIに渡す前に「構造化データ」として整理し、不要なメタ情報を削ぎ落とすことで、トークンコストの削減とセキュリティ向上を両立できます。
これは、【図解】SFA・CRM・MA・Webの違いを解説。高額ツールに依存しない『データ連携の全体設計図』で述べている、データの「責務分解」の考え方と同じです。AIにすべてを任せるのではなく、MCPサーバーという「ゲートキーパー」が適切にデータを間引く設計が求められます。
監査ログ(Audit Logs)の取得範囲
「誰が」「いつ」「どのツール(MCP)を使い」「どんなデータにアクセスしたか」をログとして残す必要があります。Claude Enterpriseの監査ログに加え、MCPサーバー側でもリクエストログを収集し、SIEM(Security Information and Event Management)等で監視できる体制を整えましょう。
よくあるトラブルと解決策
MCPサーバーが接続エラーになる(ECONNREFUSED)
原因の多くは、Node.jsのバージョン不一致か、依存ライブラリの不足です。MCPサーバーが依存するランタイム(Python 3.10以上やNode.js 18以上など)が、Claude Desktopを実行している環境に正しくインストールされているか確認してください。
Claudeがツールを認識しない場合のデバッグ
設定ファイルを書き換えた後は、Claude Desktopを完全に終了(Quit)させてから再起動する必要があります。また、設定ファイルのJSON形式が不正(カンマの付け忘れ等)な場合、Claudeは黙ってMCPサーバーを無視します。JSONバリデーターで構文をチェックすることをお勧めします。
まとめ:セキュアなAIエージェント基盤を構築するために
MCPとClaudeの連携は、社内に散らばったデータをAIという「知能」に直結させる強力な武器となります。しかし、その力は適切な権限設計があって初めて安全に発揮されます。ローカルでの試行錯誤から始め、段階的にエンタープライズレベルのリモートMCP構成へと移行していくのが、実務上の正解と言えるでしょう。
データのサイロ化を解消し、業務効率を劇的に向上させるための基盤づくりは、単なるツール導入以上の価値を企業にもたらします。本記事で紹介した権限設計の原則を守り、安全なAI活用を推進してください。
実務導入前に知っておくべきMCP運用の勘所
よくある誤解:MCPは「魔法のコネクタ」ではない
MCPを導入すれば、あらゆる社内データが即座にAIに理解されるわけではありません。実務において陥りやすい盲点を整理しました。
- データの構造化が必要: 非構造化データ(雑多なメモ書きなど)をそのままMCPで流しても、Claudeが正しくコンテキストを解釈できない場合があります。事前にデータを整理する「責務分解」の考え方は、モダンデータスタック構築の事例と同様、MCP運用においても非常に重要です。
- トークン消費量の増大: MCP経由で大量のリソースを読み込ませると、Claudeのコンテキストウィンドウを圧迫し、利用料金の増大やレスポンス精度の低下を招きます。
- 「実行権限」の分離: 「データの参照(Resource)」と「操作の実行(Tool)」は別物です。まずは参照専用のMCPサーバーから構築を始めるのが安全なスモールスタートの定石です。
公式リソースと主要な実装先
開発・運用の際は、以下の一次情報をベースに構成を検討してください。特にGitHub上のリポジトリには、Google、Slack、PostgreSQLなどの公式実装が公開されています。
| リソース名 | 用途・内容 | リンク |
|---|---|---|
| MCP Official Docs | プロトコルの仕様・最新アップデート情報 | 公式ドキュメント |
| MCP Servers (GitHub) | Anthropic公式が提供するOSSサーバー群 | GitHub Repo |
| Claude Desktop App | MCPのホストとなるデスクトップ版クライアント | ダウンロードページ |
セキュリティを強固にするためのチェックリスト
権限設計を終えた後、以下の運用ルールが策定されているか確認してください。
- IP制限の実施: リモート環境でMCPサーバーを運用する場合、ClaudeのバックエンドIPからのアクセスのみを許可する、あるいはVPN/閉域網内での運用を検討しているか。
- プロンプトインジェクション対策: AIが意図しないツール実行を行わないよう、システムプロンプト側での制約だけでなく、MCPサーバー側で「一度に削除できるファイル数」などの物理的な制約を設けているか。
- 定期的なトークンローテーション:
claude_desktop_config.json等に記述する認証情報が永続的になっていないか。
特に、LINEなどの外部プラットフォームと連携し、AIが顧客接点を自動駆動するような高度なアーキテクチャを目指す場合は、データ基盤から直接駆動する「動的リッチメニュー」の事例のように、AIに渡す前の「データ正規化レイヤー」を強固に設計することが、事故を防ぐ鍵となります。
MCPサーバー開発と組織展開における実務のポイント
開発言語の選択:Python SDK vs TypeScript SDK
自社専用のMCPサーバーを開発する場合、公式が提供する2つの主要SDKから選択することになります。実務上の選定基準は以下の通りです。不確かな場合は、社内のメイン開発言語に合わせる形で問題ありませんが、ライブラリの依存関係は事前に公式リポジトリで確認することを推奨します。
- Python SDK: データ分析基盤やAIライブラリとの親和性が高く、既存のデータサイエンス資産を活用する場合に適しています。
- TypeScript SDK: Node.js環境で動作し、多くのOSS MCPサーバーでも採用されています。フロントエンドエンジニアが多い組織での導入に向いています。
組織展開における「設定ファイル管理」の課題
Claude DesktopでMCPを利用する場合、各PCの claude_desktop_config.json を個別に編集する必要があります。数十名規模で導入する際、手動設定は設定ミスの原因となるため、以下のような運用が検討されます。
- 構成管理ツールの活用: AnsibleやJamf等を用いて、設定ファイルを一括配布・更新する。
- 環境変数の外部化: 認証情報を直接JSONに書き込まず、OS側の環境変数を参照させる設計にする。
こうした「ツールが増えすぎる中でのガバナンス」については、SaaSコストとオンプレ負債を断つ。バックオフィス&インフラの「標的」と現実的剥がし方の考え方が、MCPサーバーという新しいコンポーネントの管理にも応用できます。
MCP関連の公式開発リソース
| リソース種別 | 内容 | リンク |
|---|---|---|
| Python SDK | PythonでMCPサーバーを構築するための公式ライブラリ | GitHub: python-sdk |
| TypeScript SDK | Node.js/TypeScript向けの公式ライブラリ | GitHub: typescript-sdk |
MCPは、単なるチャットの拡張ではなく、企業のデータ基盤をAIから安全に「呼び出す」ための標準インターフェースです。モダンデータスタックの文脈においても、dbtで加工されたクリーンなデータをMCP経由でClaudeに提供することで、ビジネスサイドのユーザーがSQLを書かずに高度な分析結果を得られる環境が実現可能になります。