---
title: 業務用 MCP とリソース付与権限の話
tags: 
author: [takanakahiko](https://www.docswell.com/user/takanakahiko)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LJ1Y5QW4EG.jpg?width=480
description: 業務用 MCP とリソース付与権限の話 by takanakahiko
published: September 23, 26
canonical: https://www.docswell.com/s/takanakahiko/5R8JRG-2026-09-23-180134
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LJ1Y5QW4EG.jpg)

生成AIなんでも展示会 Vol.6 LT
業務用 MCP とリソース付与権限の話
Agent時代の権限の考え方
takanakahiko / 株式会社U-NEXT R&amp;D本部


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GJWG5M6Z72.jpg)

自己紹介
株式会社 U-NEXT の takanakahiko です
2025年入社 / 2社目
バックエンドエンジニア / AI Working Group (Core Member)
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/4EZLNQYL73.jpg)

導入
会社AI活用あるある
「xxをAIに繋げるようにしたい」
「yyをAIが読めるようにしたい」
「zzを(ry」
MCPや！！！！
MCP とは: What is the Model Context Protocol (MCP)? - Model Context Protocol https://modelcontextprotocol.io/docs/getting-started/intro
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/Y76W86DM7V.jpg)

導入
OAuth で繋ぐ MCP
AさんがMCPを繋いでAgent経由でスプレッドシートを操作できるようにする
Claude Code とかに依頼してスプレッドシートの操作が可能に
エージェント
tools/call
Aさん
MCP サーバー
google-sheets
Sheets API
スプレッドシート
OAuth（Aさんとして認可）
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/G75M963Q74.jpg)

導入
これから話すのは メンバー:リソース が n:n の話
メンバー
役員
リソース
Aさん
経営会議シート
Bさん
事業部 共同作業シート
Cさん
分析⽤シート
Dさん
議事録フォルダ
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/9J292MZWER.jpg)

問題
OAuth で繋ぐ MCP と権限
例えば
Aさんは役員レベルの偉いPeopleなので、大きめの権限を持っています
役員管轄の事業部の共同作業シートのオーナーだとする(やろうと思えば削除もできる)
そういった権限もAgentに預けることになる
Aさん（⼈間）
エージェント
シートのオーナー
閲覧
編集
共有
削除
そのまま渡す
同じ権限
閲覧
編集
共有
削除
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/DEY4YXR9JM.jpg)

問題
想定される事故
「古いシートを
整理しておいて」
エージェント
「不要なシートを消そう」
tools/call
delete_spreadsheet(...)
共同作業シート
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VJNYP1DD78.jpg)

問題
どう制御するか
人間だとこういうモーダルが出る
→ じゃあそういうプロンプト(「削除前に確認して」など)を入れればいいじゃん
☝️ これは間違い。ハーネス(AIに対するガードレール)は決定論的に行うべき。※1
※1 Writing a good CLAUDE.md | HumanLayer Blog https://www.humanlayer.dev/blog/writing-a-good-claude-md
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/YE9P35G8J3.jpg)

問題
本質情報
人間向けの権限は、警告モーダルなどのUIとセットで運用されている
Agentとのチャットを通したUIではそれがすっ飛ばされている
→ 根本的に、権限の前提が違うので、AIにはAI向けの権限が必要！
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GE8DMYVZED.jpg)

対策
とりあえずできる対策
MCPのTool毎にDenyする
でも
→ ファイルの重要度に応じては、エージェントにファイルを削除させても良いユースケースもある。
→ そもそもリスクをどれぐらい取るかをユースケース毎に人間が判断したい。
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LELM34517R.jpg)

対策
U-NEXT でとっている方法
MCPはサービスアカウント経由でオペレーションを行うようにする
こんな感じのマッピングを定義しておいて、ユーザーの所属する GoogleGroups に応じて利用するSA
を決定する
[
]
{
&quot;group&quot;: &quot;ringo-honbu&quot;,
&quot;sa&quot;: &quot;ringo-honbu-agent@example.iam.gserviceaccount.com&quot;
},
{
&quot;group&quot;: &quot;banana-honbu&quot;,
&quot;sa&quot;: &quot;banana-honbu-agent@example.iam.gserviceaccount.com&quot;
}
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4JMYDK35JW.jpg)

