wiretap-mcp 2.0.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.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +68 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/monitors/crash-android.d.ts +20 -0
  8. package/dist/monitors/crash-android.d.ts.map +1 -0
  9. package/dist/monitors/crash-android.js +134 -0
  10. package/dist/monitors/crash-android.js.map +1 -0
  11. package/dist/monitors/crash-ios.d.ts +17 -0
  12. package/dist/monitors/crash-ios.d.ts.map +1 -0
  13. package/dist/monitors/crash-ios.js +116 -0
  14. package/dist/monitors/crash-ios.js.map +1 -0
  15. package/dist/monitors/hermes.d.ts +26 -0
  16. package/dist/monitors/hermes.d.ts.map +1 -0
  17. package/dist/monitors/hermes.js +175 -0
  18. package/dist/monitors/hermes.js.map +1 -0
  19. package/dist/monitors/reactotron.d.ts +18 -0
  20. package/dist/monitors/reactotron.d.ts.map +1 -0
  21. package/dist/monitors/reactotron.js +106 -0
  22. package/dist/monitors/reactotron.js.map +1 -0
  23. package/dist/monitors/terminal.d.ts +25 -0
  24. package/dist/monitors/terminal.d.ts.map +1 -0
  25. package/dist/monitors/terminal.js +154 -0
  26. package/dist/monitors/terminal.js.map +1 -0
  27. package/dist/parsers/cdp-parser.d.ts +64 -0
  28. package/dist/parsers/cdp-parser.d.ts.map +1 -0
  29. package/dist/parsers/cdp-parser.js +115 -0
  30. package/dist/parsers/cdp-parser.js.map +1 -0
  31. package/dist/parsers/crash-parser.d.ts +5 -0
  32. package/dist/parsers/crash-parser.d.ts.map +1 -0
  33. package/dist/parsers/crash-parser.js +112 -0
  34. package/dist/parsers/crash-parser.js.map +1 -0
  35. package/dist/parsers/log-parser.d.ts +5 -0
  36. package/dist/parsers/log-parser.d.ts.map +1 -0
  37. package/dist/parsers/log-parser.js +141 -0
  38. package/dist/parsers/log-parser.js.map +1 -0
  39. package/dist/parsers/reactotron-parser.d.ts +17 -0
  40. package/dist/parsers/reactotron-parser.d.ts.map +1 -0
  41. package/dist/parsers/reactotron-parser.js +83 -0
  42. package/dist/parsers/reactotron-parser.js.map +1 -0
  43. package/dist/server.d.ts +19 -0
  44. package/dist/server.d.ts.map +1 -0
  45. package/dist/server.js +224 -0
  46. package/dist/server.js.map +1 -0
  47. package/dist/storage/log-store.d.ts +41 -0
  48. package/dist/storage/log-store.d.ts.map +1 -0
  49. package/dist/storage/log-store.js +118 -0
  50. package/dist/storage/log-store.js.map +1 -0
  51. package/dist/storage/persistence.d.ts +26 -0
  52. package/dist/storage/persistence.d.ts.map +1 -0
  53. package/dist/storage/persistence.js +123 -0
  54. package/dist/storage/persistence.js.map +1 -0
  55. package/dist/tools/clear-logs.d.ts +8 -0
  56. package/dist/tools/clear-logs.d.ts.map +1 -0
  57. package/dist/tools/clear-logs.js +15 -0
  58. package/dist/tools/clear-logs.js.map +1 -0
  59. package/dist/tools/get-api-calls.d.ts +11 -0
  60. package/dist/tools/get-api-calls.d.ts.map +1 -0
  61. package/dist/tools/get-api-calls.js +26 -0
  62. package/dist/tools/get-api-calls.js.map +1 -0
  63. package/dist/tools/get-crashes.d.ts +11 -0
  64. package/dist/tools/get-crashes.d.ts.map +1 -0
  65. package/dist/tools/get-crashes.js +42 -0
  66. package/dist/tools/get-crashes.js.map +1 -0
  67. package/dist/tools/get-errors.d.ts +12 -0
  68. package/dist/tools/get-errors.d.ts.map +1 -0
  69. package/dist/tools/get-errors.js +52 -0
  70. package/dist/tools/get-errors.js.map +1 -0
  71. package/dist/tools/get-hermes-logs.d.ts +12 -0
  72. package/dist/tools/get-hermes-logs.d.ts.map +1 -0
  73. package/dist/tools/get-hermes-logs.js +33 -0
  74. package/dist/tools/get-hermes-logs.js.map +1 -0
  75. package/dist/tools/get-logs.d.ts +21 -0
  76. package/dist/tools/get-logs.d.ts.map +1 -0
  77. package/dist/tools/get-logs.js +50 -0
  78. package/dist/tools/get-logs.js.map +1 -0
  79. package/dist/tools/get-network.d.ts +12 -0
  80. package/dist/tools/get-network.d.ts.map +1 -0
  81. package/dist/tools/get-network.js +35 -0
  82. package/dist/tools/get-network.js.map +1 -0
  83. package/dist/tools/get-performance.d.ts +10 -0
  84. package/dist/tools/get-performance.d.ts.map +1 -0
  85. package/dist/tools/get-performance.js +32 -0
  86. package/dist/tools/get-performance.js.map +1 -0
  87. package/dist/tools/get-state.d.ts +11 -0
  88. package/dist/tools/get-state.d.ts.map +1 -0
  89. package/dist/tools/get-state.js +26 -0
  90. package/dist/tools/get-state.js.map +1 -0
  91. package/dist/tools/get-status.d.ts +20 -0
  92. package/dist/tools/get-status.d.ts.map +1 -0
  93. package/dist/tools/get-status.js +52 -0
  94. package/dist/tools/get-status.js.map +1 -0
  95. package/dist/tools/search-logs.d.ts +11 -0
  96. package/dist/tools/search-logs.d.ts.map +1 -0
  97. package/dist/tools/search-logs.js +68 -0
  98. package/dist/tools/search-logs.js.map +1 -0
  99. package/dist/types.d.ts +123 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +3 -0
  102. package/dist/types.js.map +1 -0
  103. package/package.json +65 -0
  104. package/scripts/install.sh +33 -0
  105. package/wiretap.config.json +8 -0
