mobile-debug-mcp 0.28.0 → 0.29.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.
@@ -1,19 +1,29 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { wrapResponse } from './server/common.js';
4
4
  import { toolDefinitions } from './server/tool-definitions.js';
5
5
  import { handleToolCall } from './server/tool-handlers.js';
6
6
  export { wrapResponse, toolDefinitions, handleToolCall };
7
7
  export const serverInfo = {
8
8
  name: 'mobile-debug-mcp',
9
- version: '0.28.0'
9
+ version: '0.29.0'
10
10
  };
11
11
  export function createServer() {
12
12
  const server = new Server(serverInfo, {
13
13
  capabilities: {
14
+ resources: {},
14
15
  tools: {}
15
16
  }
16
17
  });
18
+ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
19
+ resources: []
20
+ }));
21
+ server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
22
+ resourceTemplates: []
23
+ }));
24
+ server.setRequestHandler(ReadResourceRequestSchema, async () => ({
25
+ contents: []
26
+ }));
17
27
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
18
28
  tools: toolDefinitions
19
29
  }));
package/dist/server.js CHANGED
@@ -3,9 +3,11 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
3
3
  import { createServer } from './server-core.js';
4
4
  import { getSystemStatus } from './system/index.js';
5
5
  const server = createServer();
6
- getSystemStatus().then((res) => {
7
- console.debug('[startup] system status summary:', { adb: res.adbAvailable, ios: res.iosAvailable, devices: res.devices, iosDevices: res.iosDevices });
8
- }).catch((e) => console.warn('[startup] healthcheck failed:', e instanceof Error ? e.message : String(e)));
6
+ if (process.env.MOBILE_DEBUG_MCP_STARTUP_HEALTHCHECK === '1') {
7
+ getSystemStatus().then((res) => {
8
+ console.info('[startup] system status summary:', { adb: res.adbAvailable, ios: res.iosAvailable, devices: res.devices, iosDevices: res.iosDevices });
9
+ }).catch((e) => console.warn('[startup] healthcheck failed:', e instanceof Error ? e.message : String(e)));
10
+ }
9
11
  const transport = new StdioServerTransport();
