Ruby Native

io.github.ruby-native由 GitHub 账号 ruby-native 发布v0.19.1更新于 Oct 30, 2026

Ship a Rails app to the App Store and Google Play. Every ruby_native command as a tool.

发布方自己的服务:NativeExpress

概览

AI 生成的概览

Ruby Native 的 MCP 服务器让助手检查 Rails 应用的原生视图信号与配置,并驱动 App Store 和 Google Play 的构建与上架。

可以做什么
  • 本地检查模板与配置:找出拼错、重复或版本过新的 data-native 属性,列出全部信号及其所需 gem 版本,并指出应用会拒绝或静默忽略的配置项。
  • 查看账号与构建状态:上架进度与阻碍、近 48 小时真机上报的配置错误、用户可安装的构建,以及单个构建的结果。
  • 准备发布素材:权限、测试人员、图标、截图设置与截取、上架信息推送与拉取、演示账号。
  • 提交或撤回审核:提交需两次调用确认,助手必须先展示内容才能发送给 Apple。
适用场景
适合通过 Ruby Native 把 Rails 产品发布为 iOS 和 Android 应用的团队,尤其是希望由编码助手完成集成配置、校验视图助手与配置、并准备或提交商店上架信息的场景。
运行要求
以 ruby_native gem 的 mcp 命令在本地通过 stdio 运行,通常为 bundle exec ruby_native mcp,并注册到项目的 .mcp.json。需要已安装该 gem 的 Rails 应用;check_views 还需要 herb gem。账号类工具使用 ruby_native login 保存的令牌,或插件中可选提供的令牌。预览功能需要 cloudflared。
安装前请注意
前三个工具不离开本机,其余工具会把 CLI 令牌发送到 rubynative.com。submit 会直接触达 Apple,withdraw 会把构建撤出审核队列,确认前应先查看助手准备的内容。上架信息、测试人员、图标和截图工具会改动账号状态。构建需要按应用付费的方案,手机预览免费。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ruby Native,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

ruby_native

Ruby Native turns a Rails app into iOS and Android apps. This gem is the Rails-side integration: view helpers, a YAML config file, endpoints auto-mounted at /native, and a CLI for previewing and deploying builds. Full docs, including the complete helper reference and config schema, live at rubynative.com/docs.

It is built for teams with a Rails product whose customers want an app. You keep one codebase and one roadmap: Ruby Native renders the HTML you already write as native tab bars, navigation, forms, and push notifications, builds the apps in the cloud with no Xcode or Android Studio, and submits them to the App Store and Google Play. A coding agent can drive every step through the bundled MCP server, stopping only for the few clicks Apple keeps for a person. Apps built with it run on 150,000+ devices. Pricing is one plan per app, $199 a month or $1,990 a year, at rubynative.com/pricing; the phone preview costs nothing and needs no account.

Installation

ruby
gem "ruby_native"

The engine auto-mounts at /native. No route configuration needed.

Getting started

Run the install generator:

bash
rails generate ruby_native:install

This creates config/ruby_native.yml with tabs taken from your routes. If you use a coding agent, hand it the rest here:

bash
bundle exec ruby_native mcp install

Then say: set up Ruby Native in this app. It wires the layout, checks its own work, and later drafts the listing, captures screenshots, and submits for review, stopping only for the few clicks Apple keeps for a person. By hand, the same steps are:

  1. Edit the config with your colors and tabs (see below).

  2. Add the stylesheet and viewport-fit=cover to your layout <head>:

    erb
    <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><%= stylesheet_link_tag :ruby_native %>

    viewport-fit=cover is required for CSS env(safe-area-inset-*) variables to resolve to real values instead of 0.

  3. Add the tab bar to your layout <body>:

    erb
    <%= native_tabs_tag %>
  4. Preview it on your phone (see below).

The full walkthrough, including safe area layout and hiding web-only navigation with native_app?, is at rubynative.com/docs/setup.

Configuration

config/ruby_native.yml controls the native shell:

