Ocarina:用YAML自动化MCP服务器,无需大语言模型
Ocarina 是一个自动化框架,允许用户通过 YAML 脚本驱动 MCP 服务器,实现确定性、可重复的自动化工作流,无需 LLM 参与。它支持多服务器、断言、变量插值等功能,可作为 CI 健康检查、测试和运维工具使用。
Ocarina 是一个专为 MCP(模型上下文协议)服务器设计的自动化框架。它的核心思想是让用户编写 YAML 格式的“播放手册”(rondo),通过确定性执行来驱动一个或多个 MCP 服务器上的工具调用,整个过程不依赖任何大语言模型,因此每次运行结果一致且无额外成本。
MCP 生态系统已经非常庞大,数千个服务器通过类型化工具、可读资源和模式检查的合约暴露真实服务。Ocarina 利用这一特性,让用户无需从头编写代码,只需定义一个 YAML 脚本,即可编排复杂的自动化工作流。这些工作流可以包含条件分支、循环、重试逻辑,并且能够在不同的机器上复现相同的结果。
Ocarina 的播放手册由三个主要部分组成:keys 定义可复用的变量,server 指定要连接的 MCP 服务器,rondo 则是具体步骤的列表。每个步骤可以调用工具、读取资源、设置预期断言(如包含、匹配、等于等),并将输出捕获为变量供后续步骤使用。这种设计使得自动化脚本既清晰又强大,适合用于测试、监控和运维场景。
除了基本的执行功能,Ocarina 还提供了丰富的命令行工具:ocarina docs 生成服务器的 Markdown 文档,ocarina play 执行播放手册,ocarina validate 在不实际调用工具的情况下验证脚本的正确性,ocarina hum 直接调用单个工具,ocarina record 则通过代理模式实时记录 MCP 客户端的工具调用并生成播放手册。这些工具共同构建了一个完整的自动化生态。
Ocarina 还支持多服务器场景,通过 servers 映射不同 MCP 服务,并在步骤中通过 server 字段指定目标。此外,它可以与 CI 系统无缝集成,如果任何断言失败,play 命令会返回非零退出码,从而触发告警。项目提供了多个实际示例,涵盖 SQLite、GitHub、PostgreSQL、Docker、Elasticsearch、Playwright 等流行 MCP 服务器,以及针对 DuckDB、Chrome DevTools、Blender 等专用场景的独立仓库。
Ocarina 使用 Go 语言编写,采用 MIT 许可证,目前处于早期阶段(v0.1.0),但已具备完整的功能集。无论是开发者还是运维人员,都可以利用它来构建可靠、可审计的自动化流程,而无需依赖昂贵的 LLM 推理。