mcp-scraper 0.36.0 → 0.37.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 (53) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/api-server.cjs +766 -168
  3. package/dist/bin/api-server.cjs.map +1 -1
  4. package/dist/bin/api-server.js +3 -3
  5. package/dist/bin/mcp-scraper-cli.cjs +1 -1
  6. package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
  7. package/dist/bin/mcp-scraper-cli.js +1 -1
  8. package/dist/bin/mcp-scraper-install.cjs +1 -1
  9. package/dist/bin/mcp-scraper-install.cjs.map +1 -1
  10. package/dist/bin/mcp-scraper-install.js +1 -1
  11. package/dist/bin/mcp-stdio-server.cjs +52 -8
  12. package/dist/bin/mcp-stdio-server.cjs.map +1 -1
  13. package/dist/bin/mcp-stdio-server.js +5 -5
  14. package/dist/bin/paa-harvest.cjs.map +1 -1
  15. package/dist/bin/paa-harvest.js +3 -3
  16. package/dist/chunk-3LWYPAU5.js +7 -0
  17. package/dist/chunk-3LWYPAU5.js.map +1 -0
  18. package/dist/{chunk-IFYER7O4.js → chunk-CSCD2HNS.js} +132 -2
  19. package/dist/chunk-CSCD2HNS.js.map +1 -0
  20. package/dist/{chunk-D7LM5QZN.js → chunk-FSAXLDB3.js} +2 -2
  21. package/dist/{chunk-5RULXBJ7.js → chunk-JK2FRDAP.js} +55 -11
  22. package/dist/{chunk-5RULXBJ7.js.map → chunk-JK2FRDAP.js.map} +1 -1
  23. package/dist/{chunk-ANCGXUQJ.js → chunk-LOPKN3YL.js} +2 -2
  24. package/dist/{chunk-E5UEELA7.js → chunk-MA5JBAUZ.js} +2 -2
  25. package/dist/{chunk-AN3VQARU.js → chunk-PUJFYJXB.js} +2 -2
  26. package/dist/{chunk-4ZIJ3BKZ.js → chunk-PWPUKR5U.js} +4 -2
  27. package/dist/{chunk-4ZIJ3BKZ.js.map → chunk-PWPUKR5U.js.map} +1 -1
  28. package/dist/{chunk-O2MCWFXQ.js → chunk-Q35WZJJK.js} +3 -3
  29. package/dist/{db-N6MPVMEF.js → db-N3YECFWR.js} +6 -2
  30. package/dist/{extract-bundle-M4SDJG3V.js → extract-bundle-346R6MXD.js} +4 -4
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.js +3 -3
  33. package/dist/{location-data-repository-Z4NQOU5Y.js → location-data-repository-O2VII3ON.js} +3 -3
  34. package/dist/{server-ZIGAFKOL.js → server-QKDDEBVQ.js} +500 -99
  35. package/dist/server-QKDDEBVQ.js.map +1 -0
  36. package/dist/{site-extract-repository-PGQZNW6V.js → site-extract-repository-I3VM6WXN.js} +4 -4
  37. package/dist/{worker-EBB6CTGW.js → worker-TTFXPPDK.js} +6 -6
  38. package/docs/mcp-tool-manifest.generated.json +182 -6
  39. package/package.json +2 -2
  40. package/dist/chunk-4HO66323.js +0 -7
  41. package/dist/chunk-4HO66323.js.map +0 -1
  42. package/dist/chunk-IFYER7O4.js.map +0 -1
  43. package/dist/server-ZIGAFKOL.js.map +0 -1
  44. /package/dist/{chunk-D7LM5QZN.js.map → chunk-FSAXLDB3.js.map} +0 -0
  45. /package/dist/{chunk-ANCGXUQJ.js.map → chunk-LOPKN3YL.js.map} +0 -0
  46. /package/dist/{chunk-E5UEELA7.js.map → chunk-MA5JBAUZ.js.map} +0 -0
  47. /package/dist/{chunk-AN3VQARU.js.map → chunk-PUJFYJXB.js.map} +0 -0
  48. /package/dist/{chunk-O2MCWFXQ.js.map → chunk-Q35WZJJK.js.map} +0 -0
  49. /package/dist/{db-N6MPVMEF.js.map → db-N3YECFWR.js.map} +0 -0
  50. /package/dist/{extract-bundle-M4SDJG3V.js.map → extract-bundle-346R6MXD.js.map} +0 -0
  51. /package/dist/{location-data-repository-Z4NQOU5Y.js.map → location-data-repository-O2VII3ON.js.map} +0 -0
  52. /package/dist/{site-extract-repository-PGQZNW6V.js.map → site-extract-repository-I3VM6WXN.js.map} +0 -0
  53. /package/dist/{worker-EBB6CTGW.js.map → worker-TTFXPPDK.js.map} +0 -0
