构建使用公开文档 MCP 的技术文档助手
本实战将 Microsoft Learn 的公开文档 MCP Server 接入智能体开发服务平台(AgentWorks),构建一个先搜索、再读取官方页面并附上来源链接的技术文档助手。完成后,可以在 网页版对话 查看回答和工具调用,并通过 Trace 核对调用顺序。
Microsoft Learn MCP Server 是 AgentWorks 外部的公共服务,不需要配置认证 Header。服务不可用、页面调整或限流时,搜索结果和回答可能变化。
本实战将帮助你理解
- MCP 模板如何保存可复用连接配置,MCP 实例如何成为智能体实际关联的能力资源。
- 连接测试、插件关联和工具权限为什么分别控制工具发现、能力关联和调用处理。
- 如何通过 Trace 确认回答确实使用了外部工具和实际读取的来源。
准备条件
开始前需要:
- 一个已经完成基础回复验证的模型凭证和模型。尚未验证时,先运行创建第一个智能体并完成基础验证。
- 创建 MCP 模板、MCP 实例、智能体模板和智能体实例的权限。
- 当前账号有权创建和使用 MCP,且平台网络可以访问
https://learn.microsoft.com/api/mcp。 - 一组只用于本实战的测试资源。不要修改由其他智能体或生产流程引用的 MCP 实例。
本文使用以下名称:
| 资源 | 名称 |
|---|---|
| MCP 模板 | recipe-mslearn-docs-mcp-template-v1 |
| MCP 实例 | recipe-mslearn-docs-mcp-v1 |
| 智能体模板 | recipe-mslearn-docs-assistant-v1 |
| 智能体实例 | recipe-mslearn-docs-assistant-test-v1 |
如果环境中已经存在同名资源,请为四个名称统一追加简短后缀,例如 -team-a。
注意
只使用公开、非敏感的问题
MCP 工具调用会把搜索词和请求读取的 URL 发送给 Microsoft,返回内容会进入 AgentWorks 的模型上下文,并可能显示在 Trace 中。不要提交密钥、个人信息、客户资料、租户标识或内部故障信息。
创建并测试 Microsoft Learn MCP
先用 MCP 模板保存连接配置,再从模板创建 MCP 实例。
注意
为什么先创建 MCP 模板,再创建 MCP 实例?
MCP 模板保存 Server URL 等连接设置。根据模板创建 MCP 实例后,本实战会把这个实例添加到智能体模板中,让智能体能够使用 Microsoft Learn 提供的工具。以后需要创建相同连接时,可以继续使用这个 MCP 模板,不必重复填写设置;如果只需要一个固定连接,也可以直接新建 MCP 实例。参见区分能力模板和能力实例。
创建 MCP 模板
从左侧导航进入 MCP 管理,选择 MCP 模板,再选择 新建 MCP 模板。
将 名称设为
recipe-mslearn-docs-mcp-template-v1,在 描述中填写Microsoft Learn 公开文档 MCP。将 Server URL设为
https://learn.microsoft.com/api/mcp。保持 跳过 TLS 校验关闭,保持 Headers为空,其他字段使用默认值。
选择 创建 MCP 模板。
创建并测试 MCP 实例
打开刚创建的
recipe-mslearn-docs-mcp-template-v1模板详情,选择 创建实例。不要从 MCP 实例列表选择 新建;该入口会创建不继承模板的独立实例。将 实例名称设为
recipe-mslearn-docs-mcp-v1,然后创建实例。在 MCP 实例中选择 测试连接。
连接成功后,打开 工具页签,确认 工具列表显示:
microsoft_docs_searchmicrosoft_docs_fetchmicrosoft_code_sample_search
注意
连接成功只表示工具已经被发现
测试连接确认 AgentWorks 可以访问 MCP Server 并取得工具定义,但不会自动把工具提供给智能体。还需要把 MCP 实例关联到智能体模板、配置工具权限并创建智能体实例。参见MCP 连接测试成功后,智能体就能使用工具吗?。
连接失败或工具缺失时,先检查 Server URL、平台网络、TLS 和 Microsoft Learn 服务状态。不要关闭 TLS 校验来绕过证书问题,也不要根据本文猜测新的工具名称。
创建技术文档助手
智能体模板保存可复用设计,智能体实例承载实际运行。因此,请在创建实例前完成 MCP 和工具权限配置,使新实例直接采用所需设计。参见区分智能体模板和智能体实例。
打开 智能体模板,选择 创建智能体模板。
将 模板名称设为
recipe-mslearn-docs-assistant-v1,并选择已经验证的 模型凭证和 模型。在 系统提示词中输入:
language-text你是 Microsoft 技术文档助手。 回答 Microsoft 产品问题时,先搜索 Microsoft Learn,再读取最相关的官方页面。 只根据实际读取到的页面回答,并在答案中给出该官方页面链接。 页面读取失败或资料没有答案时,明确说明失败或资料不足,不要编造内容。 在当前智能体中直接完成搜索和读取,不要启动异步任务、子代理或后台任务。本实战不使用文件、Todo 或长会话压缩。关闭默认开启的 启用文件系统,并保持 启用待办列表和上下文压缩关闭。
在 插件配置中选择 添加插件,添加 MCP - 实例,再选择
recipe-mslearn-docs-mcp-v1。本实战直接关联前面已经创建并测试通过的 MCP 实例,使智能体复用同一个确定的服务连接。如果希望多个智能体实例复用相同的 MCP 配置结构,但分别提供环境地址、租户路径或认证信息等参数,请改为选择 MCP - 模板。
注意
插件关联和工具权限解决不同问题
插件配置负责把 MCP 能力资源关联到智能体模板;下一步的工具权限决定发现的工具调用是允许、拒绝还是交由人工处理。工具权限不会代替 MCP Server 自身的身份验证和业务授权。参见区分能力、插件和能力资源和工具审批规则能代替工具服务的访问授权吗?。
在 工具权限中分别为
microsoft_docs_search和microsoft_docs_fetch添加允许规则,并将 默认行为设为 拒绝。本实战不搜索代码样例,因此不允许
microsoft_code_sample_search。每条规则只填写完整工具名称,不填写参数名或匹配正则。选择 创建智能体模板。
从模板创建名为
recipe-mslearn-docs-assistant-test-v1的智能体实例。
本实战在创建实例前完成模板配置,因此不需要同步已有实例。如果改为复用已有实例,请在保存和重启模板后,按手动应用新配置更新实例,再运行下一节的真实工具调用。
验证搜索、读取和来源链接
从控制台侧边栏打开 网页版对话,在新标签页的实例选择器中选择刚创建的测试实例。选择 开启新对话,等待连接或重连提示消失后发送:
请先使用 microsoft_docs_search 搜索 Microsoft Learn,再使用 microsoft_docs_fetch
读取一个最相关的官方页面。然后说明 Azure Resource Manager 是什么、可以帮助我
管理什么,并给出你实际读取的官方页面链接。本次只使用这两个文档工具。注意
回答正确不等于工具已经参与运行
模型可能根据自身知识回答问题。检查 Trace 中的搜索、读取参数和结果,才能确认本次回答实际使用了 MCP,并区分搜索结果中的候选链接与真正读取的来源。参见智能体没有使用已经添加的能力时,应该检查什么?。
回答不需要逐字固定。确认:
- Trace先显示
microsoft_docs_search,再显示microsoft_docs_fetch。 - 读取的 URL 来自 Microsoft Learn,工具结果与问题相关。
- 最终回答只概括实际读取到的资料,并包含该官方页面链接。
- 本次运行没有调用其他工具。
搜索排名和页面内容可能变化,因此不要求固定页面、返回顺序或逐字相同的答案。
完成结果:智能体先搜索、再读取 Microsoft Learn 官方页面,最终回答包含实际读取的来源链接。
如果验证没有通过
- 智能体不能正常回复:回到创建第一个智能体并完成基础验证,检查模型和模型凭证。
- 连接失败或工具列表缺失:检查 Server URL、平台网络、TLS 和 Microsoft Learn 服务状态,再重新测试连接。
- 工具没有参与运行:确认智能体模板已关联正确的 MCP 实例,并核对两个允许规则和默认拒绝规则。复用已有实例时,还需手动应用新配置。
- 页面读取失败:不要让智能体编造内容或把未读取的搜索结果当作来源。确认外部页面可用后,在新会话中重试。
下一步
- 想让智能体规划研究步骤并把结果写成 Markdown 文件时,继续使用 Todo 和文件系统生成研究简报。
- 改用自己的文档 MCP Server 时,先确认连接方式、实际工具名称、认证要求和读写范围,再更新 MCP 配置、最小权限规则和固定测试。需要认证时,只使用服务方要求的最小权限凭证;服务包含写操作时,还要增加服务端授权、幂等、审计和人工确认。
- 完成验证后,可以保留本实战的专用测试资源用于定期复测,但要记录负责人、保留用途和下次复查时间。改变或处置这些资源前,先核对当前引用和团队的资源生命周期策略。
- 准备上线前,为外部服务可用性、超时和限流建立监控与失败提示,并在模型、提示词、MCP 或工具定义变化后重新验证。参见验证智能体实例和将智能体投入生产。