screenpipe-mcp 0.20.2 → 0.20.3

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 CHANGED
@@ -31,12 +31,79 @@ These are self-reported identifiers, not verified app identities; copied skills
31
31
  and callers that omit the headers cannot be reliably attributed. Historical
32
32
  generic API events cannot be assigned an app retroactively.
33
33
 
34
+ The engine preserves every existing uncached app, MCP and named-agent
35
+ `search_performed` event. Only explicitly API-originated requests with an unknown
36
+ agent are sampled: the first event per 60-second monotonic window per engine
37
+ process, separately for empty/non-empty and parsed/ordinary results (at most four
38
+ events per window, plus the first event in each category after UTC midnight to
39
+ preserve daily activity). An empty background poll cannot consume the successful-result
40
+ slot, and API traffic cannot consume an app, MCP or named-agent slot.
41
+
42
+ Sampled events carry `telemetry_sampling: "first_per_interval_per_result_kind"`
43
+ and `telemetry_sample_interval_seconds: 60`; unsampled events carry `"none"` and
44
+ `0`. Sampled events are presence diagnostics, not exact search counts or an
45
+ unbiased sample of query properties. Their counts and property breakdowns are
46
+ not comparable to earlier releases. `api_usage_5min.request_count` still counts
47
+ aggregate API traffic across all routes, and `qualified_value_event` retains the
48
+ existing successful-retrieval path, including cached searches. No new events are
49
+ added for cache hits. Health/resource telemetry and local monitoring retain their
50
+ existing cadence.
51
+
34
52
  Attribution adds fields to existing events and uses the existing analytics
35
53
  opt-out. It does not scan running apps or send prompts, search text, or raw
36
54
  client names. HTTP MCP now reports successful searches through the same
37
55
  best-effort local telemetry endpoint as stdio MCP; empty/failed searches do not
38
56
  produce qualified-value events.
39
57
 
58
+ ## Call diagnostics and source references
59
+
60
+ New engine builds accept `POST /internal/telemetry/mcp-call` through the same
61
+ local API authentication and analytics consent boundary as other private MCP
62
+ telemetry. `mcp_tool_call_completed` records one best-effort observation per
63
+ completed dispatcher call: schema version, random request ID, package version,
64
+ fixed client/tool/transport names, `ok`/`empty`/`error`, normalized error category,
65
+ duration, content bytes, optional search count/truncation and known report loss.
66
+ No arguments, result text, error strings or raw client names are included.
67
+ The existing `qualified_value_event` definition is unchanged.
68
+
69
+ `ok` means the dispatcher returned without a protocol/tool error. It does not
70
+ mean the answer was correct or the user completed their task. Search alone sets
71
+ `result_count` and `truncated`; absent fields on other tools remain unknown.
72
+ `response_bytes` counts UTF-8 text and base64 content bytes, not total serialized
73
+ JSON or model tokens. Duration includes tool execution, excluding report delivery.
74
+
75
+ The request ID is returned in `_meta["screenpipe/request_id"]` and forwarded to
76
+ the local API as `x-screenpipe-request-id`. It is one call's correlation key, not
77
+ a user, session or task ID. This change does not add engine log persistence for
78
+ that header. Local helpers report to the engine, which applies its telemetry
79
+ opt-out. `SCREENPIPE_DISABLE_TELEMETRY` and `SCREENPIPE_TELEMETRY_DISABLED` also
80
+ suppress call reporting; CI suppresses it by default. Delivery is capped at eight
81
+ pending requests per reporter and expires after one second. Old engines, opt-out,
82
+ backend outages and process exit can lose reports. `dropped_reports` reports
83
+ known local losses on a later delivery, not complete observation coverage.
84
+
85
+ Screen/audio/input search results preserve backend source identifiers and deep
86
+ links. Both package transports cap text at 1,000 characters per hit by default;
87
+ `max_content_length=0` requests full text for a scoped read. The cap excludes
88
+ metadata, tags and images, so callers should also limit result count. Final pages
89
+ do not suggest another offset. In stdio, pass a returned `frame_id` to
90
+ `frame-context` or `get-frame-elements` to inspect evidence beyond the snippet.
91
+ HTTP clients can open the returned Screenpipe link or make a narrower search.
92
+ A missing source ID stays missing.
93
+
94
+ | Package capability | stdio | HTTP |
95
+ |---|---|---|
96
+ | Search with source references and text caps | `search-content` | `search_content` |
97
+ | Bundled guides | `screenpipe-skills` | `screenpipe-skills` |
98
+ | Frame inspection and saved workflows | Available | Not exposed |
99
+ | Enterprise team tools | With team configuration | Not exposed |
100
+ | Call diagnostics | Best effort | Best effort, per session |
101
+
102
+ This describes this package, not the separate hosted personal or enterprise MCP
103
+ services. A hung backend read no longer keeps a stdio helper alive after stdin
104
+ EOF: shutdown is bounded to 500 ms and affects only that client's process.
105
+ This does not diagnose desktop recording health or reap another client's process.
106
+
40
107
  ## Installable plugins
41
108
 
42
109
  Build the local Claude Desktop extension and the cloud plugin from source:
@@ -472,7 +539,8 @@ Questions or concerns: open an issue at
472
539
 
473
540
  `list-workflows` searches the desktop Workflows catalog; `get-workflow` returns
474
541
  ordered steps, gaps and historical accessibility evidence through the same
475
- authenticated API. Both tools are available in stdio and HTTP modes. The running
542
+ authenticated API. Both tools are available in stdio mode. The package HTTP mode exposes
543
+ `search_content` and `screenpipe-skills`; it does not expose workflow tools. The running
476
544
  desktop engine must support `/workflows`; an older engine returns an error.
477
545
  Connected clients can use this context to plan automation, but retrieval neither
478
546
  authorizes nor executes actions. Captured bounds/IDs must be resolved again in