You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AI Foundry中Remote MCP Server工具执行RequiresAction错误排查

解决Azure AI Foundry中MCP代理Playground执行工具出现「Error: RequiresAction」的问题

问题背景

在Azure上部署基于Rust语言、使用rmcp crate开发的自定义Remote MCP Server,通过Python程序借助McpTool将其作为代理部署到AI Foundry中。部署后连通性测试(如list tools、调用工具获取MCP信息)均正常,且该MCP Server可通过Python代理被Claude.AI等其他主机访问,但在Playground中使用该代理执行MCP服务器上的工具时,出现「Error: RequiresAction」错误。排查确认该错误源于客户端需获取工具运行权限,但Playground无交互权限确认环节。尝试在McpTool定义中添加set_approval_mode("never")禁用权限提示,但该设置未同步到MCP Agent模型,未生效。

可能的失效原因

  • 配置未传递到Agent注册流程:set_approval_mode的配置仅作用于本地McpTool实例,未在向AI Foundry注册MCP Agent的步骤中同步该参数,导致服务端未接收并应用该配置。
  • AI Foundry全局配置优先级更高:AI Foundry的MCP Agent服务内置默认权限校验逻辑,会覆盖通过McpTool传入的never模式设置。
  • 配置未生效:修改McpTool配置后未重启代理服务,或未重新向AI Foundry注册Agent,旧配置仍在运行。
  • 版本兼容性问题:自定义Rust MCP Server使用的rmcp crate版本与Python端McpTool版本不匹配,导致权限配置参数无法被正确解析传递。

解决方法

  • 注册Agent时显式传递权限配置
    不要仅在McpTool实例中设置set_approval_mode("never"),需在向AI Foundry注册Agent的代码中,显式携带权限模式配置。示例Python代码片段:

    agent = McpTool(...)
    agent.set_approval_mode("never")
    # 注册时确保配置被服务端接收
    ai_foundry_client.register_agent(agent, config={"approval_mode": "never"})
    
  • 检查AI Foundry全局权限配置
    登录Azure AI Foundry控制台,找到对应MCP Agent服务,查看全局权限校验开关,将其设置为「无需审批」,覆盖默认交互校验逻辑。

  • 重启代理并重新注册Agent
    修改配置后,停止当前Python代理进程,重新启动并执行Agent注册流程,确保新的权限配置被AI Foundry服务端加载生效。

  • 校验rmcp与McpTool版本兼容性
    查看rmcp crate官方文档确认其支持的权限配置格式,同步检查Python McpTool版本是否兼容,必要时升级或降级版本,确保参数能正确传递解析。

  • 在自定义MCP Server中直接设置权限策略
    绕过McpTool的配置传递,在Rust开发的Remote MCP Server代码中,为工具设置默认无需审批的权限策略。示例Rust代码片段:

    use rmcp::prelude::*;
    
    let mut server = Server::new();
    server.register_tool(MyTool, |tool| {
        tool.set_approval_policy(ApprovalPolicy::Never);
    });
    

内容的提问来源于stack exchange,提问作者mazecreator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:25:09