対策
全体図
MCP サーバー
エージェント
tools/call
Aさん
所属グループ
ringo-honbu
対応表
サービスアカウント（SA）
ringo-honbu-agent@…
SA で実⾏
スプレッドシート
SA に許可した
範囲だけ
Google ログイン（Aさんの所属グループを確認）
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PJR94XQZ79.jpg)

対策
運用例
自由に作成や削除をしていいファイルは特定のフォルダに入れて、フォルダ全体に編集権限を付与し
てしまう
編集は人間が、分析はAgentがやりたいシートには、SAにそのシートの閲覧権限のみ付与する
Agent 作業⽤フォルダ
⼈間が編集するシート
消えても困らないものだけ置く
Agent には分析だけさせたい
SA
作成・編集・削除
SA
閲覧のみ
⼈間
作成・編集・削除
⼈間
編集
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/PEXQ2651JX.jpg)

対策
チーム共通Agentにも相性が良い
例えばHermes Agentをチームで運用するとする。
スプレッドシートの MCP をAさんの権限で動かしてしまうと、他のチームメンバーはAさんの権限で部長
レベルの機密情報が読めてしまう。
SAにすると、そのAgentに与える権限を人間側の権限とは切り離して考えられる。
Aさんの権限で動かす
チームの SA で動かす
共通 Agent
チーム全員
+ MCP
Aさんとして
部⻑の機密シート
全員が読める
共通 Agent
チーム全員
+ MCP
SA として
SA に許可した
シートだけ
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/3EK9M16MED.jpg)

対策
別パターンの妄想
個人ごとそれぞれSAを持って、こういう形でも良い。
app.example.com/settings/permissions
メンバーと権限
アカウント
＋ 招待
⼈間として
エージェント（MCP 経由）
a
a@example.com
read &amp; write
read only
b
b@example.com
read &amp; write
read &amp; write
とはいえ
チームでエージェントのSAを1つにして運用する方が業務にフィットしたので採用しなかった
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/L73WYQ6275.jpg)

補足
今までの話は メンバー:リソース が n:n の場合の話
例えばメールのMCPはわざわざSAを経由する必要がない。
メールを読ませたいけど自動で送信までやって欲しくないときはtoolをdenyすればいい。
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/87DK59V6JG.jpg)

補足
MCP 側で制御できる場合
あるいは、MCP側のサービスにそういった制御用の設定がユーザーに露出していればいい
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VJPKGZRZE8.jpg)

まとめ
まとめ
メンバー:リソース が n:n の場合はユーザーの権限をそのまま使わない方がいい
サービスアカウント的な、Agent専用のアカウントの概念を入れると良い
「AIを入れるならこのリスクは受け入れなければいけない」
をMCP側で作らないようにしよう
リスクの取り方はメンバーが制御できるようにする
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/2EVV6WRMEQ.jpg)

補足
トレーサビリティはどうするか
MCP サーバーのログには「どのアカウントが、どのクライアントで、どの SA で、どのツールを呼ん
だか」を記録する
呼び出しの内容そのもの（書いた値や読んだデータ）は記録しない
内容が必要になったら、スプレッドシートの版管理（変更履歴）と時刻・SA で突合する
MCP サーバーのログ
シートの変更履歴
誰が・どのクライアントで・どの SA で・どのツールを呼んだか
10:12:05
a@example.com
claude-code
ringo-honbu-agent@…
10:13:41
b@example.com
update_values
claude.ai
ringo-honbu-agent@…
read_range
書き込んだ値や読んだ内容は記録しない
（機密がログに複製されるのを避ける）
何がどう変わったかは Google 側にある
突合
時刻と SA
10:12 ringo-honbu-agent@…
B2:D8 を更新（前の版に戻せる）
09:48 c@example.com
シート「集計」を追加
09:30 a@example.com
A1 のタイトルを変更
19