yaml
appearance:  tint_color: "#007AFF"  background_color: "#FFFFFF"
tabs:  - title: Home    path: /    icon: house  - title: Profile    path: /profile    icon: person

Changes are picked up without restarting the server in development. See rubynative.com/docs for the full schema: appearance and dark mode, navbar branding, Advanced Mode, OAuth, and linked domains.

Preview

Preview your app on a real device without deploying:

bash
bundle exec ruby_native preview

This starts a Cloudflare tunnel and shows a QR code for the Ruby Native app to scan. Your Rails server needs to be running separately. Requires cloudflared:

bash
brew install cloudflare/cloudflare/cloudflared

The tunnel points at port 3000, or at PORT when it is set, the same way rails server picks its port. Pass --port 4000 to override, or --url for an upstream that isn't on localhost.

See rubynative.com/docs/cli for deploy, login, and auto-deploying from CI.

React and Vue

Building with Inertia instead of ERB? @ruby-native/react and @ruby-native/vue provide the same helpers as npm packages, versioned alongside this gem. See rubynative.com/docs/inertia for setup.

AI agents

Every docs page serves markdown: append .md to the URL or request Accept: text/markdown. For an index of everything, fetch rubynative.com/llms.txt, or llms-full.txt for the complete docs as a single file.

MCP server

Docs tell an agent what to write. They don't tell it whether what it wrote works, and Ruby Native's signals fail silently on purpose: an app that doesn't recognize a data-native-* attribute ignores it. A typo renders nothing, raises nothing, and logs nothing, so it survives right up until someone opens the build and notices the missing button.

ruby_native mcp closes that loop. It speaks MCP over stdin and stdout. Three tools answer from your working copy, with no account involved:

ToolAnswers
check_viewsWhich signals in your templates are misspelled, duplicated, or newer than the installed gem
lookup_signalsEvery data-native-* attribute, the gem version it needs, and the helper that emits it
validate_configWhat in config/ruby_native.yml the apps reject outright, and what they quietly ignore

Four more read your account, using the token ruby_native login already stored:

ToolAnswers
statusWhere the app is on the way to the App Store, and what is in the way, with who clears each thing
config_errorsWhat real devices reported failing over the last 48 hours, with the decode error behind each one
deployed_buildsThe build your users can actually install, and which signals it's too old to understand
build_statusWhether one build succeeded, and the error if it didn't

The pairs are the point. validate_config says what will fail to decode; config_errors says what did, on which devices. check_views compares your templates against the gem in your Gemfile; deployed_builds compares them against the binary in the store, which is usually the answer to "the attribute is right but nothing happens on my phone".

Full reference at rubynative.com/docs/cli. Register it in the project's .mcp.json, which Claude Code reads:

bash
bundle exec ruby_native mcp install

Then say: set up Ruby Native in this app.

Installed as the Claude Code plugin (claude plugin marketplace add ruby-native/gem, then claude plugin install ruby-native@ruby-native), the server is the same command. The plugin asks for an optional Ruby Native token; leave it blank and the account tools use the login ruby_native login stored on this machine.

Or, in a client that takes JSON:

json
{  "mcpServers": {    "ruby-native": {      "command": "bundle",      "args": ["exec", "ruby_native", "mcp"]    }  }}

The rest stage things with Ruby Native and reach Apple only on a build or a click on the dashboard: permissions_set, testers_add, icon_set, screenshots_setup, screenshots_capture, listing_push, listing_pull, and demo_account_set, each the same as its CLI command. submit is the one tool that reaches Apple on its own: it takes two calls with a token in between, so the agent has to show you what is going before it can send it, and withdraw takes it back out of the queue until Apple approves. The first three tools never leave your machine; the rest send your CLI token to rubynative.com. check_views needs the herb gem, same as ruby_native check.

License

MIT.

来源:README.md,提交 6c7f332

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

3
  1. v0.19.1最新Oct 29, 2026
  2. v0.18.1Oct 24, 2026
  3. v0.18.0Oct 23, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Native 集成