mcp-scraper 0.9.0 → 0.10.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.
@@ -27452,7 +27452,7 @@ var PACKAGE_VERSION;
27452
27452
  var init_version = __esm({
27453
27453
  "src/version.ts"() {
27454
27454
  "use strict";
27455
- PACKAGE_VERSION = "0.9.0";
27455
+ PACKAGE_VERSION = "0.10.0";
27456
27456
  }
27457
27457
  });
27458
27458
 
@@ -27625,7 +27625,7 @@ var init_output_schema_registry = __esm({
27625
27625
  });
27626
27626
 
27627
27627
  // src/mcp/mcp-tool-schemas.ts
27628
- var import_zod33, HarvestPaaInputSchema, ExtractUrlInputSchema, DiffPageInputSchema, MapSiteUrlsInputSchema, ExtractSiteInputSchema, AuditSiteInputSchema, YoutubeHarvestInputSchema, YoutubeTranscribeInputSchema, FacebookPageIntelInputSchema, FacebookAdSearchInputSchema, RedditThreadInputSchema, VideoFrameAnalysisInputSchema, VideoFrameAnalysisStatusInputSchema, FacebookAdTranscribeInputSchema, FacebookVideoTranscribeInputSchema, GoogleAdsSearchInputSchema, GoogleAdsPageIntelInputSchema, GoogleAdsTranscribeInputSchema, InstagramProfileContentInputSchema, InstagramMediaDownloadInputSchema, MapsPlaceIntelInputSchema, TrustpilotReviewsInputSchema, G2ReviewsInputSchema, ReviewCardSchema, MapsSearchInputSchema, DirectoryWorkflowInputSchema, ArtifactPointerOutputSchema, RankTrackerModeSchema, RankTrackerBlueprintInputSchema, NullableString, MapsSearchAttemptOutput, MapsSearchOutputSchema, DirectoryMapsBusinessOutput, DirectoryWorkflowOutputSchema, RankTrackerToolPlanOutput, RankTrackerTableOutput, RankTrackerCronJobOutput, RankTrackerBlueprintOutputSchema, OrganicResultOutput, AiOverviewOutput, EntityIdsOutput, HarvestPaaOutputSchema, SearchSerpOutputSchema, ExtractUrlOutputSchema, DiffPageOutputSchema, ExtractSiteOutputSchema, AuditSiteOutputSchema, MapsPlaceIntelOutputSchema, TrustpilotReviewsOutputSchema, G2ReviewsOutputSchema, CreditsInfoOutputSchema, MapSiteUrlsOutputSchema, YoutubeHarvestOutputSchema, FacebookAdSearchOutputSchema, VideoFrameAnalysisOutputSchema, VideoFrameAnalysisStatusOutputSchema, RedditThreadOutputSchema, FacebookPageIntelOutputSchema, GoogleAdsSearchOutputSchema, GoogleAdsPageIntelOutputSchema, FacebookVideoTranscribeOutputSchema, TranscriptChunkOutput, InstagramBrowserOutput, InstagramPaginationOutput, InstagramProfileContentOutputSchema, InstagramMediaTrackOutput, InstagramDownloadOutput, InstagramMediaDownloadOutputSchema, YoutubeTranscribeOutputSchema, FacebookAdTranscribeOutputSchema, GoogleAdsTranscribeOutputSchema, CaptureSerpSnapshotOutputSchema, CaptureSerpPageSnapshotsOutputSchema, CreditsInfoInputSchema, WorkflowIdSchema2, WorkflowListInputSchema, WorkflowSuggestInputSchema, WorkflowRunInputSchema, WorkflowStepInputSchema, WorkflowStatusInputSchema, WorkflowArtifactReadInputSchema, WorkflowRecipeOutput, WorkflowDefinitionOutput, WorkflowArtifactOutput, WorkflowListOutputSchema, WorkflowSuggestOutputSchema, WorkflowRunOutputSchema, WorkflowStepOutputSchema, WorkflowStatusOutputSchema, WorkflowArtifactReadOutputSchema, SearchSerpInputSchema, CaptureSerpSnapshotInputSchema, ScreenshotInputSchema, CaptureSerpPageSnapshotsInputSchema, ReportArtifactReadInputSchema, ReportArtifactReadOutputSchema, ListServiceConnectionsInputSchema, ListServiceConnectionsOutputSchema, SlackSendMessageInputSchema, SlackSendMessageOutputSchema, GmailSendMessageInputSchema, GmailSendMessageOutputSchema, GoogleCalendarCreateEventInputSchema, GoogleCalendarCreateEventOutputSchema;
27628
+ var import_zod33, HarvestPaaInputSchema, ExtractUrlInputSchema, DiffPageInputSchema, MapSiteUrlsInputSchema, ExtractSiteInputSchema, AuditSiteInputSchema, YoutubeHarvestInputSchema, YoutubeTranscribeInputSchema, FacebookPageIntelInputSchema, FacebookAdSearchInputSchema, RedditThreadInputSchema, VideoFrameAnalysisInputSchema, VideoFrameAnalysisStatusInputSchema, FacebookAdTranscribeInputSchema, FacebookVideoTranscribeInputSchema, GoogleAdsSearchInputSchema, GoogleAdsPageIntelInputSchema, GoogleAdsTranscribeInputSchema, InstagramProfileContentInputSchema, InstagramMediaDownloadInputSchema, MapsPlaceIntelInputSchema, TrustpilotReviewsInputSchema, G2ReviewsInputSchema, ReviewCardSchema, MapsSearchInputSchema, DirectoryWorkflowInputSchema, ArtifactPointerOutputSchema, RankTrackerModeSchema, RankTrackerBlueprintInputSchema, NullableString, MapsSearchAttemptOutput, MapsSearchOutputSchema, DirectoryMapsBusinessOutput, DirectoryWorkflowOutputSchema, RankTrackerToolPlanOutput, RankTrackerTableOutput, RankTrackerCronJobOutput, RankTrackerBlueprintOutputSchema, OrganicResultOutput, AiOverviewOutput, EntityIdsOutput, HarvestPaaOutputSchema, SearchSerpOutputSchema, ExtractUrlOutputSchema, DiffPageOutputSchema, ExtractSiteOutputSchema, AuditSiteOutputSchema, MapsPlaceIntelOutputSchema, TrustpilotReviewsOutputSchema, G2ReviewsOutputSchema, CreditsInfoOutputSchema, MapSiteUrlsOutputSchema, YoutubeHarvestOutputSchema, FacebookAdSearchOutputSchema, VideoFrameAnalysisOutputSchema, VideoFrameAnalysisStatusOutputSchema, RedditThreadOutputSchema, FacebookPageIntelOutputSchema, GoogleAdsSearchOutputSchema, GoogleAdsPageIntelOutputSchema, FacebookVideoTranscribeOutputSchema, TranscriptChunkOutput, InstagramBrowserOutput, InstagramPaginationOutput, InstagramProfileContentOutputSchema, InstagramMediaTrackOutput, InstagramDownloadOutput, InstagramMediaDownloadOutputSchema, YoutubeTranscribeOutputSchema, FacebookAdTranscribeOutputSchema, GoogleAdsTranscribeOutputSchema, CaptureSerpSnapshotOutputSchema, CaptureSerpPageSnapshotsOutputSchema, CreditsInfoInputSchema, WorkflowIdSchema2, WorkflowListInputSchema, WorkflowSuggestInputSchema, WorkflowRunInputSchema, WorkflowStepInputSchema, WorkflowStatusInputSchema, WorkflowArtifactReadInputSchema, WorkflowRecipeOutput, WorkflowDefinitionOutput, WorkflowArtifactOutput, WorkflowListOutputSchema, WorkflowSuggestOutputSchema, WorkflowRunOutputSchema, WorkflowStepOutputSchema, WorkflowStatusOutputSchema, WorkflowArtifactReadOutputSchema, SearchSerpInputSchema, CaptureSerpSnapshotInputSchema, ScreenshotInputSchema, CaptureSerpPageSnapshotsInputSchema, ReportArtifactReadInputSchema, ReportArtifactReadOutputSchema, ListServiceConnectionsInputSchema, ListServiceConnectionsOutputSchema, ReadServiceConnectionInputSchema, ReadServiceConnectionOutputSchema, SlackSendMessageInputSchema, SlackSendMessageOutputSchema, GmailSendMessageInputSchema, GmailSendMessageOutputSchema, GoogleCalendarCreateEventInputSchema, GoogleCalendarCreateEventOutputSchema, ZoomCreateMeetingInputSchema, ZoomCreateMeetingOutputSchema;
27629
27629
  var init_mcp_tool_schemas = __esm({
27630
27630
  "src/mcp/mcp-tool-schemas.ts"() {
27631
27631
  "use strict";
@@ -28657,9 +28657,22 @@ var init_mcp_tool_schemas = __esm({
28657
28657
  providerConfigKey: import_zod33.z.string(),
28658
28658
  label: import_zod33.z.string(),
28659
28659
  status: import_zod33.z.string(),
28660
- actionsEnabled: import_zod33.z.boolean()
28660
+ actionsEnabled: import_zod33.z.boolean(),
28661
+ readTools: import_zod33.z.array(import_zod33.z.string()).describe("Tool names this connection can be read with via read_service_connection."),
28662
+ vaultName: import_zod33.z.string().nullable().describe("Memory vault this connection's digest writes into, if it has run at least once. Search it with memory-search."),
28663
+ tableName: import_zod33.z.string().nullable().describe("Table this connection's digest writes structured rows into, if it has run at least once. Query it with table-query.")
28661
28664
  }))
28662
28665
  };
28666
+ ReadServiceConnectionInputSchema = {
28667
+ connectionId: import_zod33.z.string().min(1).describe("A connectionId from list_service_connections."),
28668
+ tool: import_zod33.z.string().min(1).describe("One of that connection's readTools (from list_service_connections). An unlisted tool name is rejected with the allowed list."),
28669
+ args: import_zod33.z.record(import_zod33.z.string(), import_zod33.z.unknown()).optional().describe("Arguments for the tool, if it needs any (e.g. a channel id, a date filter).")
28670
+ };
28671
+ ReadServiceConnectionOutputSchema = {
28672
+ ok: import_zod33.z.boolean(),
28673
+ result: import_zod33.z.unknown().optional(),
28674
+ error: NullableString
28675
+ };
28663
28676
  SlackSendMessageInputSchema = {
28664
28677
  connectionId: import_zod33.z.string().min(1).describe("A Slack connectionId from list_service_connections, with actionsEnabled true."),
28665
28678
  channel: import_zod33.z.string().min(1).describe(`Slack channel ID to send to, e.g. "C1234567890". Get this from the connection's own read tools, not guessed.`),
@@ -28696,6 +28709,19 @@ var init_mcp_tool_schemas = __esm({
28696
28709
  result: import_zod33.z.unknown().optional(),
28697
28710
  error: NullableString
28698
28711
  };
28712
+ ZoomCreateMeetingInputSchema = {
28713
+ connectionId: import_zod33.z.string().min(1).describe("A Zoom connectionId from list_service_connections, with actionsEnabled true."),
28714
+ topic: import_zod33.z.string().min(1).max(200).describe("Meeting topic/title."),
28715
+ startDateTime: import_zod33.z.string().min(1).describe('Start time, ISO 8601, e.g. "2026-07-15T09:00:00-06:00".'),
28716
+ durationMinutes: import_zod33.z.number().int().min(1).max(1440).default(30).describe("Meeting duration in minutes. Default 30."),
28717
+ timezone: import_zod33.z.string().max(100).optional().describe('IANA timezone, e.g. "America/Denver".'),
28718
+ agenda: import_zod33.z.string().max(2e3).optional().describe("Meeting description/agenda.")
28719
+ };
28720
+ ZoomCreateMeetingOutputSchema = {
28721
+ ok: import_zod33.z.boolean(),
28722
+ result: import_zod33.z.unknown().optional(),
28723
+ error: NullableString
28724
+ };
28699
28725
  }
28700
28726
  });