@@ -26,10 +26,10 @@ import {
26
26
  setExtractJobTotal,
27
27
  settleExtractJob,
28
28
  terminalExtractJobStatus
29
- } from "./chunk-O2MCWFXQ.js";
30
- import "./chunk-4ZIJ3BKZ.js";
29
+ } from "./chunk-Q35WZJJK.js";
30
+ import "./chunk-PWPUKR5U.js";
31
31
  import "./chunk-44HZLHDV.js";
32
- import "./chunk-IFYER7O4.js";
32
+ import "./chunk-CSCD2HNS.js";
33
33
  export {
34
34
  abandonExtractSettlement,
35
35
  claimFailedExtractJobForRefinalize,
@@ -59,4 +59,4 @@ export {
59
59
  settleExtractJob,
60
60
  terminalExtractJobStatus
61
61
  };
62
- //# sourceMappingURL=site-extract-repository-PGQZNW6V.js.map
62
+ //# sourceMappingURL=site-extract-repository-I3VM6WXN.js.map
@@ -3,20 +3,20 @@ import {
3
3
  createHarvestAttemptRecorder,
4
4
  harvestProblemResponse,
5
5
  serializeHarvestProblem
6
- } from "./chunk-D7LM5QZN.js";
6
+ } from "./chunk-FSAXLDB3.js";
7
7
  import {
8
8
  harvest
9
- } from "./chunk-ANCGXUQJ.js";
9
+ } from "./chunk-LOPKN3YL.js";
10
10
  import {
11
11
  browserServiceApiKey,
12
12
  runWithCostContext
13
- } from "./chunk-E5UEELA7.js";
13
+ } from "./chunk-MA5JBAUZ.js";
14
14
  import "./chunk-K443GQY5.js";
15
15
  import "./chunk-CB5C3BPB.js";
16
16
  import {
17
17
  MC_COSTS,
18
18
  serpActualCostMc
19
- } from "./chunk-4ZIJ3BKZ.js";
19
+ } from "./chunk-PWPUKR5U.js";
20
20
  import "./chunk-44HZLHDV.js";
21
21
  import {
22
22
  claimPendingJob,
@@ -25,7 +25,7 @@ import {
25
25
  debitMc,
26
26
  failJob,
27
27
  listHarvestAttempts
28
- } from "./chunk-IFYER7O4.js";
28
+ } from "./chunk-CSCD2HNS.js";
29
29
 
30
30
  // src/api/webhook.ts
