MCP サーバーや agent tool の設定をレビューしていると、expose, grant access to, allow the agent to call が、まとめて「agent が使えるようになった」という意味に見えることがあります。
ただ、ここをまとめて読むと、承認した範囲がぼやけます。
見える ≠ アクセスできる ≠ 呼び出せる
MCP 設定でまず分けたいのは、この3つです。
| 表現 | まず見る境界 | まだ言えないこと |
|---|---|---|
expose X to the agent |
X が見える | read / write / call できるとは限らない |
grant access to X |
X にアクセスできる | access の種類や強さはまだ分からない |
allow the agent to call X |
X を呼び出せる | 背後の内部データ全体にアクセスできるとは限らない |
PR で次のような設定差分を見たとします。
resources:
exposed_to_agent:
- repo_index
- design_notes
permissions:
grant_access_to:
- read:repo_index
tools:
allowed_to_call:
- search_issues
ここで repo_index や search_issues という名前だけを見ると、「何が使えるようになったか」を確認しているように見えます。
ただ、レビューで先に見たいのは名前よりも動詞です。exposed_to_agent, grant_access_to, allowed_to_call は、それぞれ別の境界を置いています。
expose で止めるところ
expose が出てきたら、まず visibility の話で止めます。ここで分かるのは、agent から X が見える状態になったことまでです。
それだけでは、「中身を読める」「書き換えられる」「操作として呼び出せる」までは進みません。
レビューで聞くのは、見えている X が名前だけなのか、metadata なのか、内容そのものなのかです。
expose を「使える」と読んでしまうと、visibility の話を capability の話に広げすぎます。
grant access to で聞くこと
grant access to は、「見える」より一段進んで、「触れる範囲がある」と読む表現です。ただし、access と書いてあっても、何ができる access なのかはまだ決まりません。
read だけなのか、search できるのか、write も含むのか、invoke まで含むのか。ここを分けないと、access という単語だけが実際より強く見えます。
レビューで聞くのは、access の種類と強さです。
grant access to を「何でもできる」と読んでしまうと、read access のような狭い許可まで過大に読みます。
allow the agent to call で見ること
call まで来たら、レビュー対象は「見えるか」ではなく「どんな操作を起動できるか」に移ります。
見るのは、渡せる引数、実行時の副作用、返ってくる値です。
呼び出せることは、呼び出し先の内部データを全部読めることとは別です。
allow the agent to call を「背後のデータに自由にアクセスできる」と読んでしまうと、operation の境界を data access の境界に広げすぎます。
あとで見返すチェック
あとで設定を見返すなら、tool 名より先に次の4つだけ確認します。
- agent から何が見えるのか。
- read / search できる範囲はどこまでか。
- write や副作用のある操作まで含むのか。
- call できるなら、引数・副作用・戻り値は何か。
最後に残すなら、この読み方です。
expose は「見える」で止める。grant access to は access の中身を聞く。allow the agent to call は呼び出しの形を見る。