ruby-native について
ruby-nativeは、Ruby NativeでRailsアプリをiOS・Androidアプリにするチーム向けのMCPサーバーです。テンプレートや設定を検査し、Ruby Nativeアカウントに紐づくビルド・リリース状況のツールを提供します。
主な機能
- 01テンプレート内のシグナルの誤りを検査
- 02ネイティブ属性とヘルパーの検索
- 03Ruby Native設定の検証
- 04実機から報告された設定エラーの確認
- 05公開済みビルドとビルド状況の確認
- 06ストア掲載情報と提出操作の準備
活用シーン
- 01Railsビュー内の誤記されたシグナルを発見
- 02実機ビルド前に設定の問題を確認
- 03実機から報告された障害を診断
- 04ビルド準備とストア提出状況を確認
MCP 対応
stdinとstdoutで通信します。3つのローカルツールは作業コピーを検査し、アカウントおよびリリース関連ツールはRuby Nativeのトークンを使用します。Appleへの提出は確認手順の後に行われます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ruby_native
Ruby Native は、Rails アプリを iOS および Android アプリに変換します。この gem は Rails 側の統合を担い、ビューのヘルパー、YAML 設定ファイル、/native に自動マウントされるエンドポイント、ビルドをプレビューしてデプロイする CLI を提供します。ヘルパーの完全なリファレンスや設定スキーマを含むすべてのドキュメントは、rubynative.com/docs にあります。
インストール
gem "ruby_native"
エンジンは /native に自動マウントされます。ルート設定は不要です。
はじめに
インストールジェネレーターを実行します。
rails generate ruby_native:install
ルートから取得したタブを含む config/ruby_native.yml が作成されます。コーディングエージェントを使用している場合は、以下の内容を渡してください。
bundle exec ruby_native mcp install
続けて「このアプリに Ruby Native をセットアップしてください」と指示します。レイアウトを設定し、作業内容を自ら確認します。その後、アプリの掲載情報の下書き作成、スクリーンショットの撮影、審査への提出を行います。Apple が人による操作のために残している数回のクリックが必要になるところでのみ、処理を止めます。手作業で行う場合は、同じ手順を次のように進めます。
-
色とタブを設定ファイルに記述します(以下を参照)。
-
スタイルシートと
viewport-fit=coverをレイアウトの<head>に追加します。<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"> <%= stylesheet_link_tag :ruby_native %>viewport-fit=coverは必須です。これにより、CSS のenv(safe-area-inset-*)変数が0ではなく実際の値に解決されます。 -
タブバーをレイアウトの
<body>に追加します。<%= native_tabs_tag %> -
スマートフォンでプレビューします(以下を参照)。
セーフエリアのレイアウトや、native_app? を使って Web 専用のナビゲーションを非表示にする方法を含む詳細な手順は、rubynative.com/docs/setup をご覧ください。
設定
config/ruby_native.yml でネイティブシェルを設定します。
appearance:
tint_color: "#007AFF"
background_color: "#FFFFFF"
tabs:
- title: Home
path: /
icon: house
- title: Profile
path: /profile
icon: person
開発環境では、サーバーを再起動しなくても変更が反映されます。外観とダークモード、ナビゲーションバーのブランディング、Advanced Mode、OAuth、リンク済みドメインを含む完全なスキーマは、rubynative.com/docs をご覧ください。
プレビュー
デプロイせずに、実機でアプリをプレビューできます。
bundle exec ruby_native preview
Cloudflare トンネルを起動し、Ruby Native アプリで読み取るための QR コードを表示します。Rails サーバーは別途起動しておく必要があります。cloudflared が必要です。
brew install cloudflare/cloudflare/cloudflared
トンネルはポート 3000 を参照します。PORT が設定されている場合は、その値を参照します。これは rails server がポートを選ぶ方法と同じです。上書きするには --port 4000 を渡してください。localhost 以外の上流サーバーを指定するには --url を渡します。
deploy、login、CI からの自動デプロイについては、rubynative.com/docs/cli をご覧ください。
React と Vue
ERB ではなく Inertia を使って構築していますか?@ruby-native/react と @ruby-native/vue は、npm パッケージとして同じヘルパーを提供し、この gem と同じバージョンでリリースされます。セットアップについては、rubynative.com/docs/inertia をご覧ください。
AI エージェント
すべてのドキュメントページは Markdown を提供しています。URL に .md を追加するか、Accept: text/markdown をリクエストしてください。すべてのページのインデックスを取得するには、rubynative.com/llms.txt を取得してください。ドキュメント全体を単一ファイルで取得する場合は、llms-full.txt をご利用ください。
MCP サーバー
ドキュメントはエージェントに何を書くべきかを伝えます。しかし、書いたものが機能するかどうかまでは教えてくれません。また、Ruby Native のシグナルは意図的に何も通知せずに失敗します。data-native-* 属性を認識しないアプリは、その属性を無視します。タイプミスがあっても何も表示されず、例外もログも出ないため、ビルドを開いてボタンがないことに誰かが気づくまで、そのまま残ってしまいます。
ruby_native mcp は、この問題を解決します。MCP を介して標準入力と標準出力で通信します。3 つのツールは、アカウントを使わずに作業コピーをもとに回答します。
| ツール | 回答内容 |
|---|---|
check_views | テンプレート内のシグナルのうち、スペルミスがあるもの、重複しているもの、インストール済み gem より新しいもの |
lookup_signals | すべての data-native-* 属性、必要な gem のバージョン、およびその属性を出力するヘルパー |
validate_config | config/ruby_native.yml のうち、アプリが明示的に拒否する設定と、何も通知せずに無視する設定 |
さらに 4 つのツールは、すでに保存されている ruby_native login のトークンを使ってアカウント情報を読み取ります。
| ツール | 回答内容 |
|---|---|
status | アプリの App Store 申請までの進捗状況、妨げとなっている項目、および各項目を解消する担当者 |
config_errors | 過去 48 時間に実機から報告された失敗と、それぞれの原因となったデコードエラー |
deployed_builds | ユーザーが実際にインストールできるビルドと、そのビルドでは理解できないほど古いシグナル |
build_status | あるビルドが成功したかどうかと、失敗した場合のエラー |
この 2 組のツールが重要です。validate_config はデコードに失敗する「可能性がある」ものを示し、config_errors は、どのデバイスで実際に失敗したかを示します。check_views はテンプレートと Gemfile 内の gem を比較し、deployed_builds はテンプレートとストア内のバイナリを比較します。これは通常、「属性は正しいのに、スマートフォンでは何も起きない」という問題の答えになります。
完全なリファレンスは rubynative.com/docs/cli をご覧ください。プロジェクトの .mcp.json に登録すると、Claude Code が読み込みます。
bundle exec ruby_native mcp install
続けて、「このアプリで Ruby Native をセットアップして」と伝えてください。
Claude Code のプラグインとしてインストールした場合(claude plugin marketplace add ruby-native/gem、続けて claude plugin install ruby-native@ruby-native)、サーバーは同じコマンドで動作します。プラグインでは Ruby Native トークンを任意で入力できます。空欄のままにすると、アカウント用のツールはこのマシンに保存されている ruby_native login の情報を使います。
JSON を受け付けるクライアントでは、次のように設定できます。
{
"mcpServers": {
"ruby-native": {
"command": "bundle",
"args": ["exec", "ruby_native", "mcp"]
}
}
}
そのほかのツールは Ruby Native 上で各種設定を行い、ビルド時またはダッシュボードをクリックしたときにのみ Apple に接続します。対象は permissions_set、testers_add、icon_set、screenshots_setup、screenshots_capture、listing_push、listing_pull、demo_account_set で、それぞれ対応する CLI コマンドと同じ動作をします。Apple に独自に接続するツールは submit のみです。このツールは途中でトークンを渡して 2 回呼び出す必要があるため、送信前にエージェントが処理内容を提示します。withdraw を使うと、Apple の承認まで申請をキューから取り下げられます。最初の 3 つのツールがマシンの外にデータを送信することはありません。それ以外のツールは CLI トークンを rubynative.com に送信します。check_views には ruby_native check と同様に herb gem が必要です。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。