screenpipe-mcp 0.18.15 → 0.19.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 (49) hide show
  1. package/README.md +149 -7
  2. package/RELEASE.md +175 -0
  3. package/dist/cli.js +5 -4
  4. package/dist/element-format.d.ts +8 -0
  5. package/dist/element-format.js +18 -0
  6. package/dist/element-format.test.d.ts +1 -0
  7. package/dist/element-format.test.js +20 -0
  8. package/dist/http-server.js +15 -4
  9. package/dist/http-server.test.js +14 -2
  10. package/dist/index.js +246 -106
  11. package/dist/pack-contents.test.d.ts +1 -0
  12. package/dist/pack-contents.test.js +119 -0
  13. package/dist/qualified-value.d.ts +10 -0
  14. package/dist/qualified-value.js +18 -0
  15. package/dist/qualified-value.test.d.ts +1 -0
  16. package/dist/qualified-value.test.js +20 -0
  17. package/dist/stdio-startup.test.d.ts +1 -0
  18. package/dist/stdio-startup.test.js +273 -0
  19. package/dist/team-config.d.ts +19 -0
  20. package/dist/team-config.js +99 -0
  21. package/dist/team-config.test.d.ts +1 -0
  22. package/dist/team-config.test.js +90 -0
  23. package/dist/telemetry.d.ts +3 -0
  24. package/dist/telemetry.js +32 -3
  25. package/dist/telemetry.test.js +69 -0
  26. package/dist/version.d.ts +1 -0
  27. package/dist/version.js +27 -0
  28. package/dist/version.test.d.ts +1 -0
  29. package/dist/version.test.js +144 -0
  30. package/manifest.json +1 -1
  31. package/package.json +3 -1
  32. package/scripts/assert-pack-contents.js +179 -0
  33. package/server.json +2 -2
  34. package/src/cli.ts +5 -4
  35. package/src/element-format.test.ts +22 -0
  36. package/src/element-format.ts +17 -0
  37. package/src/http-server.test.ts +14 -2
  38. package/src/http-server.ts +16 -4
  39. package/src/index.ts +263 -104
  40. package/src/pack-contents.test.ts +133 -0
  41. package/src/qualified-value.test.ts +26 -0
  42. package/src/qualified-value.ts +27 -0
  43. package/src/stdio-startup.test.ts +256 -0
  44. package/src/team-config.test.ts +81 -0
  45. package/src/team-config.ts +75 -0
  46. package/src/telemetry.test.ts +37 -0
  47. package/src/telemetry.ts +36 -4
  48. package/src/version.test.ts +119 -0
  49. package/src/version.ts +27 -0
@@ -30,6 +30,7 @@ import {
30
30
  flushMcpTelemetry,
31
31
  initMcpTelemetry,
32
32
  } from "./telemetry";
33
+ import { PKG_VERSION } from "./version";
33
34
 
34
35
  // ── CLI parsing ─────────────────────────────────────────────────────────
35
36
 
@@ -150,7 +151,7 @@ const TOOLS = [
150
151
  {
151
152
  name: "search_content",
152
153
  description:
153
- "Search screenpipe's recorded content: screen text (OCR), audio transcriptions, and UI elements. " +
154
+ "Search screenpipe's recorded content: screen text, audio transcriptions, input events, and parsed app data. " +
154
155
  "Returns timestamped results with app context. " +
155
156
  "Call with no parameters to get recent activity.",
156
157
  inputSchema: {
@@ -162,9 +163,9 @@ const TOOLS = [
162
163
  },
163
164
  content_type: {
164
165
  type: "string",
165
- enum: ["all", "ocr", "audio", "input", "accessibility"],
166
+ enum: ["all", "ocr", "audio", "input", "accessibility", "parsed"],
166
167
  description:
167
- "Content type filter: 'ocr' (screen text), 'audio' (transcriptions), 'input' (clicks, keystrokes, clipboard, app switches), 'accessibility' (accessibility tree text), 'all'. Default: 'all'",
168
+ "Content type filter: 'ocr' (screen text), 'audio' (transcriptions), 'input' (clicks, keystrokes, clipboard, app switches), 'accessibility' (accessibility tree text), 'parsed' (compact messages, emails, tasks, documents, and code review), 'all'. Default: 'all'",
168
169
  default: "all",
169
170
  },
170
171
  limit: { type: "integer", description: "Max results. Default: 10" },
@@ -182,6 +183,8 @@ const TOOLS = [
182
183
  description: "Filter by app (e.g., 'Google Chrome', 'Slack', 'zoom.us')",
183
184
  },
184
185
  window_name: { type: "string", description: "Filter by window title" },
186
+ frame_id: { type: "integer", description: "With content_type='parsed', return parsed data for one frame" },
187
+ actor_id: { type: "integer", description: "With content_type='parsed', filter by resolved actor identity" },
185
188
  },
186
189
  },
187
190
  },
@@ -257,6 +260,12 @@ async function handleSearchContent(
257
260
  `${content.timestamp || ""}\n` +
258
261
  `${content.text || ""}`
259
262
  );
263
+ } else if (result.type === "Parsed") {
264
+ formattedResults.push(
265
+ `[Parsed] ${content.app_name || "?"} | ${content.window_name || "?"} | frame ${content.frame_id || "?"}\n` +
266
+ `${content.timestamp || ""}\n` +
267
+ `${content.text || ""}`
268
+ );
260
269
  }
261
270
  }
262
271
 
@@ -282,8 +291,11 @@ async function handleSearchContent(
282
291
  // mapping between Server and transport (reusing a Server across
283
292
  // transports throws "Already connected to a transport").
284
293
  function createMcpServer(fetchAPI: ReturnType<typeof makeFetchAPI>): Server {
294
+ // version comes from package.json (see src/version.ts) — this used to be a
295
+ // hardcoded "0.14.0" and reported that over the wire long after the package
296
+ // had moved on, which is unusable for support triage.
285
297
  const s = new Server(
286
- { name: "screenpipe-http", version: "0.14.0" },
298
+ { name: "screenpipe-http", version: PKG_VERSION },
287
299
  { capabilities: { tools: {} } }
288
300
  );
289
301