ruby-native MCP server
Commit Nov 12, 2026Converts Rails applications into native iOS and Android apps and manages the deployment process to the App Store and Google Play.
Also known as ruby-native/gem, gem
- Stars
- 27
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.20.0
- Last commit
- Nov 12, 2026
- License
- MIT
What is ruby-native MCP?
ruby-native converts Rails applications into native iOS and Android apps and manages the deployment process to the App Store and Google Play.
Summary generated from the project's README
About ruby-native MCP server
Ruby Native is a Rails integration designed for development teams that want to transform existing web applications into native iOS and Android apps. By using a single Ruby codebase, it renders HTML as native navigation, tab bars, and push notifications. The system handles cloud-based builds without requiring Xcode or Android Studio, managing the entire deployment process to the App Store and Google Play.
Developers can use the bundled MCP server to allow coding agents to manage the mobile lifecycle. The server provides tools to validate configurations, check view templates for misspelled signals, and monitor build statuses. While local tools like check_views and validate_config run without an account, deployment tools such as screenshots_capture and listing_push require a Ruby Native token obtained via the ruby_native login command. This setup enables an AI client to draft app listings, capture screenshots, and submit builds for review, stopping only for manual steps required by Apple.
What you can do with it
- 1Validate mobile view signalsAsk the agent to find misspelled or duplicated data-native attributes in your Rails templates.
- 2Debug deployment failuresIdentify why specific mobile devices are reporting errors by checking recent device reports.
- 3Automate app store submissionsInstruct the agent to capture screenshots and prepare the app for review on the App Store.
- 4Verify configuration accuracyCheck if your YAML configuration contains settings that the native apps will reject or ignore.
Written from the project's README. Every use case is checked against a quote from it.
Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachableruby-native/gem is public and reachablegithub.com/ruby-native/gem ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-12github.com/ruby-native/gem ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubruby_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
gem "ruby_native"
The engine auto-mounts at /native. No route configuration needed.
Getting started
Run the install generator:
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:
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:
-
Edit the config with your colors and tabs (see below).
-
Add the stylesheet and
viewport-fit=coverto your layout<head>:<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"> <%= stylesheet_link_tag :ruby_native %>viewport-fit=coveris required for CSSenv(safe-area-inset-*)variables to resolve to real values instead of0. -
Add the tab bar to your layout
<body>:<%= native_tabs_tag %> -
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:
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:
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:
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:
| Tool | Answers |
|---|---|
check_views |
Which signals in your templates are misspelled, duplicated, or newer than the installed gem |
lookup_signals |
Every data-native-* attribute, the gem version it needs, and the helper that emits it |
validate_config |
What 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:
| Tool | Answers |
|---|---|
status |
Where the app is on the way to the App Store, and what is in the way, with who clears each thing |
config_errors |
What real devices reported failing over the last 48 hours, with the decode error behind each one |
deployed_builds |
The build your users can actually install, and which signals it's too old to understand |
build_status |
Whether 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:
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:
{
"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.
ruby-native MCP questions
How do I install the MCP server?
You can install it by running the command bundle exec ruby_native mcp install in your terminal.
What tools does the MCP server provide for template checking?
The check_views tool identifies misspelled, duplicated, or outdated signals in your templates.
Does the service require Xcode or Android Studio?
No, the service builds your apps in the cloud without requiring local mobile development environments.