@@ -0,0 +1,123 @@
1
+ export type LogSeverity = "error" | "warn" | "info" | "debug";
2
+ export interface TerminalLogEntry {
3
+ id: number;
4
+ timestamp: string;
5
+ severity: LogSeverity;
6
+ message: string;
7
+ raw: string;
8
+ source: "metro" | "expo" | "react-native" | "unknown";
9
+ stackTrace?: string;
10
+ isNativeCrash?: boolean;
11
+ }
12
+ export interface ReactotronLogEntry {
13
+ id: number;
14
+ timestamp: string;
15
+ type: "log" | "api" | "state" | "asyncStorage" | "benchmark" | "custom" | "display";
16
+ name?: string;
17
+ payload: unknown;
18
+ important?: boolean;
19
+ duration?: number;
20
+ }
21
+ export interface ApiCallEntry {
22
+ id: number;
23
+ timestamp: string;
24
+ method: string;
25
+ url: string;
26
+ status?: number;
27
+ duration?: number;
28
+ requestHeaders?: Record<string, string>;
29
+ requestBody?: unknown;
30
+ responseHeaders?: Record<string, string>;
31
+ responseBody?: unknown;
32
+ }
33
+ export interface StateChangeEntry {
34
+ id: number;
35
+ timestamp: string;
36
+ store: string;
37
+ action: string;
38
+ path?: string;
39
+ before?: unknown;
40
+ after?: unknown;
41
+ }
42
+ export interface PerformanceEntry {
43
+ id: number;
44
+ timestamp: string;
45
+ title: string;
46
+ duration: number;
47
+ steps?: {
48
+ title: string;
49
+ duration: number;
50
+ }[];
51
+ }
52
+ export interface HermesLogEntry {
53
+ id: number;
54
+ timestamp: string;
55
+ level: LogSeverity;
56
+ message: string;
57
+ args?: unknown[];
58
+ stackTrace?: string;
59
+ source: "hermes";
60
+ url?: string;
61
+ lineNumber?: number;
62
+ }
63
+ export interface NetworkEntry {
64
+ id: number;
65
+ timestamp: string;
66
+ requestId: string;
67
+ method: string;
68
+ url: string;
69
+ status?: number;
70
+ mimeType?: string;
71
+ requestHeaders?: Record<string, string>;
72
+ responseHeaders?: Record<string, string>;
73
+ duration?: number;
74
+ source: "cdp";
75
+ }
76
+ export interface CrashLogEntry {
77
+ id: number;
78
+ timestamp: string;
79
+ platform: "ios" | "android";
80
+ processName: string;
81
+ crashReason: string;
82
+ exceptionType?: string;
83
+ signal?: string;
84
+ stackTrace: string;
85
+ rawFilePath?: string;
86
+ }
87
+ export interface AppStatus {
88
+ metroRunning: boolean;
89
+ reactotronConnected: boolean;
90
+ hermesConnected: boolean;
91
+ detectedProcess: string | null;
92
+ errorCount: number;
93
+ warningCount: number;
94
+ lastCrash: TerminalLogEntry | CrashLogEntry | null;
95
+ uptime: number;
96
+ terminalLogCount: number;
97
+ reactotronLogCount: number;
98
+ hermesLogCount: number;
99
+ networkCallCount: number;
100
+ crashCount: number;
101
+ iosCrashMonitorActive: boolean;
102
+ androidCrashMonitorActive: boolean;
103
+ }
104
+ export interface CompanionConfig {
105
+ reactotronPort: number;
106
+ terminalLogBufferSize: number;
107
+ reactotronLogBufferSize: number;
108
+ autoDetectTerminal: boolean;
109
+ watchPaths: string[];
110
+ filterPatterns: string[];
111
+ persistLogs: boolean;
112
+ persistPath: string;
113
+ persistFlushIntervalMs: number;
114
+ persistMaxEntriesOnLoad: number;
115
+ hermesEnabled: boolean;
116
+ metroPort: number;
117
+ cdpCaptureNetwork: boolean;
118
+ iosCrashMonitorEnabled: boolean;
119
+ iosCrashReportPath: string;
120
+ androidCrashMonitorEnabled: boolean;
121
+ adbPath: string;
122
+ }
123
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "wiretap-mcp",
3
+ "version": "2.0.0",
4
+ "description": "MCP Server — Real-time React Native debugging for Claude Code. Terminal logs, Hermes/CDP runtime, network inspector, Reactotron integration, iOS/Android crash reports.",
5
+ "author": "Jaqueline Gonzaga <jaqueline_gonzaga@hotmail.com>",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/gonzagajaque/wiretap-mcp.git"
10
+ },
11
+ "homepage": "https://github.com/gonzagajaque/wiretap-mcp#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/gonzagajaque/wiretap-mcp/issues"
14
+ },
15
+ "main": "dist/index.js",
16
+ "types": "dist/index.d.ts",
17
+ "bin": {
18
+ "wiretap-mcp": "dist/index.js"
19
+ },
20
+ "files": [
21
+ "dist",
22
+ "scripts/install.sh",
23
+ "wiretap.config.json",
24
+ "LICENSE",
25
+ "README.md"
26
+ ],
27
+ "engines": {
28
+ "node": ">=18"
29
+ },
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "dev": "tsc --watch",
33
+ "start": "node dist/index.js",
34
+ "install-mcp": "bash scripts/install.sh",
35
+ "prepublishOnly": "npm run build"
36
+ },
37
+ "keywords": [
38
+ "wiretap",
39
+ "mcp",
40
+ "model-context-protocol",
41
+ "react-native",
42
+ "reactotron",
43
+ "hermes",
44
+ "cdp",
45
+ "chrome-devtools-protocol",
46
+ "debug",
47
+ "debugging",
48
+ "claude-code",
49
+ "claude",
50
+ "ai",
51
+ "network-inspector",
52
+ "crash-reports",
53
+ "metro",
54
+ "expo"
55
+ ],
56
+ "dependencies": {
57
+ "@modelcontextprotocol/sdk": "^1.12.1",
58
+ "ws": "^8.18.0"
59
+ },
60
+ "devDependencies": {
61
+ "@types/node": "^22.13.0",
62
+ "@types/ws": "^8.5.14",
63
+ "typescript": "^5.7.3"
64
+ }
65
+ }
@@ -0,0 +1,33 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
5
+ PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
6
+
7
+ echo "==> Installing dependencies..."
8
+ cd "$PROJECT_DIR"
9
+ npm install
10
+
11
+ echo "==> Building project..."
12
+ npm run build
13
+
14
+ echo "==> Registering MCP server in Claude Code..."
15
+ claude mcp add rn-dev-companion -- node "$PROJECT_DIR/dist/index.js"
16
+
17
+ echo ""
18
+ echo "Done! rn-dev-companion MCP server installed."
19
+ echo "Restart Claude Code to use the new tools."
20
+ echo ""
21
+ echo "Available tools (12):"
22
+ echo " - get_terminal_logs Get Metro/Expo terminal logs"
23
+ echo " - get_reactotron_logs Get Reactotron logs"
24
+ echo " - get_hermes_logs Get JS runtime logs from Hermes/CDP"
25
+ echo " - get_network_calls Get HTTP network calls via CDP"
26
+ echo " - get_errors Get consolidated errors/crashes"
27
+ echo " - get_api_calls Get API calls from Reactotron"
28
+ echo " - get_state_changes Get state changes from Reactotron"
29
+ echo " - get_native_crashes Get native crash reports (iOS/Android)"
30
+ echo " - get_app_status Get overall app status"
31
+ echo " - get_performance Get performance metrics"
32
+ echo " - search_logs Full-text search across all logs"
33
+ echo " - clear_logs Clear all log buffers"
@@ -0,0 +1,8 @@
1
+ {
2
+ "reactotronPort": 9090,
3
+ "terminalLogBufferSize": 500,
4
+ "reactotronLogBufferSize": 500,
5
+ "autoDetectTerminal": true,
6
+ "watchPaths": [],
7
+ "filterPatterns": []
8
+ }