mcpscraper-sdk 0.5.0 → 0.7.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.
package/README.md CHANGED
@@ -40,13 +40,20 @@ Every non-2xx response throws a `ScraperApiError` with `status`, `code`, and the
40
40
 
41
41
  ## API surface
42
42
 
43
- `client.tools` is the generated, typed 145-tool MCP surface. It includes every scraper, browser, workflow, artifact, billing, and memory tool from `contracts/mcp.tools.json`.
43
+ `client.tools` is the generated, typed 155-tool MCP surface. It includes every scraper, browser, workflow, artifact, billing, and memory tool from `contracts/mcp.tools.json`.
44
44
 
45
45
  ```ts
46
46
  await client.tools.search.searchSerp({ query: 'roof repair Denver' })
47
47
  await client.tools.memory.search({ query: 'roofing warranty terms' })
48
+ await client.tools.connections.exportConnectedServiceData({
49
+ connectionId: 'conn_123',
50
+ dataset: 'emails',
51
+ lastDays: 7,
52
+ })
48
53
  ```
49
54
 
55
+ The connected-data export performs bounded provider pagination server-side and returns small results inline or a private seven-day JSONL artifact. Resume partial exports with the returned `continuation` object; renew an expired signed URL with `client.tools.connections.renewConnectedDataDownload({ artifactId })`.
56
+
50
57
  Core operations are flat on the client: `searchSerp`, `harvestPaa`, `extractUrl`, `mapSiteUrls`, `extractSite`, `auditSite`, `getExtractSiteStatus`, `listJobs`, `getJob`, `getHistory`, `getLedger`.
51
58
 
52
59
  Everything else is namespaced by product area, matching the OpenAPI spec's tags: `client.youtube`, `client.screenshot`, `client.facebook`, `client.googleAds`, `client.instagram`, `client.reddit`, `client.video`, `client.maps`, `client.directory`, `client.serpIntelligence`, `client.workflows`.
@@ -81,4 +88,4 @@ npm run generate
81
88
 
82
89
  ## See also
83
90
 
84
- [Repo README](../../README.md) (multi-language examples with real sample output) · [`mcpscraper-memory-sdk`](../memory) (Node, full 85-tool typed surface) · [`mcpscraper-sdk` Python source package](../scraper-python) · [`mcpscraper-cli`](../cli)
91
+ [Repo README](../../README.md) (multi-language examples with real sample output) · [`mcpscraper-memory-sdk`](../memory) (Node, full 86-tool typed surface) · [`mcpscraper-sdk` Python source package](../scraper-python) · [`mcpscraper-cli`](../cli)
package/dist/index.d.cts CHANGED
@@ -786,7 +786,7 @@ interface paths {
786
786
  put?: never;
787
787
  /**
788
788
  * Call one memory.mcpscraper.dev tool by name, using this account's mcpscraper.dev API key
789
- * @description Generic dispatch: names one of the 85 tools documented in this repo's
789
+ * @description Generic dispatch: names one of the 86 tools documented in this repo's
790
790
  * `contracts/memory.tools.json` and forwards `args` to it, using a memory identity
791
791
  * auto-provisioned for the calling mcpscraper.dev account. The response shape depends
792
792
  * entirely on which tool was called — see that tool's `outputSchema` in the manifest.
@@ -1035,13 +1035,123 @@ interface components {
1035
1035
  browserFallback: boolean;
1036
1036
  /** @default false */
1037
1037
  kernelFallback: boolean;
1038
- formats?: ("markdown" | "links" | "json" | "images" | "branding")[];
1038
+ /**
1039
+ * @description Output formats to produce. `issues` runs a site-wide SEO audit over the crawl and
1040
+ * returns `seoAudit` (in background mode, writes the `seo-audit.json` artifact).
1041
+ * `images` performs the image audit and returns `imageAudit` — on the synchronous
1042
+ * path too, not just background jobs.
1043
+ */
1044
+ formats?: ("markdown" | "links" | "json" | "images" | "branding" | "issues")[];
1039
1045
  };
1040
1046
  /** @description Full synchronous crawl result. */
