mcp-scraper 0.66.3 → 0.66.5

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.
@@ -3,7 +3,7 @@
3
3
 
4
4
  // release-message.json
5
5
  var release_message_default = {
6
- message: "Strict MCP clients now discover all 259 tools through a compact runtime catalog, while generated SDKs retain complete output types."
6
+ message: "Local Sourcebook submissions now clearly distinguish processing from publication and return the exact live listing URL when complete."
7
7
  };
8
8
 
9
9
  // src/install-terminal.ts
@@ -112,7 +112,7 @@ function renderInstallTerminal(options) {
112
112
  }
113
113
 
114
114
  // src/version.ts
115
- var PACKAGE_VERSION = "0.66.3";
115
+ var PACKAGE_VERSION = "0.66.5";
116
116
 
117
117
  // bin/mcp-scraper-install.ts
118
118
  var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  renderInstallTerminal
4
- } from "../chunk-2XVDLF6H.js";
4
+ } from "../chunk-TCOP5BT7.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-JBFLOJGM.js";
7
+ } from "../chunk-RSFMR7O7.js";
8
8
 
9
9
  // bin/mcp-scraper-install.ts
10
10
  var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
@@ -1232,7 +1232,7 @@ render();
1232
1232
  }
1233
1233
 
1234
1234
  // src/version.ts
1235
- var PACKAGE_VERSION = "0.66.3";
1235
+ var PACKAGE_VERSION = "0.66.5";
1236
1236
 
1237
1237
  // src/mcp/input-field-descriptions.ts
1238
1238
  var import_zod = require("zod");
@@ -8378,11 +8378,16 @@ Multi-step orchestrations \u2014 prefer these over hand-chaining primitives when
8378
8378
  - A new capture costs 10 Credits total and includes broad website, exact Maps place, maximum-accessible review,
8379
8379
  service-area, staff, and genuine-media acquisition. When compilation succeeds, that exact system-authored evidence revision
8380
8380
  publishes automatically. Never supply owner-authored services, reviews, images, or other public claims.
