如何在 Azure Functions 上构建长运行 MCP... 笔记

如何在 Azure Functions 上构建长运行 MCP 工具

使用 Azure Functions 和 MCP 扩展构建服务器的客户面临工具超出客户端施加的超时限制的挑战。当前的 MCP 工具采用请求/响应模型,不适用于多步骤或长运行操作。当工具调用耗时过长时,客户端会超时,导致代理认为操作失败,而底层任务可能仍在继续。新的 MCP Tasks 扩展旨在标准化长运行任务的异步处理。该扩展允许服务器返回任务句柄,使客户端能够轮询状态并管理任务生命周期。然而,Tasks 扩展需要客户端和 SDK 的广泛生态系统支持。在此广泛可用之前,可以采用基于 Durable Functions 的模式来处理长运行任务。该模式涉及两个公开的工具:一个用于启动任务,另一个用于检索其状态。启动工具若在预算内完成则返回内联结果,若仍在运行则返回工作流 ID。状态检索工具接收工作流 ID 并报告任务的当前状态,包括建议的轮询间隔。使用 Tasks 扩展后,模型将得到简化,因为客户端将直接管理任务生命周期,无需代理管理如工作流 ID 之类的标识符。鼓励开发人员尝试提供的 Durable Functions 示例。