动态MCP编排器 mcp-dynamic-orchestrator

这个技能通过中央注册表实现动态MCP服务器发现和代码模式执行,用于多MCP集成、工具发现和渐进披露,帮助AI代理扩展功能。关键词包括MCP、动态工具发现、代码模式、中央注册表、工具发现。

AI智能体 0 次安装 1 次浏览 更新于 3/7/2026

名称: mcp-dynamic-orchestrator 描述: 通过中央注册表实现动态MCP服务器发现和代码模式执行。用于多MCP集成、工具发现、渐进披露,或遇到MCP上下文膨胀、变化服务器集、大工具集的情况。

关键词: MCP, 代码模式, 注册表, 动态工具, 工具发现, 渐进披露 许可证: MIT 允许的工具:

  • list_mcp_capabilities
  • describe_mcp
  • execute_mcp_code

概述

使用此技能来:

  • 发现可用的MCP服务器及其用途。
  • 检查特定MCP的能力,而无需加载所有工具模式。
  • 执行TypeScript/JavaScript,通过生成的mcp-clients/*模块调用MCP工具。

如果未配置MCP服务器,list_mcp_capabilities将返回空列表和一条消息,指向skills/mcp-dynamic-orchestrator/mcp.registry.json,以便用户可以添加MCP条目。

此技能从mcp.registry.json读取,因此在那里添加MCP条目(例如Cloudflare MCP)会自动使其可发现,而无需更改工具连接。

Cloudflare MCP 示例

Cloudflare MCP服务器可以在mcp.registry.json中配置如下:

{
  "id": "cloudflare",
  "title": "Cloudflare平台MCP",
  "summary": "与Cloudflare的MCP端点交互,用于文档、示例和通过官方Cloudflare MCP服务器公开的平台操作。",
  "mcp": {
    "transport": "stdio",
    "command": "npx",
    "args": [
      "mcp-remote",
      "https://docs.mcp.cloudflare.com/sse"
    ]
  },
  "domains": ["cloudflare", "workers", "kv", "r2", "queues", "zero_trust", "networking", "security", "observability"],
  "tags": ["cloudflare", "platform", "infra", "docs", "workers", "mcp"],
  "examples": [
    "获取特定API的Cloudflare Workers文档。",
    "在Cloudflare平台文档中搜索队列或KV使用模式。",
    "查找Zero Trust或网络功能的配置指南。"
  ],
  "sensitivity": "low",
  "visibility": "default",
  "priority": 10,
  "autoDiscoverTools": true
}

有此后置项存在:

  • 当查询提到Cloudflare、Workers、KV、R2、Queues等时,list_mcp_capabilities将返回cloudflare
  • 使用id: "cloudflare"调用describe_mcp将展示Cloudflare MCP服务器的简明工具摘要。
  • execute_mcp_code允许代理编写TypeScript,例如:
import * as cloudflare from "mcp-clients/cloudflare";

async function main() {
  const docs = await cloudflare.search_docs({ query: "Workers KV" });
  console.log(docs.summary);
}

mcp-clients/cloudflare下的实际可用功能是动态生成的,来自MCP工具定义;代理应始终:

  1. 通过list_mcp_capabilities发现。
  2. 通过describe_mcp检查可用的操作。
  3. 通过execute_mcp_code使用这些操作。

如何使用

  1. 使用自然语言查询或过滤器调用list_mcp_capabilities,查看存在的MCP。
  2. 对于选择的MCP(例如cloudflare),调用describe_mcp以了解其操作。
  3. 编写从mcp-clients/<id>导入并调用导出函数的TypeScript/JavaScript代码。
  4. execute_mcp_code运行代码,可选地限制allowedMcpIds以保安全。

规则

  • 不要假设单个MCP工具是顶级工具。
  • 始终:发现 → 描述 → 生成代码 → execute_mcp_code
  • 仅当需要确切的参数形状时,请求describe_mcp中的detail: "schema"

已知限制

沙盒安全(关键)

⚠️ 当前的沙盒实现对于不信任的代码不安全。

  • 使用vm.createContext(),这不是安全边界。
  • 可以通过原型污染、require()操作等逃逸。
  • 仅启用Claude生成的代码(受信任源)。
  • 需要MCP_ORCH_ENABLE_SANDBOX=1环境变量。
  • 详见references/security-model.md获取完整安全详情。

其他限制

  • 无TypeScript编译:用户代码以.ts格式会失败。
  • 无模块解析:从mcp-clients/*的导入无法解析;使用$call() API。
  • 静态注册表:添加/移除MCP需要重启。
  • 有限错误处理:MCP连接失败时显示通用错误。

详细故障排除,见references/troubleshooting.md

生产状态

正常工作 ✅:

  • 通过list_mcp_capabilities发现(完全功能)。
  • 通过describe_mcp检查(完全功能)。
  • 注册表管理(16个MCP配置)。
  • MCP客户端(stdio + HTTP传输)。
  • 安全控制(可见性、敏感性、策略)。

有限功能 🟡:

  • 代码执行(需要环境标志,沙盒不安全)。
  • 测试(仅基本烟雾测试)。

计划功能 🔮:

  • 安全沙盒与Worker线程(v1.1)。
  • TypeScript编译支持(v1.1)。
  • 模块解析(v1.1)。
  • 动态注册表更新(v1.2)。

完整路线图,见仓库根目录的plan.md