8381
+ - An accepted capture is still processing, not complete. While its returned \`statusCheck.required\` is true,
8382
+ wait the suggested interval and call **local_sourcebook_submission_status** again before giving the user a
8383
+ final completion answer. When it publishes, say that the listing is live and include the exact clickable
8384
+ \`publicUrls.profileUrl\`; when it fails, report the returned failure message and cause.
8381
8385
  - Read progress and the compiled record with **local_sourcebook_submission_status**. Use
8382
8386
  **local_sourcebook_refresh** only when the owner intentionally wants to pay 2 Credits for a new acquisition pass.
8383
8387
  Contract, tag, preparation, validation, and status tools are free; idempotent retries are not charged twice.
8384
- - Capture and status responses return \`publicUrls.profileUrl\` and \`publicUrls.reviewsUrl\`. Always give those
8385
- exact links to the user; do not report a listing as live without including its clickable profile URL.
8388
+ - Capture and status responses return a plain-language \`message\`, a \`statusCheck\`, and exact public URLs. Do not
8389
+ describe a queued or enriching listing as complete, and do not report a listing as live without including its
8390
+ clickable \`publicUrls.profileUrl\`.
8386
8391
  - The last published revision remains public during refresh. Administrators can reject or unpublish an
8387
8392
  exceptional record, but routine subscriber publication does not require administrator review.
8388
8393
 
@@ -8408,10 +8413,10 @@ Multi-step orchestrations \u2014 prefer these over hand-chaining primitives when
8408
8413
  artifact, call \`report_artifact_read\` with the returned artifactId and follow nextOffset until null. This
8409
8414
  works through the authenticated MCP connection even when the client cannot open the signed download URL;
8410
8415
  do not try curl or web_fetch. Use \`archive_read\` for ZIP archives.
8411
- - Before using a connected account, call \`list_service_connections\` and match the intended provider-side
8412
- identity from \`providerAccountEmail\` or \`providerAccountName\`, not the MCP Scraper login. If
8413
- \`providerIdentityStatus\` is \`unavailable\`, ask the person to refresh that connection before assuming
8414
- which external account it represents.
8416
+ - Before using a connected account, call \`list_service_connections\`. Match an explicit \`userLabel\` first,
8417
+ then verified provider-side \`providerAccountEmail\`, \`providerAccountName\`, or \`providerAccountId\`; never
8418
+ treat the MCP Scraper login as external-provider identity. If identity is pending or unavailable and no
8419
+ distinct user label exists, ask the person which connection they mean instead of assuming.
8415
8420
  - For Google Search Console, use \`export_connected_service_data\` with
8416
8421
  \`dataset:"search_console_performance"\` when the person asks for a fresh JSONL download. When they
8417
8422
  ask to schedule ingestion or repeatedly filter historical rows, create a \`connection_sync\` schedule,
@@ -12064,7 +12069,12 @@ var ListServiceConnectionsOutputSchema = {
12064
12069
  connectionId: import_zod8.z.string(),
12065
12070
  providerConfigKey: import_zod8.z.string(),
12066
12071
  provider: import_zod8.z.string().nullable().optional(),
12067
- label: import_zod8.z.string(),
12072
+ label: import_zod8.z.string().describe("Best available human-facing account label: a userLabel when set, otherwise verified provider identity, then a stable fallback."),
12073
+ userLabel: import_zod8.z.string().nullable().optional().describe("Optional tenant-owned name set in the dashboard to distinguish this connection. This is not asserted provider identity."),
12074
+ providerAccountId: import_zod8.z.string().nullable().optional().describe("Stable provider-side account, user, workspace, channel, or tenant identifier when the provider exposes one."),
12075
+ providerAccountEmail: import_zod8.z.string().email().nullable().optional().describe("Verified provider-side email when the provider exposes one. This is never inferred from the MCP Scraper login."),
12076
+ providerAccountName: import_zod8.z.string().nullable().optional().describe("Provider-side account, user, workspace, channel, or tenant name when the provider exposes one."),
12077
+ providerIdentityStatus: import_zod8.z.enum(["pending", "verified", "unavailable"]).optional().describe("Whether provider identity discovery is pending, returned at least one verified provider identifier, or completed without one."),
12068
12078
  status: import_zod8.z.string(),
12069
12079
  lifecycleStatus: import_zod8.z.enum(["pending", "connected", "needs_reauth", "disconnecting", "disconnected"]).optional().describe("Credential lifecycle. This is separate from current provider availability."),
12070
12080
  operationalStatus: import_zod8.z.enum(["unknown", "available", "degraded", "unavailable"]).optional().describe("Last observed provider transport availability. Unavailable does not imply reconnect is required."),
@@ -14226,14 +14236,14 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
14226
14236
  }, async (input) => executor.validateLocalSourcebookWrite(input));
14227
14237
  server.registerTool("local-sourcebook-capture", {
14228
14238
  title: "Capture Governed Local Sourcebook Listing",
14229
- description: "Strict owner-scoped LocalBusiness write path after list, contract, prepare, and validate. Creating a listing costs 10 Credits total, including website, exact-place, review, service-area, staff, genuine-media, and structured-data compilation; preparation and validation are free, and idempotent retries are not charged twice. Capture registers canonical tags and the accepted Schema.org LocalBusiness subtype, returns the exact LocalSourcebook.com profile and reviews URLs, and queues acquisition. MCP Scraper generates the final JSON-LD from source-backed evidence. A successful system-compiled evidence revision publishes automatically; owner-authored public claims and arbitrary JSON-LD are not accepted.",
14239
+ description: "Strict owner-scoped LocalBusiness write path after list, contract, prepare, and validate. Creating a listing costs 10 Credits total, including website, exact-place, review, service-area, staff, genuine-media, and structured-data compilation; preparation and validation are free, and idempotent retries are not charged twice. Capture registers canonical tags and the accepted Schema.org LocalBusiness subtype, then queues acquisition; an accepted capture is not yet live. Poll local_sourcebook_submission_status using statusCheck until it is terminal. When published, tell the user the returned message and exact publicUrls.profileUrl. MCP Scraper generates the final JSON-LD from source-backed evidence and publishes a successful system-compiled revision automatically; owner-authored public claims and arbitrary JSON-LD are not accepted.",
14230
14240
  inputSchema: LocalSourcebookCaptureInputSchema,
14231
14241
  outputSchema: recordOutputSchema("local-sourcebook-capture", LocalSourcebookOutputSchema),
14232
14242
  annotations: liveWebToolAnnotations("Capture Governed Local Sourcebook Listing")
14233
14243
  }, async (input) => executor.localSourcebookCapture(input));
14234
14244
  server.registerTool("local_sourcebook_submission_status", {
14235
14245
  title: "Local Sourcebook Submission Status",
14236
- description: "Read the caller\u2019s listing draft, enrichment coverage, revision number, publication state, and live LocalSourcebook.com profile and reviews URLs. When status is failed, acquisitionError says why \u2014 read it before retrying, since a refresh repeats the same acquisition. Coverage counters are written only on success, so zeroed counters on a failed listing do not mean the crawl never ran.",
14246
+ description: "Read the caller\u2019s listing draft, enrichment coverage, revision number, publication state, and LocalSourcebook.com profile and reviews URLs. While statusCheck.required is true, wait the returned interval and check again before giving the user a final completion answer. When published, present the returned message and exact clickable publicUrls.profileUrl. When failed, present the failure message and read acquisitionError before retrying, since a refresh repeats the same acquisition. Coverage counters are written only on success, so zeroed counters on a failed listing do not mean the crawl never ran.",
14237
14247
  inputSchema: LocalSourcebookSubmissionStatusInputSchema,
14238
14248
  outputSchema: recordOutputSchema("local_sourcebook_submission_status", LocalSourcebookOutputSchema),
14239
14249
  annotations: localPlanningToolAnnotations("Local Sourcebook Submission Status")
@@ -14378,7 +14388,7 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
14378
14388
  }, async (input) => formatCreditsInfo(await executor.creditsInfo(input), input));
14379
14389
  server.registerTool("list_service_connections", {
14380
14390
  title: "List Connected Services",
14381
- description: "List every service connection this MCP Scraper account has authorized, including Resend, GitHub, Google Analytics, Google Search Console, YouTube, Facebook Pages, LinkedIn, X, Meta Marketing, Slack, Gmail, Calendar, Google Drive, Zoom, Xero, and others. Returns the tenant-scoped connectionId, credential transport, exact live readTools and gated actionTools, permission-aware toolCapabilities with missing OAuth-grant or provider-app-feature blockers, permanently blocked administrative tools, and schema-discovery metadata. Get a connectionId and exact tool name here before calling describe_service_connection_tool, read_service_connection, or call_service_connection_action. Managed OAuth and official remote MCP connections use the same provider-neutral bridges; mutations still require the account action switch and an exact allowed action. A scheduled Search Console connection_sync creates a typed tenant-owned performance table; after it runs, use the returned tableName with table-describe and table-query instead of repeatedly calling Google for historical filtering.",
14391
+ description: "List every service connection this MCP Scraper account has authorized, including Resend, GitHub, Google Analytics, Google Search Console, YouTube, Facebook Pages, LinkedIn, X, Meta Marketing, Slack, Gmail, Calendar, Google Drive, Zoom, Xero, and others. Returns the tenant-scoped connectionId; a tenant-owned userLabel; verified provider-side account ID, email, or name when available; credential transport; exact live readTools and gated actionTools; permission-aware toolCapabilities with missing OAuth-grant or provider-app-feature blockers; permanently blocked administrative tools; and schema-discovery metadata. Get a connectionId and exact tool name here before calling describe_service_connection_tool, read_service_connection, or call_service_connection_action. Managed OAuth and official remote MCP connections use the same provider-neutral bridges; mutations still require the account action switch and an exact allowed action. A scheduled Search Console connection_sync creates a typed tenant-owned performance table; after it runs, use the returned tableName with table-describe and table-query instead of repeatedly calling Google for historical filtering.",
14382
14392
  inputSchema: ListServiceConnectionsInputSchema,
14383
14393
  outputSchema: recordOutputSchema("list_service_connections", ListServiceConnectionsOutputSchema),
14384
14394
  annotations: { title: "List Connected Services", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
@@ -18655,7 +18665,7 @@ var HostedMemoryMcpToolExecutor = class {
18655
18665
 
18656
18666
  // release-message.json
18657
18667
  var release_message_default = {
18658
- message: "Strict MCP clients now discover all 259 tools through a compact runtime catalog, while generated SDKs retain complete output types."
18668
+ message: "Local Sourcebook submissions now clearly distinguish processing from publication and return the exact live listing URL when complete."
18659
18669
  };
18660
18670
 
18661
18671
  // src/install-terminal.ts
@@ -13,18 +13,18 @@ import {
13
13
  registerScheduledResultsMcpTools,
14
14
  registerSerpIntelligenceCaptureTools,
15
15
  resolveDeploymentProfile
16
- } from "../chunk-LNLMOBP6.js";
16
+ } from "../chunk-OJFWURGD.js";
17
17
  import "../chunk-PGJQDMC2.js";
18
18
  import "../chunk-3EYALCYK.js";
19
19
  import "../chunk-3TKKJQB4.js";
20
20
  import {
21
21
  renderInstallTerminal
22
- } from "../chunk-2XVDLF6H.js";
22
+ } from "../chunk-TCOP5BT7.js";
23
23
  import "../chunk-VXLU74YZ.js";
24
24
  import "../chunk-GGZEC22A.js";
25
25
  import {
26
26
  PACKAGE_VERSION
27
- } from "../chunk-JBFLOJGM.js";
27
+ } from "../chunk-RSFMR7O7.js";
28
28
  import "../chunk-DNM65UCK.js";
29
29
  import "../chunk-AYJHI2FK.js";
30
30
  import "../chunk-55B3T5L2.js";
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-VXLU74YZ.js";
26
26
  import {
27
27
  PACKAGE_VERSION
28
- } from "./chunk-JBFLOJGM.js";
28
+ } from "./chunk-RSFMR7O7.js";
29
29
  import {
30
30
  createPrivateArtifact,
31
31
  privateArtifactOwnerId,
@@ -550,11 +550,16 @@ Multi-step orchestrations \u2014 prefer these over hand-chaining primitives when
550
550
  - A new capture costs 10 Credits total and includes broad website, exact Maps place, maximum-accessible review,
551
551
  service-area, staff, and genuine-media acquisition. When compilation succeeds, that exact system-authored evidence revision
552
552
  publishes automatically. Never supply owner-authored services, reviews, images, or other public claims.
553
+ - An accepted capture is still processing, not complete. While its returned \`statusCheck.required\` is true,
554
+ wait the suggested interval and call **local_sourcebook_submission_status** again before giving the user a
555
+ final completion answer. When it publishes, say that the listing is live and include the exact clickable
556
+ \`publicUrls.profileUrl\`; when it fails, report the returned failure message and cause.
553
557
  - Read progress and the compiled record with **local_sourcebook_submission_status**. Use
554
558
  **local_sourcebook_refresh** only when the owner intentionally wants to pay 2 Credits for a new acquisition pass.
555
559
  Contract, tag, preparation, validation, and status tools are free; idempotent retries are not charged twice.
556
- - Capture and status responses return \`publicUrls.profileUrl\` and \`publicUrls.reviewsUrl\`. Always give those
557
- exact links to the user; do not report a listing as live without including its clickable profile URL.
560
+ - Capture and status responses return a plain-language \`message\`, a \`statusCheck\`, and exact public URLs. Do not
561
+ describe a queued or enriching listing as complete, and do not report a listing as live without including its
562
+ clickable \`publicUrls.profileUrl\`.
558
563
  - The last published revision remains public during refresh. Administrators can reject or unpublish an
559
564
  exceptional record, but routine subscriber publication does not require administrator review.
560
565
 
@@ -580,10 +585,10 @@ Multi-step orchestrations \u2014 prefer these over hand-chaining primitives when
580
585
  artifact, call \`report_artifact_read\` with the returned artifactId and follow nextOffset until null. This
581
586
  works through the authenticated MCP connection even when the client cannot open the signed download URL;
582
587
  do not try curl or web_fetch. Use \`archive_read\` for ZIP archives.
583
- - Before using a connected account, call \`list_service_connections\` and match the intended provider-side
584
- identity from \`providerAccountEmail\` or \`providerAccountName\`, not the MCP Scraper login. If
585
- \`providerIdentityStatus\` is \`unavailable\`, ask the person to refresh that connection before assuming
586
- which external account it represents.
588
+ - Before using a connected account, call \`list_service_connections\`. Match an explicit \`userLabel\` first,
589
+ then verified provider-side \`providerAccountEmail\`, \`providerAccountName\`, or \`providerAccountId\`; never
590
+ treat the MCP Scraper login as external-provider identity. If identity is pending or unavailable and no
591
+ distinct user label exists, ask the person which connection they mean instead of assuming.
587
592
  - For Google Search Console, use \`export_connected_service_data\` with
588
593
  \`dataset:"search_console_performance"\` when the person asks for a fresh JSONL download. When they
589
594
  ask to schedule ingestion or repeatedly filter historical rows, create a \`connection_sync\` schedule,
@@ -9442,7 +9447,12 @@ var ListServiceConnectionsOutputSchema = {
9442
9447
  connectionId: z6.string(),
9443
9448
  providerConfigKey: z6.string(),
9444
9449
  provider: z6.string().nullable().optional(),
9445
- label: z6.string(),
9450
+ label: z6.string().describe("Best available human-facing account label: a userLabel when set, otherwise verified provider identity, then a stable fallback."),
9451
+ userLabel: z6.string().nullable().optional().describe("Optional tenant-owned name set in the dashboard to distinguish this connection. This is not asserted provider identity."),
9452
+ providerAccountId: z6.string().nullable().optional().describe("Stable provider-side account, user, workspace, channel, or tenant identifier when the provider exposes one."),
9453
+ providerAccountEmail: z6.string().email().nullable().optional().describe("Verified provider-side email when the provider exposes one. This is never inferred from the MCP Scraper login."),
9454
+ providerAccountName: z6.string().nullable().optional().describe("Provider-side account, user, workspace, channel, or tenant name when the provider exposes one."),
9455
+ providerIdentityStatus: z6.enum(["pending", "verified", "unavailable"]).optional().describe("Whether provider identity discovery is pending, returned at least one verified provider identifier, or completed without one."),
9446
9456
  status: z6.string(),
9447
9457
  lifecycleStatus: z6.enum(["pending", "connected", "needs_reauth", "disconnecting", "disconnected"]).optional().describe("Credential lifecycle. This is separate from current provider availability."),
9448
9458
  operationalStatus: z6.enum(["unknown", "available", "degraded", "unavailable"]).optional().describe("Last observed provider transport availability. Unavailable does not imply reconnect is required."),
@@ -11735,14 +11745,14 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
11735
11745
  }, async (input) => executor.validateLocalSourcebookWrite(input));
11736
11746
  server.registerTool("local-sourcebook-capture", {
11737
11747
  title: "Capture Governed Local Sourcebook Listing",
11738
- description: "Strict owner-scoped LocalBusiness write path after list, contract, prepare, and validate. Creating a listing costs 10 Credits total, including website, exact-place, review, service-area, staff, genuine-media, and structured-data compilation; preparation and validation are free, and idempotent retries are not charged twice. Capture registers canonical tags and the accepted Schema.org LocalBusiness subtype, returns the exact LocalSourcebook.com profile and reviews URLs, and queues acquisition. MCP Scraper generates the final JSON-LD from source-backed evidence. A successful system-compiled evidence revision publishes automatically; owner-authored public claims and arbitrary JSON-LD are not accepted.",
11748
+ description: "Strict owner-scoped LocalBusiness write path after list, contract, prepare, and validate. Creating a listing costs 10 Credits total, including website, exact-place, review, service-area, staff, genuine-media, and structured-data compilation; preparation and validation are free, and idempotent retries are not charged twice. Capture registers canonical tags and the accepted Schema.org LocalBusiness subtype, then queues acquisition; an accepted capture is not yet live. Poll local_sourcebook_submission_status using statusCheck until it is terminal. When published, tell the user the returned message and exact publicUrls.profileUrl. MCP Scraper generates the final JSON-LD from source-backed evidence and publishes a successful system-compiled revision automatically; owner-authored public claims and arbitrary JSON-LD are not accepted.",
11739
11749
  inputSchema: LocalSourcebookCaptureInputSchema,
11740
11750
  outputSchema: recordOutputSchema("local-sourcebook-capture", LocalSourcebookOutputSchema),
11741
11751
  annotations: liveWebToolAnnotations("Capture Governed Local Sourcebook Listing")
11742
11752
  }, async (input) => executor.localSourcebookCapture(input));
11743
11753
  server.registerTool("local_sourcebook_submission_status", {
11744
11754
  title: "Local Sourcebook Submission Status",
11745
- description: "Read the caller\u2019s listing draft, enrichment coverage, revision number, publication state, and live LocalSourcebook.com profile and reviews URLs. When status is failed, acquisitionError says why \u2014 read it before retrying, since a refresh repeats the same acquisition. Coverage counters are written only on success, so zeroed counters on a failed listing do not mean the crawl never ran.",
11755
+ description: "Read the caller\u2019s listing draft, enrichment coverage, revision number, publication state, and LocalSourcebook.com profile and reviews URLs. While statusCheck.required is true, wait the returned interval and check again before giving the user a final completion answer. When published, present the returned message and exact clickable publicUrls.profileUrl. When failed, present the failure message and read acquisitionError before retrying, since a refresh repeats the same acquisition. Coverage counters are written only on success, so zeroed counters on a failed listing do not mean the crawl never ran.",
11746
11756
  inputSchema: LocalSourcebookSubmissionStatusInputSchema,
11747
11757
  outputSchema: recordOutputSchema("local_sourcebook_submission_status", LocalSourcebookOutputSchema),
11748
11758
  annotations: localPlanningToolAnnotations("Local Sourcebook Submission Status")
@@ -11887,7 +11897,7 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
11887
11897
  }, async (input) => formatCreditsInfo(await executor.creditsInfo(input), input));
11888
11898
  server.registerTool("list_service_connections", {
11889
11899
  title: "List Connected Services",
11890
- description: "List every service connection this MCP Scraper account has authorized, including Resend, GitHub, Google Analytics, Google Search Console, YouTube, Facebook Pages, LinkedIn, X, Meta Marketing, Slack, Gmail, Calendar, Google Drive, Zoom, Xero, and others. Returns the tenant-scoped connectionId, credential transport, exact live readTools and gated actionTools, permission-aware toolCapabilities with missing OAuth-grant or provider-app-feature blockers, permanently blocked administrative tools, and schema-discovery metadata. Get a connectionId and exact tool name here before calling describe_service_connection_tool, read_service_connection, or call_service_connection_action. Managed OAuth and official remote MCP connections use the same provider-neutral bridges; mutations still require the account action switch and an exact allowed action. A scheduled Search Console connection_sync creates a typed tenant-owned performance table; after it runs, use the returned tableName with table-describe and table-query instead of repeatedly calling Google for historical filtering.",
11900
+ description: "List every service connection this MCP Scraper account has authorized, including Resend, GitHub, Google Analytics, Google Search Console, YouTube, Facebook Pages, LinkedIn, X, Meta Marketing, Slack, Gmail, Calendar, Google Drive, Zoom, Xero, and others. Returns the tenant-scoped connectionId; a tenant-owned userLabel; verified provider-side account ID, email, or name when available; credential transport; exact live readTools and gated actionTools; permission-aware toolCapabilities with missing OAuth-grant or provider-app-feature blockers; permanently blocked administrative tools; and schema-discovery metadata. Get a connectionId and exact tool name here before calling describe_service_connection_tool, read_service_connection, or call_service_connection_action. Managed OAuth and official remote MCP connections use the same provider-neutral bridges; mutations still require the account action switch and an exact allowed action. A scheduled Search Console connection_sync creates a typed tenant-owned performance table; after it runs, use the returned tableName with table-describe and table-query instead of repeatedly calling Google for historical filtering.",
11891
11901
  inputSchema: ListServiceConnectionsInputSchema,
11892
11902
  outputSchema: recordOutputSchema("list_service_connections", ListServiceConnectionsOutputSchema),
11893
11903
  annotations: { title: "List Connected Services", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var PACKAGE_VERSION = "0.66.3";
2
+ var PACKAGE_VERSION = "0.66.5";
3
3
 
4
4
  export {
5
5
  PACKAGE_VERSION
@@ -1,6 +1,6 @@
1
1
  // release-message.json
2
2
  var release_message_default = {
3
- message: "Strict MCP clients now discover all 259 tools through a compact runtime catalog, while generated SDKs retain complete output types."
3
+ message: "Local Sourcebook submissions now clearly distinguish processing from publication and return the exact live listing URL when complete."
4
4
  };
5
5
 
6
6
  // src/install-terminal.ts