SuperAPI AI 工具集

m365-copilot-packaging

智能体与模型

查看项目

更新于 10-16 06:16

技能介绍

用途:把基于 MCP 服务器、能返回 UI 组件的插件作为声明式智能体发布到 Microsoft 365 Copilot,使其在 Copilot 中渲染为交互式小组件。支持 MCP Apps 与 OpenAI Apps SDK,覆盖情况见 host-capability-matrix。

前提:需要远程 MCP 服务器(不支持本地 stdio);Visual Studio Code;Microsoft 365 Agents Toolkit 6.12.0 或更高;MCP Inspector(用于接入前验证服务器响应);以及 Copilot 可扩展性的通用要求(租户、许可)。

关键配置:MCP 服务器与身份提供方都需放行特定 URL。Widget 主机 CORS 地址为 {hashed-mcp-domain}.widget-renderer.usercontent.microsoft.com,其中域名部分为 MCP 服务器域名的 SHA-256 哈希,可用 https://aka.ms/mcpwidgeturlgenerator 生成后加入 CORS 白名单;漏配会导致 Widget 在 basic-host 正常、在 Copilot 空白且无有用报错。OAuth 2.1 重定向 URI:https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect 和 https://vscode.dev/redirect。Entra SSO 重定向 URI:https://teams.microsoft.com/api/platform/v1.0/oAuthConsentRedirect。VS Code 目前获取工具时不支持 SSO,开发期用 OAuth 2.1 或匿名,之后再切换。

认证模式:匿名仅限开发,在 Agents Toolkit 中选择,部署前必须移除;OAuth 2.1 为生产标准路径;Entra SSO 适用于智能体需以登录用户身份运行的场景。

构建与旁加载:无论是否返回 UI,从 MCP 服务器创建声明式智能体、配置认证、旁加载的流程一致。注意三点:服务器须按 MCP Apps 或 Apps SDK 返回 UI 资源;默认动态工具发现,运行时解析工具,无需枚举;若固定工具集,至少包含一个返回 UI 组件的工具。测试时访问 https://m365.cloud.microsoft/chat,在侧栏选择智能体并调用服务器,允许连接后确认组件渲染。

需规避的限制:不支持 frameDomains(不能嵌套 iframe)、仅全屏备选模式、不支持 onteardown、onhostcontextchanged、ontoolinputpartial、sendLog、availableDisplayModes、prefersBorder/widgetDescription/widgetDomain、toolInvocation 进度文本、destructiveHint 等提示、uploadFile/getFileDownloadUrl、requestModal。setWidgetState 与 getHostCapabilities() 受支持,应在启动时探测能力,代码中按 window.openai.callTool、requestDisplayMode、sendMessage 是否存在做降级。参考示例见 microsoft/mcp-interactiveUI-samples。发布前检查清单包括 HTTPS 稳定地址、CORS 加入 Widget 主机 URL、注册重定向 URI、移除匿名、至少一个 UI 工具、不依赖不支持项、验证渲染与纯文本回退。相关技能:host-capability-matrix、mcp-apps-protocol、ui-testing-harness。