mcpscraper-sdk 0.59.0 → 0.59.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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Official TypeScript/JavaScript client for the [mcpscraper.dev](https://mcpscraper.dev) REST API — SERP search, People-Also-Ask harvesting, single-page and whole-site extraction, YouTube, Facebook/Google Ads Transparency, Instagram, Reddit, video breakdown, Google Maps, and directory/rank-tracking workflows.
4
4
 
5
- [Release history](https://github.com/VilovietaSEO/mcpscraper-sdk/releases/tag/v0.59.0)
5
+ [Release history](https://github.com/VilovietaSEO/mcpscraper-sdk/releases/tag/v0.59.1)
6
6
 
7
7
  This is a thin HTTP client generated against [`../../contracts/scraper.openapi.generated.json`](../../contracts/scraper.openapi.generated.json), the complete public REST contract for the hosted API. It contains no scraping, proxy, or billing logic — only typed request/response plumbing.
8
8
 
@@ -233,6 +233,10 @@ Use `bug_reporting` to prepare a redacted draft from observed calls and errors.
233
233
 
234
234
  ## Consistent hosted MCP protocol
235
235
 
236
- This release targets MCP Scraper 0.103.0 with 352 tools. Calls use protocol `2026-07-28` with matching routing headers and the required protocol revision, client capabilities and client identity metadata. Poll the returned job/run ID through its dedicated status tool; MCP Task handles are no longer supported. Lead enrichment cancellation uses `lead_list_enrich_cancel`. Update the SDK packages together.
236
+ This release targets MCP Scraper 0.103.10 with 352 tools. Calls use protocol `2026-07-28` with matching routing headers and the required protocol revision, client capabilities and client identity metadata. Poll the returned job/run ID through its dedicated status tool; MCP Task handles are no longer supported. Lead enrichment cancellation uses `lead_list_enrich_cancel`. Update the SDK packages together.
237
237
 
238
238
  Publication management: list owned subdomains with `commons_list_publications`, select a name with `commons_get_publication`, and edit one article with `commons_update_editorial_article`. Publishing merges omitted articles by default; use `mode:replace` for a full replacement. Use the dedicated article or publication delete tool with its current revision and a stable retry key. See the [release notes](https://github.com/VilovietaSEO/mcpscraper-sdk/releases/tag/v0.59.0).
239
+
240
+ PAA job progress can include the optional `phase` and `observedAt` fields. They identify observed extraction work separately from worker renewal. Existing polling and request arguments remain compatible. See [the release notes](https://github.com/VilovietaSEO/mcpscraper-sdk/releases/tag/v0.59.1).
241
+
242
+ Reddit trending supports `window: "14d"`, verified publication dates, captured comment text and delivery quality fields. See the [0.59.2 release notes](https://github.com/VilovietaSEO/mcpscraper-sdk/releases/tag/v0.59.2) for the compatible package versions.
package/dist/index.d.cts CHANGED
@@ -602,14 +602,11 @@ interface paths {
602
602
  put?: never;
603
603
  /**
604
604
  * Discover and rank the top recent Reddit threads for a topic
605
- * @description Discovers Reddit threads through a Google site:reddit.com search and selects relevant candidates
606
- * before scraping. Supports week, month, year and all-time windows. Scraped post dates are checked
607
- * against the requested publication window; discovery-only candidate dates remain unverified.
608
- * With includeComments:true, collects selected threads and ranks by engagement (upvotes + 2x
609
- * reported comments). Billing: one discovery debit plus 30 credits per scraped thread and 2 credits
610
- * per captured comment, each refunded on failure. Set includeComments:false for a candidate list
611
- * without per-thread billing. Comment coverage distinguishes the requested limit, returned text
612
- * comments and reported comment count. A bounded capture can return partial:true.
605
+ * @description Finds Reddit discussions for a topic or subreddit. With comments enabled, opens candidate posts
606
+ * to verify publication dates, collects comment text, and ranks delivered threads by engagement.
607
+ * The 14-day window replaces candidates with no usable comments when more candidates are available.
608
+ * Discovery-only results have unverified publication dates. Discovery, delivered threads, and
609
+ * captured comments are billed separately. An empty delivery refunds the discovery charge.
613
610
  */
614
611
  post: operations["redditTrending"];
615
612
  delete?: never;
@@ -2421,9 +2418,9 @@ interface components {
2421
2418
  * @default month
2422
2419
  * @enum {string}
2423
2420
  */
2424
- window: "week" | "month" | "year" | "all";
2421
+ window: "week" | "14d" | "month" | "year" | "all";
2425
2422
  /**
2426
- * @description Cap on relevant threads selected before scraping; one search page can yield fewer. Each scraped thread and its returned comments are billed separately.
2423
+ * @description Maximum number of relevant threads to deliver. Each scraped thread and its returned comments are billed separately.
2427
2424
  * @default 20
2428
2425
  */
2429
2426
  maxThreads: number;
@@ -2441,7 +2438,7 @@ interface components {
2441
2438
  RedditTrendingResponse: {
2442
2439
  topic?: string;
2443
2440
  subreddit?: string | null;
2444
- /** @description Resolved publication window: "7d", "30d", "365d" or "all". */
2441
+ /** @description Resolved publication window: "7d", "14d", "30d", "365d" or "all". */
2445
2442
  window?: string;
2446
2443
  totals?: {
2447
2444
  threads?: number;
@@ -2461,6 +2458,12 @@ interface components {
2461
2458
  * @description Observed publication timestamp when available.
2462
2459
  */
2463
2460
  publishedAt?: string | null;
2461
+ comments?: {
2462
+ author: string;
2463
+ score: string;
2464
+ depth: number;
2465
+ body: string;
2466
+ }[];
2464
2467
  /** @description Text comments actually returned for this thread. */
2465
2468
  capturedCommentCount?: number;
2466
2469
  /** @description Requested per-thread comment cap. */
@@ -2480,10 +2483,18 @@ interface components {
2480
2483
  }[];
2481
2484
  threadsScraped?: number;
2482
2485
  candidatesFound?: number;
2483
- /** @description true if scraping stopped early at the time limit. */
2486
+ /** @description True when coverage is partial or the requested delivery target was missed. */
2484
2487
  partial?: boolean;
2485
2488
  /** @description The Google site:reddit.com query used for discovery. */
2486
2489
  searchQuery?: string;
2490
+ /** @enum {string} */
2491
+ discoverySource?: "google_serp" | "reddit_search_fallback" | "none";
2492
+ /** @enum {string} */
2493
+ resultQuality?: "complete" | "partial" | "degraded";
2494
+ degradedResult?: boolean;
2495
+ degradationReasons?: string[];
2496
+ retryRecommended?: boolean;
2497
+ billingRefunded?: boolean;
2487
2498
  };
2488
2499
  /** @enum {string} */
2489
2500
  RedditCommentCoverageStatus: "complete" | "partial";
@@ -4012,13 +4023,6 @@ interface operations {
4012
4023
  };
4013
4024
  400: components["responses"]["BadRequest"];
4014
4025
  402: components["responses"]["InsufficientBalance"];
4015
- /** @description No Reddit threads found for that topic and window — billed amount was refunded. */
4016
- 404: {
4017
- headers: {
4018
- [name: string]: unknown;
4019
- };
4020
- content?: never;
4021
- };
4022
4026
  429: components["responses"]["ConcurrencyLimitExceeded"];
4023
4027
  500: components["responses"]["ServerError"];
4024
4028
  };
package/dist/index.d.ts CHANGED
@@ -602,14 +602,11 @@ interface paths {
602
602
  put?: never;
603
603
  /**
604
604
  * Discover and rank the top recent Reddit threads for a topic
605
- * @description Discovers Reddit threads through a Google site:reddit.com search and selects relevant candidates
606
- * before scraping. Supports week, month, year and all-time windows. Scraped post dates are checked
607
- * against the requested publication window; discovery-only candidate dates remain unverified.
608
- * With includeComments:true, collects selected threads and ranks by engagement (upvotes + 2x
609
- * reported comments). Billing: one discovery debit plus 30 credits per scraped thread and 2 credits
610
- * per captured comment, each refunded on failure. Set includeComments:false for a candidate list
611
- * without per-thread billing. Comment coverage distinguishes the requested limit, returned text
612
- * comments and reported comment count. A bounded capture can return partial:true.
605
+ * @description Finds Reddit discussions for a topic or subreddit. With comments enabled, opens candidate posts
606
+ * to verify publication dates, collects comment text, and ranks delivered threads by engagement.
607
+ * The 14-day window replaces candidates with no usable comments when more candidates are available.
608
+ * Discovery-only results have unverified publication dates. Discovery, delivered threads, and
609
+ * captured comments are billed separately. An empty delivery refunds the discovery charge.
613
610
  */
614
611
  post: operations["redditTrending"];
615
612
  delete?: never;
@@ -2421,9 +2418,9 @@ interface components {
2421
2418
  * @default month
2422
2419
  * @enum {string}
2423
2420
  */
2424
- window: "week" | "month" | "year" | "all";
2421
+ window: "week" | "14d" | "month" | "year" | "all";
2425
2422
  /**
2426
- * @description Cap on relevant threads selected before scraping; one search page can yield fewer. Each scraped thread and its returned comments are billed separately.
2423
+ * @description Maximum number of relevant threads to deliver. Each scraped thread and its returned comments are billed separately.
2427
2424
  * @default 20
2428
2425
  */
2429
2426
  maxThreads: number;
@@ -2441,7 +2438,7 @@ interface components {
2441
2438
  RedditTrendingResponse: {
2442
2439
  topic?: string;
2443
2440
  subreddit?: string | null;
2444
- /** @description Resolved publication window: "7d", "30d", "365d" or "all". */
2441
+ /** @description Resolved publication window: "7d", "14d", "30d", "365d" or "all". */
2445
2442
  window?: string;
2446
2443
  totals?: {
2447
2444
  threads?: number;
@@ -2461,6 +2458,12 @@ interface components {
2461
2458
  * @description Observed publication timestamp when available.
2462
2459
  */
2463
2460
  publishedAt?: string | null;
2461
+ comments?: {
2462
+ author: string;
2463
+ score: string;
2464
+ depth: number;
2465
+ body: string;
2466
+ }[];
2464
2467
  /** @description Text comments actually returned for this thread. */
2465
2468
  capturedCommentCount?: number;
2466
2469
  /** @description Requested per-thread comment cap. */
@@ -2480,10 +2483,18 @@ interface components {
2480
2483
  }[];
2481
2484
  threadsScraped?: number;
2482
2485
  candidatesFound?: number;
2483
- /** @description true if scraping stopped early at the time limit. */
2486
+ /** @description True when coverage is partial or the requested delivery target was missed. */
2484
2487
  partial?: boolean;
2485
2488
  /** @description The Google site:reddit.com query used for discovery. */
2486
2489
  searchQuery?: string;
2490
+ /** @enum {string} */
2491
+ discoverySource?: "google_serp" | "reddit_search_fallback" | "none";
2492
+ /** @enum {string} */
2493
+ resultQuality?: "complete" | "partial" | "degraded";
2494
+ degradedResult?: boolean;
2495
+ degradationReasons?: string[];
2496
+ retryRecommended?: boolean;
2497
+ billingRefunded?: boolean;
2487
2498
  };
2488
2499
  /** @enum {string} */
2489
2500
  RedditCommentCoverageStatus: "complete" | "partial";
@@ -4012,13 +4023,6 @@ interface operations {
4012
4023
  };
4013
4024
  400: components["responses"]["BadRequest"];
4014
4025
  402: components["responses"]["InsufficientBalance"];
4015
- /** @description No Reddit threads found for that topic and window — billed amount was refunded. */
4016
- 404: {
4017
- headers: {
4018
- [name: string]: unknown;
4019
- };
4020
- content?: never;
4021
- };
4022
4026
  429: components["responses"]["ConcurrencyLimitExceeded"];
4023
4027
  500: components["responses"]["ServerError"];
4024
4028
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcpscraper-sdk",
3
- "version": "0.59.0",
3
+ "version": "0.59.2",
4
4
  "description": "Official Node.js client for all 352 mcpscraper.dev MCP tools and the REST API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -32,7 +32,7 @@
32
32
  "seo-api"
33
33
  ],
34
34
  "dependencies": {
35
- "mcpscraper-memory-sdk": "^0.58.0"
35
+ "mcpscraper-memory-sdk": "^0.58.2"
36
36
  },
37
37
  "devDependencies": {
38
38
  "openapi-typescript": "^7.13.0"