Rubyhash について
Rubyhash は Ruby 開発者やコーディングエージェント向けのローカル MCP サーバーです。Ruby ハッシュやテスト失敗出力を比較し、型の変更を検出して、Ruby のリテラルをキー順の JSON に変換します。
主な機能
- 01Ruby ハッシュリテラルの差分比較
- 02Minitest・RSpec の失敗出力を解析
- 03追加・削除されたキーを検出
- 04値と型の変更を報告
- 05Ruby リテラルをキー順の JSON に変換
- 06データを送信せずローカルで実行
活用シーン
- 01テスト失敗出力の差分を特定
- 02ネストしたハッシュの変更を確認
- 03Ruby のデータ構造を JSON に変換
MCP 対応
MCP クライアントに 2 つのツールを提供します。`ruby_hash_diff` はハッシュの構造化比較、`ruby_to_json` は Ruby のハッシュまたは配列リテラルの JSON 変換を行います。サーバーはローカルで動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| expected | string | いいえ | 期待される Ruby ハッシュリテラル。例:{"role"=>"admin"} |
| actual | string | いいえ | 実際の Ruby ハッシュリテラル。例:{"role"=>"editor"} |
| raw | string | いいえ | 2 つのハッシュリテラルを含むテスト失敗時の生出力(行頭に - や + が付く場合があります) |
詳細
rubyhash-mcp
RubyHash 用の MCP サーバーです。MCP に対応したあらゆるエージェント(Claude Code、Claude Desktop、Cursor など)に、決定論的な Ruby ツールを 2 つ提供します。
- ruby_hash_diff:2 つの Ruby ハッシュリテラルを比較するか、失敗した Minitest/RSpec の出力をそのまま貼り付けると、変更された値(変更前と変更後)、追加・削除されたキー、明示的な型の変更(nil から String、Integer から Float、シンボルキーと文字列キーの違い)を正確に構造化したレポートとして取得できます。
- ruby_to_json:Ruby のハッシュまたは配列リテラル(hashrocket、シンボルキー、省略構文、ネスト、nil/true/false)を、キーをソートした整った JSON に変換します。
すべての処理はサーバープロセス内でローカルに実行されます。rubyhash.dev と同じプライバシー保護を約束しており、データがアップロード、記録、保存されることはありません。
ツール
ruby_hash_diff:2 つの Ruby ハッシュリテラルを比較するか、失敗した Minitest/RSpec の出力をそのまま貼り付けると、変更された値(変更前と変更後)、追加・削除されたキー、明示的な型の変更(nil から String、Integer から Float、シンボルキーと文字列キーの違い)を構造化したレポートとして取得できます。ruby_to_json:Ruby のハッシュまたは配列リテラル(hashrocket、シンボルキー、省略構文、ネスト、nil/true/false)を、キーをアルファベット順に並べた整った JSON に変換します。
エージェントにとっての利点
Ruby のテストで、ほとんど同じような大きなハッシュ 2 つの比較が必要になると、目視での比較は時間がかかり、人間にも言語モデルにも間違いが起こりやすくなります。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 から利用できます。OpenAPI の仕様と、x402 による機械決済可能なカタログも提供しています。
開発
npm install
npm test # 36 unit tests
ライセンス
このパッケージは MIT ライセンスです。rubyhash.dev のサイトとブラウザーツールは別の非公開サービスであり、すべての権利は留保されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。