28701
28727
 
@@ -29377,7 +29403,7 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
29377
29403
  }, async (input) => formatCreditsInfo(await executor.creditsInfo(input), input));
29378
29404
  server.registerTool("list_service_connections", {
29379
29405
  title: "List Connected Services",
29380
- description: "List the third-party service connections (Slack, Gmail, Google Calendar) the account has authorized, with each connection's id and whether it is enabled for live actions. Get a connectionId from here before calling slack_send_message, gmail_send_message, or google_calendar_create_event.",
29406
+ description: "List the third-party service connections (Slack, Gmail, Google Calendar, Zoom, Xero) the account has authorized, with each connection's id, whether it is enabled for live actions, its live readTools, and its digest vault/table (if the digest has run). Get a connectionId from here before calling read_service_connection, slack_send_message, gmail_send_message, google_calendar_create_event, or zoom_create_meeting. For already-digested history, search vaultName with memory-search or query tableName with table-query instead of a live read.",
29381
29407
  inputSchema: ListServiceConnectionsInputSchema,
29382
29408
  outputSchema: recordOutputSchema("list_service_connections", ListServiceConnectionsOutputSchema),
29383
29409
  annotations: { title: "List Connected Services", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
@@ -29403,6 +29429,20 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
29403
29429
  outputSchema: recordOutputSchema("google_calendar_create_event", GoogleCalendarCreateEventOutputSchema),
29404
29430
  annotations: { title: "Create Calendar Event", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
29405
29431
  }, async (input) => executor.googleCalendarCreateEvent(input));
29432
+ server.registerTool("zoom_create_meeting", {
29433
+ title: "Create Zoom Meeting",
29434
+ description: "Create a meeting on a connected, action-enabled Zoom connection. Requires a connectionId from list_service_connections with actionsEnabled true; the person must have explicitly turned actions on for that connection.",
29435
+ inputSchema: ZoomCreateMeetingInputSchema,
29436
+ outputSchema: recordOutputSchema("zoom_create_meeting", ZoomCreateMeetingOutputSchema),
29437
+ annotations: { title: "Create Zoom Meeting", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }
29438
+ }, async (input) => executor.zoomCreateMeeting(input));
29439
+ server.registerTool("read_service_connection", {
29440
+ title: "Read Connected Service",
29441
+ description: "Call one live, read-only tool on a connected service (Slack/Gmail/Google Calendar/Zoom/Xero) to get current data \u2014 e.g. get-conversation-history, list-messages, list-invoices. Requires a connectionId and a tool name from that connection's readTools in list_service_connections; an unlisted tool name is rejected. For history that's already been digested, prefer memory-search over the connection's vaultName or table-query over its tableName \u2014 faster and free.",
29442
+ inputSchema: ReadServiceConnectionInputSchema,
29443
+ outputSchema: recordOutputSchema("read_service_connection", ReadServiceConnectionOutputSchema),
29444
+ annotations: { title: "Read Connected Service", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
29445
+ }, async (input) => executor.readServiceConnection(input));
29406
29446
  }
29407
29447
  var import_mcp, import_node_fs9, import_node_path12, import_node_crypto10;
29408
29448
  var init_paa_mcp_server = __esm({
@@ -29723,6 +29763,12 @@ var init_http_mcp_tool_executor = __esm({
29723
29763
  googleCalendarCreateEvent(input) {
29724
29764
  return this.call("/schedule-connections/actions/google-calendar/create-event", input);
29725
29765
  }
29766
+ zoomCreateMeeting(input) {
29767
+ return this.call("/schedule-connections/actions/zoom/create-meeting", input);
29768
+ }
29769
+ readServiceConnection(input) {
29770
+ return this.call("/schedule-connections/actions/read", input);
29771
+ }
29726
29772
  captureSerpSnapshot(input) {
29727
29773
  return this.call("/serp-intelligence/capture", input, this.serpIntelligenceTimeoutMs);
29728
29774
  }
@@ -38949,6 +38995,9 @@ async function getNangoConnections(identity) {
38949
38995
  status: reconnectRequired ? "needs_reauth" : "connected",
38950
38996
  reconnectRequired,
38951
38997
  actionsEnabled: row.actionsEnabled === true || row.actions_enabled === true,
38998
+ readTools: cleanTools(row.readTools ?? row.read_tools),
38999
+ vaultName: firstString(row, ["vaultName", "vault_name"], 100),
39000
+ tableName: firstString(row, ["tableName", "table_name"], 100),
38952
39001
  createdAt: firstString(row, ["createdAt", "created_at"], 100),
38953
39002
  updatedAt: firstString(row, ["updatedAt", "updated_at"], 100)
38954
39003
  });
@@ -39071,6 +39120,14 @@ async function callScheduleConnectionAction(identity, connectionId, input) {
39071
39120
  const data = unwrapData(body);
39072
39121
  return isRecord(data) ? data.result ?? data : data;
39073
39122
  }
39123
+ async function callScheduleConnectionRead(identity, connectionId, tool, args) {
39124
+ const body = await controlRequest("/api/internal/nango/connections/actions/read", {
39125
+ method: "POST",
39126
+ body: JSON.stringify({ identity, connectionId, tool, args: args ?? {} })
39127
+ });
39128
+ const data = unwrapData(body);
39129
+ return isRecord(data) ? data.result ?? data : data;
39130
+ }
39074
39131
  var DEFAULT_NANGO_CONTROL_URL, DISABLED_NANGO_TOOLS, NangoControlError, ScheduleConnectionValidationError;
39075
39132
  var init_nango_control = __esm({
39076
39133
  "src/api/nango-control.ts"() {
@@ -40073,6 +40130,42 @@ var init_server = __esm({
40073
40130
  return scheduleConnectionError(c, err, "Unable to create the calendar event.");
40074
40131
  }
40075
40132
  });
40133
+ app.post("/schedule-connections/actions/zoom/create-meeting", auth2, async (c) => {
40134
+ const user = c.get("user");
40135
+ const body = await c.req.json().catch(() => ({}));
40136
+ const connectionId = providerConfigKeyFrom(body.connectionId);
40137
+ if (!connectionId || typeof body.topic !== "string" || typeof body.startDateTime !== "string") {
40138
+ return c.json({ ok: false, error: "connectionId, topic, and startDateTime are required." }, 400);
40139
+ }
40140
+ try {
40141
+ const result = await callScheduleConnectionAction(user.email, connectionId, {
40142
+ topic: body.topic,
40143
+ startDateTime: body.startDateTime,
40144
+ durationMinutes: typeof body.durationMinutes === "number" ? body.durationMinutes : 30,
40145
+ timezone: typeof body.timezone === "string" ? body.timezone : void 0,
40146
+ agenda: typeof body.agenda === "string" ? body.agenda : void 0
40147
+ });
40148
+ return c.json({ ok: true, result });
40149
+ } catch (err) {
40150
+ return scheduleConnectionError(c, err, "Unable to create the Zoom meeting.");
40151
+ }
40152
+ });
40153
+ app.post("/schedule-connections/actions/read", auth2, async (c) => {
40154
+ const user = c.get("user");
40155
+ const body = await c.req.json().catch(() => ({}));
40156
+ const connectionId = providerConfigKeyFrom(body.connectionId);
40157
+ const tool = providerConfigKeyFrom(body.tool);
40158
+ if (!connectionId || !tool) {
40159
+ return c.json({ ok: false, error: "connectionId and tool are required." }, 400);
40160
+ }
40161
+ const args = body.args && typeof body.args === "object" && !Array.isArray(body.args) ? body.args : {};
40162
+ try {
40163
+ const result = await callScheduleConnectionRead(user.email, connectionId, tool, args);
40164
+ return c.json({ ok: true, result });
40165
+ } catch (err) {
40166
+ return scheduleConnectionError(c, err, "Unable to read from this connection.");
40167
+ }
40168
+ });
40076
40169
  app.post("/schedule-link", auth2, async (c) => {
40077
40170
  try {
40078
40171
  const user = c.get("user");