SuperAPI AI 工具集

mcp-dynamic-orchestrator

智能体与模型

查看项目

更新于 10-15 22:34

技能介绍

用途:通过中央注册表动态发现可用的 MCP 服务器及其用途,按需查看某个 MCP 的能力,而无需加载全部工具 schema;随后执行 TypeScript/JavaScript 调用 MCP 工具(经生成的 mcp-clients/* 模块)。若未配置任何 MCP 服务器,list_mcp_capabilities 会返回空列表,并指向 skills/mcp-dynamic-orchestrator/mcp.registry.json 供用户添加条目。该技能从 mcp.registry.json 读取配置,在其中新增 MCP 条目即可自动被发现,无需改动工具接线。

主要能力:list_mcp_capabilities 支持自然语言查询或过滤,返回匹配的 MCP 及其摘要;describe_mcp 以 id 查看指定 MCP 的工具摘要,必要时以 schema 请求精确参数结构;execute_mcp_code 运行引用 mcp-clients/<id> 的代码,可用 allowedMcpIds 限制范围。规则要求:不要把单个 MCP 工具当作顶层工具,始终按“发现 → 描述 → 生成代码 → 执行”流程,代码中的函数由 MCP 工具定义动态生成。

使用方式:先调用 list_mcp_capabilities,再对选定 MCP 调用 describe_mcp,然后编写导入 mcp-clients/<id> 的代码并执行。示例代码中通过 import * as cloudflare from "mcp-clients/cloudflare" 调用 search_docs。

限制:沙箱不安全,vm 模块不是安全边界,可被原型污染等逃逸,仅适用于 Claude 生成的受信代码,需设置 MCP_ORCH_ENABLE_SANDBOX=1;不受信 MCP 应放到独立进程或容器并做系统级隔离。新增注册表条目时强制命令白名单(仅 npx、npm、pnpm、yarn、bunx、bun、node、deno、uvx、uv、python、python3、cargo、go),拒绝路径与 shell,设置 MCP_ORCH_ALLOW_RAW_COMMANDS=1 可退出但会告警;环境变量中 PATH、NODE_OPTIONS、LD_PRELOAD、PYTHONPATH 等会被剥离。其他限制:不支持 TypeScript 编译(.ts 会失败)、无模块解析(mcp-clients/* 导入不解析,需用 $call() API)、注册表静态(增删需重启)、MCP 连接失败仅返回通用错误。当前发现、描述与注册表管理可用,代码执行受限;安全沙箱、TypeScript 编译、模块解析与动态注册表更新为后续计划。