1041
1047
  ExtractSiteResponse: {
1042
- pages?: {
1048
+ pages?: ({
1049
+ /** @description Whether this page's URL appears in the site's sitemap(s); null when no sitemap was found. */
1050
+ inSitemap?: boolean | null;
1051
+ } & {
1043
1052
  [key: string]: unknown;
1044
- }[];
1053
+ })[];
1054
+ /** @description Crawl/URL-discovery metadata. */
1055
+ spider?: {
1056
+ /** @description Sitemap URLs discovered and parsed during the crawl. */
1057
+ sitemapUrls?: string[];
1058
+ } & {
1059
+ [key: string]: unknown;
1060
+ };
1061
+ /** @description Site-wide SEO audit. Present (non-null) only when `formats` includes `issues`. */
1062
+ seoAudit?: {
1063
+ /**
1064
+ * @description Map of issue key → occurrence detail. The 31 issue keys: title.missing,
1065
+ * title.duplicate, title.tooLong, title.tooShort, title.sameAsH1, meta.missing,
1066
+ * meta.duplicate, meta.tooLong, meta.tooShort, h1.missing, h1.multiple,
1067
+ * h1.duplicate, h1.tooLong, h2.missing, indexability.nonIndexable,
1068
+ * indexability.noindex, canonical.missing, canonical.canonicalised,
1069
+ * response.broken4xx, response.error5xx, response.redirect3xx,
1070
+ * response.noResponse, content.thin, content.exactDuplicate, images.missingAlt,
1071
+ * schema.missing, url.tooLong, url.uppercase, url.underscores, links.orphan,
1072
+ * links.brokenInternal.
1073
+ */
1074
+ issues?: {
1075
+ [key: string]: {
1076
+ count: number;
1077
+ urls: string[];
1078
+ };
1079
+ };
1080
+ linkSummary?: {
1081
+ internal?: {
1082
+ totalLinks?: number;
1083
+ pages?: number;
1084
+ orphans?: number;
1085
+ brokenInternal?: number;
1086
+ avgInlinks?: number;
1087
+ avgOutlinks?: number;
1088
+ distribution?: {
1089
+ zero?: number;
1090
+ oneToTwo?: number;
1091
+ threeToTen?: number;
1092
+ elevenPlus?: number;
1093
+ };
1094
+ topByInlinks?: {
1095
+ url?: string;
1096
+ inlinks?: number;
1097
+ outlinksInternal?: number;
1098
+ outlinksExternal?: number;
1099
+ }[];
1100
+ };
1101
+ external?: {
1102
+ totalLinks?: number;
1103
+ uniqueDomains?: number;
1104
+ topDomains?: {
1105
+ domain?: string;
1106
+ links?: number;
1107
+ nofollow?: number;
1108
+ pages?: number;
1109
+ }[];
1110
+ };
1111
+ };
1112
+ pageMetrics?: {
1113
+ url?: string;
1114
+ inboundInternal?: number;
1115
+ outboundInternal?: number;
1116
+ orphan?: boolean;
1117
+ }[];
1118
+ } | null;
1119
+ /**
1120
+ * @description Site-wide image audit. Present (non-null) only when `formats` includes `images` —
1121
+ * the synchronous path performs this audit too, not just background jobs.
1122
+ */
1123
+ imageAudit?: {
1124
+ rows?: {
1125
+ url?: string;
1126
+ /** @description HTTP status returned when probing the image; null when the probe failed. */
1127
+ status?: number | null;
1128
+ bytes?: number | null;
1129
+ /** @description Human-readable size, e.g. "1.2 MB". */
1130
+ size?: string | null;
1131
+ contentType?: string | null;
1132
+ /** @description Detected image format; "unknown" when undetectable. */
1133
+ format?: string;
1134
+ over100kb?: boolean;
1135
+ legacyFormat?: boolean;
1136
+ /** @description Present when probing the image failed. */
1137
+ error?: string;
1138
+ }[];
1139
+ summary?: {
1140
+ unique?: number;
1141
+ /** @description How many rows have a known byte size. */
1142
+ sized?: number;
1143
+ totalBytes?: number;
1144
+ /** @description Human-readable total, e.g. "4.5 MB". */
1145
+ totalSize?: string;
1146
+ avgSize?: string;
1147
+ over100kb?: number;
1148
+ legacyFormat?: number;
1149
+ /** @description Map of format → image count. */
1150
+ formatCounts?: {
1151
+ [key: string]: number;
1152
+ };
1153
+ };
1154
+ } | null;
1045
1155
  } & {
1046
1156
  [key: string]: unknown;
1047
1157
  };
