capacitor-mobile-claw 2.0.3 → 2.0.5

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
@@ -4,11 +4,11 @@
4
4
  [![CI](https://github.com/rogelioRuiz/capacitor-mobile-claw/actions/workflows/ci.yml/badge.svg)](https://github.com/rogelioRuiz/capacitor-mobile-claw/actions/workflows/ci.yml)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
6
 
7
- **On-device AI agent engine for mobile apps** — run Claude directly on your phone with file tools, code execution, git, and extensible MCP tool support.
7
+ **On-device AI agent engine for mobile apps** — run Claude natively on your phone with file tools, code execution, git, and extensible MCP tool support.
8
8
 
9
- Mobile Claw is a [Capacitor](https://capacitorjs.com/) plugin that embeds a full AI agent runtime on Android and iOS. The agent loop runs directly in the WebView for instant cold start, with LLM API calls routed through native HTTP (OkHttp / URLSession) to bypass CORS full SSE streaming, no cloud relay, no proxy. Includes **on-device vector memory** via [LanceDB](https://www.npmjs.com/package/capacitor-lancedb), **background scheduling** via [MobileCron](https://www.npmjs.com/package/capacitor-mobilecron) (WorkManager / BGTaskScheduler), and cron jobs with reusable skills.
9
+ Mobile Claw is a [Capacitor](https://capacitorjs.com/) plugin that provides a thin WebView bridge to a **native Rust AI agent** ([capacitor-native-agent](https://www.npmjs.com/package/capacitor-native-agent)). All agent logic LLM streaming, tool execution, auth, sessions, cron/heartbeat runs natively via UniFFI. The WebView layer handles only UI rendering, event display, and MCP device tool coordination. No cloud relay, no proxy. Includes **on-device vector memory** via [LanceDB](https://www.npmjs.com/package/capacitor-lancedb), **background scheduling** via [MobileCron](https://www.npmjs.com/package/capacitor-mobilecron) (WorkManager / BGTaskScheduler), and cron jobs with reusable skills.
10
10
 
11
- > Built on [OpenClaw](https://github.com/openclaw/openclaw) and the [Pi framework](https://www.npmjs.com/package/@mariozechner/pi-ai) by [Mario Zechner](https://github.com/badlogic). Pi's philosophy of *"what you leave out matters more than what you put in"* — just 4 core tools and a system prompt under 1,000 tokens — is what makes running a capable AI agent on a phone possible at all.
11
+ > Built on [OpenClaw](https://github.com/openclaw/openclaw) and inspired by the [Pi framework](https://www.npmjs.com/package/@mariozechner/pi-ai) by [Mario Zechner](https://github.com/badlogic). Pi's philosophy of *"what you leave out matters more than what you put in"* — just 4 core tools and a system prompt under 1,000 tokens — drove the design. The agent core has since moved to a native Rust implementation for better performance and reliability.
12
12
 
13
13
  ## Try It — Reference App
14
14
 
@@ -103,20 +103,21 @@ Once the app launches, enter your Anthropic API key in settings and start chatti
103
103
 
104
104
  ## How It Works
105
105
 
106
- The agent loop runs directly in the WebView for instant cold start. LLM API calls are routed through native HTTP (OkHttp / URLSession) to bypass WebView CORS, with full SSE streaming. File tools, git, and code execution run on-device via the Capacitor bridge.
106
+ The agent runs natively in Rust via [capacitor-native-agent](https://www.npmjs.com/package/capacitor-native-agent). `MobileClawEngine` in the WebView is a thin event bridge it delegates all agent logic (LLM calls, tool execution, auth, sessions, scheduling) to the native layer via the Capacitor bridge. MCP device tools that need WebView APIs (camera, sensors, etc.) stay in JavaScript.
107
107
 
108
108
  ```
109
109
  ┌──────────────────────────────────────────────────────┐
110
110
  │ Your App (Vue, React, Svelte, vanilla JS) │
111
111
  │ ┌────────────────────────────────────────────────┐ │
112
- │ │ MobileClawEngine │ │
113
- │ │ ┌──────────────┐ │ │
114
- │ │ │ Pi Agent │── Anthropic API (native HTTP)│ │
115
- │ │ │ (in WebView) │ │ │
116
- │ │ └──────┬───────┘ │ │
112
+ │ │ MobileClawEngine (thin event bridge) │ │
117
113
  │ │ │ Capacitor Bridge │ │
118
114
  │ │ ┌──────▼──────────────────────────────────┐ │ │
119
- │ │ │ File tools · Git · Code exec · SQLite
115
+ │ │ │ Native Rust Agent (capacitor-native-agent) │ │
116
+ │ │ │ LLM · Tools · Auth · Sessions · Cron │ │
117
+ │ │ │ │── Anthropic API (native HTTP) │ │
118
+ │ │ └─────────────────────────────────────────┘ │ │
119
+ │ │ ┌─────────────────────────────────────────┐ │ │
120
+ │ │ │ MCP Device Tools (WebView JS) │ │ │
120
121
  │ │ └─────────────────────────────────────────┘ │ │
121
122
  │ └────────────────────────────────────────────────┘ │
122
123
  └──────────────────────────────────────────────────────┘
@@ -125,7 +126,7 @@ The agent loop runs directly in the WebView for instant cold start. LLM API call
125
126
  ## Install in Your Own App
126
127
 
127
128
  ```bash
128
- npm install capacitor-mobile-claw @capacitor/core @capacitor/device @capacitor-community/sqlite
129
+ npm install capacitor-mobile-claw capacitor-native-agent @capacitor/core @capacitor/device @capacitor/filesystem
129
130
  ```
130
131
 
131
132
  If using Vite, add the bundler plugin to `vite.config.js`:
@@ -243,12 +244,12 @@ await engine.addCronJob({
243
244
 
244
245
  ## Features
245
246
 
246
- - **Instant cold start** — agent loop runs directly in the WebView, no boot delay
247
+ - **Native Rust agent** — all agent logic runs natively via [capacitor-native-agent](https://www.npmjs.com/package/capacitor-native-agent) (UniFFI)
247
248
  - **On-device vector memory** — store, recall, and search memories via [LanceDB](https://www.npmjs.com/package/capacitor-lancedb) with auto-recall context injection and deduplication
248
249
  - **Background scheduling** — heartbeat check-ins and cron jobs via [MobileCron](https://www.npmjs.com/package/capacitor-mobilecron) (Android WorkManager / iOS BGTaskScheduler)
249
250
  - **Cron jobs & skills** — recurring agent tasks with reusable skill definitions, run history, and delivery modes
250
251
  - **Real-time streaming** — text deltas, tool use, and thinking events
251
- - **Multi-turn conversations** — session persistence via native SQLite
252
+ - **Multi-turn conversations** — session persistence via native SQLite (in Rust agent)
252
253
  - **OAuth PKCE + API key** — sign in with Claude Max or use a direct API key
253
254
  - **File tools** — sandboxed read/write/edit/find/grep
254
255
  - **Code execution** — JavaScript (sandbox) + Python (Pyodide/WebAssembly)
@@ -317,6 +318,7 @@ await engine.addCronJob({
317
318
 
318
319
  ## Related Packages
319
320
 
321
+ - [capacitor-native-agent](https://www.npmjs.com/package/capacitor-native-agent) — the Rust native agent runtime (LLM, tools, auth, sessions, cron)
320
322
  - [capacitor-mobile-claw-device-tools](https://www.npmjs.com/package/capacitor-mobile-claw-device-tools) — 64+ pre-built device tools (camera, clipboard, sensors, SSH, etc.)
321
323
  - [capacitor-lancedb](https://www.npmjs.com/package/capacitor-lancedb) — on-device vector database for agent memory
322
324
  - [capacitor-mobilecron](https://www.npmjs.com/package/capacitor-mobilecron) — native background scheduling (WorkManager / BGTaskScheduler)
@@ -330,13 +332,13 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, workflow, and guid
330
332
  | Layer | Technology |
331
333
  |-------|-----------|
332
334
  | Mobile framework | [Capacitor 8](https://capacitorjs.com/) |
333
- | Agent core | [Pi](https://www.npmjs.com/package/@mariozechner/pi-ai) by Mario Zechner |
335
+ | Agent core | [capacitor-native-agent](https://www.npmjs.com/package/capacitor-native-agent) (Rust FFI via UniFFI) |
334
336
  | Tool protocol | [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) |
335
337
  | LLM provider | [Anthropic Claude](https://anthropic.com/) |
336
338
  | Vector memory | [LanceDB](https://lancedb.com/) via [capacitor-lancedb](https://www.npmjs.com/package/capacitor-lancedb) (Rust FFI, on-device) |
337
339
  | Background scheduling | [capacitor-mobilecron](https://www.npmjs.com/package/capacitor-mobilecron) (WorkManager / BGTaskScheduler) |
338
340
  | Git | [isomorphic-git](https://isomorphic-git.org/) |
339
- | Database | [@capacitor-community/sqlite](https://github.com/nicepkg/capacitor-community-sqlite) (native SQLite) |
341
+ | Database | Native SQLite (via Rust agent) |
340
342
  | Python | [Pyodide](https://pyodide.org/) (CPython via WebAssembly) |
341
343
  | Type system | TypeScript (strict mode) |
342
344
  | Lint | [Biome](https://biomejs.dev/) |
@@ -344,7 +346,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, workflow, and guid
344
346
 
345
347
  ## Acknowledgments
346
348
 
347
- Mobile Claw is built on [OpenClaw](https://github.com/openclaw/openclaw) and the [Pi framework](https://www.npmjs.com/package/@mariozechner/pi-ai) by [Mario Zechner](https://github.com/badlogic) (creator of [libGDX](https://libgdx.com/)). Pi demonstrated that a truly capable AI agent doesn't need a massive framework — just four well-designed tools and a focused system prompt. That minimalism is what makes on-device mobile execution feasible.
349
+ Mobile Claw is built on [OpenClaw](https://github.com/openclaw/openclaw) and inspired by the [Pi framework](https://www.npmjs.com/package/@mariozechner/pi-ai) by [Mario Zechner](https://github.com/badlogic) (creator of [libGDX](https://libgdx.com/)). Pi demonstrated that a truly capable AI agent doesn't need a massive framework — just four well-designed tools and a focused system prompt. That minimalism drove the design, and the agent core has since moved to a native Rust implementation for better performance and reliability on mobile.
348
350
 
349
351
  ## License
350
352
 
@@ -31,9 +31,7 @@ export declare class MobileClawEngine {
31
31
  private initPromise;
32
32
  private _mcpManager;
33
33
  private _mobileCron;
34
- private _nativeListenerHandle;
35
34
  private _activeSkillId;
36
- private _skillSessionKey;
37
35
  get ready(): boolean;
38
36
  get available(): boolean;
39
37
  /** @deprecated No Node.js worker — always returns null */
@@ -52,11 +50,12 @@ export declare class MobileClawEngine {
52
50
  init(options?: MobileClawInitOptions): Promise<MobileClawReadyInfo>;
53
51
  private _doInit;
54
52
  private _handleNativeEvent;
53
+ private _handleMcpToolCall;
55
54
  private _initMobileCron;
56
55
  isReady(): Promise<{
57
56
  ready: boolean;
58
57
  }>;
59
- sendMessage(prompt: string, agentId?: string, options?: {
58
+ sendMessage(prompt: string, _agentId?: string, options?: {
60
59
  model?: string;
61
60
  provider?: string;
62
61
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -25,9 +25,11 @@ import { McpServerManager } from './mcp/mcp-server-manager';
25
25
  * plugin's Android/iOS code — no need to import the npm package.
26
26
  */
27
27
  function getNativeAgent() {
28
- return globalThis.__nativeAgentPlugin ??=
29
- Capacitor.Plugins.NativeAgent;
28
+ const g = globalThis;
29
+ g.__nativeAgentPlugin ??= Capacitor.Plugins.NativeAgent;
30
+ return g.__nativeAgentPlugin;
30
31
  }
32
+ const OPENCLAW_ROOT = 'nodejs/data';
31
33
  export class MobileClawEngine {
32
34
  // ── State ──────────────────────────────────────────────────────────────
33
35
  _ready = false;
@@ -42,26 +44,48 @@ export class MobileClawEngine {
42
44
  initPromise = null;
43
45
  _mcpManager = null;
44
46
  _mobileCron = null;
45
- _nativeListenerHandle = null;
46
47
  // ── Skill state (UI bridge only — agent loop is in Rust) ────────────
47
48
  _activeSkillId = null;
48
- _skillSessionKey = null;
49
49
  // ── Public getters ─────────────────────────────────────────────────────
50
- get ready() { return this._ready; }
51
- get available() { return this._available; }
50
+ get ready() {
51
+ return this._ready;
52
+ }
53
+ get available() {
54
+ return this._available;
55
+ }
52
56
  /** @deprecated No Node.js worker — always returns null */
53
- get nodeVersion() { return null; }
54
- get openclawRoot() { return this._openclawRoot; }
55
- get mcpToolCount() { return this._mcpToolCount; }
56
- get loading() { return this._loading; }
57
- get error() { return this._error; }
58
- get currentSessionKey() { return this._currentSessionKey; }
59
- get loadingPhase() { return this._loadingPhase; }
60
- get mcpManager() { return this._mcpManager; }
57
+ get nodeVersion() {
58
+ return null;
59
+ }
60
+ get openclawRoot() {
61
+ return this._openclawRoot;
62
+ }
63
+ get mcpToolCount() {
64
+ return this._mcpToolCount;
65
+ }
66
+ get loading() {
67
+ return this._loading;
68
+ }
69
+ get error() {
70
+ return this._error;
71
+ }
72
+ get currentSessionKey() {
73
+ return this._currentSessionKey;
74
+ }
75
+ get loadingPhase() {
76
+ return this._loadingPhase;
77
+ }
78
+ get mcpManager() {
79
+ return this._mcpManager;
80
+ }
61
81
  /** @deprecated Always true. */
62
- get useWebViewAgent() { return true; }
82
+ get useWebViewAgent() {
83
+ return true;
84
+ }
63
85
  /** @deprecated Agent runner is in Rust. */
64
- get agentRunner() { return null; }
86
+ get agentRunner() {
87
+ return null;
88
+ }
65
89
  // ── Lifecycle ──────────────────────────────────────────────────────────
66
90
  async init(options = {}) {
67
91
  if (this.initPromise)
@@ -81,9 +105,13 @@ export class MobileClawEngine {
81
105
  try {
82
106
  this._available = true;
83
107
  const plugin = getNativeAgent();
108
+ const openclawRoot = OPENCLAW_ROOT;
84
109
  // ── Initialize workspace (creates dirs + default files) ──────────
85
- const { initWorkspace } = await import('./agent/workspace-init');
86
- const { openclawRoot } = await initWorkspace();
110
+ await plugin.initWorkspace({
111
+ dbPath: `files://${openclawRoot}/mobile-claw.db`,
112
+ workspacePath: `files://${openclawRoot}/workspace`,
113
+ authProfilesPath: `files://${openclawRoot}/agents/main/agent/auth-profiles.json`,
114
+ });
87
115
  this._openclawRoot = openclawRoot;
88
116
  this._loadingPhase = 'initializing native agent';
89
117
  // ── Initialize native agent handle ───────────────────────────────
@@ -94,7 +122,7 @@ export class MobileClawEngine {
94
122
  authProfilesPath: `files://${openclawRoot}/agents/main/agent/auth-profiles.json`,
95
123
  });
96
124
  // ── Bridge native events to local listeners ──────────────────────
97
- this._nativeListenerHandle = await plugin.addListener('nativeAgentEvent', (event) => {
125
+ await plugin.addListener('nativeAgentEvent', (event) => {
98
126
  try {
99
127
  const payload = JSON.parse(event.payloadJson);
100
128
  this._handleNativeEvent(event.eventType, payload);
@@ -117,7 +145,7 @@ export class MobileClawEngine {
117
145
  console.log(`[MobileClaw] MCP server started — ${this._mcpToolCount} tools`);
118
146
  // Register MCP tools with native agent so Rust knows about them
119
147
  if (this._mcpToolCount > 0) {
120
- const toolsJson = JSON.stringify(this._mcpManager.getToolSchemas?.() ?? []);
148
+ const toolsJson = JSON.stringify(this._mcpManager.getToolSchemas().map((tool) => ({ ...tool, webviewOnly: true })));
121
149
  await plugin.startMcp({ toolsJson }).catch(() => { });
122
150
  }
123
151
  }
@@ -163,6 +191,9 @@ export class MobileClawEngine {
163
191
  case 'tool_result':
164
192
  this._dispatch({ type: 'agent.event', eventType: 'tool_result', data: payload });
165
193
  break;
194
+ case 'mcp_tool_call':
195
+ void this._handleMcpToolCall(payload);
196
+ break;
166
197
  case 'user_message':
167
198
  this._dispatch({ type: 'agent.event', eventType: 'user_message', data: payload });
168
199
  break;
@@ -207,6 +238,34 @@ export class MobileClawEngine {
207
238
  break;
208
239
  }
209
240
  }
241
+ async _handleMcpToolCall(payload) {
242
+ const plugin = getNativeAgent();
243
+ const toolCallId = typeof payload?.toolCallId === 'string' ? payload.toolCallId : '';
244
+ const toolName = typeof payload?.toolName === 'string' ? payload.toolName : '';
245
+ const args = payload?.args && typeof payload.args === 'object' ? payload.args : {};
246
+ if (!toolCallId || !toolName)
247
+ return;
248
+ try {
249
+ if (!this._mcpManager) {
250
+ throw new Error('MCP manager is not initialized');
251
+ }
252
+ const result = await this._mcpManager.executeTool(toolName, args);
253
+ await plugin.respondToMcpTool({
254
+ toolCallId,
255
+ resultJson: JSON.stringify(result ?? null),
256
+ isError: false,
257
+ });
258
+ }
259
+ catch (error) {
260
+ await plugin
261
+ .respondToMcpTool({
262
+ toolCallId,
263
+ resultJson: JSON.stringify({ error: error?.message || String(error) }),
264
+ isError: true,
265
+ })
266
+ .catch(() => { });
267
+ }
268
+ }
210
269
  // ── MobileCron initialization ─────────────────────────────────────────
211
270
  async _initMobileCron(preloaded) {
212
271
  let MobileCron;
@@ -262,20 +321,18 @@ export class MobileClawEngine {
262
321
  return { ready: this._ready };
263
322
  }
264
323
  // ── Agent control ──────────────────────────────────────────────────────
265
- async sendMessage(prompt, agentId = 'main', options) {
324
+ async sendMessage(prompt, _agentId = 'main', options) {
266
325
  const plugin = getNativeAgent();
267
326
  if (!this._currentSessionKey) {
268
327
  this._currentSessionKey = `session-${Date.now()}`;
269
328
  }
270
329
  const sessionKey = this._currentSessionKey;
271
- const { loadSystemPrompt } = await import('./agent/workspace-init');
272
- const systemPrompt = await loadSystemPrompt();
273
330
  await plugin.sendMessage({
274
331
  prompt,
275
332
  sessionKey,
276
333
  model: options?.model,
277
334
  provider: options?.provider || 'anthropic',
278
- systemPrompt,
335
+ systemPrompt: '',
279
336
  maxTurns: 25,
280
337
  });
281
338
  return { sessionKey };
@@ -298,7 +355,9 @@ export class MobileClawEngine {
298
355
  }
299
356
  /** Respond to a cron approval request. */
300
357
  respondToCronApproval(requestId, approved) {
301
- getNativeAgent().respondToCronApproval({ requestId, approved }).catch(() => { });
358
+ getNativeAgent()
359
+ .respondToCronApproval({ requestId, approved })
360
+ .catch(() => { });
302
361
  }
303
362
  /**
304
363
  * @deprecated Use respondToPreExecute. Kept for backward compat.
@@ -336,22 +395,11 @@ export class MobileClawEngine {
336
395
  }
337
396
  }
338
397
  async exchangeOAuthCode(tokenUrl, body, contentType) {
339
- const { CapacitorHttp } = await import('@capacitor/core');
340
- const ct = contentType || 'application/json';
341
- try {
342
- const resp = await CapacitorHttp.request({
343
- method: 'POST',
344
- url: tokenUrl,
345
- headers: { 'Content-Type': ct },
346
- data: body,
347
- responseType: 'json',
348
- });
349
- const ok = resp.status >= 200 && resp.status < 300;
350
- return { success: ok, status: resp.status, data: resp.data, text: ok ? undefined : JSON.stringify(resp.data) };
351
- }
352
- catch (err) {
353
- return { success: false, error: err.message };
354
- }
398
+ return getNativeAgent().exchangeOAuthCode({
399
+ tokenUrl,
400
+ bodyJson: JSON.stringify(body),
401
+ contentType,
402
+ });
355
403
  }
356
404
  async getAuthStatus(provider = 'anthropic') {
357
405
  const result = await getNativeAgent().getAuthStatus({ provider });
@@ -493,7 +541,12 @@ export class MobileClawEngine {
493
541
  }
494
542
  async clearConversation() {
495
543
  this._currentSessionKey = null;
496
- await getNativeAgent().clearSession().catch(() => { });
544
+ // Only clear in-memory session state on the native side.
545
+ // Don't delete the session from the DB — it should remain in the
546
+ // session index so the user can switch back to it later.
547
+ await getNativeAgent()
548
+ .clearSession()
549
+ .catch(() => { });
497
550
  return { success: true };
498
551
  }
499
552
  async setSessionKey(sessionKey) {
@@ -580,8 +633,13 @@ export class MobileClawEngine {
580
633
  // Tag agent events with active skill ID
581
634
  if (this._activeSkillId && !msg.skill) {
582
635
  const agentTypes = [
583
- 'agent.event', 'agent.completed', 'agent.error', 'agent.started',
584
- 'tool.pre_execute', 'tool.pre_execute.result', 'tool.pre_execute.expired',
636
+ 'agent.event',
637
+ 'agent.completed',
638
+ 'agent.error',
639
+ 'agent.started',
640
+ 'tool.pre_execute',
641
+ 'tool.pre_execute.result',
642
+ 'tool.pre_execute.expired',
585
643
  ];
586
644
  if (agentTypes.includes(msg.type)) {
587
645
  msg.skill = this._activeSkillId;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export interface McpServerOptions {
15
15
  }
16
16
  export declare class McpServerManager {
17
17
  private manager;
18
+ private tools;
18
19
  private _status;
19
20
  private _error;
20
21
  private _deviceId;
@@ -28,5 +29,11 @@ export declare class McpServerManager {
28
29
  start(options?: McpServerOptions): Promise<void>;
29
30
  stop(): Promise<void>;
30
31
  restart(options?: McpServerOptions): Promise<void>;
32
+ getToolSchemas(): Array<{
33
+ name: string;
34
+ description: string;
35
+ inputSchema: Record<string, any>;
36
+ }>;
37
+ executeTool(name: string, args: Record<string, any>): Promise<any>;
31
38
  }
32
39
  //# sourceMappingURL=mcp-server-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-manager.d.ts","sourceRoot":"","sources":["../../../src/mcp/mcp-server-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG/C,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAA;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,iBAAiB,CAAe;IAExC,IAAI,MAAM,IAAI,SAAS,CAEtB;IACD,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IACD,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IACD,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAE/B;IAEK,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAIzD"}
1
+ {"version":3,"file":"mcp-server-manager.d.ts","sourceRoot":"","sources":["../../../src/mcp/mcp-server-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG/C,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAA;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,iBAAiB,CAAe;IAExC,IAAI,MAAM,IAAI,SAAS,CAEtB;IACD,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IACD,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IACD,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAE/B;IAEK,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,cAAc,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAQ1F,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAOzE"}
@@ -7,6 +7,7 @@
7
7
  import { TransportManager } from './transport/transport-manager';
8
8
  export class McpServerManager {
9
9
  manager = null;
10
+ tools = [];
10
11
  _status = 'disconnected';
11
12
  _error = null;
12
13
  _deviceId = null;
@@ -45,6 +46,7 @@ export class McpServerManager {
45
46
  console.log(`[MCP] Starting MCP server for device ${info.identifier}`);
46
47
  // Use tools provided by the caller (from an external tools package)
47
48
  const tools = options.tools ?? [];
49
+ this.tools = tools;
48
50
  if (tools.length === 0) {
49
51
  console.warn('[MCP] No tools provided — MCP server will have zero device tools');
50
52
  }
@@ -87,5 +89,19 @@ export class McpServerManager {
87
89
  await this.stop();
88
90
  await this.start(options);
89
91
  }
92
+ getToolSchemas() {
93
+ return this.tools.map((tool) => ({
94
+ name: tool.name,
95
+ description: tool.description,
96
+ inputSchema: tool.inputSchema,
97
+ }));
98
+ }
99
+ async executeTool(name, args) {
100
+ const tool = this.tools.find((candidate) => candidate.name === name);
101
+ if (!tool) {
102
+ throw new Error(`MCP tool not found: ${name}`);
103
+ }
104
+ return tool.execute(args);
105
+ }
90
106
  }
91
107
  //# sourceMappingURL=mcp-server-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-manager.js","sourceRoot":"","sources":["../../../src/mcp/mcp-server-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAWhE,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAA4B,IAAI,CAAA;IACvC,OAAO,GAAc,cAAc,CAAA;IACnC,MAAM,GAAkB,IAAI,CAAA;IAC5B,SAAS,GAAkB,IAAI,CAAA;IAC/B,UAAU,GAAG,CAAC,CAAA;IACd,iBAAiB,GAAa,EAAE,CAAA;IAExC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IACD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAA4B,EAAE;QACxC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAErD,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;YACrD,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY;YAAE,OAAM;QAEzE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAElB,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;YACpD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;YAEhC,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;YAEtE,oEAAoE;YACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;YAClF,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAA;YAE9B,2BAA2B;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YAEhD,kCAAkC;YAClC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC/C,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAA;gBACnF,MAAM,cAAc,GAAG,IAAI,oBAAoB,CAAC;oBAC9C,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;oBACxC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;oBAChC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;oBACtC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU;oBACzD,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,cAAc;iBACnD,CAAC,CAAA;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;gBACxD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;YAC7C,CAAC;YAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;YACtD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAA;YAC1B,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,MAAM,wBAAwB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,CAAC,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC9D,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACrB,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,cAAc,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA0B;QACtC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"mcp-server-manager.js","sourceRoot":"","sources":["../../../src/mcp/mcp-server-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capacitor-mobile-claw",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "On-device AI agent engine for Capacitor apps — thin WebView bridge to a native Rust agent with LLM, tool execution, cron, and MCP support",
5
5
  "main": "dist/esm/index.js",
6
6
  "types": "dist/esm/index.d.ts",