claude-in-mobile 2.13.2 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,7 +19,23 @@ Control your Android phone, emulator, iOS Simulator, Desktop applications, or Au
19
19
 
20
20
  ## Installation
21
21
 
22
- ### Claude Code CLI (recommended)
22
+ ### One-liner (any client)
23
+
24
+ Using [add-mcp](https://github.com/neondatabase/add-mcp) — auto-detects installed clients:
25
+
26
+ ```bash
27
+ npx add-mcp claude-in-mobile -y
28
+ ```
29
+
30
+ Or target a specific client:
31
+
32
+ ```bash
33
+ npx add-mcp claude-in-mobile -a claude-code -y
34
+ npx add-mcp claude-in-mobile -a opencode -y
35
+ npx add-mcp claude-in-mobile -a cursor -y
36
+ ```
37
+
38
+ ### Claude Code CLI
23
39
 
24
40
  ```bash
25
41
  claude mcp add --transport stdio mobile -- npx -y claude-in-mobile
@@ -31,6 +47,52 @@ To add globally (available in all projects):
31
47
  claude mcp add --scope user --transport stdio mobile -- npx -y claude-in-mobile
32
48
  ```
33
49
 
50
+ ### OpenCode
51
+
52
+ Use the interactive setup:
53
+
54
+ ```bash
55
+ opencode mcp add
56
+ ```
57
+
58
+ Or add manually to `opencode.json` (project root or `~/.config/opencode/opencode.json`):
59
+
60
+ ```json
61
+ {
62
+ "mcp": {
63
+ "mobile": {
64
+ "type": "local",
65
+ "command": ["npx", "-y", "claude-in-mobile"],
66
+ "enabled": true
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### Cursor
73
+
74
+ Add to `.cursor/mcp.json`:
75
+
76
+ ```json
77
+ {
78
+ "mcpServers": {
79
+ "mobile": {
80
+ "command": "npx",
81
+ "args": ["-y", "claude-in-mobile"]
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ ### Any MCP Client
88
+
89
+ Print a config snippet for your client:
90
+
91
+ ```bash
92
+ npx claude-in-mobile --init <client-name>
93
+ # Supported: opencode, cursor, claude-code
94
+ ```
95
+
34
96
  ### From npm
35
97
 
36
98
  ```bash
@@ -48,6 +110,35 @@ npm run build:all # Builds TypeScript + Desktop companion
48
110
 
49
111
  > **Note:** For Desktop support, you need to run `npm run build:desktop` (or `build:all`) to compile the Desktop companion app.
50
112
 
113
+ #### Using a local build with MCP clients
114
+
115
+ After building from source, point your MCP client to the local `dist/index.js` instead of using npx:
116
+
117
+ ```json
118
+ {
119
+ "mcpServers": {
120
+ "mobile": {
121
+ "command": "node",
122
+ "args": ["/path/to/claude-in-mobile/dist/index.js"]
123
+ }
124
+ }
125
+ }
126
+ ```
127
+
128
+ For OpenCode (`opencode.json`):
129
+
130
+ ```json
131
+ {
132
+ "mcp": {
133
+ "mobile": {
134
+ "type": "local",
135
+ "command": ["node", "/path/to/claude-in-mobile/dist/index.js"],
136
+ "enabled": true
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
51
142
  ### Manual configuration
52
143
 
53
144
  Add to your Claude Code settings (`~/.claude.json` or project settings):
@@ -336,17 +427,17 @@ xcodebuild test -project WebDriverAgent.xcodeproj \
336
427
 
337
428
  ```
338
429
  ┌─────────────┐ ┌──────────────────┐ ┌─────────────────┐
339
- Claude │────▶│ Claude Mobile │────▶│ Android (ADB) │
340
- │ │MCP Server │ └─────────────────┘
341
- ┌─────────────────┐
342
- │ │ │ │────▶│ iOS (simctl+WDA)│
343
- │ │ └─────────────────┘
344
- ┌─────────────────┐
345
- │ │ │────▶│ Desktop (Compose)│
346
- │ │ │ └─────────────────┘
347
- │ │ │ │ ┌─────────────────┐
348
- │ │ │────▶│ Aurora (audb) │
349
- └─────────────┘ └──────────────────┘ └─────────────────┘
430
+ Claude Code │────▶│ │────▶│ Android (ADB) │
431
+ ├─────────────┤ Claude Mobile │ └─────────────────┘
432
+ OpenCode │────▶│ MCP Server │ ┌─────────────────┐
433
+ ├─────────────┤ │ │────▶│ iOS (simctl+WDA)│
434
+ Cursor │────▶│ (auto-detects │ └─────────────────┘
435
+ ├─────────────┤ client via │ ┌─────────────────┐
436
+ Any MCP │────▶│ MCP protocol) │────▶│ Desktop (Compose)│
437
+ Client │ │ │ └─────────────────┘
438
+ └─────────────┘ │ │ ┌─────────────────┐
439
+ │ │────▶│ Aurora (audb) │
440
+ └──────────────────┘ └─────────────────┘
350
441
  ```
351
442
 
352
443
  1. Claude sends commands through MCP protocol
@@ -0,0 +1,21 @@
1
+ export type ClientType = "claude-code" | "opencode" | "cursor" | "unknown";
2
+ export interface AliasWithDefaults {
3
+ tool: string;
4
+ defaults: Record<string, unknown>;
5
+ }
6
+ export interface ClientAdapter {
7
+ clientType: ClientType;
8
+ clientName: string;
9
+ clientVersion: string;
10
+ getAdditionalAliases(): Record<string, string>;
11
+ getAliasesWithDefaults(): Record<string, AliasWithDefaults>;
12
+ getInstructions(): string;
13
+ }
14
+ interface ClientInfo {
15
+ name: string;
16
+ version: string;
17
+ }
18
+ export declare function detectClient(clientInfo: ClientInfo | undefined): ClientAdapter;
19
+ export declare function getConfigSnippet(client: ClientType): string;
20
+ export {};
21
+ //# sourceMappingURL=client-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-adapter.d.ts","sourceRoot":"","sources":["../src/client-adapter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5D,eAAe,IAAI,MAAM,CAAC;CAC3B;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA8BD,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAS9E;AA0DD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAQ3D"}
@@ -0,0 +1,84 @@
1
+ const CLIENT_MATCHERS = [
2
+ { pattern: /claude/i, type: "claude-code" },
3
+ { pattern: /opencode/i, type: "opencode" },
4
+ { pattern: /cursor/i, type: "cursor" },
5
+ ];
6
+ const OPENCODE_ALIASES = {
7
+ touch: "tap",
8
+ press: "tap",
9
+ capture_screen: "screenshot",
10
+ };
11
+ const OPENCODE_ALIASES_WITH_DEFAULTS = {
12
+ swipe_up: { tool: "swipe", defaults: { direction: "up" } },
13
+ swipe_down: { tool: "swipe", defaults: { direction: "down" } },
14
+ };
15
+ const INSTRUCTIONS = {
16
+ "claude-code": "Mobile and desktop automation server. Supports Android (ADB), iOS Simulator (simctl+WDA), Desktop (Compose), and Aurora OS (audb). Use 'screenshot' to see the screen, 'tap' to interact with elements, 'get_ui' for the accessibility tree, and 'annotate_screenshot' for visual element discovery.",
17
+ opencode: "Mobile and desktop automation server. Use 'screenshot' to see the screen, 'tap' to interact, 'get_ui' for the element tree. Supports Android, iOS Simulator, Desktop, and Aurora OS. Use 'list_devices' to see connected devices and 'set_device' to switch between them.",
18
+ cursor: "Mobile and desktop automation server. Supports Android (ADB), iOS Simulator (simctl+WDA), Desktop (Compose), and Aurora OS (audb). Use 'screenshot' to see the screen, 'tap' to interact with elements, 'get_ui' for the accessibility tree.",
19
+ unknown: "Mobile and desktop automation server. Use 'screenshot' to see the screen, 'tap' to interact, 'get_ui' for the element tree. Use 'list_devices' to see connected devices.",
20
+ };
21
+ export function detectClient(clientInfo) {
22
+ if (!clientInfo) {
23
+ return createAdapter("unknown", "unknown", "unknown");
24
+ }
25
+ const matched = CLIENT_MATCHERS.find((m) => m.pattern.test(clientInfo.name));
26
+ const clientType = matched?.type ?? "unknown";
27
+ return createAdapter(clientType, clientInfo.name, clientInfo.version);
28
+ }
29
+ function createAdapter(clientType, clientName, clientVersion) {
30
+ return {
31
+ clientType,
32
+ clientName,
33
+ clientVersion,
34
+ getAdditionalAliases() {
35
+ if (clientType === "opencode")
36
+ return { ...OPENCODE_ALIASES };
37
+ return {};
38
+ },
39
+ getAliasesWithDefaults() {
40
+ if (clientType === "opencode")
41
+ return { ...OPENCODE_ALIASES_WITH_DEFAULTS };
42
+ return {};
43
+ },
44
+ getInstructions() {
45
+ return INSTRUCTIONS[clientType];
46
+ },
47
+ };
48
+ }
49
+ // ── Config snippet generation ──
50
+ const CONFIG_TEMPLATES = {
51
+ opencode: {
52
+ mcp: {
53
+ mobile: {
54
+ type: "local",
55
+ command: ["npx", "-y", "claude-in-mobile"],
56
+ enabled: true,
57
+ },
58
+ },
59
+ },
60
+ cursor: {
61
+ mcpServers: {
62
+ mobile: {
63
+ command: "npx",
64
+ args: ["-y", "claude-in-mobile"],
65
+ },
66
+ },
67
+ },
68
+ "claude-code": {
69
+ mcpServers: {
70
+ mobile: {
71
+ command: "npx",
72
+ args: ["-y", "claude-in-mobile"],
73
+ },
74
+ },
75
+ },
76
+ };
77
+ export function getConfigSnippet(client) {
78
+ const template = CONFIG_TEMPLATES[client];
79
+ if (!template) {
80
+ throw new Error(`Unsupported client: ${client}. Supported: ${Object.keys(CONFIG_TEMPLATES).join(", ")}`);
81
+ }
82
+ return JSON.stringify(template, null, 2);
83
+ }
84
+ //# sourceMappingURL=client-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-adapter.js","sourceRoot":"","sources":["../src/client-adapter.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
- import { registerTools, registerAliases, getTools, getHandler } from "./tools/registry.js";
5
+ import { registerTools, registerAliases, registerAliasesWithDefaults, getTools, resolveToolCall } from "./tools/registry.js";
6
6
  import { createToolContext, MAX_RECURSION_DEPTH } from "./tools/context.js";
7
7
  import { deviceTools } from "./tools/device-tools.js";
8
8
  import { screenshotTools } from "./tools/screenshot-tools.js";
@@ -15,16 +15,17 @@ import { desktopTools } from "./tools/desktop-tools.js";
15
15
  import { auroraTools } from "./tools/aurora-tools.js";
16
16
  import { flowTools } from "./tools/flow-tools.js";
17
17
  import { clipboardTools } from "./tools/clipboard-tools.js";
18
+ import { detectClient, getConfigSnippet } from "./client-adapter.js";
18
19
  // Dispatch function (needed by batch_commands / run_flow for recursion)
19
20
  async function handleTool(name, args, depth = 0) {
20
21
  if (depth > MAX_RECURSION_DEPTH) {
21
22
  throw new Error(`Maximum recursion depth (${MAX_RECURSION_DEPTH}) exceeded. Nested batch_commands/run_flow calls are limited to prevent stack overflow.`);
22
23
  }
23
- const handler = getHandler(name);
24
- if (!handler) {
24
+ const resolved = resolveToolCall(name, args);
25
+ if (!resolved) {
25
26
  throw new Error(`Unknown tool: ${name}`);
26
27
  }
27
- return handler(args, ctx, depth);
28
+ return resolved.handler(resolved.args, ctx, depth);
28
29
  }
29
30
  // Shared context (wired after handleTool is defined)
30
31
  const ctx = createToolContext(handleTool);
@@ -51,15 +52,53 @@ registerAliases({
51
52
  "long_tap": "long_press",
52
53
  "take_screenshot": "screenshot",
53
54
  });
55
+ // Handle --init CLI flag (generate config snippet and exit)
56
+ const initIndex = process.argv.indexOf("--init");
57
+ if (initIndex !== -1) {
58
+ const client = process.argv[initIndex + 1];
59
+ if (!client) {
60
+ console.error("Usage: claude-in-mobile --init <client>");
61
+ console.error("Supported clients: opencode, cursor, claude-code");
62
+ process.exit(1);
63
+ }
64
+ try {
65
+ const snippet = getConfigSnippet(client);
66
+ console.log(snippet);
67
+ process.exit(0);
68
+ }
69
+ catch (e) {
70
+ console.error(e.message);
71
+ process.exit(1);
72
+ }
73
+ }
54
74
  // Create MCP server
55
75
  const server = new Server({
56
76
  name: "claude-mobile",
57
- version: "2.13.1",
77
+ version: "2.14.0",
58
78
  }, {
59
79
  capabilities: {
60
80
  tools: {},
61
81
  },
82
+ instructions: "Mobile and desktop automation server. Use 'screenshot' to see the screen, 'tap' to interact, 'get_ui' for the element tree. Use 'list_devices' to see connected devices.",
62
83
  });
84
+ // Detect client after MCP handshake and apply per-client adaptations
85
+ server.oninitialized = () => {
86
+ const clientInfo = server.getClientVersion();
87
+ const adapter = detectClient(clientInfo);
88
+ console.error(`Client detected: ${adapter.clientType} (${adapter.clientName} v${adapter.clientVersion})`);
89
+ // Register client-specific aliases
90
+ const additionalAliases = adapter.getAdditionalAliases();
91
+ if (Object.keys(additionalAliases).length > 0) {
92
+ registerAliases(additionalAliases);
93
+ console.error(`Registered ${Object.keys(additionalAliases).length} additional aliases for ${adapter.clientType}`);
94
+ }
95
+ // Register aliases with default arguments (e.g., swipe_up → swipe with direction: "up")
96
+ const aliasesWithDefaults = adapter.getAliasesWithDefaults();
97
+ if (Object.keys(aliasesWithDefaults).length > 0) {
98
+ registerAliasesWithDefaults(aliasesWithDefaults);
99
+ console.error(`Registered ${Object.keys(aliasesWithDefaults).length} aliases with defaults for ${adapter.clientType}`);
100
+ }
101
+ };
63
102
  // Handle tool list request
64
103
  server.setRequestHandler(ListToolsRequestSchema, async () => {
65
104
  return { tools: getTools() };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,13 @@ export interface ToolDefinition {
6
6
  }
7
7
  export declare function registerTools(defs: ToolDefinition[]): void;
8
8
  export declare function registerAliases(aliases: Record<string, string>): void;
9
+ export declare function registerAliasesWithDefaults(aliases: Record<string, {
10
+ tool: string;
11
+ defaults: Record<string, unknown>;
12
+ }>): void;
9
13
  export declare function getTools(): Tool[];
10
- export declare function getHandler(name: string): ToolDefinition["handler"] | undefined;
14
+ export declare function resolveToolCall(name: string, args: Record<string, unknown>): {
15
+ handler: ToolDefinition["handler"];
16
+ args: Record<string, unknown>;
17
+ } | undefined;
11
18
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChG;AAKD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,CAI1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAIrE;AAED,wBAAgB,QAAQ,IAAI,IAAI,EAAE,CAEjC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAQ9E"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChG;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,CAI1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAIrE;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAC3E,IAAI,CAIN;AAED,wBAAgB,QAAQ,IAAI,IAAI,EAAE,CAEjC;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,SAAS,CAoBnF"}
@@ -1,5 +1,6 @@
1
1
  const toolMap = new Map();
2
2
  const aliasMap = new Map();
3
+ const aliasDefaultsMap = new Map();
3
4
  export function registerTools(defs) {
4
5
  for (const def of defs) {
5
6
  toolMap.set(def.tool.name, def);
@@ -10,16 +11,33 @@ export function registerAliases(aliases) {
10
11
  aliasMap.set(alias, canonical);
11
12
  }
12
13
  }
14
+ export function registerAliasesWithDefaults(aliases) {
15
+ for (const [alias, entry] of Object.entries(aliases)) {
16
+ aliasDefaultsMap.set(alias, { canonical: entry.tool, defaults: entry.defaults });
17
+ }
18
+ }
13
19
  export function getTools() {
14
20
  return [...toolMap.values()].map(d => d.tool);
15
21
  }
16
- export function getHandler(name) {
22
+ export function resolveToolCall(name, args) {
23
+ // Direct tool match
17
24
  const direct = toolMap.get(name);
18
25
  if (direct)
19
- return direct.handler;
26
+ return { handler: direct.handler, args };
27
+ // Simple alias (no default args)
20
28
  const canonical = aliasMap.get(name);
21
- if (canonical)
22
- return toolMap.get(canonical)?.handler;
29
+ if (canonical) {
30
+ const def = toolMap.get(canonical);
31
+ if (def)
32
+ return { handler: def.handler, args };
33
+ }
34
+ // Alias with default args (defaults are overridden by explicit args)
35
+ const withDefaults = aliasDefaultsMap.get(name);
36
+ if (withDefaults) {
37
+ const def = toolMap.get(withDefaults.canonical);
38
+ if (def)
39
+ return { handler: def.handler, args: { ...withDefaults.defaults, ...args } };
40
+ }
23
41
  return undefined;
24
42
  }
25
43
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;AAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,IAAsB;IAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAElC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;AAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC3C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoE,CAAC;AAErG,MAAM,UAAU,aAAa,CAAC,IAAsB;IAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAA4E;IAE5E,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,IAA6B;IAE7B,oBAAoB;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IAErD,iCAAiC;IACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,qEAAqE;IACrE,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;IACxF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-in-mobile",
3
- "version": "2.13.2",
3
+ "version": "2.14.0",
4
4
  "description": "MCP server for mobile and desktop automation - Android (ADB), iOS Simulator (simctl), and Desktop (Compose)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",