开源工具 Ocarina:用 YAML 无需 LLM 即可自动化测试 MCP 服务器
开发者发布 Show HN 项目 Ocarina,通过类 Ansible playbook 的 YAML 脚本,无需调用…
- 重要性
- 28
- 新颖性
- 60
- 影响面
- 22
- 可信度
- 50
- 实质性
- 40
Ansible 风格的 YAML 脚本,却是为 AI 时代的 MCP 协议而写。开发者近日在 Hacker News 上以「Show HN」形式发布了一款名为 Ocarina 的开源工具,主打「不调用大模型,就能自动化和测试 MCP 服务器」。该项目以 GitHub 形式公开,目前在 HN 仅获 2 个点赞、0 条评论,仍处于早期阶段。
什么是 Ocarina
Ocarina 面向的是 Model Context Protocol(MCP)服务器生态。开发者可以把它理解为 MCP 版的 Ansible:通过声明式 YAML 文件来描述对 MCP 服务器的操作步骤,从而绕开大模型这一中间层,直接对工具调用、资源读取进行可重复、可调试的执行。项目的核心理念是:当 MCP 生态不断扩张时,必须有一种不依赖 LLM 的方式去「直接驱动」这些服务器,以完成测试、回归验证和调试。
用「Rondo」替代 Playbook
Ocarina 引入了「Rondo」概念,对应 Ansible 中的 Playbook。一个 Rondo 本质上是一个 YAML 文档,描述启动哪台 MCP 服务器、按顺序调用哪些工具、传递哪些参数,以及如何从返回结果中抓取字段再传递给下一步。开发者只需在本地安装 Ocarina,再写一份 Rondo,就能像跑脚本一样执行整条 MCP 调用链路。
一个真实示例
官方 README 给出的样例针对 GitHub MCP 服务器,完整脚本大致如下:
- 服务器配置:通过
npx -y @modelcontextprotocol/server-github启动,并设置owner、repo两个变量。 - 第一步:调用
list_commits工具获取最近提交列表,抓取返回数组的第一个元素的sha字段,存入变量latest_sha。 - 第二步:调用
get_commit工具,将上一步的latest_sha作为参数传入,再用expect.contains断言返回内容里包含字符串feat。
整个流程没有任何 LLM 参与,全部是「命令 + 参数 + 数据提取 + 断言」的组合,与传统接口测试框架体验非常接近。
它解决的问题与边界
对正在构建或维护 MCP 服务器的工程师来说,Ocarina 提供了一种轻量的本地验证手段:既可以在 CI 里跑回归,也可以在调试时一步步观察每次工具调用的输入输出,避免每次都启动一个昂贵的 LLM 客户端。项目作者在帖子中表示,自己已经在工作中使用 Ocarina 来测试自家 MCP 服务器,并附带了一个 Blender 相关的演示示例。
不过需要指出的是,Ocarina 并不能取代真正的端到端测试——它本质上只验证「MCP 服务器本身是否正确响应」,而不涉及 LLM 编排、Prompt 设计或 Agent 行为评估。对大多数 AI 开发者而言,它更像一款 MCP 协议层的「集成测试夹具」。从 HN 的反响来看,Ocarina 目前仍是社区中的小型工具,距离成为标准实践还有相当距离。
