screenpipe-mcp 0.20.0 → 0.20.2

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/dist/cli.js CHANGED
@@ -34939,7 +34939,7 @@ var init_esm5 = __esm(() => {
34939
34939
  var require_package = __commonJS(function(exports2, module2) {
34940
34940
  module2.exports = {
34941
34941
  name: "screenpipe-mcp",
34942
- version: "0.20.0",
34942
+ version: "0.20.2",
34943
34943
  mcpName: "io.github.screenpipe/screenpipe-mcp",
34944
34944
  description: "MCP server for screenpipe - search your screen recordings and audio transcriptions",
34945
34945
  main: "dist/index.js",
@@ -34957,7 +34957,8 @@ var require_package = __commonJS(function(exports2, module2) {
34957
34957
  test: "vitest run",
34958
34958
  "test:watch": "vitest",
34959
34959
  "verify:pack": "node scripts/assert-pack-contents.js",
34960
- prepublishOnly: "npm run build"
34960
+ prepublishOnly: "npm run build",
34961
+ "build:installers": "bun scripts/build-installers.mjs"
34961
34962
  },
34962
34963
  keywords: [
34963
34964
  "mcp",
@@ -34972,11 +34973,13 @@ var require_package = __commonJS(function(exports2, module2) {
34972
34973
  author: "Screenpipe",
34973
34974
  license: "SEE LICENSE IN LICENSE.md",
34974
34975
  devDependencies: {
34976
+ "@anthropic-ai/mcpb": "2.1.2",
34975
34977
  "@modelcontextprotocol/sdk": "^1.27.1",
34976
34978
  "@sentry/node": "^10.64.0",
34977
34979
  "@types/node": "^25.3.5",
34978
- typescript: "^5.9.3",
34980
+ fflate: "0.8.2",
34979
34981
  "ts-node": "^10.9.2",
34982
+ typescript: "^5.9.3",
34980
34983
  vitest: "^4.0.18"
34981
34984
  },
34982
34985
  engines: {
@@ -35163,7 +35166,7 @@ var init_telemetry = __esm(() => {
35163
35166
  ];
35164
35167
  });
35165
35168
 
35166
- // node_modules/zod/v4/core/core.js
35169
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js
35167
35170
  function $constructor(name, initializer, params) {
35168
35171
  function init(inst, def) {
35169
35172
  if (!inst._zod) {
@@ -35241,7 +35244,7 @@ var init_core = __esm(() => {
35241
35244
  globalConfig = {};
35242
35245
  });
35243
35246
 
35244
- // node_modules/zod/v4/core/util.js
35247
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js
35245
35248
  function getEnumValues(entries) {
35246
35249
  const numericValues = Object.values(entries).filter((v) => typeof v === "number");
35247
35250
  const values = Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v);
@@ -35667,7 +35670,7 @@ var init_util = __esm(() => {
35667
35670
  };
35668
35671
  });
35669
35672
 
35670
- // node_modules/zod/v4/core/errors.js
35673
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js
35671
35674
  function flattenError(error, mapper = (issue) => issue.message) {
35672
35675
  const fieldErrors = {};
35673
35676
  const formErrors = [];
@@ -35737,7 +35740,7 @@ var init_errors2 = __esm(() => {
35737
35740
  $ZodRealError = $constructor("$ZodError", initializer, { Parent: Error });
35738
35741
  });
35739
35742
 
35740
- // node_modules/zod/v4/core/parse.js
35743
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js
35741
35744
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
35742
35745
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
35743
35746
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -35809,7 +35812,7 @@ var init_parse = __esm(() => {
35809
35812
  safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError);
35810
35813
  });
35811
35814
 
35812
- // node_modules/zod/v4/core/regexes.js
35815
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js
35813
35816
  function emoji() {
35814
35817
  return new RegExp(_emoji, "u");
35815
35818
  }
@@ -35865,7 +35868,7 @@ var init_regexes = __esm(() => {
35865
35868
  uppercase = /^[^a-z]*$/;
35866
35869
  });
35867
35870
 
35868
- // node_modules/zod/v4/core/checks.js
35871
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js
35869
35872
  var $ZodCheck, numericOriginMap, $ZodCheckLessThan, $ZodCheckGreaterThan, $ZodCheckMultipleOf, $ZodCheckNumberFormat, $ZodCheckMaxLength, $ZodCheckMinLength, $ZodCheckLengthEquals, $ZodCheckStringFormat, $ZodCheckRegex, $ZodCheckLowerCase, $ZodCheckUpperCase, $ZodCheckIncludes, $ZodCheckStartsWith, $ZodCheckEndsWith, $ZodCheckOverwrite;
35870
35873
  var init_checks = __esm(() => {
35871
35874
  init_core();
@@ -36260,7 +36263,7 @@ var init_checks = __esm(() => {
36260
36263
  });
36261
36264
  });
36262
36265
 
36263
- // node_modules/zod/v4/core/doc.js
36266
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js
36264
36267
  class Doc {
36265
36268
  constructor(args = []) {
36266
36269
  this.content = [];
@@ -36298,7 +36301,7 @@ class Doc {
36298
36301
  }
36299
36302
  }
36300
36303
 
36301
- // node_modules/zod/v4/core/versions.js
36304
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js
36302
36305
  var version;
36303
36306
  var init_versions = __esm(() => {
36304
36307
  version = {
@@ -36308,7 +36311,7 @@ var init_versions = __esm(() => {
36308
36311
  };
36309
36312
  });
36310
36313
 
36311
- // node_modules/zod/v4/core/schemas.js
36314
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js
36312
36315
  function isValidBase64(data) {
36313
36316
  if (data === "")
36314
36317
  return true;
@@ -37704,7 +37707,7 @@ var init_schemas = __esm(() => {
37704
37707
  });
37705
37708
  });
37706
37709
 
37707
- // node_modules/zod/v4/locales/en.js
37710
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/locales/en.js
37708
37711
  function en_default() {
37709
37712
  return {
37710
37713
  localeError: error2()
@@ -37814,10 +37817,10 @@ var init_en = __esm(() => {
37814
37817
  init_util();
37815
37818
  });
37816
37819
 
37817
- // node_modules/zod/v4/locales/index.js
37820
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/locales/index.js
37818
37821
  var init_locales = () => {};
37819
37822
 
37820
- // node_modules/zod/v4/core/registries.js
37823
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js
37821
37824
  class $ZodRegistry {
37822
37825
  constructor() {
37823
37826
  this._map = new WeakMap;
@@ -37869,7 +37872,7 @@ var init_registries = __esm(() => {
37869
37872
  globalRegistry = globalThis.__zod_globalRegistry;
37870
37873
  });
37871
37874
 
37872
- // node_modules/zod/v4/core/api.js
37875
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js
37873
37876
  function _string(Class, params) {
37874
37877
  return new Class({
37875
37878
  type: "string",
@@ -38340,7 +38343,7 @@ var init_api3 = __esm(() => {
38340
38343
  init_util();
38341
38344
  });
38342
38345
 
38343
- // node_modules/zod/v4/core/to-json-schema.js
38346
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js
38344
38347
  function initializeContext(params) {
38345
38348
  let target = params?.target ?? "draft-2020-12";
38346
38349
  if (target === "draft-4")
@@ -38688,7 +38691,7 @@ var init_to_json_schema = __esm(() => {
38688
38691
  init_registries();
38689
38692
  });
38690
38693
 
38691
- // node_modules/zod/v4/core/json-schema-processors.js
38694
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/json-schema-processors.js
38692
38695
  var formatMap, stringProcessor = (schema, ctx, _json, _params) => {
38693
38696
  const json = _json;
38694
38697
  json.type = "string";
@@ -39006,10 +39009,10 @@ var init_json_schema_processors = __esm(() => {
39006
39009
  };
39007
39010
  });
39008
39011
 
39009
- // node_modules/zod/v4/core/json-schema.js
39012
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/json-schema.js
39010
39013
  var init_json_schema = () => {};
39011
39014
 
39012
- // node_modules/zod/v4/core/index.js
39015
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/index.js
39013
39016
  var init_core2 = __esm(() => {
39014
39017
  init_util();
39015
39018
  init_regexes();
@@ -39026,24 +39029,24 @@ var init_core2 = __esm(() => {
39026
39029
  init_to_json_schema();
39027
39030
  });
39028
39031
 
39029
- // node_modules/zod/v4/mini/parse.js
39032
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/parse.js
39030
39033
  var init_parse2 = __esm(() => {
39031
39034
  init_core2();
39032
39035
  });
39033
39036
 
39034
- // node_modules/zod/v4/mini/schemas.js
39037
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js
39035
39038
  var init_schemas2 = () => {};
39036
39039
 
39037
- // node_modules/zod/v4/mini/checks.js
39040
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/checks.js
39038
39041
  var init_checks2 = () => {};
39039
39042
 
39040
- // node_modules/zod/v4/mini/iso.js
39043
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/iso.js
39041
39044
  var init_iso = () => {};
39042
39045
 
39043
- // node_modules/zod/v4/mini/coerce.js
39046
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/coerce.js
39044
39047
  var init_coerce = () => {};
39045
39048
 
39046
- // node_modules/zod/v4/mini/external.js
39049
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/external.js
39047
39050
  var init_external = __esm(() => {
39048
39051
  init_core2();
39049
39052
  init_locales();
@@ -39054,12 +39057,12 @@ var init_external = __esm(() => {
39054
39057
  init_checks2();
39055
39058
  });
39056
39059
 
39057
- // node_modules/zod/v4/mini/index.js
39060
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/index.js
39058
39061
  var init_mini = __esm(() => {
39059
39062
  init_external();
39060
39063
  });
39061
39064
 
39062
- // node_modules/zod/v4-mini/index.js
39065
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4-mini/index.js
39063
39066
  var init_v4_mini = __esm(() => {
39064
39067
  init_mini();
39065
39068
  });
@@ -39130,12 +39133,12 @@ var init_zod_compat = __esm(() => {
39130
39133
  init_v4_mini();
39131
39134
  });
39132
39135
 
39133
- // node_modules/zod/v4/classic/checks.js
39136
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/checks.js
39134
39137
  var init_checks3 = __esm(() => {
39135
39138
  init_core2();
39136
39139
  });
39137
39140
 
39138
- // node_modules/zod/v4/classic/iso.js
39141
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js
39139
39142
  function datetime2(params) {
39140
39143
  return _isoDateTime(ZodISODateTime, params);
39141
39144
  }
@@ -39170,7 +39173,7 @@ var init_iso2 = __esm(() => {
39170
39173
  });
39171
39174
  });
39172
39175
 
39173
- // node_modules/zod/v4/classic/errors.js
39176
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js
39174
39177
  var initializer2 = (inst, issues) => {
39175
39178
  $ZodError.init(inst, issues);
39176
39179
  inst.name = "ZodError";
@@ -39210,7 +39213,7 @@ var init_errors3 = __esm(() => {
39210
39213
  });
39211
39214
  });
39212
39215
 
39213
- // node_modules/zod/v4/classic/parse.js
39216
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js
39214
39217
  var parse4, parseAsync2, safeParse3, safeParseAsync2, encode2, decode2, encodeAsync2, decodeAsync2, safeEncode2, safeDecode2, safeEncodeAsync2, safeDecodeAsync2;
39215
39218
  var init_parse3 = __esm(() => {
39216
39219
  init_core2();
@@ -39229,7 +39232,7 @@ var init_parse3 = __esm(() => {
39229
39232
  safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
39230
39233
  });
39231
39234
 
39232
- // node_modules/zod/v4/classic/schemas.js
39235
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js
39233
39236
  function string2(params) {
39234
39237
  return _string(ZodString, params);
39235
39238
  }
@@ -39879,16 +39882,16 @@ var init_schemas3 = __esm(() => {
39879
39882
  });
39880
39883
  });
39881
39884
 
39882
- // node_modules/zod/v4/classic/compat.js
39885
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/compat.js
39883
39886
  var ZodFirstPartyTypeKind;
39884
39887
  var init_compat = __esm(() => {
39885
39888
  (function(ZodFirstPartyTypeKind) {})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
39886
39889
  });
39887
39890
 
39888
- // node_modules/zod/v4/classic/coerce.js
39891
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/coerce.js
39889
39892
  var init_coerce2 = () => {};
39890
39893
 
39891
- // node_modules/zod/v4/classic/external.js
39894
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/external.js
39892
39895
  var init_external2 = __esm(() => {
39893
39896
  init_core2();
39894
39897
  init_core2();
@@ -39904,12 +39907,12 @@ var init_external2 = __esm(() => {
39904
39907
  config(en_default());
39905
39908
  });
39906
39909
 
39907
- // node_modules/zod/v4/classic/index.js
39910
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/index.js
39908
39911
  var init_classic = __esm(() => {
39909
39912
  init_external2();
39910
39913
  });
39911
39914
 
39912
- // node_modules/zod/v4/index.js
39915
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/index.js
39913
39916
  var init_v4 = __esm(() => {
39914
39917
  init_classic();
39915
39918
  });
@@ -49991,6 +49994,7 @@ var init_qualified_value = __esm(() => {
49991
49994
  "hermes",
49992
49995
  "runner",
49993
49996
  "windsurf",
49997
+ "vscode",
49994
49998
  "grok",
49995
49999
  "grokbot"
49996
50000
  ];
@@ -50082,10 +50086,12 @@ function constantTimeEq(a, b) {
50082
50086
  }
50083
50087
  function makeFetchAPI(screenpipePort, client) {
50084
50088
  const base = (process.env.SCREENPIPE_API_URL || `http://localhost:${screenpipePort}`).replace(/\/+$/, "");
50089
+ const apiKey = process.env.SCREENPIPE_LOCAL_API_KEY || process.env.SCREENPIPE_API_KEY;
50085
50090
  return async (endpoint, options = {}) => fetch(`${base}${endpoint}`, {
50086
50091
  ...options,
50087
50092
  headers: {
50088
50093
  "Content-Type": "application/json",
50094
+ ...apiKey ? { Authorization: `Bearer ${apiKey}` } : {},
50089
50095
  "x-screenpipe-client": "mcp",
50090
50096
  "x-screenpipe-agent": client(),
50091
50097
  ...options.headers
@@ -75,7 +75,7 @@ var __esm = (fn, res, err) => () => {
75
75
  return res;
76
76
  };
77
77
 
78
- // node_modules/zod/v4/core/core.js
78
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js
79
79
  function $constructor(name, initializer, params) {
80
80
  function init(inst, def) {
81
81
  if (!inst._zod) {
@@ -153,7 +153,7 @@ var init_core = __esm(() => {
153
153
  globalConfig = {};
154
154
  });
155
155
 
156
- // node_modules/zod/v4/core/util.js
156
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js
157
157
  function getEnumValues(entries) {
158
158
  const numericValues = Object.values(entries).filter((v) => typeof v === "number");
159
159
  const values = Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v);
@@ -579,7 +579,7 @@ var init_util = __esm(() => {
579
579
  };
580
580
  });
581
581
 
582
- // node_modules/zod/v4/core/errors.js
582
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js
583
583
  function flattenError(error, mapper = (issue) => issue.message) {
584
584
  const fieldErrors = {};
585
585
  const formErrors = [];
@@ -649,7 +649,7 @@ var init_errors = __esm(() => {
649
649
  $ZodRealError = $constructor("$ZodError", initializer, { Parent: Error });
650
650
  });
651
651
 
652
- // node_modules/zod/v4/core/parse.js
652
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js
653
653
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
654
654
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
655
655
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -721,7 +721,7 @@ var init_parse = __esm(() => {
721
721
  safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError);
722
722
  });
723
723
 
724
- // node_modules/zod/v4/core/regexes.js
724
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js
725
725
  function emoji() {
726
726
  return new RegExp(_emoji, "u");
727
727
  }
@@ -777,7 +777,7 @@ var init_regexes = __esm(() => {
777
777
  uppercase = /^[^a-z]*$/;
778
778
  });
779
779
 
780
- // node_modules/zod/v4/core/checks.js
780
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js
781
781
  var $ZodCheck, numericOriginMap, $ZodCheckLessThan, $ZodCheckGreaterThan, $ZodCheckMultipleOf, $ZodCheckNumberFormat, $ZodCheckMaxLength, $ZodCheckMinLength, $ZodCheckLengthEquals, $ZodCheckStringFormat, $ZodCheckRegex, $ZodCheckLowerCase, $ZodCheckUpperCase, $ZodCheckIncludes, $ZodCheckStartsWith, $ZodCheckEndsWith, $ZodCheckOverwrite;
782
782
  var init_checks = __esm(() => {
783
783
  init_core();
@@ -1172,7 +1172,7 @@ var init_checks = __esm(() => {
1172
1172
  });
1173
1173
  });
1174
1174
 
1175
- // node_modules/zod/v4/core/doc.js
1175
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js
1176
1176
  class Doc {
1177
1177
  constructor(args = []) {
1178
1178
  this.content = [];
@@ -1210,7 +1210,7 @@ class Doc {
1210
1210
  }
1211
1211
  }
1212
1212
 
1213
- // node_modules/zod/v4/core/versions.js
1213
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js
1214
1214
  var version;
1215
1215
  var init_versions = __esm(() => {
1216
1216
  version = {
@@ -1220,7 +1220,7 @@ var init_versions = __esm(() => {
1220
1220
  };
1221
1221
  });
1222
1222
 
1223
- // node_modules/zod/v4/core/schemas.js
1223
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js
1224
1224
  function isValidBase64(data) {
1225
1225
  if (data === "")
1226
1226
  return true;
@@ -2616,7 +2616,7 @@ var init_schemas = __esm(() => {
2616
2616
  });
2617
2617
  });
2618
2618
 
2619
- // node_modules/zod/v4/locales/en.js
2619
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/locales/en.js
2620
2620
  function en_default() {
2621
2621
  return {
2622
2622
  localeError: error()
@@ -2726,10 +2726,10 @@ var init_en = __esm(() => {
2726
2726
  init_util();
2727
2727
  });
2728
2728
 
2729
- // node_modules/zod/v4/locales/index.js
2729
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/locales/index.js
2730
2730
  var init_locales = () => {};
2731
2731
 
2732
- // node_modules/zod/v4/core/registries.js
2732
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js
2733
2733
  class $ZodRegistry {
2734
2734
  constructor() {
2735
2735
  this._map = new WeakMap;
@@ -2781,7 +2781,7 @@ var init_registries = __esm(() => {
2781
2781
  globalRegistry = globalThis.__zod_globalRegistry;
2782
2782
  });
2783
2783
 
2784
- // node_modules/zod/v4/core/api.js
2784
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js
2785
2785
  function _string(Class, params) {
2786
2786
  return new Class({
2787
2787
  type: "string",
@@ -3252,7 +3252,7 @@ var init_api = __esm(() => {
3252
3252
  init_util();
3253
3253
  });
3254
3254
 
3255
- // node_modules/zod/v4/core/to-json-schema.js
3255
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js
3256
3256
  function initializeContext(params) {
3257
3257
  let target = params?.target ?? "draft-2020-12";
3258
3258
  if (target === "draft-4")
@@ -3600,7 +3600,7 @@ var init_to_json_schema = __esm(() => {
3600
3600
  init_registries();
3601
3601
  });
3602
3602
 
3603
- // node_modules/zod/v4/core/json-schema-processors.js
3603
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/json-schema-processors.js
3604
3604
  var formatMap, stringProcessor = (schema, ctx, _json, _params) => {
3605
3605
  const json = _json;
3606
3606
  json.type = "string";
@@ -3918,10 +3918,10 @@ var init_json_schema_processors = __esm(() => {
3918
3918
  };
3919
3919
  });
3920
3920
 
3921
- // node_modules/zod/v4/core/json-schema.js
3921
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/json-schema.js
3922
3922
  var init_json_schema = () => {};
3923
3923
 
3924
- // node_modules/zod/v4/core/index.js
3924
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/index.js
3925
3925
  var init_core2 = __esm(() => {
3926
3926
  init_util();
3927
3927
  init_regexes();
@@ -3938,24 +3938,24 @@ var init_core2 = __esm(() => {
3938
3938
  init_to_json_schema();
3939
3939
  });
3940
3940
 
3941
- // node_modules/zod/v4/mini/parse.js
3941
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/parse.js
3942
3942
  var init_parse2 = __esm(() => {
3943
3943
  init_core2();
3944
3944
  });
3945
3945
 
3946
- // node_modules/zod/v4/mini/schemas.js
3946
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js
3947
3947
  var init_schemas2 = () => {};
3948
3948
 
3949
- // node_modules/zod/v4/mini/checks.js
3949
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/checks.js
3950
3950
  var init_checks2 = () => {};
3951
3951
 
3952
- // node_modules/zod/v4/mini/iso.js
3952
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/iso.js
3953
3953
  var init_iso = () => {};
3954
3954
 
3955
- // node_modules/zod/v4/mini/coerce.js
3955
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/coerce.js
3956
3956
  var init_coerce = () => {};
3957
3957
 
3958
- // node_modules/zod/v4/mini/external.js
3958
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/external.js
3959
3959
  var init_external = __esm(() => {
3960
3960
  init_core2();
3961
3961
  init_locales();
@@ -3966,12 +3966,12 @@ var init_external = __esm(() => {
3966
3966
  init_checks2();
3967
3967
  });
3968
3968
 
3969
- // node_modules/zod/v4/mini/index.js
3969
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/index.js
3970
3970
  var init_mini = __esm(() => {
3971
3971
  init_external();
3972
3972
  });
3973
3973
 
3974
- // node_modules/zod/v4-mini/index.js
3974
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4-mini/index.js
3975
3975
  var init_v4_mini = __esm(() => {
3976
3976
  init_mini();
3977
3977
  });
@@ -4042,12 +4042,12 @@ var init_zod_compat = __esm(() => {
4042
4042
  init_v4_mini();
4043
4043
  });
4044
4044
 
4045
- // node_modules/zod/v4/classic/checks.js
4045
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/checks.js
4046
4046
  var init_checks3 = __esm(() => {
4047
4047
  init_core2();
4048
4048
  });
4049
4049
 
4050
- // node_modules/zod/v4/classic/iso.js
4050
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js
4051
4051
  function datetime2(params) {
4052
4052
  return _isoDateTime(ZodISODateTime, params);
4053
4053
  }
@@ -4082,7 +4082,7 @@ var init_iso2 = __esm(() => {
4082
4082
  });
4083
4083
  });
4084
4084
 
4085
- // node_modules/zod/v4/classic/errors.js
4085
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js
4086
4086
  var initializer2 = (inst, issues) => {
4087
4087
  $ZodError.init(inst, issues);
4088
4088
  inst.name = "ZodError";
@@ -4122,7 +4122,7 @@ var init_errors2 = __esm(() => {
4122
4122
  });
4123
4123
  });
4124
4124
 
4125
- // node_modules/zod/v4/classic/parse.js
4125
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js
4126
4126
  var parse4, parseAsync2, safeParse3, safeParseAsync2, encode2, decode2, encodeAsync2, decodeAsync2, safeEncode2, safeDecode2, safeEncodeAsync2, safeDecodeAsync2;
4127
4127
  var init_parse3 = __esm(() => {
4128
4128
  init_core2();
@@ -4141,7 +4141,7 @@ var init_parse3 = __esm(() => {
4141
4141
  safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
4142
4142
  });
4143
4143
 
4144
- // node_modules/zod/v4/classic/schemas.js
4144
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js
4145
4145
  function string2(params) {
4146
4146
  return _string(ZodString, params);
4147
4147
  }
@@ -4791,16 +4791,16 @@ var init_schemas3 = __esm(() => {
4791
4791
  });
4792
4792
  });
4793
4793
 
4794
- // node_modules/zod/v4/classic/compat.js
4794
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/compat.js
4795
4795
  var ZodFirstPartyTypeKind;
4796
4796
  var init_compat = __esm(() => {
4797
4797
  (function(ZodFirstPartyTypeKind) {})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
4798
4798
  });
4799
4799
 
4800
- // node_modules/zod/v4/classic/coerce.js
4800
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/coerce.js
4801
4801
  var init_coerce2 = () => {};
4802
4802
 
4803
- // node_modules/zod/v4/classic/external.js
4803
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/external.js
4804
4804
  var init_external2 = __esm(() => {
4805
4805
  init_core2();
4806
4806
  init_core2();
@@ -4816,12 +4816,12 @@ var init_external2 = __esm(() => {
4816
4816
  config(en_default());
4817
4817
  });
4818
4818
 
4819
- // node_modules/zod/v4/classic/index.js
4819
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/index.js
4820
4820
  var init_classic = __esm(() => {
4821
4821
  init_external2();
4822
4822
  });
4823
4823
 
4824
- // node_modules/zod/v4/index.js
4824
+ // node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/index.js
4825
4825
  var init_v4 = __esm(() => {
4826
4826
  init_classic();
4827
4827
  });
@@ -49663,7 +49663,7 @@ var init_esm6 = __esm(() => {
49663
49663
  var require_package = __commonJS(function(exports2, module2) {
49664
49664
  module2.exports = {
49665
49665
  name: "screenpipe-mcp",
49666
- version: "0.20.0",
49666
+ version: "0.20.2",
49667
49667
  mcpName: "io.github.screenpipe/screenpipe-mcp",
49668
49668
  description: "MCP server for screenpipe - search your screen recordings and audio transcriptions",
49669
49669
  main: "dist/index.js",
@@ -49681,7 +49681,8 @@ var require_package = __commonJS(function(exports2, module2) {
49681
49681
  test: "vitest run",
49682
49682
  "test:watch": "vitest",
49683
49683
  "verify:pack": "node scripts/assert-pack-contents.js",
49684
- prepublishOnly: "npm run build"
49684
+ prepublishOnly: "npm run build",
49685
+ "build:installers": "bun scripts/build-installers.mjs"
49685
49686
  },
49686
49687
  keywords: [
49687
49688
  "mcp",
@@ -49696,11 +49697,13 @@ var require_package = __commonJS(function(exports2, module2) {
49696
49697
  author: "Screenpipe",
49697
49698
  license: "SEE LICENSE IN LICENSE.md",
49698
49699
  devDependencies: {
49700
+ "@anthropic-ai/mcpb": "2.1.2",
49699
49701
  "@modelcontextprotocol/sdk": "^1.27.1",
49700
49702
  "@sentry/node": "^10.64.0",
49701
49703
  "@types/node": "^25.3.5",
49702
- typescript: "^5.9.3",
49704
+ fflate: "0.8.2",
49703
49705
  "ts-node": "^10.9.2",
49706
+ typescript: "^5.9.3",
49704
49707
  vitest: "^4.0.18"
49705
49708
  },
49706
49709
  engines: {
@@ -49991,6 +49994,7 @@ var init_qualified_value = __esm(() => {
49991
49994
  "hermes",
49992
49995
  "runner",
49993
49996
  "windsurf",
49997
+ "vscode",
49994
49998
  "grok",
49995
49999
  "grokbot"
49996
50000
  ];
@@ -50083,10 +50087,12 @@ function constantTimeEq(a, b) {
50083
50087
  }
50084
50088
  function makeFetchAPI(screenpipePort, client) {
50085
50089
  const base = (process.env.SCREENPIPE_API_URL || `http://localhost:${screenpipePort}`).replace(/\/+$/, "");
50090
+ const apiKey = process.env.SCREENPIPE_LOCAL_API_KEY || process.env.SCREENPIPE_API_KEY;
50086
50091
  return async (endpoint, options = {}) => fetch(`${base}${endpoint}`, {
50087
50092
  ...options,
50088
50093
  headers: {
50089
50094
  "Content-Type": "application/json",
50095
+ ...apiKey ? { Authorization: `Bearer ${apiKey}` } : {},
50090
50096
  "x-screenpipe-client": "mcp",
50091
50097
  "x-screenpipe-agent": client(),
50092
50098
  ...options.headers