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.
- package/dist/bin/api-server.cjs +97 -4
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +1 -1
- package/dist/bin/mcp-scraper-cli.cjs +1 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
- package/dist/bin/mcp-scraper-cli.js +1 -1
- package/dist/bin/mcp-scraper-install.cjs +1 -1
- package/dist/bin/mcp-scraper-install.cjs.map +1 -1
- package/dist/bin/mcp-scraper-install.js +1 -1
- package/dist/bin/mcp-stdio-server.cjs +49 -3
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +2 -2
- package/dist/chunk-B7BAJU7K.js +7 -0
- package/dist/chunk-B7BAJU7K.js.map +1 -0
- package/dist/{chunk-FZG427QD.js → chunk-IRYBBEZJ.js} +50 -4
- package/dist/chunk-IRYBBEZJ.js.map +1 -0
- package/dist/{server-E34MNLI3.js → server-KTA7CFX6.js} +50 -3
- package/dist/server-KTA7CFX6.js.map +1 -0
- package/docs/oauth-legal-review.md +38 -0
- package/package.json +1 -1
- package/dist/chunk-FZG427QD.js.map +0 -1
- package/dist/chunk-RD5JOAWS.js +0 -7
- package/dist/chunk-RD5JOAWS.js.map +0 -1
- package/dist/server-E34MNLI3.js.map +0 -1
package/dist/bin/api-server.cjs
CHANGED
|
@@ -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.
|
|
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
|
|
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");
|