单个工具的启用与审批控制 · 精细到工具粒度的权限
为什么工具级控制很重要
很多 AI app 的 MCP 权限是"全有或全无"——要么整个服务器的工具都能用,要么整个都不能。这在 MCP 服务器暴露很多能力的时候很危险:
场景:一个 MCP 服务器同时提供"查询数据库"和"删除数据库表"两个工具。如果你不想让 AI 有删除权限,全有或全无意味着你要么放弃查询、要么冒险让 AI 能删除。
RikkaHub 的解决方案是工具级控制——每个 MCP 工具可以单独启用/禁用、单独设置是否需要审批。
工具启用 / 禁用
在 设置 → MCP → 某个服务器 → 工具列表:
- 每个工具有一个独立的 enable 开关(默认开启)
- 关闭后,这个工具对所有助手不可见,即使服务器已连接
典型场景
| 场景 | 做法 |
|---|---|
| 服务器暴露了 10 个工具,你只需要 3 个 | 把另外 7 个关闭 |
| 某个工具不稳定导致 AI 调用时报错 | 临时关闭,等修好再打开 |
| 想防止 AI 执行有副作用的操作 | 关闭 / 开启审批(见下节) |
工具审批(needsApproval)
开启"需要审批"后,AI 每次尝试调用这个工具时:
- RikkaHub 弹出确认对话框
- 显示工具名称、参数、即将执行的内容
- 你手动点击 确认 → 工具执行
- 或点击 拒绝 → AI 不能调用,会收到"用户拒绝了此操作"的反馈
建议开启审批的工具
对任何会修改数据或触发外部副作用的工具开启审批:
| 工具类型 | 是否需要审批 |
|---|---|
| 文件写入(创建 / 修改 / 移动) | ✅ 强烈建议 |
| 文件删除 | ✅ 强烈建议 |
| 发送邮件 / 消息 | ✅ 强烈建议 |
| 支付 / 购买 | ✅ 必须开启 |
| 数据库写入 / 删除 | ✅ 强烈建议 |
| 数据库查询(只读) | ❌ 通常不需要 |
| 网络搜索 | ❌ 通常不需要 |
| 代码读取 / 查询 | ❌ 通常不需要 |
典型使用场景
让 AI 执行复杂的 Git 操作:
git clone→ 不需要审批(只读)git branch -D→ 需要审批(删除分支)git push→ 需要审批(推送修改到远程)
你会看到 AI 尝试执行 push 时弹出确认框,查看参数后点击确认或拒绝。
三层权限模型
RikkaHub 的工具权限是三层筛选,确保精确控制:
第 1 层:服务器 enable 开关(全局)
↓ 服务器必须已启用
第 2 层:工具 enable 开关(工具级)
↓ 工具必须已启用
第 3 层:助手挂载(助手级)
↓ 助手必须勾选了这个服务器
只有三层都通过,AI 才能调用这个工具。加上可选的"需要审批",在执行前再加一道人工确认。
v2.5.6 已知问题
v2.5.6 的更新日志提到修复了"部分 MCP 服务器无法登录授权或工具调用失败"的问题。如果你遇到工具调用失败:
- 确认服务器连接状态是"已连接"
- 确认工具已启用
- 确认助手挂载了这个服务器
- 检查服务器的身份验证 headers 是否正确
- 重启 RikkaHub 重试
关于速度的说明
开启审批的工具每次调用都需要手动确认,会显著变慢。对于高频、安全的工具(搜索、读取),不开启审批。对于低频、危险的工具(写入、删除、支付),开启审批。