Skip to content

Commit d159001

Browse files
committed
v0.3.0: Camera and AI - 9 skills, 3 rules, 9 MCP tools
New skills: mobile-camera-integration (expo-camera, photo capture, barcode scanning), mobile-ai-features (AI API integration with backend proxy patterns), mobile-permissions (cross-platform permission handling with rationale strings). New rule: mobile-image-assets (flags oversized images, unoptimized formats, missing density variants, uncached remote images). New MCP tools: mobile_addPermission, mobile_integrateAI, mobile_checkBuildHealth. Made-with: Cursor
1 parent ba13e7e commit d159001

File tree

16 files changed

+1547
-31
lines changed

16 files changed

+1547
-31
lines changed

.cursor-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "mobile-app-developer-tools",
33
"displayName": "Mobile App Developer Tools",
4-
"version": "0.2.0",
5-
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 6 skills covering project setup, environment detection, device deployment, navigation, state management, and component patterns for React Native/Expo - plus 2 rules. Companion MCP server provides 6 tools for environment checks, project scaffolding, device connection, screen generation, component generation, and dependency installation.",
4+
"version": "0.3.0",
5+
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 9 skills covering project setup, environment detection, device deployment, navigation, state management, component patterns, camera integration, AI features, and permissions for React Native/Expo - plus 3 rules. Companion MCP server provides 9 tools for environment checks, project scaffolding, device connection, screen/component generation, dependency installation, permissions, AI integration, and build health checks.",
66
"author": {
77
"name": "TMHSDigital",
88
"url": "https://github.com/TMHSDigital"

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

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

5+
## [0.3.0] - 2026-04-03
6+
7+
### Added
8+
9+
- **3 new skills**: `mobile-camera-integration` (expo-camera, photo capture, barcode scanning), `mobile-ai-features` (AI API integration with backend proxy patterns), `mobile-permissions` (cross-platform permission handling)
10+
- **1 new rule**: `mobile-image-assets` (flags oversized images, unoptimized formats, missing density variants)
11+
- **3 new MCP tools**: `mobile_addPermission`, `mobile_integrateAI`, `mobile_checkBuildHealth`
12+
- Totals: 9 skills, 3 rules, 9 MCP tools
13+
514
## [0.2.0] - 2026-04-03
615

716
### Added

CLAUDE.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## Project Overview
66

7-
The **Mobile App Developer Tools** Cursor plugin is at **v0.2.0**. It helps developers go from zero to a running mobile app on their phone. Currently supports React Native/Expo with **6 skills**, **2 rules**, and a companion MCP server exposing **6 tools** for environment checks, project scaffolding, device deployment, screen generation, component generation, and dependency installation. Flutter support is planned for v0.5.0.
7+
The **Mobile App Developer Tools** Cursor plugin is at **v0.3.0**. It helps developers go from zero to a running mobile app on their phone. Currently supports React Native/Expo with **9 skills**, **3 rules**, and a companion MCP server exposing **9 tools** for environment checks, project scaffolding, device deployment, screen/component generation, dependency installation, permissions, AI integration, and build health checks. Flutter support is planned for v0.5.0.
88

99
## Plugin Architecture
1010

1111
```
1212
.cursor-plugin/plugin.json - Plugin manifest
1313
skills/<skill-name>/SKILL.md - AI workflow definitions
1414
rules/<rule-name>.mdc - Code quality and security rules
15-
mcp-server/ - MCP server with 6 tools
15+
mcp-server/ - MCP server with 9 tools
1616
packages/mobile-dev-tools/ - NPM package (stub for name claim)
1717
```
1818

19-
## Skills (6 total)
19+
## Skills (9 total)
2020

2121
| Skill | Purpose |
2222
| --- | --- |
@@ -26,19 +26,23 @@ packages/mobile-dev-tools/ - NPM package (stub for name claim)
2626
| mobile-navigation-setup | Expo Router file-based navigation: tabs, stack, drawer, typed routes, deep linking |
2727
| mobile-state-management | When to use React state vs Zustand vs Jotai vs React Query; patterns and examples |
2828
| mobile-component-patterns | Reusable component architecture, compound components, StyleSheet vs NativeWind, testing |
29+
| mobile-camera-integration | expo-camera setup, permissions, photo capture, barcode scanning, video recording |
30+
| mobile-ai-features | AI API integration (OpenAI, Anthropic, Google) with backend proxy, vision, text, audio |
31+
| mobile-permissions | Cross-platform permission request patterns, rationale strings, denied/blocked handling |
2932

30-
## Rules (2 total)
33+
## Rules (3 total)
3134

3235
| Rule | Scope | Purpose |
3336
| --- | --- | --- |
3437
| mobile-secrets.mdc | Global | Flags API keys, signing credentials, keystore passwords, Firebase config, EAS tokens |
3538
| mobile-platform-check.mdc | `.ts`, `.tsx` | Flags platform-specific APIs used without Platform.OS or Platform.select() guards |
39+
| mobile-image-assets.mdc | `.ts`, `.tsx`, `.json` | Flags oversized images, unoptimized formats, missing density variants, uncached remote images |
3640

3741
## Companion MCP Server
3842

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

41-
### Tools (6 total)
45+
### Tools (9 total)
4246

4347
| Tool | Description |
4448
| --- | --- |
@@ -48,6 +52,9 @@ Tools use the `mobile_` prefix (for example `mobile_checkDevEnvironment`).
4852
| mobile_generateScreen | Create a new Expo Router screen file with navigation wiring and boilerplate |
4953
| mobile_generateComponent | Create a React Native component with typed props, StyleSheet, and optional tests |
5054
| mobile_installDependency | Install a package via npx expo install with native module detection and warnings |
55+
| mobile_addPermission | Add platform permission with iOS rationale string to app.json config plugins |
56+
| mobile_integrateAI | Scaffold AI API client with provider config, error handling, and TypeScript types |
57+
| mobile_checkBuildHealth | Validate app.json, check dependencies, verify TypeScript, detect native module issues |
5158

5259
## Development Workflow
5360

README.md

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</p>
1010

1111
<p align="center">
12-
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/releases"><img src="https://img.shields.io/badge/version-0.2.0-0A84FF?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDIyIDEyTDEyIDIyTDIgMTJaIi8+PC9zdmc+" alt="Release"></a>
12+
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/releases"><img src="https://img.shields.io/badge/version-0.3.0-0A84FF?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDIyIDEyTDEyIDIyTDIgMTJaIi8+PC9zdmc+" alt="Release"></a>
1313
<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>
1414
<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>
1515
<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>
@@ -24,7 +24,7 @@
2424
---
2525

2626
<p align="center">
27-
<strong>6 skills</strong> &nbsp;&bull;&nbsp; <strong>2 rules</strong> &nbsp;&bull;&nbsp; <strong>6 MCP tools</strong>
27+
<strong>9 skills</strong> &nbsp;&bull;&nbsp; <strong>3 rules</strong> &nbsp;&bull;&nbsp; <strong>9 MCP tools</strong>
2828
</p>
2929

3030
<p align="center">
@@ -35,7 +35,7 @@
3535

3636
## Overview
3737

38-
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, run, and debug mobile apps without leaving the IDE. Currently at **v0.2.0** with six skills, two rules, and six live MCP tools. Flutter support is planned for v0.5.0.
38+
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, run, and debug mobile apps without leaving the IDE. Currently at **v0.3.0** with nine skills, three rules, and nine live MCP tools. Flutter support is planned for v0.5.0.
3939

4040
<br>
4141
<table>
@@ -46,9 +46,9 @@ Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packag
4646

4747
| Layer | Role |
4848
| --- | --- |
49-
| **Skills** | Guided workflows: project scaffolding, environment setup, device deployment, navigation, state management, component patterns |
50-
| **Rules** | Guardrails: `mobile-secrets` catches hardcoded secrets; `mobile-platform-check` flags missing platform guards |
51-
| **MCP** | Six tools for environment checks, project creation, device connection, screen/component generation, dependency installation |
49+
| **Skills** | Guided workflows: project scaffolding, environment setup, device deployment, navigation, state management, component patterns, camera, AI, permissions |
50+
| **Rules** | Guardrails: `mobile-secrets` catches hardcoded secrets; `mobile-platform-check` flags missing platform guards; `mobile-image-assets` flags bundle bloat |
51+
| **MCP** | Nine tools for environment checks, project creation, device connection, screen/component generation, dependency installation, permissions, AI integration, build health |
5252

5353
</td>
5454
<td>
@@ -74,7 +74,7 @@ Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packag
7474
flowchart LR
7575
A[User asks mobile dev question] --> B[Cursor loads a Skill]
7676
B --> C{MCP server configured?}
77-
C -->|Yes| D["mobile-mcp tools (6)"]
77+
C -->|Yes| D["mobile-mcp tools (9)"]
7878
C -->|No| E[Docs-only guidance]
7979
D --> F[Local env checks / scaffolding]
8080
E --> G[Answer in chat or code edits]
@@ -152,10 +152,10 @@ Open Cursor and ask:
152152

153153
## Skills
154154

155-
All 6 skills are production-ready. Names match the folder under `skills/`.
155+
All 9 skills are production-ready. Names match the folder under `skills/`.
156156

157157
<details>
158-
<summary><strong>All 6 skills</strong></summary>
158+
<summary><strong>All 9 skills</strong></summary>
159159

160160
| Skill | Framework | What it does |
161161
| --- | --- | --- |
@@ -165,6 +165,9 @@ All 6 skills are production-ready. Names match the folder under `skills/`.
165165
| `mobile-navigation-setup` | Expo | Expo Router file-based navigation: tabs, stack, drawer, typed routes, deep linking |
166166
| `mobile-state-management` | Shared | When to use React state vs Zustand vs Jotai vs React Query with code examples |
167167
| `mobile-component-patterns` | Shared | Reusable component architecture, compound components, StyleSheet vs NativeWind, testing |
168+
| `mobile-camera-integration` | Expo | expo-camera setup, permissions, photo capture, barcode scanning, video recording |
169+
| `mobile-ai-features` | Shared | AI API integration (OpenAI, Anthropic, Google) with backend proxy, vision, text, audio |
170+
| `mobile-permissions` | Shared | Cross-platform permission requests, iOS rationale strings, denied/blocked state handling |
168171

169172
</details>
170173

@@ -178,20 +181,24 @@ All 6 skills are production-ready. Names match the folder under `skills/`.
178181
| `mobile-navigation-setup` | "Add tab navigation with Home, Search, and Profile tabs" |
179182
| `mobile-state-management` | "What state management should I use for my Expo app?" |
180183
| `mobile-component-patterns` | "Create a reusable Card component with header and footer" |
184+
| `mobile-camera-integration` | "Add a QR code scanner to my app" |
185+
| `mobile-ai-features` | "I want to take a photo and have AI describe what's in it" |
186+
| `mobile-permissions` | "How do I handle camera permission properly on iOS and Android?" |
181187

182188
---
183189

184190
## Rules
185191

186-
Both rules are production-ready.
192+
All 3 rules are production-ready.
187193

188194
<details>
189-
<summary><strong>All 2 rules</strong></summary>
195+
<summary><strong>All 3 rules</strong></summary>
190196

191197
| Rule | Scope | What it catches |
192198
| --- | --- | --- |
193199
| `mobile-secrets` | Always on | API keys, signing credentials, keystore passwords, Firebase config, `.p8`/`.p12` files, EAS tokens |
194200
| `mobile-platform-check` | `.ts`, `.tsx` | Platform-specific APIs (BackHandler, ToastAndroid, StatusBar methods) used without `Platform.OS` or `Platform.select()` guards |
201+
| `mobile-image-assets` | `.ts`, `.tsx`, `.json` | Oversized images (>500KB), unoptimized formats (BMP, TIFF), missing `@2x`/`@3x` variants, uncached remote images |
195202

196203
</details>
197204

@@ -226,7 +233,7 @@ npx @tmhs/mobile-mcp
226233
```
227234

228235
<details>
229-
<summary><strong>All 6 MCP tools</strong></summary>
236+
<summary><strong>All 9 MCP tools</strong></summary>
230237

231238
| Tool | Purpose |
232239
| --- | --- |
@@ -236,6 +243,9 @@ npx @tmhs/mobile-mcp
236243
| `mobile_generateScreen` | Create a new Expo Router screen file with correct convention, navigation wiring, and boilerplate. |
237244
| `mobile_generateComponent` | Create a React Native component with typed props interface, StyleSheet, and optional test file. |
238245
| `mobile_installDependency` | Install a package via `npx expo install` with native module detection and Expo Go compatibility warnings. |
246+
| `mobile_addPermission` | Add a platform permission to app.json with iOS rationale string via Expo config plugins. |
247+
| `mobile_integrateAI` | Scaffold an AI API client with provider config, error handling, timeout, and TypeScript types. |
248+
| `mobile_checkBuildHealth` | Validate app.json, check dependencies, verify TypeScript compiles, detect native module issues. |
239249

240250
</details>
241251

@@ -271,7 +281,7 @@ Plugin manifest: [`.cursor-plugin/plugin.json`](.cursor-plugin/plugin.json).
271281

272282
## Configuration
273283

274-
No API keys are required for v0.2.0. All tools work locally.
284+
No API keys are required for v0.3.0. All tools work locally.
275285

276286
Future versions may use:
277287

@@ -290,8 +300,8 @@ Summary aligned with [ROADMAP.md](ROADMAP.md):
290300
| Version | Theme | Highlights | Status |
291301
| --- | --- | --- | --- |
292302
| **v0.1.0** | Zero to Phone | 3 skills, 1 rule, 3 MCP tools | |
293-
| **v0.2.0** | Navigate & State | 6 skills, 2 rules, 6 MCP tools | **Current** |
294-
| **v0.3.0** | Camera & AI | Camera integration, AI features, permissions | |
303+
| **v0.2.0** | Navigate & State | 6 skills, 2 rules, 6 MCP tools | |
304+
| **v0.3.0** | Camera & AI | 9 skills, 3 rules, 9 MCP tools | **Current** |
295305
| **v0.4.0** | Users & Data | Auth, push notifications, local storage, API integration | |
296306
| **v0.5.0** | Flutter | Flutter project setup, navigation, device deploy, state management | |
297307
| **v0.6.0** | Ship It | App store prep, iOS and Android submission | |

ROADMAP.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
| Version | Theme | Skills | Rules | MCP Tools | Highlights |
66
|---------|-------|--------|-------|-----------|------------|
77
| **v0.1.0** | Zero to Phone | 3 | 1 | 3 | Project scaffolding, env check, run-on-device, secrets rule |
8-
| **v0.2.0** | Navigate & State | +3 | +1 | +3 | Navigation setup, state management, component generation, platform-check rule **(current)** |
9-
| **v0.3.0** | Camera & AI | +3 | +1 | +3 | Camera integration, AI features, permissions skill, image-assets rule |
8+
| **v0.2.0** | Navigate & State | +3 | +1 | +3 | Navigation setup, state management, component generation, platform-check rule |
9+
| **v0.3.0** | Camera & AI | +3 | +1 | +3 | Camera integration, AI features, permissions skill, image-assets rule **(current)** |
1010
| **v0.4.0** | Users & Data | +4 | +1 | +3 | Auth, push notifications, local storage, API integration, env-safety rule |
1111
| **v0.5.0** | Flutter | +4 | +1 | +0 | Flutter project setup, navigation, run-on-device, state management, performance rule |
1212
| **v0.6.0** | Ship It | +3 | +1 | +3 | App store prep, iOS submission, Android submission, accessibility rule |
@@ -28,7 +28,7 @@
2828
- `mobile_scaffoldProject` - Generate a new Expo project from templates
2929
- `mobile_runOnDevice` - Start dev server and connect to a device
3030

31-
## v0.2.0 - Navigate & State (current)
31+
## v0.2.0 - Navigate & State
3232

3333
**Skills:**
3434
- `mobile-navigation-setup` (Expo) - Expo Router file-based navigation patterns
@@ -43,7 +43,7 @@
4343
- `mobile_generateComponent` - Create a component with props, styles, tests
4444
- `mobile_installDependency` - Add and configure a library with linking and pod install
4545

46-
## v0.3.0 - Camera & AI
46+
## v0.3.0 - Camera & AI (current)
4747

4848
**Skills:**
4949
- `mobile-camera-integration` (Expo) - expo-camera setup, permissions, photo capture

mcp-server/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@tmhs/mobile-mcp",
3-
"version": "0.2.0",
4-
"description": "MCP server for mobile app development - 6 tools for environment checks, project scaffolding, device deployment, screen generation, component generation, and dependency installation.",
3+
"version": "0.3.0",
4+
"description": "MCP server for mobile app development - 9 tools for environment checks, project scaffolding, device deployment, screen/component generation, dependency installation, permissions, AI integration, and build health checks.",
55
"type": "module",
66
"main": "dist/index.js",
77
"bin": {

mcp-server/src/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@ import { register as registerRunOnDevice } from "./tools/runOnDevice.js";
99
import { register as registerGenerateScreen } from "./tools/generateScreen.js";
1010
import { register as registerGenerateComponent } from "./tools/generateComponent.js";
1111
import { register as registerInstallDependency } from "./tools/installDependency.js";
12+
import { register as registerAddPermission } from "./tools/addPermission.js";
13+
import { register as registerIntegrateAI } from "./tools/integrateAI.js";
14+
import { register as registerCheckBuildHealth } from "./tools/checkBuildHealth.js";
1215

1316
const server = new McpServer({
1417
name: "mobile-mcp",
15-
version: "0.2.0",
18+
version: "0.3.0",
1619
});
1720

1821
registerCheckDevEnvironment(server);
@@ -21,6 +24,9 @@ registerRunOnDevice(server);
2124
registerGenerateScreen(server);
2225
registerGenerateComponent(server);
2326
registerInstallDependency(server);
27+
registerAddPermission(server);
28+
registerIntegrateAI(server);
29+
registerCheckBuildHealth(server);
2430

2531
async function main(): Promise<void> {
2632
const transport = new StdioServerTransport();

0 commit comments

Comments
 (0)