screenpipe-mcp 0.19.1 → 0.19.4

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 (60) hide show
  1. package/README.md +22 -12
  2. package/bun.lock +1 -3
  3. package/dist/cli.js +52886 -44
  4. package/dist/http-server.js +50456 -328
  5. package/dist/index.js +51266 -2078
  6. package/package.json +4 -6
  7. package/scripts/assert-pack-contents.js +60 -28
  8. package/scripts/build.mjs +34 -0
  9. package/server.json +2 -2
  10. package/src/activity-summary-format.test.ts +109 -0
  11. package/src/activity-summary-format.ts +253 -0
  12. package/src/activity-summary-tool.test.ts +133 -0
  13. package/src/activity-summary-tool.ts +79 -0
  14. package/src/api-base.test.ts +39 -0
  15. package/src/api-base.ts +24 -0
  16. package/src/http-server.ts +6 -5
  17. package/src/index.ts +202 -207
  18. package/src/pack-contents.test.ts +53 -17
  19. package/src/self-contained-pack.test.ts +115 -0
  20. package/src/stdio-startup.test.ts +223 -5
  21. package/src/team-frame.test.ts +86 -0
  22. package/src/team-frame.ts +78 -0
  23. package/src/time-normalization.test.ts +94 -0
  24. package/src/time-normalization.ts +90 -0
  25. package/vitest.config.ts +7 -0
  26. package/dist/cli.d.ts +0 -2
  27. package/dist/element-format.d.ts +0 -8
  28. package/dist/element-format.js +0 -18
  29. package/dist/element-format.test.d.ts +0 -1
  30. package/dist/element-format.test.js +0 -20
  31. package/dist/export-video.test.d.ts +0 -1
  32. package/dist/export-video.test.js +0 -156
  33. package/dist/http-server.d.ts +0 -65
  34. package/dist/http-server.test.d.ts +0 -1
  35. package/dist/http-server.test.js +0 -232
  36. package/dist/index.d.ts +0 -2
  37. package/dist/notification-request.d.ts +0 -3
  38. package/dist/notification-request.js +0 -28
  39. package/dist/notification-request.test.d.ts +0 -1
  40. package/dist/notification-request.test.js +0 -47
  41. package/dist/pack-contents.test.d.ts +0 -1
  42. package/dist/pack-contents.test.js +0 -119
  43. package/dist/qualified-value.d.ts +0 -15
  44. package/dist/qualified-value.js +0 -53
  45. package/dist/qualified-value.test.d.ts +0 -1
  46. package/dist/qualified-value.test.js +0 -52
  47. package/dist/stdio-startup.test.d.ts +0 -1
  48. package/dist/stdio-startup.test.js +0 -273
  49. package/dist/team-config.d.ts +0 -19
  50. package/dist/team-config.js +0 -99
  51. package/dist/team-config.test.d.ts +0 -1
  52. package/dist/team-config.test.js +0 -90
  53. package/dist/telemetry.d.ts +0 -24
  54. package/dist/telemetry.js +0 -228
  55. package/dist/telemetry.test.d.ts +0 -1
  56. package/dist/telemetry.test.js +0 -130
  57. package/dist/version.d.ts +0 -1
  58. package/dist/version.js +0 -27
  59. package/dist/version.test.d.ts +0 -1
  60. package/dist/version.test.js +0 -144
package/README.md CHANGED
@@ -48,8 +48,9 @@ If you're not using the desktop app, edit your Claude Desktop config:
48
48
 
49
49
  Requires Node/`npx` on `PATH`. Pin `@latest` so the first install doesn't cache a
50
50
  stale version forever. Get your key with `screenpipe auth token`. If you omit the
51
- key, the server will try to discover it (bundled bun → npx → local DB) — this works
52
- but is slower and can time out on first run.
51
+ key, the server will try to discover it through the bundled Screenpipe CLI and
52
+ then `npx`. It never opens the live SQLite database directly. Discovery can be
53
+ slower on first run, so setting the environment variable is still recommended.
53
54
 
54
55
  Enterprise admins: add `SCREENPIPE_ENTERPRISE_TOKEN` (and, for orgs running their
55
56
  own query gateway, `SCREENPIPE_TEAM_API_URL`) to the same `env` block to get the
@@ -138,10 +139,10 @@ Then configure Claude Desktop:
138
139
 
139
140
  ## Enterprise team tools (`team-*`)
140
141
 