10
12
  async function main() {
11
13
  await server.connect(transport);
package/docs/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to the **Mobile Debug MCP** project will be documented in this file.
4
4
 
5
+ ## [0.29.0]
6
+ - Added empty resource handlers and declared the `resources` capability so Codex MCP discovery can complete the handshake against the published npm package.
7
+ - Moved the startup healthcheck behind an opt-in flag to keep the stdio protocol channel quiet by default.
8
+
5
9
  ## [0.28.0]
6
10
  - Added structured execution trace model for all actions within the MCP runtime. It provides visibility into resolution, execution, verification, stabilization, and recovery stages.
7
11
 
package/docs/ROADMAP.md CHANGED
@@ -45,25 +45,22 @@ Higher task success with fewer retries.
45
45
  - Stronger State Verification — Complete (Foundational verification layer shipped)
46
46
  - Richer Element Identity — Complete (Identity and selector confidence foundations shipped)
47
47
  - Better Compose / Custom Control Semantics — Complete (Semantic role enrichment and custom-adjustable inference shipped)
48
+ - Verification Stabilization and Temporal Convergence — Complete (Temporal verification and convergence logic shipped)
49
+ - Action Trace and Execution Observability — Complete (Structured execution trace model shipped)
48
50
 
49
51
  ## Current Focus
50
52
 
51
- - Wait and Synchronization Reliability
53
+ - Wait and Synchronization Reliability (implementation + tuning)
52
54
  - Actionability Resolution
53
- - Verification Stabilization and Temporal Convergence
55
+ - Adjustable Control Precision Hardening
54
56
 
55
57
  ## Upcoming Work
56
58
 
57
59
  - Adjustable Control Precision Hardening
58
60
  - Environment Auto-Configuration and Toolchain Discovery
59
61
  - Adjustable Control Support
60
- - Verification Stabilization and Temporal Convergence
61
62
  - Signal-Oriented Diagnostic Filtering
62
63
  - Long Press Gesture
63
- # Stronger State Verification
64
- # Richer Element Identity
65
- # Wait and Synchronization Reliability
66
- # Environment Auto-Configuration and Toolchain Discovery
67
64
 
68
65
  ## Rationale
69
66
  Reduce onboarding friction and improve developer experience by minimizing manual setup dependencies.
@@ -115,7 +112,7 @@ Strengthens:
115
112
  ## Later Horizon
116
113
 
117
114
  - Pinch to Zoom
118
- - Action Trace Correlation
115
+ - Advanced Trace Correlation and Analysis
119
116
 
120
117
  ---
121
118
 
@@ -251,7 +248,7 @@ Blocks or strengthens:
251
248
  ## Rationale
252
249
  Real-world feedback exposed false-negative readiness failures caused by transient UI timing, even when target state had actually converged.
253
250
 
254
- **Status:** Planned
251
+ **Status:** Completed
255
252
 
256
253
  Addresses friction where agents:
257
254
  - fail readiness checks on transient timing races
@@ -615,12 +612,14 @@ Depends on:
615
612
 
616
613
  ---
617
614
 
618
- # Action Trace Correlation
615
+ # Advanced Trace Correlation
619
616
 
620
617
  ## Rationale
621
618
  Very valuable for debugging,
622
619
  but less critical than improving control success first.
623
620
 
621
+ Builds on the foundational Action Trace and Execution Observability capability by linking traces across UI, network, and logs.
622
+
624
623
  **Status:** Planned
625
624
 
626
625
  Improves diagnosis more than task completion.
@@ -695,7 +694,6 @@ Make core loop reliable and reduce onboarding friction.
695
694
  - Adjustable Control Precision Hardening
696
695
  - Better Compose / Custom Control Semantics
697
696
  - Signal-Oriented Diagnostic Filtering
698
- - Verification Stabilization and Temporal Convergence
699
697
 
700
698
  Focus:
701
699
  Improve control precision, verification convergence, custom control reliability, and signal observability.
@@ -712,7 +710,7 @@ Expand interaction capability after core control reliability is improved.
712
710
 
713
711
  ## Wave 4 (Advanced Gestures + Deep Observability)
714
712
  - Pinch to Zoom
715
- - Action Trace Correlation
713
+ - Advanced Trace Correlation and Analysis
716
714
 
717
715
  Focus:
718
716
  Advanced gestures + deep observability.
@@ -725,16 +723,15 @@ Roadmap Ordering:
725
723
  1. Stronger State Verification
726
724
  2. Richer Element Identity
727
725
  3. Wait and Synchronization Reliability
728
- 4. Verification Stabilization and Temporal Convergence
729
- 5. Environment Auto-Configuration and Toolchain Discovery
730
- 6. Actionability Resolution
731
- 7. Adjustable Control Support
732
- 8. Adjustable Control Precision Hardening
733
- 9. Better Compose / Custom Control Semantics
734
- 10. Signal-Oriented Diagnostic Filtering
735
- 11. Long Press Gesture
736
- 12. Pinch to Zoom
737
- 13. Action Trace Correlation
726
+ 4. Actionability Resolution
727
+ 5. Adjustable Control Support
728
+ 6. Adjustable Control Precision Hardening
729
+ 7. Environment Auto-Configuration and Toolchain Discovery
730
+ 8. Better Compose / Custom Control Semantics
731
+ 9. Signal-Oriented Diagnostic Filtering
732
+ 10. Long Press Gesture
733
+ 11. Pinch to Zoom
734
+ 12. Advanced Trace Correlation and Analysis
738
735
 
739
736
  Rationale:
740
737
  - Early roadmap items harden state, targeting, synchronization, environment readiness, and action execution.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobile-debug-mcp",
3
- "version": "0.28.0",
3
+ "version": "0.29.0",
4
4
  "description": "MCP server for mobile app debugging (Android + iOS), with focus on security and reliability",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,9 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js'
2
2
  import type { SchemaOutput } from '@modelcontextprotocol/sdk/server/zod-compat.js'
3
3
  import {
4
+ ListResourcesRequestSchema,
5
+ ListResourceTemplatesRequestSchema,
6
+ ReadResourceRequestSchema,
4
7
  ListToolsRequestSchema,
5
8
  CallToolRequestSchema
6
9
  } from '@modelcontextprotocol/sdk/types.js'
@@ -13,7 +16,7 @@ export { wrapResponse, toolDefinitions, handleToolCall }
13
16
 
14
17
  export const serverInfo = {
15
18
  name: 'mobile-debug-mcp',
16
- version: '0.28.0'
19
+ version: '0.29.0'
17
20
  }
18
21
 
19
22
  export function createServer() {
@@ -21,11 +24,24 @@ export function createServer() {
21
24
  serverInfo,
22
25
  {
23
26
  capabilities: {
27
+ resources: {},
24
28
  tools: {}
25
29
  }
26
30
  }
27
31
  )
28
32
 
33
+ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
34
+ resources: []
35
+ }))
36
+
37
+ server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
38
+ resourceTemplates: []
39
+ }))
40
+
41
+ server.setRequestHandler(ReadResourceRequestSchema, async () => ({
42
+ contents: []
43
+ }))
44
+
29
45
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
30
46
  tools: toolDefinitions
31
47
  }))
package/src/server.ts CHANGED
@@ -5,9 +5,11 @@ import { getSystemStatus } from './system/index.js'
5
5
 
6
6
  const server = createServer()
7
7
 
8
- getSystemStatus().then((res) => {
9
- console.debug('[startup] system status summary:', { adb: res.adbAvailable, ios: res.iosAvailable, devices: res.devices, iosDevices: res.iosDevices })
10
- }).catch((e) => console.warn('[startup] healthcheck failed:', e instanceof Error ? e.message : String(e)))
8
+ if (process.env.MOBILE_DEBUG_MCP_STARTUP_HEALTHCHECK === '1') {
9
+ getSystemStatus().then((res) => {
10
+ console.info('[startup] system status summary:', { adb: res.adbAvailable, ios: res.iosAvailable, devices: res.devices, iosDevices: res.iosDevices })
11
+ }).catch((e) => console.warn('[startup] healthcheck failed:', e instanceof Error ? e.message : String(e)))
12
+ }
11
13
 
12
14
  const transport = new StdioServerTransport()
13
15