外观
如何理解MCP 接入与权限边界?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
MCP 让客户端发现和调用工具、读取资源等能力,记忆服务可以通过它提供写入、召回与治理入口。工具描述有助于模型选择操作,但服务端必须对每次调用执行身份、Space、资源和状态检查,不能信任模型传来的权限声明。
HTTP 授权规范与 stdio 的凭据方式不同,不能将一种传输的 OAuth 流程套给全部 MCP 部署。HTTP Token 需要按资源和受众等规范验证,不能把发给别的服务的 Token 直接透传当成本服务凭证。协议版本应与客户端和部署一致。
读工具与有副作用工具应分清,错误结构既便于客户端恢复,也避免泄露无权知道的资源信息。工具结果还需有输出预算和降级说明;MCP 只是入口,可信写入与治理最终由 Core 统一落实。
追问与回答
客户端已经登录,为什么工具还要检查 Space
登录证明某个身份,不能说明它对任意项目和资源都有权。授权粒度必须落到实际对象和操作。
工具能否直接操作数据库绕开 Core
这会形成第二条权威写入路径,容易漏掉来源、幂等和撤销条件;应复用服务层约束。
易混淆点
- 使用 MCP 就默认满足多租户授权。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q179