mcp-scraper 0.15.0 → 0.16.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 +7 -5
- package/dist/bin/api-server.cjs +278 -20
- 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 +42 -10
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +2 -2
- package/dist/chunk-HQYIP5X3.js +7 -0
- package/dist/chunk-HQYIP5X3.js.map +1 -0
- package/dist/{chunk-ETJBTYZX.js → chunk-YIV4IKFG.js} +43 -11
- package/dist/chunk-YIV4IKFG.js.map +1 -0
- package/dist/{server-DDKXWYTO.js → server-QEXOVJPR.js} +238 -12
- package/dist/server-QEXOVJPR.js.map +1 -0
- package/docs/mcp-tool-manifest.generated.json +162 -6
- package/docs/specs/google-drive-bulk-access-and-mcp-schema-passthrough-spec.md +1680 -0
- package/package.json +1 -1
- package/dist/chunk-ETJBTYZX.js.map +0 -1
- package/dist/chunk-TK2S2M7G.js +0 -7
- package/dist/chunk-TK2S2M7G.js.map +0 -1
- package/dist/server-DDKXWYTO.js.map +0 -1
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
registerMemoryMcpTools,
|
|
8
8
|
registerPaaExtractorMcpTools,
|
|
9
9
|
registerSerpIntelligenceCaptureTools
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-YIV4IKFG.js";
|
|
11
11
|
import "../chunk-R7EETU7Z.js";
|
|
12
12
|
import "../chunk-HPV4VOQX.js";
|
|
13
13
|
import {
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
import "../chunk-XGIPATLV.js";
|
|
17
17
|
import {
|
|
18
18
|
PACKAGE_VERSION
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-HQYIP5X3.js";
|
|
20
20
|
import "../chunk-HL33CGJF.js";
|
|
21
21
|
import "../chunk-M2S27J6Z.js";
|
|
22
22
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const PACKAGE_VERSION = '0.16.0'\n"],"mappings":";AAAO,IAAM,kBAAkB;","names":[]}
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-XGIPATLV.js";
|
|
18
18
|
import {
|
|
19
19
|
PACKAGE_VERSION
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-HQYIP5X3.js";
|
|
21
21
|
import {
|
|
22
22
|
MC_PER_CREDIT
|
|
23
23
|
} from "./chunk-HL33CGJF.js";
|
|
@@ -4057,6 +4057,9 @@ var ListServiceConnectionsOutputSchema = {
|
|
|
4057
4057
|
readTools: z.array(z.string()).describe("Tool names this connection can be read with via read_service_connection."),
|
|
4058
4058
|
actionTools: z.array(z.string()).describe("Explicitly allowlisted write or mutation tool names callable through call_service_connection_action after actions are enabled for this connection."),
|
|
4059
4059
|
adminBlockedTools: z.array(z.string()).describe("Credential, OAuth-grant, or other administrative tools permanently blocked from the MCP and scheduler."),
|
|
4060
|
+
mcpEndpoint: z.string().url().nullable().describe("Authenticated connection-scoped MCP endpoint when native provider tools/list projection is available. Null means use describe_service_connection_tool on this root MCP."),
|
|
4061
|
+
schemaDiscovery: z.enum(["connection_tools_list", "compatibility_describe"]).describe("How clients discover this connection's exact live provider schemas."),
|
|
4062
|
+
toolRevision: z.string().nullable().describe("Opaque revision of the resolved live tool catalog, when available. It changes when provider tools or policy change."),
|
|
4060
4063
|
vaultName: z.string().nullable().describe("Memory vault this connection's digest writes into, if it has run at least once. Search it with memory-search."),
|
|
4061
4064
|
tableName: 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.")
|
|
4062
4065
|
}))
|
|
@@ -4073,7 +4076,8 @@ var ReadServiceConnectionOutputSchema = {
|
|
|
4073
4076
|
};
|
|
4074
4077
|
var DescribeServiceConnectionToolInputSchema = {
|
|
4075
4078
|
connectionId: z.string().min(1).describe("A tenant-owned connectionId from list_service_connections."),
|
|
4076
|
-
tool: z.string().min(1).describe("One exact name from that connection's readTools or actionTools. Admin-blocked and arbitrary names are rejected.")
|
|
4079
|
+
tool: z.string().min(1).describe("One exact name from that connection's readTools or actionTools. Admin-blocked and arbitrary names are rejected."),
|
|
4080
|
+
fresh: z.boolean().optional().describe("Bypass the short-lived sanitized schema cache. Ownership, connection state, and tool policy are still rechecked; use only when a provider tool catalog just changed.")
|
|
4077
4081
|
};
|
|
4078
4082
|
var DescribeServiceConnectionToolOutputSchema = {
|
|
4079
4083
|
ok: z.boolean(),
|
|
@@ -4082,8 +4086,33 @@ var DescribeServiceConnectionToolOutputSchema = {
|
|
|
4082
4086
|
title: NullableString,
|
|
4083
4087
|
description: NullableString,
|
|
4084
4088
|
classification: z.enum(["read", "action"]),
|
|
4085
|
-
|
|
4089
|
+
callable: z.boolean().optional().describe("Whether the tool is callable now. A gated action can be described while actions are off and return false."),
|
|
4090
|
+
blockedReason: z.enum(["actions_disabled", "inactive_connection"]).nullable().optional(),
|
|
4091
|
+
transport: z.enum(["nango", "remote_mcp"]).optional(),
|
|
4092
|
+
providerConfigKey: z.string().optional(),
|
|
4093
|
+
protocolVersion: NullableString.optional(),
|
|
4094
|
+
schemaSource: z.literal("live_tools_list").optional(),
|
|
4095
|
+
inputSchema: z.record(z.string(), z.unknown()).describe("JSON Schema for the exact connected-provider tool arguments."),
|
|
4096
|
+
outputSchema: z.record(z.string(), z.unknown()).optional().describe("Provider-native JSON output schema when the live MCP tool publishes one."),
|
|
4097
|
+
annotations: z.object({
|
|
4098
|
+
title: z.string().optional(),
|
|
4099
|
+
readOnlyHint: z.boolean().optional(),
|
|
4100
|
+
destructiveHint: z.boolean().optional(),
|
|
4101
|
+
idempotentHint: z.boolean().optional(),
|
|
4102
|
+
openWorldHint: z.boolean().optional()
|
|
4103
|
+
}).optional(),
|
|
4104
|
+
icons: z.array(z.object({
|
|
4105
|
+
src: z.string(),
|
|
4106
|
+
mimeType: z.string().optional(),
|
|
4107
|
+
sizes: z.array(z.string()).optional(),
|
|
4108
|
+
theme: z.enum(["light", "dark"]).optional()
|
|
4109
|
+
})).optional(),
|
|
4110
|
+
execution: z.object({ taskSupport: z.enum(["forbidden", "optional", "required"]) }).optional(),
|
|
4111
|
+
schemaHash: z.string().optional().describe("SHA-256 of the sanitized live Tool definition."),
|
|
4112
|
+
fetchedAt: z.string().optional()
|
|
4086
4113
|
}).optional(),
|
|
4114
|
+
retryable: z.boolean().optional(),
|
|
4115
|
+
errorCode: z.string().optional(),
|
|
4087
4116
|
error: NullableString
|
|
4088
4117
|
};
|
|
4089
4118
|
var ConnectedDataContinuationSchema = z.object({
|
|
@@ -4891,7 +4920,7 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
4891
4920
|
}, async (input) => formatCreditsInfo(await executor.creditsInfo(input), input));
|
|
4892
4921
|
server.registerTool("list_service_connections", {
|
|
4893
4922
|
title: "List Connected Services",
|
|
4894
|
-
description: "List every third-party service connection this MCP Scraper account has authorized, including Resend, GitHub, Google Analytics, YouTube, Facebook Pages, LinkedIn, X, Meta Marketing, Slack, Gmail, Calendar, Drive, Zoom, Xero, and others. Returns the tenant-scoped connectionId, credential transport, exact readTools and actionTools,
|
|
4923
|
+
description: "List every third-party service connection this MCP Scraper account has authorized, including Resend, GitHub, Google Analytics, 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, 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. Nango OAuth and official remote MCP connections use the same provider-neutral bridges; mutations still require the account action switch and an exact allowed action. For already-digested history, prefer the returned vaultName or tableName.",
|
|
4895
4924
|
inputSchema: ListServiceConnectionsInputSchema,
|
|
4896
4925
|
outputSchema: recordOutputSchema("list_service_connections", ListServiceConnectionsOutputSchema),
|
|
4897
4926
|
annotations: { title: "List Connected Services", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
@@ -4926,14 +4955,14 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
4926
4955
|
}, async (input) => executor.zoomCreateMeeting(input));
|
|
4927
4956
|
server.registerTool("read_service_connection", {
|
|
4928
4957
|
title: "Read Connected Service",
|
|
4929
|
-
description: "Call one small live, read-only operation on any connected service, including Resend, GitHub
|
|
4958
|
+
description: "Call one small live, read-only operation on any connected service, including Google Drive metadata/search tools, Resend, GitHub, Gmail, Calendar, Zoom, and other approved providers. Call describe_service_connection_tool first when arguments are not already known. Do not loop this tool once per file or record to fetch a corpus: use export_connected_service_data when that provider/dataset supports bulk delivery. Requires a connectionId and an exact name from that connection's live readTools in list_service_connections; an unlisted tool is rejected server-side.",
|
|
4930
4959
|
inputSchema: ReadServiceConnectionInputSchema,
|
|
4931
4960
|
outputSchema: recordOutputSchema("read_service_connection", ReadServiceConnectionOutputSchema),
|
|
4932
4961
|
annotations: { title: "Read Connected Service", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
|
|
4933
4962
|
}, async (input) => executor.readServiceConnection(input));
|
|
4934
4963
|
server.registerTool("describe_service_connection_tool", {
|
|
4935
4964
|
title: "Describe Connected Service Tool",
|
|
4936
|
-
description: "
|
|
4965
|
+
description: "Fetch the sanitized live MCP Tool definition for one exact tool exposed by a tenant-owned Nango OAuth or official remote MCP connection. Returns provider-native title, description, read/action classification, current callability, input schema, optional output schema, safe annotations, and a schema hash. Call list_service_connections first, then describe a listed readTools or actionTools name before constructing arguments. This is a compatibility tool on MCP Scraper's fixed root MCP; protocol-native connection endpoints discover the same definitions through MCP tools/list, not a custom tools/describe method. Arbitrary names and permanently blocked administrative tools are rejected.",
|
|
4937
4966
|
inputSchema: DescribeServiceConnectionToolInputSchema,
|
|
4938
4967
|
outputSchema: recordOutputSchema("describe_service_connection_tool", DescribeServiceConnectionToolOutputSchema),
|
|
4939
4968
|
annotations: { title: "Describe Connected Service Tool", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
@@ -4954,7 +4983,7 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
4954
4983
|
}, async (input) => executor.renewConnectedDataDownload(input));
|
|
4955
4984
|
server.registerTool("call_service_connection_action", {
|
|
4956
4985
|
title: "Run Connected Service Action",
|
|
4957
|
-
description: "Run one explicitly allowlisted write or mutation on a tenant-owned OAuth or remote MCP connection. First call list_service_connections, use a connection with actionsEnabled true,
|
|
4986
|
+
description: "Run one explicitly allowlisted write or mutation on a tenant-owned OAuth or remote MCP connection. First call list_service_connections, use a connection with actionsEnabled true, describe the exact actionTools entry to obtain its live schema, and supply only that action's arguments. The server rejects arbitrary action names, inactive or foreign connections, disabled actions, and every adminBlockedTools entry. This can include Google Drive folder creation or file copies, Resend delivery, and GitHub mutations only when those exact actions are live and approved. Sends, deletes, merges, workflow execution, and content changes are high impact.",
|
|
4958
4987
|
inputSchema: CallServiceConnectionActionInputSchema,
|
|
4959
4988
|
outputSchema: recordOutputSchema("call_service_connection_action", CallServiceConnectionActionOutputSchema),
|
|
4960
4989
|
annotations: { title: "Run Connected Service Action", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }
|
|
@@ -5001,12 +5030,15 @@ async function readResponseData(res) {
|
|
|
5001
5030
|
}
|
|
5002
5031
|
function httpErrorPayload(path, res, data) {
|
|
5003
5032
|
const objectData = data && typeof data === "object" && !Array.isArray(data) ? data : null;
|
|
5004
|
-
const
|
|
5033
|
+
const rawCode = objectData?.code ?? objectData?.errorCode ?? objectData?.error_code;
|
|
5034
|
+
const safeCode = typeof rawCode === "string" && /^[a-z0-9][a-z0-9_-]{0,99}$/.test(rawCode) ? rawCode : "mcp_http_error";
|
|
5035
|
+
const bodyMessage = objectData ? objectData.message ?? objectData.error ?? rawCode : data;
|
|
5005
5036
|
return {
|
|
5006
5037
|
...objectData ?? { body: data },
|
|
5007
|
-
error:
|
|
5038
|
+
error: safeCode,
|
|
5039
|
+
error_code: safeCode,
|
|
5008
5040
|
error_type: "http",
|
|
5009
|
-
retryable: res.status === 429 || res.status >= 500,
|
|
5041
|
+
retryable: typeof objectData?.retryable === "boolean" ? objectData.retryable : res.status === 429 || res.status >= 500,
|
|
5010
5042
|
status: res.status,
|
|
5011
5043
|
statusText: res.statusText,
|
|
5012
5044
|
path,
|
|
@@ -9245,4 +9277,4 @@ export {
|
|
|
9245
9277
|
registerMemoryMcpTools,
|
|
9246
9278
|
MemoryMcpToolExecutor
|
|
9247
9279
|
};
|
|
9248
|
-
//# sourceMappingURL=chunk-
|
|
9280
|
+
//# sourceMappingURL=chunk-YIV4IKFG.js.map
|