Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "mobile-app-developer-tools",
"displayName": "Mobile App Developer Tools",
"version": "0.6.0",
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 20 skills covering React Native/Expo and Flutter - project setup through app store submission - plus 6 rules. Companion MCP server provides 15 tools.",
"version": "0.7.0",
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 24 skills covering React Native/Expo and Flutter - project setup through app store submission, monetization, analytics, and OTA updates - plus 7 rules. Companion MCP server provides 19 tools.",
"author": {
"name": "TMHSDigital",
"url": "https://github.com/TMHSDigital"
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

All notable changes to this project will be documented in this file.

## [0.7.0] - 2026-04-03

### Added

- **4 new skills**: `mobile-monetization` (in-app purchases, subscriptions, RevenueCat, StoreKit 2), `mobile-deep-links` (universal links, app links, URL schemes, deferred deep links), `mobile-analytics` (Sentry, Firebase Crashlytics, PostHog, source maps, GDPR), `mobile-ota-updates` (EAS Update, channels, staged rollouts, rollback, Shorebird)
- **1 new rule**: `mobile-bundle-size` (flags large dependencies, unoptimized imports, heavy packages with lighter alternatives)
- **4 new MCP tools**: `mobile_submitToPlayStore`, `mobile_generateScreenshots`, `mobile_analyzeBundle`, `mobile_configureOTA`
- Totals: 24 skills, 7 rules, 19 MCP tools

## [0.6.0] - 2026-04-03

### Added
Expand Down
19 changes: 14 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

## Project Overview

The **Mobile App Developer Tools** Cursor plugin is at **v0.6.0**. It helps developers go from zero to a published app in the stores. Supports React Native/Expo and Flutter with **20 skills**, **6 rules**, and a companion MCP server exposing **15 tools**.
The **Mobile App Developer Tools** Cursor plugin is at **v0.7.0**. It helps developers go from zero to a published app in the stores. Supports React Native/Expo and Flutter with **24 skills**, **7 rules**, and a companion MCP server exposing **19 tools**.

## Demo App

Expand All @@ -16,11 +16,11 @@ The **Mobile App Developer Tools** Cursor plugin is at **v0.6.0**. It helps deve
.cursor-plugin/plugin.json - Plugin manifest
skills/<skill-name>/SKILL.md - AI workflow definitions
rules/<rule-name>.mdc - Code quality and security rules
mcp-server/ - MCP server with 15 tools
mcp-server/ - MCP server with 19 tools
packages/mobile-dev-tools/ - NPM package (stub for name claim)
```

## Skills (20 total)
## Skills (24 total)

### React Native / Expo

Expand Down Expand Up @@ -56,8 +56,12 @@ packages/mobile-dev-tools/ - NPM package (stub for name claim)
| Skill | Purpose |
| --- | --- |
| mobile-app-store-prep | App icons, screenshots, metadata, privacy policy, age ratings, review guidelines |
| mobile-monetization | In-app purchases, subscriptions, RevenueCat, StoreKit 2, sandbox testing |
| mobile-deep-links | Universal links, app links, URL schemes, deferred deep links, attribution |
| mobile-analytics | Crash reporting (Sentry, Crashlytics), event tracking (PostHog), source maps |
| mobile-ota-updates | EAS Update channels, runtime versions, staged rollouts, rollback, Shorebird |

## Rules (6 total)
## Rules (7 total)

| Rule | Scope | Purpose |
| --- | --- | --- |
Expand All @@ -67,12 +71,13 @@ packages/mobile-dev-tools/ - NPM package (stub for name claim)
| mobile-env-safety.mdc | `.ts`, `.tsx`, `.json` | Flags hardcoded production endpoints, missing EXPO_PUBLIC_ prefix, server-only secrets in client code |
| mobile-performance.mdc | `.ts`, `.tsx`, `.dart` | Flags inline styles, missing list keys, unnecessary re-renders (RN); missing const constructors, inline widgets (Flutter) |
| mobile-accessibility.mdc | `.ts`, `.tsx`, `.dart` | Flags missing a11y labels, small touch targets, images without alt text, color-only indicators |
| mobile-bundle-size.mdc | `.ts`, `.tsx`, `.json`, `.dart` | Flags large dependencies, unoptimized imports, heavy packages with lighter alternatives |

## Companion MCP Server

Tools use the `mobile_` prefix (for example `mobile_checkDevEnvironment`).

### Tools (15 total)
### Tools (19 total)

| Tool | Description |
| --- | --- |
Expand All @@ -91,6 +96,10 @@ Tools use the `mobile_` prefix (for example `mobile_checkDevEnvironment`).
| mobile_buildForStore | Create a production build for app store submission via EAS Build |
| mobile_validateStoreMetadata | Check app.json for all required store listing fields (name, bundle ID, icon, etc.) |
| mobile_submitToAppStore | Submit latest iOS production build to App Store Connect via EAS Submit |
| mobile_submitToPlayStore | Submit latest Android production build to Google Play Console via EAS Submit |
| mobile_generateScreenshots | Generate screenshot capture script and list required store dimensions |
| mobile_analyzeBundle | Analyze app bundle for large dependencies, heavy assets, and optimization opportunities |
| mobile_configureOTA | Configure EAS Update for over-the-air JavaScript updates with channels and runtime versions |

## Development Workflow

Expand Down
43 changes: 28 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</p>

<p align="center">
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/releases"><img src="https://img.shields.io/badge/version-0.6.0-0A84FF?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDIyIDEyTDEyIDIyTDIgMTJaIi8+PC9zdmc+" alt="Release"></a>
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/releases"><img src="https://img.shields.io/badge/version-0.7.0-0A84FF?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDIyIDEyTDEyIDIyTDIgMTJaIi8+PC9zdmc+" alt="Release"></a>
<a href="https://creativecommons.org/licenses/by-nc-nd/4.0/"><img src="https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey?style=for-the-badge" alt="License"></a>
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/TMHSDigital/Mobile-App-Developer-Tools/ci.yml?branch=main&label=CI&logo=githubactions&style=for-the-badge" alt="CI"></a>
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/actions/workflows/validate.yml"><img src="https://img.shields.io/github/actions/workflow/status/TMHSDigital/Mobile-App-Developer-Tools/validate.yml?branch=main&label=Validate&logo=githubactions&style=for-the-badge" alt="Validate"></a>
Expand All @@ -24,7 +24,7 @@
---

<p align="center">
<strong>20 skills</strong> &nbsp;&bull;&nbsp; <strong>6 rules</strong> &nbsp;&bull;&nbsp; <strong>15 MCP tools</strong>
<strong>24 skills</strong> &nbsp;&bull;&nbsp; <strong>7 rules</strong> &nbsp;&bull;&nbsp; <strong>19 MCP tools</strong>
</p>

<p align="center">
Expand All @@ -35,15 +35,15 @@

## Overview

Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packages agent skills, editor rules, and a TypeScript **MCP server** (`mcp-server/`) so you can scaffold, build, and ship mobile apps without leaving the IDE. Currently at **v0.6.0** with twenty skills (React Native/Expo + Flutter), six rules, and fifteen live MCP tools.
Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packages agent skills, editor rules, and a TypeScript **MCP server** (`mcp-server/`) so you can scaffold, build, and ship mobile apps without leaving the IDE. Currently at **v0.7.0** with twenty-four skills (React Native/Expo + Flutter), seven rules, and nineteen live MCP tools.

**What you get**

| Layer | Role |
| --- | --- |
| **Skills** | 20 guided workflows for React Native/Expo and Flutter: project setup through app store submission |
| **Rules** | 6 guardrails: secrets, platform guards, image bloat, env safety, performance, accessibility |
| **MCP** | 15 tools: env checks, scaffolding, device deploy, screen/component gen, permissions, AI, build health, push, deep links, store builds, metadata validation, App Store submission |
| **Skills** | 24 guided workflows for React Native/Expo and Flutter: project setup through monetization, analytics, and OTA updates |
| **Rules** | 7 guardrails: secrets, platform guards, image bloat, env safety, performance, accessibility, bundle size |
| **MCP** | 19 tools: env checks, scaffolding, device deploy, screen/component gen, permissions, AI, build health, push, deep links, store builds, metadata validation, App Store + Play Store submission, screenshots, bundle analysis, OTA config |

**Quick facts**

Expand All @@ -61,7 +61,7 @@ Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packag
flowchart LR
A[User asks mobile dev question] --> B[Cursor loads a Skill]
B --> C{MCP server configured?}
C -->|Yes| D["mobile-mcp tools (15)"]
C -->|Yes| D["mobile-mcp tools (19)"]
C -->|No| E[Docs-only guidance]
D --> F[Local env checks / scaffolding]
E --> G[Answer in chat or code edits]
Expand Down Expand Up @@ -144,15 +144,15 @@ Open Cursor and ask:

## Demo App

See the plugin in action: **[SnapLog](https://github.com/TMHSDigital/Demo-Mobile-App)** is a photo journal app built entirely using these skills and MCP tools. It exercises 16 of the 20 skills - from project scaffolding and navigation to camera capture, AI descriptions, local storage, and push notifications.
See the plugin in action: **[SnapLog](https://github.com/TMHSDigital/Demo-Mobile-App)** is a photo journal app built entirely using these skills and MCP tools. It exercises 16 of the 24 skills - from project scaffolding and navigation to camera capture, AI descriptions, local storage, and push notifications.

[![Demo App](https://img.shields.io/badge/demo-SnapLog-0A84FF?style=flat-square&logo=github)](https://github.com/TMHSDigital/Demo-Mobile-App)

---

## Skills

All 20 skills are production-ready. Names match the folder under `skills/`.
All 24 skills are production-ready. Names match the folder under `skills/`.

<details>
<summary><strong>React Native / Expo skills (15)</strong></summary>
Expand Down Expand Up @@ -190,11 +190,15 @@ All 20 skills are production-ready. Names match the folder under `skills/`.
</details>

<details>
<summary><strong>Shared skills (1)</strong></summary>
<summary><strong>Shared skills (5)</strong></summary>

| Skill | What it does |
| --- | --- |
| `mobile-app-store-prep` | App icons, screenshots, metadata, privacy policy, age ratings, review guidelines |
| `mobile-monetization` | In-app purchases, subscriptions, RevenueCat, StoreKit 2, sandbox testing, price localization |
| `mobile-deep-links` | Universal links (iOS), app links (Android), URL schemes, deferred deep links, install attribution |
| `mobile-analytics` | Crash reporting (Sentry, Firebase Crashlytics), event tracking (PostHog), source maps, GDPR compliance |
| `mobile-ota-updates` | EAS Update channels, runtime versions, staged rollouts, rollback, Shorebird for Flutter |

</details>

Expand Down Expand Up @@ -223,17 +227,21 @@ All 20 skills are production-ready. Names match the folder under `skills/`.
| `mobile-flutter-navigation` | "Add tab navigation with GoRouter in my Flutter app" |
| `mobile-flutter-run-on-device` | "My Android phone doesn't show up in flutter devices" |
| `mobile-flutter-state-management` | "Should I use Riverpod or Bloc for my Flutter app?" |
| `mobile-monetization` | "Add a monthly subscription with a free trial using RevenueCat" |
| `mobile-deep-links` | "Make shared links like example.com/recipe/42 open in my app" |
| `mobile-analytics` | "Set up crash reporting with Sentry and event tracking with PostHog" |
| `mobile-ota-updates` | "Push a bug fix to production without going through app review" |

</details>

---

## Rules

All 6 rules are production-ready.
All 7 rules are production-ready.

<details>
<summary><strong>All 6 rules</strong></summary>
<summary><strong>All 7 rules</strong></summary>

| Rule | Scope | What it catches |
| --- | --- | --- |
Expand All @@ -243,6 +251,7 @@ All 6 rules are production-ready.
| `mobile-env-safety` | `.ts`, `.tsx`, `.json` | Hardcoded production endpoints, missing `EXPO_PUBLIC_` prefix, server-only secrets in client code |
| `mobile-performance` | `.ts`, `.tsx`, `.dart` | Inline styles, missing list keys, ScrollView for long lists (RN); missing const constructors, inline widgets (Flutter) |
| `mobile-accessibility` | `.ts`, `.tsx`, `.dart` | Missing a11y labels on interactive elements, small touch targets, images without alt text, color-only indicators |
| `mobile-bundle-size` | `.ts`, `.tsx`, `.json`, `.dart` | Large dependencies (moment, lodash, aws-sdk), unoptimized imports, heavy packages with lighter alternatives |

</details>

Expand Down Expand Up @@ -277,7 +286,7 @@ npx @tmhs/mobile-mcp
```

<details>
<summary><strong>All 15 MCP tools</strong></summary>
<summary><strong>All 19 MCP tools</strong></summary>

| Tool | Purpose |
| --- | --- |
Expand All @@ -296,6 +305,10 @@ npx @tmhs/mobile-mcp
| `mobile_buildForStore` | Create a production build for app store submission via EAS Build. Validates app.json before building. |
| `mobile_validateStoreMetadata` | Check app.json for all required store listing fields (name, bundle ID, version, icon, splash, privacy policy). |
| `mobile_submitToAppStore` | Submit the latest iOS production build to App Store Connect via EAS Submit. |
| `mobile_submitToPlayStore` | Submit the latest Android production build to Google Play Console via EAS Submit. |
| `mobile_generateScreenshots` | Generate a screenshot capture helper script and list required store dimensions for iOS and Android. |
| `mobile_analyzeBundle` | Analyze app bundle for large dependencies, heavy assets, and optimization opportunities. |
| `mobile_configureOTA` | Configure EAS Update for over-the-air JavaScript updates with channels and runtime version policy. |

</details>

Expand Down Expand Up @@ -357,8 +370,8 @@ Full details in [ROADMAP.md](ROADMAP.md).
| **v0.3.0** | Camera & AI | 9 skills, 3 rules, 9 MCP tools | |
| **v0.4.0** | Users & Data | 13 skills, 4 rules, 12 MCP tools | |
| **v0.5.0** | Flutter | 17 skills, 5 rules, 12 MCP tools | |
| **v0.6.0** | Ship It | 20 skills, 6 rules, 15 MCP tools | **Current** |
| **v0.7.0** | Grow & Measure | 24 skills, 7 rules, 19 MCP tools | |
| **v0.6.0** | Ship It | 20 skills, 6 rules, 15 MCP tools | |
| **v0.7.0** | Grow & Measure | 24 skills, 7 rules, 19 MCP tools | **Current** |
| **v0.8.0** | Test & Automate | 27 skills, 8 rules, 22 MCP tools | |
| **v0.9.0** | Rich Features | 32 skills, 9 rules, 26 MCP tools | |
| **v0.10.0** | Harden | 37 skills, 10 rules, 30 MCP tools | |
Expand Down
8 changes: 4 additions & 4 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
| **v0.3.0** | Camera & AI | +3 | +1 | +3 | Camera integration, AI features, permissions skill, image-assets rule |
| **v0.4.0** | Users & Data | +4 | +1 | +3 | Auth, push notifications, local storage, API integration, env-safety rule |
| **v0.5.0** | Flutter | +4 | +1 | +0 | Flutter project setup, navigation, run-on-device, state management, performance rule |
| **v0.6.0** | Ship It | +3 | +1 | +3 | App store prep, iOS submission, Android submission, accessibility rule **(current)** |
| **v0.7.0** | Grow & Measure | +4 | +1 | +4 | Monetization, deep links, analytics/crash reporting, OTA updates, bundle analysis |
| **v0.6.0** | Ship It | +3 | +1 | +3 | App store prep, iOS submission, Android submission, accessibility rule |
| **v0.7.0** | Grow & Measure | +4 | +1 | +4 | Monetization, deep links, analytics/crash reporting, OTA updates, bundle analysis **(current)** |
| **v0.8.0** | Test & Automate | +3 | +1 | +3 | Unit/E2E testing, CI/CD pipelines, test file generation |
| **v0.9.0** | Rich Features | +5 | +1 | +4 | Animations, maps/location, i18n, forms/validation, real-time/WebSockets |
| **v0.10.0** | Harden | +5 | +1 | +4 | Security, offline-sync, background tasks, debugging, production APM |
Expand Down Expand Up @@ -90,7 +90,7 @@
**Rules:**
- `mobile-performance` - Common performance anti-patterns (inline styles, missing keys, heavy re-renders)

## v0.6.0 - Ship It (current)
## v0.6.0 - Ship It

**Skills:**
- `mobile-app-store-prep` (Shared) - Screenshots, descriptions, metadata, review guidelines
Expand All @@ -105,7 +105,7 @@
- `mobile_validateStoreMetadata` - Check store listing fields
- `mobile_submitToAppStore` - Trigger iOS submission

## v0.7.0 - Grow & Measure
## v0.7.0 - Grow & Measure (current)

**Skills:**
- `mobile-monetization` (Shared) - In-app purchases, subscriptions, RevenueCat, StoreKit 2
Expand Down
4 changes: 2 additions & 2 deletions mcp-server/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@tmhs/mobile-mcp",
"version": "0.6.0",
"description": "MCP server for mobile app development - 15 tools for environment checks, project scaffolding, device deployment, screen/component generation, dependency installation, permissions, AI integration, build health, push notifications, deep links, dev environment reset, store builds, metadata validation, and App Store submission.",
"version": "0.7.0",
"description": "MCP server for mobile app development - 19 tools for environment checks, project scaffolding, device deployment, screen/component generation, dependency installation, permissions, AI integration, build health, push notifications, deep links, dev environment reset, store builds, metadata validation, App Store submission, Play Store submission, screenshot capture, bundle analysis, and OTA update configuration.",
"type": "module",
"main": "dist/index.js",
"bin": {
Expand Down
10 changes: 9 additions & 1 deletion mcp-server/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,14 @@ import { register as registerResetDevEnvironment } from "./tools/resetDevEnviron
import { register as registerBuildForStore } from "./tools/buildForStore.js";
import { register as registerValidateStoreMetadata } from "./tools/validateStoreMetadata.js";
import { register as registerSubmitToAppStore } from "./tools/submitToAppStore.js";
import { register as registerSubmitToPlayStore } from "./tools/submitToPlayStore.js";
import { register as registerGenerateScreenshots } from "./tools/generateScreenshots.js";
import { register as registerAnalyzeBundle } from "./tools/analyzeBundle.js";
import { register as registerConfigureOTA } from "./tools/configureOTA.js";

const server = new McpServer({
name: "mobile-mcp",
version: "0.6.0",
version: "0.7.0",
});

registerCheckDevEnvironment(server);
Expand All @@ -39,6 +43,10 @@ registerResetDevEnvironment(server);
registerBuildForStore(server);
registerValidateStoreMetadata(server);
registerSubmitToAppStore(server);
registerSubmitToPlayStore(server);
registerGenerateScreenshots(server);
registerAnalyzeBundle(server);
registerConfigureOTA(server);

async function main(): Promise<void> {
const transport = new StdioServerTransport();
Expand Down
Loading
Loading