141
- `team-search`, `team-devices` and `team-records` query your whole org instead of
142
- just this machine. They are registered **only** when an enterprise admin token is
143
- present, and they need **two** independent settings: a token, and the base URL of
144
- the API that token is valid for.
142
+ `team-search`, `team-devices`, `team-records`, and `team-frame` query your whole
143
+ org instead of just this machine. They are registered **only** when an enterprise
144
+ admin token is present, and they need **two** independent settings: a token, and
145
+ the base URL of the API that token is valid for.
145
146
 
146
147
  ### 1. The token
147
148
 
@@ -242,9 +243,15 @@ Export screen recordings as video files:
242
243
 
243
244
  ### activity-summary
244
245
  Get a lightweight compressed activity overview for a time range:
245
- - App usage with active minutes and frame counts
246
- - Recent accessibility texts
247
- - Audio speaker summary
246
+ - Authoritative total active minutes and server data status
247
+ - Per-app active minutes and a bounded window/tab breakdown
248
+ - Edited document paths plus an optional bounded parsed-context sample for identifying tasks
249
+ - Recent accessibility text and audio context
250
+
251
+ Use active-minute fields for duration. Edited paths, parsed rows, frames, text,
252
+ and audio samples are supporting context only; their counts are not time.
253
+ Parsed capture is experimental and may be disabled or unsupported; the base
254
+ activity summary remains complete without it.
248
255
 
249
256
  ### list-meetings
250
257
  List detected meetings with id, duration, app, attendees, and note snippet. Pass `q` to filter by substring (title, attendees, notes) — `q` searches all meeting history, so omit the time range when looking for a person or topic. Follow up with `get-meeting` (optionally `include_transcript: true`) for the full note and speaker-attributed transcript.
@@ -303,8 +310,8 @@ List available monitors/screens for capture.
303
310
  ### list-pipes / create-pipe / run-pipe / pipe-logs
304
311
  Manage pipes — scheduled AI automations that run a markdown prompt on a schedule (e.g. "every day at 9am"). `list-pipes` shows enabled state + schedule; `create-pipe` creates one; `run-pipe` triggers a one-off test run; `pipe-logs` fetches recent execution output.
305
312
 
306
- ### team-search / team-devices / team-records
307
- Team-tier tools, registered only when an enterprise admin token is configured. `team-search` runs substring search across the entire org's telemetry, `team-devices` lists enrolled devices (hostname, OS), and `team-records` dumps chronological frame, parsed-app, or audio data for a time window. Orgs running their own query gateway must also set `SCREENPIPE_TEAM_API_URL` — see [Enterprise team tools](#enterprise-team-tools-team-) for the full precedence order.
313
+ ### team-search / team-devices / team-records / team-frame
314
+ Team-tier tools, registered only when an enterprise admin token is configured. `team-search` runs substring search across the entire org's telemetry, `team-devices` lists enrolled devices (hostname, OS), `team-records` dumps chronological frame, parsed-app, or audio data for a time window, and `team-frame` returns one bounded PII-redacted JPEG using IDs from search or records. Orgs running their own query gateway must also set `SCREENPIPE_TEAM_API_URL` — see [Enterprise team tools](#enterprise-team-tools-team-) for the full precedence order.
308
315
 
309
316
  ## Example Queries in Claude
310
317
 
@@ -357,7 +364,10 @@ To disable crash/error reporting, set any of:
357
364
  ### Data usage
358
365
  Tool calls are passed straight through to your local Screenpipe daemon
359
366
  and the results stream back to Claude. The MCP server doesn't keep
360
- anything.
367
+ anything. Database access stays inside Screenpipe's daemon and first-party CLI,
368
+ which own SQLite lifecycle and locking; the MCP server never opens, copies, or
369
+ mutates the live database, WAL, or shared-memory files. Use MCP tools such as
370
+ `query_recordings` for SQL-shaped analysis.
361
371
 
362
372
  ### Data storage
363
373
  Nothing is stored by the MCP server itself. Recordings, OCR text,
package/bun.lock CHANGED
@@ -4,11 +4,9 @@
4
4
  "workspaces": {
5
5
  "": {
6
6
  "name": "screenpipe-mcp",
7
- "dependencies": {
7
+ "devDependencies": {
8
8
  "@modelcontextprotocol/sdk": "^1.27.1",
9
9
  "@sentry/node": "^10.64.0",
10
- },
11
- "devDependencies": {
12
10
  "@types/node": "^25.3.5",
13
11
  "ts-node": "^10.9.2",
14
12
  "typescript": "^5.9.3",