Least-privilege checklist for tools
Goal: Default-deny every tool; open only the read/write/send/delete you need—send and delete last.
Best for: before enabling MCP servers, plugins, or connectors for real data.
Least privilege means: start with read, one folder, one account, no send/delete. Widen only when a real task fails without it—and write down why.
Print this checklist (or keep it in your notes) and run it every time you click Connect.
Why beginners skip this
Checking every permission at once feels easy—one misfire can touch tools it should never reach. Minimum privilege first.
Step 1 — Default deny sheet
For each tool ask read / write / send / delete; default all no, then open only the yes you need.
Tool: [name]
Job: [job]
Fill a table: Read/Write/Send/Delete = Yes/No with one-line why each.
Prefer beginner-safe defaults.
Example
Filled prompt
Connector: Drive read + Drive write + Calendar write enabled since onboarding.
Apply least-privilege checklist. I have not used Calendar write in 14 days.
Propose what to revoke and what to keep on ask-every-time. No allow-all language.
What good output looks like
- Write stays No unless creating one summary file in sandbox
- Send/Delete never for this job
- Folder scope named
Step 2 — Time-box any wide access
If you must widen temporarily (launch week, migration), set a calendar reminder to revoke in 7 days. Put the reason in one sentence.
Draft a 7-day temporary access note: what was widened · why · revoke date · owner name.
Example
Filled prompt
GitHub connector: contents write + actions write; I only summarize PRs.
Revoke writes. Keep read. Ask-every-time if write ever returns.
What good output looks like
- Read/draft preferred over write for “give each tool the smallest access that still does”
- Ask-every-time on leave-the-system tools
- Kill-switch owner named
- Pass/fail: dry-run only today
Step 3 — Quarterly prune (10 minutes)
List connectors/plugins; remove unused; shrink scopes that grew “give each tool the smallest access that still does” Test disconnect once so you remember how.
Write a 10-minute quarterly prune checklist for AI connectors/plugins a beginner can follow click-by-click.
Example
Filled prompt
Job: Connect/review scopes for “give each tool the smallest access that still”. Prefer read/draft. Ask-every-time on leave-the-system.
Boundaries: draft only; Unknowns [?]; no silent send; no invented metrics.
Return: checkable artifact + one-minute pass/fail for mcp-least-privilege-checklist.
What good output looks like
- Matches named constraints for “give each tool the smallest access that still does”
- Unknowns labeled; no invented owners/metrics
- Stops before irreversible actions
- Pass/fail markable in ≤60s
Save this card
Card: Default deny every tool; open only the read/write/send/delete you actually need. Keep this beside the tool; read before you start.
Before you start
Open the MCP panel on the account you keep. For “give each tool the smallest access that still,” decide read/draft vs write before any Connect. Ask-every-time on leave-the-system. Guide: mcp-least-privilege-checklist. Keep the real job visible the whole time; a blank box means stop and fetch the artifact first.
How to use this week
This week run the least-privilege checklist on a real MCP: enable only tools needed this week; out-of-ring actions need human confirm.
Close the week by quoting aloud the refuse line you actually used once. If you cannot, rerun Practice now and date the pass/fail (Asia/Shanghai).
Monthly 8 minutes
Calendar a recurring 8-minute permission skim. Unused writes get revoked the same day—not “give each tool the smallest access that still does”
Keep it real
Run this guide’s Practice now on work you will actually ship this week—not a fictional scenario. Dated notes beat perfect theory.
Do not bookmark-only
Finish Practice now, then tick this guide on your path. Titles unread are not skills.
Close the loop
Write one line: next time I check every permission at once, I refuse go.
Check the unknown path
What should the model do when a field is missing—null, TBD, or ask you? Write it once in Boundaries.
Red flag
Default-allow tools; unused write/send still open—default deny and close extras.
Pitfalls
| Pitfall | Fix |
|---|---|
| Admin forever for convenience | Temporary + revoke date |
| Same token for personal and work | Separate accounts |
| No written why for wide scopes | One-sentence note |
Example
Filled prompt
Temptation: skip the habit for mcp-least-privilege-checklist to save five minutes.
Job still: give each tool the smallest access that
Smallest correct pass: Done visible · checkable artifact · Unknowns [?].
Boundaries: draft only; no silent send; no invented metrics.
Return: artifact + refuse-line said aloud.
What good output looks like
- Names the shortcut refused (specific to mcp-least-privilege-checklist)
- Still delivers checkable output for “Least-privilege checklist for tools”
- Unknowns labeled; draft-only
- Pass/fail: refuse-line dated (mcp-least-privilege-checklist #4)
Practice now
Deny log: log each denied permission with why (Asia/Shanghai).
Time-box grant: temporary grant expires Asia/Shanghai tonight (Asia/Shanghai).
Scope shrink: replace one broad scope with a narrower one (Asia/Shanghai).
Revoke-one drill: remove one tool you did not use today (Asia/Shanghai).
Least-privilege drill: revoke one unused MCP tool scope tonight; note it on Save (Asia/Shanghai).
Thin-spot drill: rewrite the Save card with real nouns from your work (repo, doc, inbox). Generic placeholders fail the drill.
Tonight for one real MCP connection enable only tools needed this week; turn extras off and log why.
Reality check: after Practice now, write one sentence you will refuse next time—and keep it on the Save card dated Asia/Shanghai.
Today card (copy) — mcp-least-privilege-checklist: 1. Artifact I will produce: ___ 2. Pass/fail check: ___ 3. Refuse-line if tempted to skip verify/send: ___ (date: Asia/Shanghai) 4. One never-do from this guide: ___
Extra pass: do the card on a real file today—reading alone does not count.
One sentence takeaway
Minimum privilege first; out-of-ring actions always need human confirm.
Word-floor practice
Run the Today card once on a real artifact. Write pass/fail + never-do with date Asia/Shanghai. If you only skimmed, do not mark this guide done.
Next
工具最小权限清单
目标: 给每个工具默认拒绝,只打开「刚好够用」的读/写/发/删;发送与删除最后才谈。
适合: 在把真实数据接到 MCP 服务器、插件或连接器之前。
最小权限的意思是:从只读、一个文件夹、一个账号、不发送也不删除开始。只有真实任务因此做不成,才扩大,并写下原因。
把这张清单存进笔记,每次点「连接」前过一遍。
为什么新手跳过
权限一次勾满像省事;一次误触就能碰到不该碰的工具。最小权限先开。
步骤 1——默认拒绝表
对每个工具先问四句:读?写?发?删?默认全答否,再只打开最少的「是」。
工具:[名称]
任务:[任务]
填表:读/写/发/删 = 是/否,并各用一行说明理由。
优先初学者安全默认。
实例
填好的提示词
工具:网盘连接器。任务:只给 AI-Sandbox/ 起草每周摘要。
读=是(该文件夹)· 写=否 · 发=否 · 删=否。
边界:不编造;未知标 [?];发送前停下。
完成检查:一分钟内能判过/不过。
像样的输出大概长这样
- 读=是,且范围写死为 AI-Sandbox/,不扩到整盘
- 写 / 发 / 删 对本任务一律否
- 如果以后要在沙箱里存摘要,再单独开「写」,并写收回日
- 输出像一张可贴在显示器边的检查卡
- 不暗示「先全开再收紧」
步骤 2——放大权限要限时
如果必须临时放宽权限(发布周、迁移),立刻在日历里设提醒:七天后收回。原因用一句话写下来。
起草 7 天临时权限说明:放大了什么 · 为何 · 收回日 · 负责人姓名。
实例
填好的提示词
发布周临时可写 Campaigns/,至 2026-10-24;负责人小王;之后收回为只读。
请写成权限变更备忘 + 日历提醒句;到期未收视为事故。
边界:不编造;未知标 [?];发送前停下。
完成检查:一分钟内能判过/不过。
像样的输出大概长这样
- 写明路径 Campaigns/、截止日 2026-10-24、负责人小王
- 收回后自动变回只读,写进同一张说明
- 理由具体到「发布周需要改文案」,不写「以防万一」
- 提醒到期当天要真的点收回,不是靠记性
- 格式短到能贴进日历事件描述
步骤 3——每季度修剪(10 分钟)
列出连接器和插件,不用的删掉;当初「以防万一」撑大的范围收回来,再故意断连测一次,免得急用时手忙脚乱。
写一份初学者能按点击完成的 10 分钟季度修剪清单。
实例
填好的提示词
把最小权限习惯收成可勾清单:打开设置 → 列出连接器 → 十四天不用就断开 → 还要写权限吗?降级 → 确认。
默认拒绝发/删;写出今晚要关掉的那一项。
边界:不编造;未知标 [?];发送前停下。
完成检查:一分钟内能判过/不过。
像样的输出大概长这样
- 步骤能在约 10 分钟内点完:设置 → 列表 → 断开 → 降级 → 确认
- 含一次故意断连再重连的练习
- 含把「写」降为「读」的检查项
- 语言像给自己用的清单,不堆术语
- 结束时留下一行:本季删掉了哪个连接器
保存这张卡
记下:本周拒绝的一项权限 + 修好的一次工具报错原文。标上日期。
开始前
先说清本周那件活,以及最小范围(只读 / 草稿 / 写入)。说不清,就先别接。
本周怎么用
本周给一个真 MCP 跑最小权限清单:只开本周要用的工具;超圈动作人工确认。
每月 8 分钟
设一个每 8 分钟可完成的权限扫视习惯。没用的写入当天就撤,别说「以后再说」。
保持真实
用本周真要交付的工作做「现在就练一次」,别编假场景。带日期的实操笔记,比完美理论有用。
不要只收藏
先做完「现在就练一次」,再在学习路径上打勾。只收藏不练,标题变不成技能。
闭环
写下一行:下次权限一次勾满,我拒绝放行。
检查未知路径
字段缺失时模型该怎么做:填 null、写 TBD,还是问你?在边界说明里写清楚一次。
红旗
权限一次勾满,一次误触就能碰到不该碰的工具;最小权限先开。
常见坑
| 坑 | 改法 |
|---|---|
| 图省事一直开着管理员权限 | 临时放大 + 写明收回日 |
| 个人号和工作号共用同一令牌 | 账号分开 |
| 放宽权限却不写原因 | 用一句话记下来 |
现在就练一次
今晚就练:给一个真 MCP 跑最小权限清单:只开本周要用的工具;超圈动作人工确认。
一句话带走
最小权限先开;超圈动作一律人工确认。
下一步
← Back to home · Learn · Tools · Compare · Start