@@ -1057,6 +1167,11 @@ interface components {
1057
1167
  startUrl?: string;
1058
1168
  totalUrls?: number;
1059
1169
  doneUrls?: number;
1170
+ /**
1171
+ * @description Produced files (name + MIME type). When the job requested formats including
1172
+ * `issues`, this includes `seo-audit.json` (application/json — the same object as
1173
+ * the synchronous `seoAudit`), and rows in `pages.jsonl` include `inSitemap`.
1174
+ */
1060
1175
  artifacts?: {
1061
1176
  [key: string]: unknown;
1062
1177
  }[];
@@ -3386,9 +3501,87 @@ declare class ScraperClient {
3386
3501
  [key: string]: unknown;
3387
3502
  }>;
3388
3503
  extractSite(params: RequestBodyOf<'extractSite'>): Promise<({
3389
- pages?: {
3504
+ pages?: ({
3505
+ inSitemap?: boolean | null;
3506
+ } & {
3390
3507
  [key: string]: unknown;
3391
- }[];
3508
+ })[];
3509
+ spider?: {
3510
+ sitemapUrls?: string[];
3511
+ } & {
3512
+ [key: string]: unknown;
3513
+ };
3514
+ seoAudit?: {
3515
+ issues?: {
3516
+ [key: string]: {
3517
+ count: number;
3518
+ urls: string[];
3519
+ };
3520
+ };
3521
+ linkSummary?: {
3522
+ internal?: {
3523
+ totalLinks?: number;
3524
+ pages?: number;
3525
+ orphans?: number;
3526
+ brokenInternal?: number;
3527
+ avgInlinks?: number;
3528
+ avgOutlinks?: number;
3529
+ distribution?: {
3530
+ zero?: number;
3531
+ oneToTwo?: number;
3532
+ threeToTen?: number;
3533
+ elevenPlus?: number;
3534
+ };
3535
+ topByInlinks?: {
3536
+ url?: string;
3537
+ inlinks?: number;
3538
+ outlinksInternal?: number;
3539
+ outlinksExternal?: number;
3540
+ }[];
3541
+ };
3542
+ external?: {
3543
+ totalLinks?: number;
3544
+ uniqueDomains?: number;
3545
+ topDomains?: {
3546
+ domain?: string;
3547
+ links?: number;
3548
+ nofollow?: number;
3549
+ pages?: number;
3550
+ }[];
3551
+ };
3552
+ };
3553
+ pageMetrics?: {
3554
+ url?: string;
3555
+ inboundInternal?: number;
3556
+ outboundInternal?: number;
3557
+ orphan?: boolean;
3558
+ }[];
3559
+ } | null;
3560
+ imageAudit?: {
3561
+ rows?: {
3562
+ url?: string;
3563
+ status?: number | null;
3564
+ bytes?: number | null;
3565
+ size?: string | null;
3566
+ contentType?: string | null;
3567
+ format?: string;
3568
+ over100kb?: boolean;
3569
+ legacyFormat?: boolean;
3570
+ error?: string;
3571
+ }[];
3572
+ summary?: {
3573
+ unique?: number;
3574
+ sized?: number;
3575
+ totalBytes?: number;
3576
+ totalSize?: string;
3577
+ avgSize?: string;
3578
+ over100kb?: number;
3579
+ legacyFormat?: number;
3580
+ formatCounts?: {
3581
+ [key: string]: number;
3582
+ };
3583
+ };
3584
+ } | null;
3392
3585
  } & {
3393
3586
  [key: string]: unknown;
3394
3587
  }) | {
@@ -3397,9 +3590,87 @@ declare class ScraperClient {
3397
3590
  statusUrl: string;
3398
3591
  }>;
3399
3592
  auditSite(params: RequestBodyOf<'extractSite'>): Promise<({
3400
- pages?: {
3593
+ pages?: ({
3594
+ inSitemap?: boolean | null;
3595
+ } & {
3401
3596
  [key: string]: unknown;
3402
- }[];
3597
+ })[];
3598
+ spider?: {
3599
+ sitemapUrls?: string[];
3600
+ } & {
3601
+ [key: string]: unknown;
3602
+ };
3603
+ seoAudit?: {
3604
+ issues?: {
3605
+ [key: string]: {
3606
+ count: number;
3607
+ urls: string[];
3608
+ };
3609
+ };
3610
+ linkSummary?: {
3611
+ internal?: {
3612
+ totalLinks?: number;
3613
+ pages?: number;
3614
+ orphans?: number;
3615
+ brokenInternal?: number;
3616
+ avgInlinks?: number;
3617
+ avgOutlinks?: number;
3618
+ distribution?: {
3619
+ zero?: number;
3620
+ oneToTwo?: number;
3621
+ threeToTen?: number;
3622
+ elevenPlus?: number;
3623
+ };
3624
+ topByInlinks?: {
3625
+ url?: string;
3626
+ inlinks?: number;
3627
+ outlinksInternal?: number;
3628
+ outlinksExternal?: number;
3629
+ }[];
3630
+ };
3631
+ external?: {
3632
+ totalLinks?: number;
3633
+ uniqueDomains?: number;
3634
+ topDomains?: {
3635
+ domain?: string;
3636
+ links?: number;
3637
+ nofollow?: number;
3638
+ pages?: number;
3639
+ }[];
3640
+ };
3641
+ };
3642
+ pageMetrics?: {
3643
+ url?: string;
3644
+ inboundInternal?: number;
3645
+ outboundInternal?: number;
3646
+ orphan?: boolean;
3647
+ }[];
3648
+ } | null;
3649
+ imageAudit?: {
3650
+ rows?: {
3651
+ url?: string;
3652
+ status?: number | null;
3653
+ bytes?: number | null;
3654
+ size?: string | null;
3655
+ contentType?: string | null;
3656
+ format?: string;
3657
+ over100kb?: boolean;
3658
+ legacyFormat?: boolean;
3659
+ error?: string;
3660
+ }[];
3661
+ summary?: {
3662
+ unique?: number;
3663
+ sized?: number;
3664
+ totalBytes?: number;
3665
+ totalSize?: string;
3666
+ avgSize?: string;
3667
+ over100kb?: number;
3668
+ legacyFormat?: number;
3669
+ formatCounts?: {
3670
+ [key: string]: number;
3671
+ };
3672
+ };
3673
+ } | null;
3403
3674
  } & {
3404
3675
  [key: string]: unknown;
3405
3676
  }) | {
package/dist/index.d.ts CHANGED
@@ -786,7 +786,7 @@ interface paths {
786
786
  put?: never;
787
787
  /**
788
788
  * Call one memory.mcpscraper.dev tool by name, using this account's mcpscraper.dev API key
789
- * @description Generic dispatch: names one of the 85 tools documented in this repo's
789
+ * @description Generic dispatch: names one of the 86 tools documented in this repo's
790
790
  * `contracts/memory.tools.json` and forwards `args` to it, using a memory identity
791
791
  * auto-provisioned for the calling mcpscraper.dev account. The response shape depends
792
792
  * entirely on which tool was called — see that tool's `outputSchema` in the manifest.
@@ -1035,13 +1035,123 @@ interface components {
1035
1035
  browserFallback: boolean;
1036
1036
  /** @default false */
1037
1037
  kernelFallback: boolean;
1038
- formats?: ("markdown" | "links" | "json" | "images" | "branding")[];
1038
+ /**
1039
+ * @description Output formats to produce. `issues` runs a site-wide SEO audit over the crawl and
1040
+ * returns `seoAudit` (in background mode, writes the `seo-audit.json` artifact).
1041
+ * `images` performs the image audit and returns `imageAudit` — on the synchronous
1042
+ * path too, not just background jobs.
1043
+ */
1044
+ formats?: ("markdown" | "links" | "json" | "images" | "branding" | "issues")[];
1039
1045
  };
1040
1046
  /** @description Full synchronous crawl result. */
1041
1047
  ExtractSiteResponse: {
1042
- pages?: {
1048
+ pages?: ({
1049
+ /** @description Whether this page's URL appears in the site's sitemap(s); null when no sitemap was found. */
1050
+ inSitemap?: boolean | null;
1051
+ } & {
1043
1052
  [key: string]: unknown;
1044
- }[];
1053
+ })[];
1054
+ /** @description Crawl/URL-discovery metadata. */
1055
+ spider?: {
1056
+ /** @description Sitemap URLs discovered and parsed during the crawl. */
1057
+ sitemapUrls?: string[];
1058
+ } & {
1059
+ [key: string]: unknown;
1060
+ };
1061
+ /** @description Site-wide SEO audit. Present (non-null) only when `formats` includes `issues`. */
1062
+ seoAudit?: {
1063
+ /**
1064
+ * @description Map of issue key → occurrence detail. The 31 issue keys: title.missing,
1065
+ * title.duplicate, title.tooLong, title.tooShort, title.sameAsH1, meta.missing,
1066
+ * meta.duplicate, meta.tooLong, meta.tooShort, h1.missing, h1.multiple,
1067
+ * h1.duplicate, h1.tooLong, h2.missing, indexability.nonIndexable,
1068
+ * indexability.noindex, canonical.missing, canonical.canonicalised,
1069
+ * response.broken4xx, response.error5xx, response.redirect3xx,
1070
+ * response.noResponse, content.thin, content.exactDuplicate, images.missingAlt,
1071
+ * schema.missing, url.tooLong, url.uppercase, url.underscores, links.orphan,
1072
+ * links.brokenInternal.
1073
+ */
1074
+ issues?: {
1075
+ [key: string]: {
1076
+ count: number;
1077
+ urls: string[];
1078
+ };
1079
+ };
1080
+ linkSummary?: {
1081
+ internal?: {
1082
+ totalLinks?: number;
1083
+ pages?: number;
1084
+ orphans?: number;
1085
+ brokenInternal?: number;
1086
+ avgInlinks?: number;
1087
+ avgOutlinks?: number;
1088
+ distribution?: {
1089
+ zero?: number;
1090
+ oneToTwo?: number;
1091
+ threeToTen?: number;
1092
+ elevenPlus?: number;
1093
+ };
1094
+ topByInlinks?: {
1095
+ url?: string;
1096
+ inlinks?: number;
1097
+ outlinksInternal?: number;
1098
+ outlinksExternal?: number;
1099
+ }[];
1100
+ };
1101
+ external?: {
1102
+ totalLinks?: number;
1103
+ uniqueDomains?: number;
1104
+ topDomains?: {
1105
+ domain?: string;
1106
+ links?: number;
1107
+ nofollow?: number;
1108
+ pages?: number;
1109
+ }[];
1110
+ };
1111
+ };
1112
+ pageMetrics?: {
1113
+ url?: string;
1114
+ inboundInternal?: number;
1115
+ outboundInternal?: number;
1116
+ orphan?: boolean;
1117
+ }[];
1118
+ } | null;
1119
+ /**
1120
+ * @description Site-wide image audit. Present (non-null) only when `formats` includes `images` —
1121
+ * the synchronous path performs this audit too, not just background jobs.
1122
+ */
1123
+ imageAudit?: {
1124
+ rows?: {
1125
+ url?: string;
1126
+ /** @description HTTP status returned when probing the image; null when the probe failed. */
1127
+ status?: number | null;
1128
+ bytes?: number | null;
1129
+ /** @description Human-readable size, e.g. "1.2 MB". */
1130
+ size?: string | null;
1131
+ contentType?: string | null;
1132
+ /** @description Detected image format; "unknown" when undetectable. */
1133
+ format?: string;
1134
+ over100kb?: boolean;
1135
+ legacyFormat?: boolean;
1136
+ /** @description Present when probing the image failed. */
1137
+ error?: string;
1138
+ }[];
1139
+ summary?: {
1140
+ unique?: number;
1141
+ /** @description How many rows have a known byte size. */
1142
+ sized?: number;
1143
+ totalBytes?: number;
1144
+ /** @description Human-readable total, e.g. "4.5 MB". */
1145
+ totalSize?: string;
1146
+ avgSize?: string;
1147
+ over100kb?: number;
1148
+ legacyFormat?: number;
1149
+ /** @description Map of format → image count. */
1150
+ formatCounts?: {
1151
+ [key: string]: number;
1152
+ };
1153
+ };
1154
+ } | null;
1045
1155
  } & {
1046
1156
  [key: string]: unknown;
1047
1157
  };
@@ -1057,6 +1167,11 @@ interface components {
1057
1167
  startUrl?: string;
1058
1168
  totalUrls?: number;
1059
1169
  doneUrls?: number;
1170
+ /**
1171
+ * @description Produced files (name + MIME type). When the job requested formats including
1172
+ * `issues`, this includes `seo-audit.json` (application/json — the same object as
1173
+ * the synchronous `seoAudit`), and rows in `pages.jsonl` include `inSitemap`.
1174
+ */
1060
1175
  artifacts?: {
1061
1176
  [key: string]: unknown;
1062
1177
  }[];
@@ -3386,9 +3501,87 @@ declare class ScraperClient {
3386
3501
  [key: string]: unknown;
3387
3502
  }>;
3388
3503
  extractSite(params: RequestBodyOf<'extractSite'>): Promise<({
3389
- pages?: {
3504
+ pages?: ({
3505
+ inSitemap?: boolean | null;
3506
+ } & {
3390
3507
  [key: string]: unknown;
3391
- }[];
3508
+ })[];
3509
+ spider?: {
3510
+ sitemapUrls?: string[];
3511
+ } & {
3512
+ [key: string]: unknown;
3513
+ };
3514
+ seoAudit?: {
3515
+ issues?: {
3516
+ [key: string]: {
3517
+ count: number;
3518
+ urls: string[];
3519
+ };
3520
+ };
3521
+ linkSummary?: {
3522
+ internal?: {
3523
+ totalLinks?: number;
3524
+ pages?: number;
3525
+ orphans?: number;
3526
+ brokenInternal?: number;
3527
+ avgInlinks?: number;
3528
+ avgOutlinks?: number;
3529
+ distribution?: {
3530
+ zero?: number;
3531
+ oneToTwo?: number;
3532
+ threeToTen?: number;
3533
+ elevenPlus?: number;
3534
+ };
3535
+ topByInlinks?: {
3536
+ url?: string;
3537
+ inlinks?: number;
3538
+ outlinksInternal?: number;
3539
+ outlinksExternal?: number;
3540
+ }[];
3541
+ };
3542
+ external?: {
3543
+ totalLinks?: number;
3544
+ uniqueDomains?: number;
3545
+ topDomains?: {
3546
+ domain?: string;
3547
+ links?: number;
3548
+ nofollow?: number;
3549
+ pages?: number;
3550
+ }[];
3551
+ };
3552
+ };
3553
+ pageMetrics?: {
3554
+ url?: string;
3555
+ inboundInternal?: number;
3556
+ outboundInternal?: number;
3557
+ orphan?: boolean;
3558
+ }[];
3559
+ } | null;
3560
+ imageAudit?: {
3561
+ rows?: {
3562
+ url?: string;
3563
+ status?: number | null;
3564
+ bytes?: number | null;
3565
+ size?: string | null;
3566
+ contentType?: string | null;
3567
+ format?: string;
3568
+ over100kb?: boolean;
3569
+ legacyFormat?: boolean;
3570
+ error?: string;
3571
+ }[];
3572
+ summary?: {
3573
+ unique?: number;
3574
+ sized?: number;
3575
+ totalBytes?: number;
3576
+ totalSize?: string;
3577
+ avgSize?: string;
3578
+ over100kb?: number;
3579
+ legacyFormat?: number;
3580
+ formatCounts?: {
3581
+ [key: string]: number;
3582
+ };
3583
+ };
3584
+ } | null;
3392
3585
  } & {
3393
3586
  [key: string]: unknown;
3394
3587
  }) | {
@@ -3397,9 +3590,87 @@ declare class ScraperClient {
3397
3590
  statusUrl: string;
3398
3591
  }>;
3399
3592
  auditSite(params: RequestBodyOf<'extractSite'>): Promise<({
3400
- pages?: {
3593
+ pages?: ({
3594
+ inSitemap?: boolean | null;
3595
+ } & {
3401
3596
  [key: string]: unknown;
3402
- }[];
3597
+ })[];
3598
+ spider?: {
3599
+ sitemapUrls?: string[];
3600
+ } & {
3601
+ [key: string]: unknown;
3602
+ };
3603
+ seoAudit?: {
3604
+ issues?: {
3605
+ [key: string]: {
3606
+ count: number;
3607
+ urls: string[];
3608
+ };
3609
+ };
3610
+ linkSummary?: {
3611
+ internal?: {
3612
+ totalLinks?: number;
3613
+ pages?: number;
3614
+ orphans?: number;
3615
+ brokenInternal?: number;
3616
+ avgInlinks?: number;
3617
+ avgOutlinks?: number;
3618
+ distribution?: {
3619
+ zero?: number;
3620
+ oneToTwo?: number;
3621
+ threeToTen?: number;
3622
+ elevenPlus?: number;
3623
+ };
3624
+ topByInlinks?: {
3625
+ url?: string;
3626
+ inlinks?: number;
3627
+ outlinksInternal?: number;
3628
+ outlinksExternal?: number;
3629
+ }[];
3630
+ };
3631
+ external?: {
3632
+ totalLinks?: number;
3633
+ uniqueDomains?: number;
3634
+ topDomains?: {
3635
+ domain?: string;
3636
+ links?: number;
3637
+ nofollow?: number;
3638
+ pages?: number;
3639
+ }[];
3640
+ };
3641
+ };
3642
+ pageMetrics?: {
3643
+ url?: string;
3644
+ inboundInternal?: number;
3645
+ outboundInternal?: number;
3646
+ orphan?: boolean;
3647
+ }[];
3648
+ } | null;
3649
+ imageAudit?: {
3650
+ rows?: {
3651
+ url?: string;
3652
+ status?: number | null;
3653
+ bytes?: number | null;
3654
+ size?: string | null;
3655
+ contentType?: string | null;
3656
+ format?: string;
3657
+ over100kb?: boolean;
3658
+ legacyFormat?: boolean;
3659
+ error?: string;
3660
+ }[];
3661
+ summary?: {
3662
+ unique?: number;
3663
+ sized?: number;
3664
+ totalBytes?: number;
3665
+ totalSize?: string;
3666
+ avgSize?: string;
3667
+ over100kb?: number;
3668
+ legacyFormat?: number;
3669
+ formatCounts?: {
3670
+ [key: string]: number;
3671
+ };
3672
+ };
3673
+ } | null;
3403
3674
  } & {
3404
3675
  [key: string]: unknown;
3405
3676
  }) | {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mcpscraper-sdk",
3
- "version": "0.5.0",
4
- "description": "Official Node.js client for all 145 mcpscraper.dev MCP tools and the REST API",
3
+ "version": "0.7.0",
4
+ "description": "Official Node.js client for all 155 mcpscraper.dev MCP tools and the REST API",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
@@ -31,7 +31,7 @@
31
31
  "seo-api"
32
32
  ],
33
33
  "dependencies": {
34
- "mcpscraper-memory-sdk": "^0.3.0"
34
+ "mcpscraper-memory-sdk": "^0.6.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "openapi-typescript": "^7.13.0"