用途:为 TYPO3 14.3 前端设计、实现、加固并验证浏览器端 WebMCP 工具,让访客任务以小型类型化工具形式可被发现,同时不削弱人工界面、TYPO3 权限、隐私或服务端校验。WebMCP 属渐进增强,不支持的浏览器必须得到同样可用的网站且无报错。
主要能力:仅暴露当前打开的 TYPO3 前端页面所提供的工具;使用当前标准接口 document.modelContext,将 navigator.modelContext、provideContext()、可读 .tools 数组与旧 polyfill 视为兼容性证据而非新代码 API。每个工具一个动作,名称唯一稳定,描述真实,JSON Schema 最小化,明确副作用,输出结构化且有界。复用与人工界面相同的应用服务、校验、CSRF 防护、访问检查、语言规则、限流与结果状态,不创建更弱的仅代理端点。仅注册对当前页面、认证状态、语言与内容可见性有效的工具,状态消失即移除。默认同源暴露;跨源 exposedTo、iframe allow="tools"、外部中继、CDN 运行时、Service Worker 或分析均需单独信任与隐私决策。在发送、购买、删除、账户变更或发布等重大操作前要求可见的人工确认。
使用方式:先核对仓库、DDEV 项目、TYPO3/Core 版本、Site bases、语言、当前前端会话类及既有 WebMCP/polyfill/relay 代码。清点真实访客任务,只暴露已有可见 UI 或经评审产品需求支持的动作。普通语义 HTML 表单可用当前声明式注解;有状态搜索、导航、过滤或 JS 逻辑用 document.modelContext.registerTool() 并通过其生命周期注销。注册适配器放在项目自有 sitepackage/Vite 源码中,调用与人工 UI 相同的服务/端点;默认不添加 TYPO3 WebMCP 扩展、后端 MCP、远程中继、polyfill 或运行时包。配置用对 HTML script 上下文安全的 JSON 编码器输出,禁止把编辑器文本拼进可执行 JavaScript。
适用场景:站点/新闻/产品搜索、主导航或主题选择、当前文章/活动/产品事实读取、新闻/活动/职位/产品过滤、联系/支持/申请表单的 start_* 或 prepare_,以及经批准的表单提交 submit_。禁止在公开前端暴露通用 SQL、DataHandler、清缓存、文件、后端用户、任意 URL 抓取或无范围记录 CRUD 工具。
限制:需 HTTPS/安全上下文与按源操作;文档通过 Origin-Agent-Cluster: ?0 或 document.domain 行为退出时 WebMCP 不可用。除非已批准并测试具名跨源使用,保持 Permissions-Policy: tools=(self)。readOnlyHint 仅用于真正非变更行为;输出可能含编辑器、访客、索引、导入或第三方文本时设置 untrustedContentHint。即使有 JSON Schema 也须在可执行代码中校验参数,限制字符串、数组、结果数、输出大小、执行时间与重试。工具名、描述、Schema、页面内容、输出与代理参数均视为不可信数据。保留前端可见性控制与每次服务端抓取的会话授权,缓存键须随所有可见性维度变化。默认禁用可选使用分析,直至目的、法律依据/同意、保留、端点滥用控制、后端权利与隐私文档获批。升级图含 P00 清点、P10 对齐、P14 就绪;证据门要求先证明正常界面,再证明不支持浏览器的回退无控制台错误、资源失败、DOM/像素回归、焦点不可达或人工旅程受阻,并在启用 WebMCP 的 Chrome 测试配置中检查注册名称/描述/Schema 并调用有效、无效、边界、取消与重复调用,对比工具结果与人工旅程,测试匿名及不同前端组,运行注入、CSRF、重放、限流、恶意 </script>、跨源拒绝与密钥安全错误等安全用例,并重跑 axe、组件哨兵与 Lighthouse。不得声称通用浏览器支持或生产标准状态,须记录确切草案/来源快照、Chrome 渠道/标志或源试用状态、sitepackage 提交、Vite 产物与未解决风险。本技能改编自 webmcp-skill(MIT)等来源,未复制第三方实现代码。