mcpscraper-cli 0.21.0 → 0.22.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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Command-line interface for [mcpscraper.dev](https://mcpscraper.dev) and [memory.mcpscraper.dev](https://memory.mcpscraper.dev).
4
4
 
5
- The CLI provides friendly shortcuts for common operations plus universal discovery and invocation for every one of the 172 unified MCP tools (82 MCP Scraper plus 90 mirrored Memory tools).
5
+ The CLI provides friendly shortcuts for common operations plus universal discovery and invocation for every one of the 175 unified MCP tools (85 MCP Scraper plus 90 mirrored Memory tools).
6
6
 
7
7
  ## Install
8
8
 
@@ -34,7 +34,7 @@ mcpscraper tools call renew_connected_data_download --args '{"artifactId":"artif
34
34
  mcpscraper tools call archive_read --args '{"url":"https://github.com/octocat/Hello-World/archive/refs/heads/master.zip"}' --json
35
35
  ```
36
36
 
37
- `tools list` contains exactly 172 manifest-backed names. `tools call` accepts any one of them. Tools marked destructive require `--yes`.
37
+ `tools list` contains exactly 175 manifest-backed names. `tools call` accepts any one of them. Tools marked destructive require `--yes`.
38
38
 
39
39
  Integration connections are included with an active Starter plan or higher and have no extra connection-operation debit in this release. Scheduled occurrences cost 75 Credits; agent-mode runs also add 1.5 times OpenRouter's actual reported cost. Inspect the live policy with `mcpscraper tools call get-schedule-status --args '{}'`.
40
40
 
package/dist/bin/cli.js CHANGED
@@ -9,7 +9,7 @@ import { join } from "path";
9
9
  import { ScraperClient, ScraperApiError } from "mcpscraper-sdk";
10
10
 
11
11
  // src/version.ts
12
- var CLI_VERSION = "0.21.0";
12
+ var CLI_VERSION = "0.22.0";
13
13
 
14
14
  // src/generated-tools.ts
15
15
  var MCP_TOOL_CATALOG = [
@@ -963,7 +963,7 @@ var MCP_TOOL_CATALOG = [
963
963
  "name": "google_ads_search",
964
964
  "category": "googleAds",
965
965
  "title": "Google Ads Transparency Search",
966
- "description": "Search the Google Ads Transparency Center to find advertisers by domain or brand name. Returns advertisers with advertiser ID and approximate ad count, to pass to google_ads_page_intel.",
966
+ "description": "Search the Google Ads Transparency Center by brand, person, or website. Returns two lists: advertisers (name, country, approximate ad count) and websites (domains). Neither carries an advertiser ID. Pass a websites[].domain (preferred - users know the website, not the registered advertiser name) or an advertisers[].name to google_ads_page_intel to pull that advertiser's actual ads.",
967
967
  "inputSchema": {
968
968
  "type": "object",
969
969
  "properties": {
@@ -1005,17 +1005,21 @@ var MCP_TOOL_CATALOG = [
1005
1005
  "name": "google_ads_page_intel",
1006
1006
  "category": "googleAds",
1007
1007
  "title": "Google Ads Advertiser Intel",
1008
- "description": "Harvest an advertiser's ad creatives from the Google Ads Transparency Center: format, image URLs, and \u2014 for video ads \u2014 a YouTube video ID or direct video URL. Accepts advertiserId (from google_ads_search) or a domain.",
1008
+ "description": "Harvest an advertiser's ad creatives from the Google Ads Transparency Center: format, image URLs, and \u2014 for video ads \u2014 a YouTube video ID or direct video URL. Accepts a domain or advertiserName from google_ads_search (google_ads_search does not return advertiser IDs). A domain may map to several advertiser accounts; this returns the primary one.",
1009
1009
  "inputSchema": {
1010
1010
  "type": "object",
1011
1011
  "properties": {
1012
- "advertiserId": {
1012
+ "domain": {
1013
1013
  "type": "string",
1014
- "description": "Google Ads Transparency advertiser ID (starts with AR...). Use one returned by google_ads_search; do not construct one yourself."
1014
+ "description": "A website from google_ads_search.websites (e.g. getviktor.com). Preferred input: people know the website, not the advertiser's registered name. Resolves to whichever advertiser account runs ads for that domain."
1015
1015
  },
1016
- "domain": {
1016
+ "advertiserName": {
1017
+ "type": "string",
1018
+ "description": 'An advertiser name exactly as returned in google_ads_search.advertisers[].name (e.g. "PPS Plumbing Services"). Use when the user picked an advertiser rather than a website.'
1019
+ },
1020
+ "advertiserId": {
1017
1021
  "type": "string",
1018
- "description": "A domain (e.g. getviktor.com) whose primary advertiser to inspect when advertiserId is unknown. One of advertiserId or domain is required."
1022
+ "description": "Google Ads Transparency advertiser ID (starts with AR...). Only available if you already have one from a prior page-intel result \u2014 google_ads_search does NOT return advertiser IDs. Do not construct one yourself."
1019
1023
  },
1020
1024
  "region": {
1021
1025
  "type": "string",
@@ -8225,6 +8229,260 @@ var MCP_TOOL_CATALOG = [
8225
8229
  "idempotentHint": false,
8226
8230
  "openWorldHint": true
8227
8231
  }
8232
+ },
8233
+ {
8234
+ "name": "create_editorial_reading_room",
8235
+ "category": "editorial",
8236
+ "title": "Create Editorial Reading Room",
8237
+ "description": "Turn fully authored, source-grounded articles into a polished mobile-first editorial reading room with contents, search, hamburger navigation, article jump links, reading progress, text sizing, evening mode, and provenance. The calling AI must first read all in-scope material and use editorial_reading_room_guide when it has not already internalized the workflow; this renderer does not perform research or invent copy. Local stdio clients save one self-contained HTML file under the MCP Scraper output directory and return localPath.",
8238
+ "inputSchema": {
8239
+ "type": "object",
8240
+ "properties": {
8241
+ "site": {
8242
+ "type": "object",
8243
+ "properties": {
8244
+ "slug": {
8245
+ "type": "string",
8246
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
8247
+ "maxLength": 80,
8248
+ "description": 'Stable kebab-case identifier used for browser reading progress, for example "customer-research-field-notes".'
8249
+ },
8250
+ "title": {
8251
+ "type": "string",
8252
+ "minLength": 1,
8253
+ "maxLength": 140,
8254
+ "description": "Publication title shown in the page title and footer."
8255
+ },
8256
+ "product": {
8257
+ "type": "string",
8258
+ "minLength": 1,
8259
+ "maxLength": 80,
8260
+ "description": "Short product, organization, or collection name shown in the masthead."
8261
+ },
8262
+ "edition": {
8263
+ "type": "string",
8264
+ "minLength": 1,
8265
+ "maxLength": 80,
8266
+ "default": "Field Notes",
8267
+ "description": "Short editorial edition name shown in the masthead."
8268
+ },
8269
+ "editionLabel": {
8270
+ "type": "string",
8271
+ "minLength": 1,
8272
+ "maxLength": 100,
8273
+ "default": "Reader\u2019s edition",
8274
+ "description": "Small label in the home-page issue line."
8275
+ },
8276
+ "issueLabel": {
8277
+ "type": "string",
8278
+ "minLength": 1,
8279
+ "maxLength": 100,
8280
+ "default": "Current edition",
8281
+ "description": "Issue, date, or collection label in the home-page issue line."
8282
+ },
8283
+ "eyebrow": {
8284
+ "type": "string",
8285
+ "minLength": 1,
8286
+ "maxLength": 120,
8287
+ "default": "A guided collection",
8288
+ "description": "Short editorial eyebrow above the home-page headline."
8289
+ },
8290
+ "heroTitle": {
8291
+ "type": "string",
8292
+ "minLength": 1,
8293
+ "maxLength": 180,
8294
+ "description": "Outcome-led home-page headline for the whole reading room."
8295
+ },
8296
+ "startLabel": {
8297
+ "type": "string",
8298
+ "minLength": 1,
8299
+ "maxLength": 60,
8300
+ "default": "Start reading",
8301
+ "description": "Label for the primary start-reading button."
8302
+ }
8303
+ },
8304
+ "required": [
8305
+ "slug",
8306
+ "title",
8307
+ "product",
8308
+ "heroTitle"
8309
+ ],
8310
+ "additionalProperties": false
8311
+ },
8312
+ "deck": {
8313
+ "type": "string",
8314
+ "minLength": 1,
8315
+ "maxLength": 1e3,
8316
+ "description": "Two or three sentences that explain the collection\u2019s value and scope without generic marketing language."
8317
+ },
8318
+ "articles": {
8319
+ "type": "array",
8320
+ "items": {
8321
+ "type": "object",
8322
+ "properties": {
8323
+ "slug": {
8324
+ "type": "string",
8325
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
8326
+ "maxLength": 80,
8327
+ "description": "Unique kebab-case article identifier."
8328
+ },
8329
+ "category": {
8330
+ "type": "string",
8331
+ "minLength": 1,
8332
+ "maxLength": 80,
8333
+ "description": "Repeated section label used to group related articles in navigation."
8334
+ },
8335
+ "kicker": {
8336
+ "type": "string",
8337
+ "minLength": 1,
8338
+ "maxLength": 140,
8339
+ "description": "Short framing line above the article title."
8340
+ },
8341
+ "order": {
8342
+ "type": "integer",
8343
+ "minimum": 1,
8344
+ "maximum": 1e3,
8345
+ "description": "Reading order. Values must be unique."
8346
+ },
8347
+ "title": {
8348
+ "type": "string",
8349
+ "minLength": 1,
8350
+ "maxLength": 180,
8351
+ "description": "Article title that states the question, decision, or lesson."
8352
+ },
8353
+ "summary": {
8354
+ "type": "string",
8355
+ "minLength": 1,
8356
+ "maxLength": 500,
8357
+ "description": "One or two sentences explaining what the reader will understand."
8358
+ },
8359
+ "sourceType": {
8360
+ "type": "string",
8361
+ "minLength": 1,
8362
+ "maxLength": 80,
8363
+ "description": 'Optional source class such as "Conversation synthesis", "Research notes", or "Workshop guide".'
8364
+ },
8365
+ "sourceLabel": {
8366
+ "type": "string",
8367
+ "minLength": 1,
8368
+ "maxLength": 500,
8369
+ "description": "Visible provenance label naming the material this article was derived from. Do not invent a source."
8370
+ },
8371
+ "revision": {
8372
+ "type": "string",
8373
+ "minLength": 1,
8374
+ "maxLength": 80,
8375
+ "description": "Optional revision identifier or version label."
8376
+ },
8377
+ "updatedAt": {
8378
+ "type": "string",
8379
+ "minLength": 1,
8380
+ "maxLength": 80,
8381
+ "description": "Optional human-readable source update date."
8382
+ },
8383
+ "markdown": {
8384
+ "type": "string",
8385
+ "minLength": 1,
8386
+ "maxLength": 1e5,
8387
+ "description": "Complete article body in Markdown. Use H2/H3 headings for jump links, short paragraphs, concrete examples, and tables only where they improve comparison."
8388
+ }
8389
+ },
8390
+ "required": [
8391
+ "slug",
8392
+ "category",
8393
+ "kicker",
8394
+ "order",
8395
+ "title",
8396
+ "summary",
8397
+ "sourceLabel",
8398
+ "markdown"
8399
+ ],
8400
+ "additionalProperties": false
8401
+ },
8402
+ "minItems": 1,
8403
+ "maxItems": 40,
8404
+ "description": "One to forty fully authored articles, with no more than 2,000,000 Markdown bytes combined. Read all in-scope source material before composing them; preserve distinctions, uncertainty, and provenance instead of flattening the corpus."
8405
+ },
8406
+ "filename": {
8407
+ "type": "string",
8408
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
8409
+ "maxLength": 120,
8410
+ "description": "Optional download filename. The server always normalizes it to a safe .html filename."
8411
+ }
8412
+ },
8413
+ "required": [
8414
+ "site",
8415
+ "deck",
8416
+ "articles"
8417
+ ],
8418
+ "additionalProperties": false,
8419
+ "$schema": "http://json-schema.org/draft-07/schema#"
8420
+ },
8421
+ "annotations": {
8422
+ "title": "Create Editorial Reading Room",
8423
+ "readOnlyHint": false,
8424
+ "destructiveHint": false,
8425
+ "idempotentHint": false,
8426
+ "openWorldHint": false
8427
+ }
8428
+ },
8429
+ {
8430
+ "name": "editorial_reading_room_guide",
8431
+ "category": "editorial",
8432
+ "title": "Editorial Reading Room Guide",
8433
+ "description": 'Read the reusable composition contract before creating an editorial reading room. It tells the calling AI how to inventory the supplied corpus, preserve source truth, architect a coherent edition, write useful articles, and verify the finished page. Start with focus "workflow"; fetch "content_contract" or "example" only when needed. This does not research, write, or create a page.',
8434
+ "inputSchema": {
8435
+ "type": "object",
8436
+ "properties": {
8437
+ "focus": {
8438
+ "type": "string",
8439
+ "enum": [
8440
+ "workflow",
8441
+ "content_contract",
8442
+ "example"
8443
+ ],
8444
+ "default": "workflow",
8445
+ "description": "Which part of the reusable editorial-reading-room guide to return. Start with workflow; fetch the content contract or compact example only when needed."
8446
+ }
8447
+ },
8448
+ "additionalProperties": false,
8449
+ "$schema": "http://json-schema.org/draft-07/schema#"
8450
+ },
8451
+ "annotations": {
8452
+ "title": "Editorial Reading Room Guide",
8453
+ "readOnlyHint": true,
8454
+ "destructiveHint": false,
8455
+ "idempotentHint": true,
8456
+ "openWorldHint": false
8457
+ }
8458
+ },
8459
+ {
8460
+ "name": "renew_editorial_reading_room_download",
8461
+ "category": "editorial",
8462
+ "title": "Renew Editorial Reading Room Download",
8463
+ "description": "Create a fresh 15-minute signed download URL for a private editorial reading-room artifact owned by this caller. Use when the original create_editorial_reading_room URL expired; the HTML artifact itself is retained for seven days. Local files do not need renewal.",
8464
+ "inputSchema": {
8465
+ "type": "object",
8466
+ "properties": {
8467
+ "artifactId": {
8468
+ "type": "string",
8469
+ "minLength": 1,
8470
+ "description": "Private artifactId returned by create_editorial_reading_room."
8471
+ }
8472
+ },
8473
+ "required": [
8474
+ "artifactId"
8475
+ ],
8476
+ "additionalProperties": false,
8477
+ "$schema": "http://json-schema.org/draft-07/schema#"
8478
+ },
8479
+ "annotations": {
8480
+ "title": "Renew Editorial Reading Room Download",
8481
+ "readOnlyHint": true,
8482
+ "destructiveHint": false,
8483
+ "idempotentHint": false,
8484
+ "openWorldHint": false
8485
+ }
8228
8486
  }
8229
8487
  ];
8230
8488
  var MCP_TOOL_NAMES = MCP_TOOL_CATALOG.map((tool) => tool.name);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcpscraper-cli",
3
- "version": "0.21.0",
3
+ "version": "0.22.0",
4
4
  "description": "Command-line interface for mcpscraper.dev and memory.mcpscraper.dev",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "commander": "^12.0.0",
22
- "mcpscraper-sdk": "^0.22.0"
22
+ "mcpscraper-sdk": "^0.23.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^22.0.0"