讲解如何通过 OfficeAgent MCP 服务器让 Copilot Studio agent 直接编辑 Word 文档并保留格式与修订。适合需要集成 Office 的 agent 开发者参考。
Copilot Studio 可以轻松构建自定义 AI Agent。比如,只需很短时间,你就能创建一个 Agent,根据少量信息起草标准客户合同。但当任务不只是填空时,难度就会上升。针对不同客户选择不同条款,或者编辑现有文档而不是创建新文档,如果没有额外工具,做起来并不容易。这正是 OfficeAgent 的用武之地。作为一个 MCP server,它为 Agent 提供了编辑真实 Word 文档的工具,同时完整保留文档的样式、批注和修订记录。
在上一篇文章中,我介绍了如何将 OfficeAgent MCP server 部署到 Azure。本文将把 Copilot Studio Agent 连接到该服务,并让它修改现有的 Word 文档。
上一篇文章中部署并托管好的 MCP endpoint。你需要从该部署中获取 tenant id,以及 Easy Auth app 的 client id。
一个 Copilot Studio Agent——可以使用现有 Agent,也可以新建一个空白 Agent。
一个供 Copilot Studio 登录使用的 app registration。Copilot Studio 需要拥有自己的身份,才能获取 Entra token 并连接到 endpoint:
在 Entra admin center 中打开 App registrations,然后创建一个新的 registration。为它命名(例如 officeagent-copilot),保留默认设置并完成注册。复制 Application (client) ID。
在该 app 的 Certificates & secrets 页面中创建一个新的 client secret,并立即复制它的 Value——这个值只会显示一次。
稍后还需要向这个 registration 添加 redirect URL——Copilot Studio 会在配置连接时显示该 URL。
在 Copilot Studio 中打开你的 Agent,并确认它使用的是 generative orchestration(位于 Agent 的 Settings 页面中,在 Generative AI 下)。classic orchestration 不支持 MCP tools。
打开 Tools 页面,单击 Add a tool,然后选择 Model Context Protocol。
输入名称(OfficeAgent)、简短描述(“通过经过验证的变更计划编辑 SharePoint 中的 Word 文档”),以及 server URL:https://<app-url>/,即已部署 container app 的根地址。
在 authentication 选项中,选择 OAuth 2.0。
这些信息全部来自之前的部署。
完成配置向导。Copilot Studio 此时会显示该连接的 redirect URL。复制这个 URL,返回 Entra admin center 中的 officeagent-copilot registration,然后在 Authentication 下将它添加为 Web redirect URI。
当 Copilot Studio 要求你登录时,创建该连接。OAuth 流程会在此刻形成闭环:你登录并授权后,tool 就会显示为已连接。
在 tool 列表中,你应该能看到七个 tools:inspect_document、find_in_document、preview_plan、apply_plan、register_document、remove_document 和 list_connections。
添加这些 tools 后,就可以向 Agent 提出一个具体请求:
将 https://contoso.sharepoint.com/sites/legal/Shared Documents/msa-draft.docx 中的付款期限从 30 天更新为 45 天。
在底层,Agent 会先向 OfficeAgent MCP server 注册该文档,查找所有出现“30 天”的位置,准备一份修改计划,然后应用该计划。
处理结果会作为文档的新版本保存到 SharePoint,而这次编辑本身会记录为 Word 修订。打开文档后,你可以像审阅同事的修改一样进行检查,并选择接受或拒绝。Agent 负责提出变更,而文档最终采用什么内容,由你决定。
在部署文章介绍的配置中,server 使用一个 application identity(appOnly),并通过 Sites.Selected 将访问范围限制在你授权的网站内。Agent 的所有用户都会访问同一批文档,这种方式很适合后台自动化。
该 provider 还支持 on-behalf-of 模式。在这种模式下,server 会以当前登录用户的身份执行操作,并针对每位用户分别应用其 SharePoint 权限。如果一个 assistant 由多人共享,这会是更合适的选择。部署指南中的 identity 表格列出了启用该模式所需的配置。
如果这篇文章对你有帮助,欢迎在评论区告诉我;在 GitHub 上点一个 star,也能帮助其他开发者发现这个项目。
如果还需要采取进一步措施,可以考虑屏蔽此人和/或举报滥用行为。