MCPlet 规范 v202603-03
本页是用于快速阅读和搜索索引的 HTML 概览。规范性草案仍为原始 Markdown 来源,但本概览以爬虫友好的格式呈现了主要概念、契约和安全模型。
目的与范围
MCPlet 定义了具有单一业务意图、单一主要 MCP 工具契约、可选 MCP Apps UI、显式模型与应用安全边界和宿主管理编排的受约束 AI 优先能力单元。
目标是可预测、可审查和安全的 AI 工具交互。MCPlet 是 MCP 和 MCP Apps 之上的规约配置,不重新定义传输、运行时、沙箱或后端架构。
宿主配置
MCPlet 目前支持两种宿主实现配置。
- WebUI Profile:渲染 MCP Apps UI、调用工具并在面向用户的环境中管理可见性和安全性的 MCP 客户端或代理 shell。
- Agent Profile:由专门 Agent 和外部配置的 LLM 组成的编排层,不需要通用 UI 层。
两种配置均默认保持 MCPlet 无状态。状态、对话上下文和策略执行仍是宿主的职责。
MCPlet 与 MCP 和 MCP Apps 的对比
将 MCPlet 视为现有标准之上的一层而非其替代品,最容易理解。
| 层次 | 主要职责 | 定义内容 | 未定义内容 |
|---|---|---|---|
| MCP | 协议层 | 工具和资源的传输、发现和调用契约。 | 意图建模、操作安全策略或工具分类规则。 |
| MCP Apps | UI 集成层 | 宿主视图渲染、iframe 生命周期和应用桥接行为。 | 业务意图边界、工具分类或宿主安全规约。 |
| MCPlet | 规约配置 | 单意图单元、read/prepare/action 分类、可见性规则、认证要求和宿主管理的安全边界。 | MCP 传输、通用运行时行为或强制性前端框架。 |
read
无副作用且幂等。宿主允许模型可见性时适合自主调用。
prepare
在提交前收集或验证信息。在多步骤工作流中作为明确检查点非常有用。
action
产生不可逆副作用。需要更强的确认和强制执行,特别是在模型可见时。
代码优先元数据契约
MCPlet v202603-03 明确采用代码优先。宿主通过注册元数据(如 _meta.mcpletType、_meta.visibility、_meta.auth、_meta.ui 和可选的 _meta.pool)发现 MCPlet 语义。
{
"_meta": {
"mcpletType": "action",
"visibility": ["model", "app"],
"mcpletToolResultSchemaUri": "mcplet://tool-result-schema/approve_order",
"ui": {
"resourceUri": "ui://orders/approve.html",
"displayMode": "inline"
},
"auth": {
"required": "passkey",
"enforcement": "strict",
"promptMessage": "Please authenticate with Passkey to confirm"
}
}
}
mcplet.yaml 仍可用于向后兼容的默认值,但一旦存在代码元数据,它就不是唯一的真实来源。
Passkey 强制执行与受保护操作
受保护的 MCPlet 在 _meta.auth 中声明认证。对于模型可见的 action 工具,宿主拦截调用,通过浏览器上下文获取 Passkey 断言,在业务参数之外注入验证载荷,MCPlet 后端在任何不可逆操作执行之前验证该断言。
Pool、Agent 与路由边界
MCPlet v202603-03 为 Agent 引入了命名 Pool 和可访问 Pool 列表。Pool 让宿主按目标系统或策略范围对 MCPlet 进行分组,而每个 Agent 的 Pool 授权在调度时强制执行最小权限访问。
Agent Profile 还区分了内部 A2A 本地协议总线和外部 Agent 的外部 A2A 协议端点。宿主仍然负责认证、策略和调度验证。
阅读完整草案
原始 Markdown 文件仍是规范性草案来源。使用 HTML 概览快速扫描,使用 FAQ 获取简短答案,使用专利声明了解许可背景。
需要许可上下文?请查看知识产权声明。