mcpField
R
Rubyhash

Rubyhash

本地服务
rubyhash.dev开发工具016 周前更新

关于 Rubyhash

Rubyhash 是面向 Ruby 开发者和编码 Agent 的本地 MCP 服务,可比较 Ruby 哈希或测试失败输出、检测类型变化,并将 Ruby 字面量转换为排序后的 JSON。

主要功能

  1. 01比较 Ruby 哈希字面量
  2. 02解析 Minitest 和 RSpec 失败输出
  3. 03检测新增和删除的键
  4. 04报告值变化和类型变化
  5. 05将 Ruby 字面量转为排序 JSON
  6. 06本地运行且不上传数据

适用场景

  1. 01查找失败测试输出中的差异
  2. 02检查嵌套哈希的变更
  3. 03将 Ruby 数据结构转为 JSON

MCP 相关

它向 MCP 客户端提供两个工具:`ruby_hash_diff` 用于结构化哈希比较,`ruby_to_json` 用于将 Ruby 哈希或数组字面量转换为 JSON。服务在本地运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"rubyhash": {
"command": "npx",
"args": [
"-y",
"rubyhash-mcp"
]
}
}
}
启动命令npx -y rubyhash-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmrubyhash-mcp

工具

2

收录的工具列表 · 更新于 3 周前

参数类型必填说明
expectedstring否预期的 Ruby 哈希字面量,例如 {"role"=>"admin"}
actualstring否实际的 Ruby 哈希字面量,例如 {"role"=>"editor"}
rawstring否包含两个哈希字面量的原始失败测试输出(行首可能带有 - 和 +)

详细介绍

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 网站及其浏览器工具是独立的私有产品,保留所有权利。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。