@slack/radar-mcp 1.3.0 → 1.5.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 +25 -14
- package/dist/mcp/index.js +565 -374
- package/dist/mcp/tools.js +135 -10
- package/dist/shared/android.d.ts +11 -2
- package/dist/shared/android.js +17 -6
- package/dist/shared/constants.d.ts +20 -0
- package/dist/shared/constants.js +20 -0
- package/dist/shared/db.d.ts +75 -0
- package/dist/shared/db.js +403 -0
- package/dist/shared/screen.d.ts +132 -0
- package/dist/shared/screen.js +576 -0
- package/dist/web/bin.js +64 -30
- package/dist/web/log-session.d.ts +89 -0
- package/dist/web/log-session.js +144 -0
- package/dist/web/public/index.html +1065 -712
- package/dist/web/server.d.ts +29 -0
- package/dist/web/server.js +900 -28
- package/dist/web/spec.d.ts +91 -0
- package/dist/web/spec.js +153 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -28,24 +28,33 @@ Restart your Claude Code session for the tools to appear.
|
|
|
28
28
|
The package also ships a browser-based dashboard that shows the same live device data without Claude Code in the loop.
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
npx
|
|
31
|
+
npx @slack/radar-mcp web
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Or with a global install:
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
npm install -g @slack/radar-mcp
|
|
38
|
-
slack-radar
|
|
38
|
+
slack-radar
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Opens `http://localhost:8100` automatically. Set `SLACK_RADAR_WEB_PORT` to use a different port.
|
|
41
|
+
Opens `http://localhost:8100` automatically. Set `SLACK_RADAR_WEB_PORT` to use a different port. (`slack-radar-web` still works as a direct alias.) Tabs:
|
|
42
42
|
|
|
43
|
-
* Live
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
43
|
+
* **Live** — network, RTM, analytics clogs, and Slack-app logcat in one timeline
|
|
44
|
+
* **Network** — calls per second vs response time, every call listed, slow ones flagged
|
|
45
|
+
* **RTM** — real-time websocket events
|
|
46
|
+
* **Clogs** — analytics events, click one to see its payload
|
|
47
|
+
* **Logs** — device logcat, filtered to the Slack app (switch app or clear the filter)
|
|
48
|
+
* **Custom** — a tab Claude builds on request. Ask a Claude Code session in your terminal for a view the pre-built tabs do not cover (e.g. "graph calls per second and flag the slow ones"); it authors the view via the `open_radar_dashboard` tool and it appears here. Persists until you refresh the page.
|
|
49
|
+
|
|
50
|
+
Each tab has a counter, rate, sparkline, graph, a filter / sort / pause feed, and a payload inspector. Switching tabs replays what you have already seen this session (the browser caches it, bounded by count and age) so the view does not reset to empty. ADB forwarding and device activation are handled for you; a reconnect control re-arms after a device sleep.
|
|
51
|
+
|
|
52
|
+
### Screen overlay
|
|
53
|
+
|
|
54
|
+
A **▣ Screen** button opens a side panel that mirrors the live device screen, with a full-resolution screenshot and a screen recording. It is off by default and opens to a consent notice first, because it shows whatever is on the phone (open DMs, message content, notifications).
|
|
55
|
+
|
|
56
|
+
* **Screenshot** works on any machine (pure `screencap`, no extra tools).
|
|
57
|
+
* **Live mirror and recording** need `ffmpeg` on your machine. If it is missing, the panel shows the install command for your platform and the screenshot still works. ffmpeg is not bundled and is never installed for you.
|
|
49
58
|
|
|
50
59
|
## Prerequisites
|
|
51
60
|
|
|
@@ -70,7 +79,7 @@ Radar starts **disabled** each session. All tools except `ping` return an error
|
|
|
70
79
|
|
|
71
80
|
| Tool | Description |
|
|
72
81
|
|---|---|
|
|
73
|
-
| `ping` | Health check. Returns uptime, buffer sizes, remaining session time, stream status. Use `timeout_minutes` to extend sessions. |
|
|
82
|
+
| `ping` | Health check. Returns uptime, buffer sizes, remaining session time, stream status, and which app/profile is bound (`android_user_id`, `profile` personal/secondary, `package`). Use `timeout_minutes` to extend sessions. |
|
|
74
83
|
| `get_recent_network_calls` | HTTP call summaries: method, URL, status code, duration. Filterable by URL substring and status code. |
|
|
75
84
|
| `get_network_call_detail` | Full request/response headers and bodies for a specific call (gzip/brotli decompressed). |
|
|
76
85
|
| `get_recent_rtm_events` | RTM event summaries: type, direction, channel, timestamp. Filterable by type, direction, channel. Uses subtypes (e.g. `message_changed`, not `message`). |
|
|
@@ -84,6 +93,7 @@ Radar starts **disabled** each session. All tools except `ping` return an error
|
|
|
84
93
|
| `screenshot` | Capture device screen as PNG. 720px default, `full_res=true` for full resolution. |
|
|
85
94
|
| `record_screen` | Record short screen video (MP4). Default 5s, max 30s. |
|
|
86
95
|
| `clear_buffers` | Clear all captured network calls and RTM events from device and local buffers. |
|
|
96
|
+
| `open_radar_dashboard` | Author or refine a custom live dashboard tab from a spec (source, filters, widgets, alerts). Suggested when a request is not covered by the pre-built tabs; not auto-invoked. Returns the dashboard URL; debug builds only, local only. |
|
|
87
97
|
| `_radar_session_enable` | Enable radar for the session. Called by `/radar-enable` skill. |
|
|
88
98
|
| `_radar_session_disable` | Disable radar for the session. Called by `/radar-disable` skill. |
|
|
89
99
|
|
|
@@ -121,8 +131,9 @@ What gets captured depends on the in-app server implementation. The MCP server i
|
|
|
121
131
|
* **Network calls**: OkHttp interceptor. Ring buffer: 200 calls.
|
|
122
132
|
* **RTM events**: WebSocket listener. Ring buffer: 500 events.
|
|
123
133
|
* **Clogs**: Analytics interceptor. Ring buffer: 500 events. Persists across radar activation cycles.
|
|
134
|
+
* **SQLite database** (Database tab, web dashboard only): when you open a database, a read-only **plaintext** copy of that on-device store (message text, request/response bodies, user/channel/team IDs) is pulled to a temp directory **on your own machine** (`os.tmpdir()/slack-radar-db-<port>`, files mode 0600). Auto-deleted when the dashboard process stops.
|
|
124
135
|
|
|
125
|
-
|
|
136
|
+
The network, RTM, and clog captures are in-memory ring buffers. The Database tab is the exception: it writes a plaintext copy of the selected on-device database to a temp file on your host for the duration of the session. Review before sharing anything from it.
|
|
126
137
|
|
|
127
138
|
### What gets captured, in detail
|
|
128
139
|
|
|
@@ -167,11 +178,11 @@ The device-side server may have auto-shut down. Use `/radar-enable` to restart i
|
|
|
167
178
|
**"Session disabled"**
|
|
168
179
|
Two consecutive connection failures disable the session. Use `/radar-enable` to reconnect.
|
|
169
180
|
|
|
170
|
-
**
|
|
171
|
-
The MCP server auto-detects the Android user ID via `ps` and targets the broadcast accordingly. No manual `--user` flag needed.
|
|
181
|
+
**Devices with more than one user (e.g. a work profile)**
|
|
182
|
+
The MCP server auto-detects the Android user ID via `ps` and targets the broadcast accordingly. No manual `--user` flag needed. In the dashboard's Logs tab, the package filter narrows logcat to the Slack app; clear the chip or pick another package to widen it.
|
|
172
183
|
|
|
173
184
|
**Tools not appearing after setup**
|
|
174
185
|
Restart your Claude Code session. MCP servers are registered at session start.
|
|
175
186
|
|
|
176
187
|
**Port already in use (web dashboard)**
|
|
177
|
-
Another instance may be running. Kill it with `lsof -ti :8100 | xargs kill` or set a different port with `SLACK_RADAR_WEB_PORT=8101 slack
|
|
188
|
+
Another instance may be running. Kill it with `lsof -ti :8100 | xargs kill` or set a different port with `SLACK_RADAR_WEB_PORT=8101 npx @slack/radar-mcp web`.
|