31
31
  async function deliverWebhook(url, payload, retries = 3) {
@@ -139,4 +139,4 @@ export {
139
139
  startWorker,
140
140
  tickOnce
141
141
  };
142
- //# sourceMappingURL=worker-EBB6CTGW.js.map
142
+ //# sourceMappingURL=worker-TTFXPPDK.js.map
@@ -1,12 +1,12 @@
1
1
  {
2
- "generatedAt": "2026-07-28T16:05:19.583Z",
2
+ "generatedAt": "2026-07-28T17:50:58.346Z",
3
3
  "generatedFrom": "dist/bin/mcp-stdio-server.js",
4
4
  "serverInfo": {
5
5
  "name": "mcp-scraper",
6
- "version": "0.34.1"
6
+ "version": "0.37.0"
7
7
  },
8
8
  "counts": {
9
- "unified_stdio": 170
9
+ "unified_stdio": 171
10
10
  },
11
11
  "surfaces": {
12
12
  "unified_stdio": [
@@ -122,6 +122,7 @@
122
122
  "memory-search",
123
123
  "memory-suggest",
124
124
  "memory-upload",
125
+ "merge-memory-tags",
125
126
  "meta_ad_creative_media",
126
127
  "my-mentions",
127
128
  "pause-scheduled-action",
@@ -11726,7 +11727,14 @@
11726
11727
  "type": "string"
11727
11728
  },
11728
11729
  "maxItems": 8,
11729
- "description": "Reviewed canonical tags. Existing tags should be resolved first; when omitted, deterministic source/topic tags are generated."
11730
+ "description": "Reviewed canonical tags. Tags resolve against the account's existing vocabulary; new tags require a one-line description. When omitted, only deterministic source-provenance tags are recorded."
11731
+ },
11732
+ "tagDescriptions": {
11733
+ "type": "object",
11734
+ "additionalProperties": {
11735
+ "type": "string"
11736
+ },
11737
+ "description": "One-line meaning for any supplied tag that is new to the account, keyed by tag."
11730
11738
  },
11731
11739
  "related": {
11732
11740
  "type": "array",
@@ -14469,6 +14477,10 @@
14469
14477
  },
14470
14478
  "description": {
14471
14479
  "type": "string"
14480
+ },
14481
+ "acceptCanonical": {
14482
+ "type": "string",
14483
+ "description": "Reuse this existing tag instead of the proposed one, confirming a candidate returned by an earlier review. The proposed spelling is recorded as its alias."
14472
14484
  }
14473
14485
  },
14474
14486
  "required": [
@@ -14479,7 +14491,7 @@
14479
14491
  "additionalProperties": false
14480
14492
  },
14481
14493
  "maxItems": 8,
14482
- "description": "Required justification for any tag that does not already exist. Existing exact/alias/near tags are canonicalized automatically; a new tag is accepted only when its matching decision has central=true and reusable=true."
14494
+ "description": "Required justification for any tag that does not already exist. Tags resolve against the account's existing vocabulary; new tags require a one-line description."
14483
14495
  }
14484
14496
  },
14485
14497
  "required": [
@@ -14525,6 +14537,7 @@
14525
14537
  "type": "string",
14526
14538
  "enum": [
14527
14539
  "reuse",
14540
+ "review",
14528
14541
  "create",
14529
14542
  "omit"
14530
14543
  ]
@@ -14532,6 +14545,36 @@
14532
14545
  "tag": {
14533
14546
  "type": "string"
14534
14547
  },
14548
+ "candidates": {
14549
+ "type": "array",
14550
+ "items": {
14551
+ "type": "object",
14552
+ "properties": {
14553
+ "tag": {
14554
+ "type": "string"
14555
+ },
14556
+ "matchedVia": {
14557
+ "type": "string"
14558
+ },
14559
+ "score": {
14560
+ "type": "number"
14561
+ },
14562
+ "description": {
14563
+ "type": [
14564
+ "string",
14565
+ "null"
14566
+ ]
14567
+ }
14568
+ },
14569
+ "required": [
14570
+ "tag",
14571
+ "matchedVia",
14572
+ "score",
14573
+ "description"
14574
+ ],
14575
+ "additionalProperties": false
14576
+ }
14577
+ },
14535
14578
  "reason": {
14536
14579
  "type": "string"
14537
14580
  }
@@ -15434,6 +15477,13 @@
15434
15477
  "baseRevision": {
15435
15478
  "type": "number",
15436
15479
  "description": "Revision the edit is based on (from a prior get/put). When provided, the write only applies if the note is still at this revision; otherwise it is rejected as a conflict instead of silently overwriting a concurrent edit. Omit for last-write-wins (fine for solo notes)."
15480
+ },
15481
+ "tagDescriptions": {
15482
+ "type": "object",
15483
+ "additionalProperties": {
15484
+ "type": "string"
15485
+ },
15486
+ "description": "One-line meaning for any tag in props.tags that is new to the account, keyed by tag. Tags resolve against the account's existing vocabulary; new tags require a one-line description."
15437
15487
  }
15438
15488
  },
