关于 Rubyhash
Rubyhash 是面向 Ruby 开发者和编码 Agent 的本地 MCP 服务,可比较 Ruby 哈希或测试失败输出、检测类型变化,并将 Ruby 字面量转换为排序后的 JSON。
主要功能
- 01比较 Ruby 哈希字面量
- 02解析 Minitest 和 RSpec 失败输出
- 03检测新增和删除的键
- 04报告值变化和类型变化
- 05将 Ruby 字面量转为排序 JSON
- 06本地运行且不上传数据
适用场景
- 01查找失败测试输出中的差异
- 02检查嵌套哈希的变更
- 03将 Ruby 数据结构转为 JSON
MCP 相关
它向 MCP 客户端提供两个工具:`ruby_hash_diff` 用于结构化哈希比较,`ruby_to_json` 用于将 Ruby 哈希或数组字面量转换为 JSON。服务在本地运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| expected | string | 否 | 预期的 Ruby 哈希字面量,例如 {"role"=>"admin"} |
| actual | string | 否 | 实际的 Ruby 哈希字面量,例如 {"role"=>"editor"} |
| raw | string | 否 | 包含两个哈希字面量的原始失败测试输出(行首可能带有 - 和 +) |
详细介绍
rubyhash-mcp
适用于 RubyHash 的 MCP 服务。为任何支持 MCP 的 Agent(Claude Code、Claude Desktop、Cursor 等)提供两个确定性的 Ruby 工具:
- ruby_hash_diff:比较两个 Ruby 哈希字面量,或粘贴原始的 Minitest/RSpec 失败输出,并获取结构化报告,准确列出所有变化:变更值及其前后内容、新增和移除的键,以及明确的类型变化(nil 到 String、Integer 到 Float、符号键与字符串键)。
- ruby_to_json:将 Ruby 哈希或数组字面量(hashrocket、符号键、简写语法、嵌套结构、nil/true/false)转换为键已排序的规范 JSON。
所有操作均在服务端进程本地运行。不会上传、记录或存储任何内容,隐私承诺与 rubyhash.dev 相同。
工具
ruby_hash_diff:比较两个 Ruby 哈希字面量,或粘贴原始的 Minitest/RSpec 失败输出,并获取结构化报告:变更值及其前后内容、新增和移除的键,以及明确的类型变化(nil 到 String、Integer 到 Float、符号键与字符串键)。ruby_to_json:将 Ruby 哈希或数组字面量(hashrocket、符号键、简写语法、嵌套结构、nil/true/false)转换为键按字母顺序排序的规范 JSON。
Agent 为什么会需要它
Ruby 测试因两个几乎相同的大型哈希而失败时,靠阅读来比较既耗时又容易出错,无论对人类还是大模型都是如此。比较一个含 40 个键的嵌套哈希会消耗上下文,还容易出错。此服务使用真正的递归下降解析器进行比较,并以确定性的方式仅返回差异。
安装
{
"mcpServers": {
"rubyhash": {
"command": "npx",
"args": ["-y", "rubyhash-mcp"]
}
}
}
或用于 Claude Code:
claude mcp add rubyhash -- npx -y rubyhash-mcp
示例
输入(原始测试输出):
-{"uid"=>"[email protected]", "role"=>"admin", "seats"=>3}
+{"uid"=>"[email protected]", "role"=>"editor", "seats"=>3.0}
输出:
{
"equal": false,
"summary": "2 changed, 0 added, 0 removed, 1 type change",
"changed": [
{ "path": "role", "before": "admin", "after": "editor", "typeChanged": false },
{ "path": "seats", "before": 3, "after": 3, "beforeType": "Integer", "afterType": "Float", "typeChanged": true }
]
}
也可通过 HTTP API 使用
如果无法运行本地 MCP 服务,可通过 RubyHash Agent API 使用相同的工具;该 API 提供 OpenAPI 描述和可通过 x402 机器支付的目录。
开发
npm install
npm test # 36 unit tests
许可证
此软件包采用 MIT 许可证。rubyhash.dev 网站及其浏览器工具是独立的私有产品,保留所有权利。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。