MCP 调用级授权怎么做
ani_0523 · reddit · 2026-07-13
作者讨论了 **MCP 连接后“每次工具调用如何授权”** 这一实际问题: - 仅有 MCP 认证只能证明“客户端可以连到服务器”,但**连接之后每个工具默认都可被调用**。 - 在 agent 会话中一旦发生 prompt injection,模型可能直接调用高风险工具(例如 `delete_repo`)。 - 他的做法是在 stdio 路径前放一个小代理层: - 每次 `tools/call` 先检查 grant; - 可在 agent 运行中撤销授权,下一次调用立即失败; - 过滤 `tools/list`,让模型看不到无权工具; - 尽量把 secret 留在 agent 进程外。 他还开源了实现(Go,Apache-2.0),并询问大家是否在 MCP 层做 per-call authorization,还是放在工具服务器内部处理。