15439
15489
  "required": [
@@ -16101,6 +16151,76 @@
16101
16151
  "taskSupport": "forbidden"
16102
16152
  }
16103
16153
  },
16154
+ {
16155
+ "name": "merge-memory-tags",
16156
+ "title": "Merge Memory Tags",
16157
+ "description": "Collapse a duplicate tag into the canonical one across the whole account: every note using \"from\" is retagged to \"into\", \"from\" is recorded as an alias of \"into\", and the duplicate is removed from the vocabulary. Use when list-memory-tags shows two spellings of one concept. Irreversible; requires write scope.",
16158
+ "inputSchema": {
16159
+ "type": "object",
16160
+ "properties": {
16161
+ "from": {
16162
+ "type": "string",
16163
+ "minLength": 1,
16164
+ "description": "The duplicate tag to retire."
16165
+ },
16166
+ "into": {
16167
+ "type": "string",
16168
+ "minLength": 1,
16169
+ "description": "The canonical tag to keep. Every note using \"from\" is retagged to this."
16170
+ }
16171
+ },
16172
+ "required": [
16173
+ "from",
16174
+ "into"
16175
+ ],
16176
+ "additionalProperties": false,
16177
+ "$schema": "http://json-schema.org/draft-07/schema#"
16178
+ },
16179
+ "outputSchema": {
16180
+ "type": "object",
16181
+ "properties": {
16182
+ "ok": {
16183
+ "type": "boolean"
16184
+ },
16185
+ "from": {
16186
+ "type": "string"
16187
+ },
16188
+ "into": {
16189
+ "type": "string"
16190
+ },
16191
+ "notesRetagged": {
16192
+ "type": "number"
16193
+ },
16194
+ "aliases": {
16195
+ "type": "array",
16196
+ "items": {
16197
+ "type": "string"
16198
+ }
16199
+ },
16200
+ "descriptionCopied": {
16201
+ "type": "boolean"
16202
+ },
16203
+ "error": {
16204
+ "type": "string"
16205
+ }
16206
+ },
16207
+ "required": [
16208
+ "ok"
16209
+ ],
16210
+ "additionalProperties": false,
16211
+ "$schema": "http://json-schema.org/draft-07/schema#"
16212
+ },
16213
+ "annotations": {
16214
+ "title": "Merge Memory Tags",
16215
+ "readOnlyHint": false,
16216
+ "destructiveHint": true,
16217
+ "idempotentHint": true,
16218
+ "openWorldHint": false
16219
+ },
16220
+ "execution": {
16221
+ "taskSupport": "forbidden"
16222
+ }
16223
+ },
16104
16224
  {
16105
16225
  "name": "meta_ad_creative_media",
16106
16226
  "title": "View Meta Ad Creative Media",
@@ -18626,7 +18746,7 @@
18626
18746
  {
18627
18747
  "name": "resolve-memory-tags",
18628
18748
  "title": "Resolve Memory Tags",
18629
- "description": "Resolve proposed concepts against the live tag vocabulary. Always inspect the complete vocabulary with list-memory-tags first. Returns reuse, create, or omit; a new tag is appropriate only when no equivalent exists and the concept is central and reusable.",
18749
+ "description": "Resolve proposed concepts against the live tag vocabulary. Always inspect the complete vocabulary with list-memory-tags first. Returns reuse, review, create, or omit: spelling and singular/plural variants resolve to the canonical tag silently, while close and semantically related tags come back as ranked candidates for you to choose from. A new tag is appropriate only when no equivalent exists and the concept is central and reusable.",
18630
18750
  "inputSchema": {
18631
18751
  "type": "object",
18632
18752
  "properties": {
@@ -18656,6 +18776,13 @@
18656
18776
  },
18657
18777
  "minItems": 1,
18658
18778
  "maxItems": 20
18779
+ },
18780
+ "accept": {
18781
+ "type": "object",
18782
+ "additionalProperties": {
18783
+ "type": "string"
18784
+ },
18785
+ "description": "Confirm a candidate returned by an earlier review, as {proposedTag: canonicalTag}. The proposed spelling is recorded as an alias of the canonical tag so the same judgement is never re-litigated."
18659
18786
  }
18660
18787
  },
18661
18788
  "required": [
@@ -18685,6 +18812,7 @@
18685
18812
  "type": "string",
18686
18813
  "enum": [
18687
18814
  "reuse",
18815
+ "review",
18688
18816
  "create",
18689
18817
  "omit"
18690
18818
  ]
@@ -18700,9 +18828,57 @@
18700
18828
  "near"
18701
18829
  ]
18702
18830
  },
18831
+ "matchedVia": {
18832
+ "type": "string",
18833
+ "enum": [
18834
+ "key",
18835
+ "alias",
18836
+ "stem",
18837
+ "trigram",
18838
+ "embedding"
18839
+ ]
18840
+ },
18703
18841
  "score": {
18704
18842
  "type": "number"
18705
18843
  },
18844
+ "candidates": {
18845
+ "type": "array",
18846
+ "items": {
18847
+ "type": "object",
18848
+ "properties": {
18849
+ "tag": {
18850
+ "type": "string"
18851
+ },
18852
+ "matchedVia": {
18853
+ "type": "string",
18854
+ "enum": [
18855
+ "key",
18856
+ "alias",
18857
+ "stem",
18858
+ "trigram",
18859
+ "embedding"
18860
+ ]
18861
+ },
18862
+ "score": {
18863
+ "type": "number"
18864
+ },
18865
+ "description": {
18866
+ "type": [
18867
+ "string",
18868
+ "null"
18869
+ ]
18870
+ }
18871
+ },
18872
+ "required": [
18873
+ "tag",
18874
+ "matchedVia",
18875
+ "score",
18876
+ "description"
18877
+ ],
18878
+ "additionalProperties": false
18879
+ },
18880
+ "description": "Ranked existing tags to choose from when action is review. Nothing is merged automatically."
18881
+ },
18706
18882
  "reason": {
18707
18883
  "type": "string"
18708
18884
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-scraper",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "description": "MCP server for MCP Scraper web intelligence tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -80,7 +80,7 @@
80
80
  "inngest": "^4.4.0",
81
81
  "ipaddr.js": "^1.9.1",
82
82
  "jose": "^6.2.3",
83
- "mcpscraper-memory-tools": "^1.9.0",
83
+ "mcpscraper-memory-tools": "^1.10.0",
84
84
  "p-limit": "^7.3.0",
85
85
  "papaparse": "^5.4.0",
86
86
  "playwright": "^1.44.0",
@@ -1,7 +0,0 @@
1
- // src/version.ts
2
- var PACKAGE_VERSION = "0.36.0";
3
-
4
- export {
5
- PACKAGE_VERSION
6
- };
7
- //# sourceMappingURL=chunk-4HO66323.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const PACKAGE_VERSION = '0.36.0'\n"],"mappings":";AAAO,IAAM,kBAAkB;","names":[]}