mcp-scraper 0.24.0 → 0.26.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 +3 -3
- package/dist/bin/api-server.cjs +5044 -2895
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +2 -2
- 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 +2 -2
- package/dist/bin/mcp-scraper-install.cjs.map +1 -1
- package/dist/bin/mcp-scraper-install.js +2 -2
- package/dist/bin/mcp-stdio-server.cjs +205 -61
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +4 -4
- package/dist/{chunk-PNBYYAEK.js → chunk-3ZZOLQ6A.js} +2 -2
- package/dist/{chunk-JHI373VB.js → chunk-4767BA2O.js} +85 -3
- package/dist/chunk-4767BA2O.js.map +1 -0
- package/dist/chunk-7PYRJ7CB.js +7 -0
- package/dist/chunk-7PYRJ7CB.js.map +1 -0
- package/dist/{chunk-YNHPZU6B.js → chunk-TBRX7VOP.js} +2 -2
- package/dist/{chunk-YNHPZU6B.js.map → chunk-TBRX7VOP.js.map} +1 -1
- package/dist/{chunk-SUPUHPJS.js → chunk-UMTBCKHH.js} +200 -62
- package/dist/chunk-UMTBCKHH.js.map +1 -0
- package/dist/{server-I5U3OUZZ.js → server-H4PPYTOM.js} +2484 -580
- package/dist/server-H4PPYTOM.js.map +1 -0
- package/dist/{site-extract-repository-2QQSL2QC.js → site-extract-repository-O36SIFI2.js} +3 -3
- package/dist/{worker-RV2TYXE3.js → worker-E3KHQH2F.js} +2 -2
- package/docs/adr/0002-hybrid-smart-rag-vault-retrieval.md +62 -0
- package/docs/adr/README.md +1 -0
- package/docs/mcp-tool-manifest.generated.json +710 -55
- package/docs/specs/main-mcp-integration-ownership-spec.md +1164 -0
- package/package.json +6 -2
- package/dist/chunk-CDLHUCMT.js +0 -7
- package/dist/chunk-CDLHUCMT.js.map +0 -1
- package/dist/chunk-JHI373VB.js.map +0 -1
- package/dist/chunk-SUPUHPJS.js.map +0 -1
- package/dist/server-I5U3OUZZ.js.map +0 -1
- /package/dist/{chunk-PNBYYAEK.js.map → chunk-3ZZOLQ6A.js.map} +0 -0
- /package/dist/{site-extract-repository-2QQSL2QC.js.map → site-extract-repository-O36SIFI2.js.map} +0 -0
- /package/dist/{worker-RV2TYXE3.js.map → worker-E3KHQH2F.js.map} +0 -0
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
} from "./chunk-XGIPATLV.js";
|
|
20
20
|
import {
|
|
21
21
|
PACKAGE_VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-7PYRJ7CB.js";
|
|
23
23
|
import {
|
|
24
24
|
MC_PER_CREDIT
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-4767BA2O.js";
|
|
26
26
|
import {
|
|
27
27
|
sanitizeVendorName
|
|
28
28
|
} from "./chunk-M2S27J6Z.js";
|
|
@@ -374,6 +374,9 @@ Multi-step orchestrations \u2014 prefer these over hand-chaining primitives when
|
|
|
374
374
|
is \`done\`.
|
|
375
375
|
|
|
376
376
|
## Notes
|
|
377
|
+
- Connected-service lifecycle and availability are separate. A connection can remain \`connected\` while
|
|
378
|
+
\`operationalStatus\` is \`unavailable\`; call \`test_service_connection\` before recommending reconnect.
|
|
379
|
+
Recommend reconnect only when \`reconnectRequired\` is true.
|
|
377
380
|
- Bulk / full-site crawls: call \`extract_site\` with \`rotateProxies:true\` for blocked or rate-limited
|
|
378
381
|
sites. It returns a saved folder/artifact plus a summary, not the full content inline.
|
|
379
382
|
- Browser sessions and media transcription cost credits and take longer \u2014 prefer the cheapest tool that
|
|
@@ -382,6 +385,10 @@ Multi-step orchestrations \u2014 prefer these over hand-chaining primitives when
|
|
|
382
385
|
when connected Graph media did not provide a playable source. It is not a bypass for URL/SSRF restrictions.
|
|
383
386
|
- Large results are saved to disk or an artifact and returned as a summary plus a path or artifactId;
|
|
384
387
|
read it back for full detail rather than expecting the whole payload inline.
|
|
388
|
+
- Before using a connected account, call \`list_service_connections\` and match the intended provider-side
|
|
389
|
+
identity from \`providerAccountEmail\` or \`providerAccountName\`, not the MCP Scraper login. If
|
|
390
|
+
\`providerIdentityStatus\` is \`unavailable\`, ask the person to refresh that connection before assuming
|
|
391
|
+
which external account it represents.
|
|
385
392
|
- For Google Search Console, use \`export_connected_service_data\` with
|
|
386
393
|
\`dataset:"search_console_performance"\` when the person asks for a fresh JSONL download. When they
|
|
387
394
|
ask to schedule ingestion or repeatedly filter historical rows, create a \`connection_sync\` schedule,
|
|
@@ -394,7 +401,7 @@ Multi-step orchestrations \u2014 prefer these over hand-chaining primitives when
|
|
|
394
401
|
|
|
395
402
|
## Memory
|
|
396
403
|
mcp-scraper also exposes persistent per-user memory tools (notes, facts, vaults,
|
|
397
|
-
scheduled actions, tables, channels) backed by memory.mcpscraper.dev. Every account starts with
|
|
404
|
+
scheduled actions, tables, channels) backed by memory.mcpscraper.dev. Every account starts with 14
|
|
398
405
|
vaults \u2014 call **list-vaults** to see what exists before creating anything new. Pick the vault whose job
|
|
399
406
|
matches the content: **Ideas** (unvalidated concepts), **Knowledge** (distilled lessons/how-tos),
|
|
400
407
|
**Library** (raw source material \u2014 articles, transcripts), **People** (one durable note per person/org),
|
|
@@ -402,7 +409,8 @@ matches the content: **Ideas** (unvalidated concepts), **Knowledge** (distilled
|
|
|
402
409
|
(action items with a status), **Projects** (durable named initiatives), **Issues** (something broken),
|
|
403
410
|
**Improvement Log** (receipts of changes made and whether they worked), **Experiments** (hypothesis +
|
|
404
411
|
measured result), **Sprint** (current cycle's scope), **Inspiration** (other people's work worth
|
|
405
|
-
studying)
|
|
412
|
+
studying), **Skills** (reusable skill packages; each requires \`scripts/\` and at least one of
|
|
413
|
+
\`references/\` or \`templates/\`, and may use both).
|
|
406
414
|
For a normal new narrative note, call **prepare-memory-write** first. It queries the live vault contract,
|
|
407
415
|
tag vocabulary, and natural neighbor vaults, and returns interlink candidates that must be read before
|
|
408
416
|
acceptance. Compose every returned template section, then call **memory-capture**, which validates the
|
|
@@ -432,6 +440,12 @@ Tags are live vocabulary, not improvised labels: **list-memory-tags** shows what
|
|
|
432
440
|
reusable, and has no exact, alias, or near-equivalent. Use **memory-backlinks**,
|
|
433
441
|
**memory-graph-universe**, and **memory-graph-path** to trace the linked universe across vaults.
|
|
434
442
|
|
|
443
|
+
**Always inspect the complete tag inventory and related notes first.** Use hybrid Smart RAG by default:
|
|
444
|
+
form 3 focused queries (2\u20134 when useful), fuse exact tag/metadata/vault/date and semantic matches into 50
|
|
445
|
+
candidates, expand the top 8 seeds by one link/backlink hop with at most 5 neighbors each, then Jina-rerank
|
|
446
|
+
the combined pool to the best 30. Graph neighbors are candidates, never automatic links; add only links
|
|
447
|
+
supported by the note contents.
|
|
448
|
+
|
|
435
449
|
Scrape deposits are raw evidence and therefore go to **Library** through **library-ingest**, with the full
|
|
436
450
|
Library template and source metadata. If the source contains durable applicable guidance, create a separate
|
|
437
451
|
Knowledge companion through prepare-memory-write + memory-capture and link it to the Library source with
|
|
@@ -4489,8 +4503,14 @@ var ListServiceConnectionsOutputSchema = {
|
|
|
4489
4503
|
connectionId: z.string(),
|
|
4490
4504
|
providerConfigKey: z.string(),
|
|
4491
4505
|
provider: z.string().nullable().optional(),
|
|
4492
|
-
label: z.string(),
|
|
4506
|
+
label: z.string().describe("Best verified provider-side account label. This is never derived from the MCP Scraper login email."),
|
|
4507
|
+
providerAccountId: z.string().nullable().describe("Provider-side account or principal identifier when safely discoverable. This is not the MCP Scraper user id."),
|
|
4508
|
+
providerAccountEmail: z.string().nullable().describe("Actual provider-side email for the authorized account when the provider exposes and verifies it. Null for organization-only accounts or unavailable identity scopes."),
|
|
4509
|
+
providerAccountName: z.string().nullable().describe("Actual provider-side person, workspace, channel, or organization name when available."),
|
|
4510
|
+
providerIdentityStatus: z.enum(["pending", "verified", "unavailable"]).describe("Whether provider-side account identity discovery is pending, verified, or unavailable under the current OAuth grant. Reconnect when unavailable after identity scopes were added."),
|
|
4493
4511
|
status: z.string(),
|
|
4512
|
+
lifecycleStatus: z.enum(["pending", "connected", "needs_reauth", "disconnecting", "disconnected"]).optional().describe("Credential lifecycle. This is separate from current provider availability."),
|
|
4513
|
+
operationalStatus: z.enum(["unknown", "available", "degraded", "unavailable"]).optional().describe("Last observed provider transport availability. Unavailable does not imply reconnect is required."),
|
|
4494
4514
|
reconnectRequired: z.boolean().optional(),
|
|
4495
4515
|
transport: z.enum(["nango", "remote_mcp"]).describe("Credential transport behind this tenant-scoped connection. Tokens and API keys are never returned."),
|
|
4496
4516
|
actionsEnabled: z.boolean(),
|
|
@@ -4513,10 +4533,27 @@ var ListServiceConnectionsOutputSchema = {
|
|
|
4513
4533
|
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."),
|
|
4514
4534
|
schemaDiscovery: z.enum(["connection_tools_list", "compatibility_describe"]).describe("How clients discover this connection's exact live provider schemas."),
|
|
4515
4535
|
toolRevision: z.string().nullable().describe("Opaque revision of the resolved live tool catalog, when available. It changes when provider tools or policy change."),
|
|
4536
|
+
lastCheckedAt: z.string().nullable().optional(),
|
|
4537
|
+
lastSuccessfulCallAt: z.string().nullable().optional(),
|
|
4538
|
+
lastFailureAt: z.string().nullable().optional(),
|
|
4539
|
+
lastFailureCode: z.string().nullable().optional(),
|
|
4540
|
+
lastFailureRetryable: z.boolean().nullable().optional(),
|
|
4516
4541
|
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."),
|
|
4517
4542
|
tableName: z.string().nullable().describe("Tenant-owned structured table populated by this connection, if available. For scheduled Google Search Console connection_sync runs, this is a typed performance table with site_url, date, query, page, country, device, clicks, impressions, ctr, and position. Call table-describe, then filter or sort it with table-query.")
|
|
4518
4543
|
}))
|
|
4519
4544
|
};
|
|
4545
|
+
var TestServiceConnectionInputSchema = {
|
|
4546
|
+
connectionId: z.string().min(1).describe("A tenant-owned connectionId from list_service_connections."),
|
|
4547
|
+
providerConfigKey: z.string().min(1).optional().describe("Optional provider hint from list_service_connections.")
|
|
4548
|
+
};
|
|
4549
|
+
var TestServiceConnectionOutputSchema = {
|
|
4550
|
+
ok: z.boolean(),
|
|
4551
|
+
operationalStatus: z.enum(["available", "unavailable"]).optional(),
|
|
4552
|
+
checkedAt: z.string().optional(),
|
|
4553
|
+
toolCount: z.number().int().min(0).optional(),
|
|
4554
|
+
code: z.string().optional(),
|
|
4555
|
+
error: NullableString
|
|
4556
|
+
};
|
|
4520
4557
|
var ReadServiceConnectionInputSchema = {
|
|
4521
4558
|
connectionId: z.string().min(1).describe("A connectionId from list_service_connections."),
|
|
4522
4559
|
tool: 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."),
|
|
@@ -5497,11 +5534,18 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
5497
5534
|
}, async (input) => formatCreditsInfo(await executor.creditsInfo(input), input));
|
|
5498
5535
|
server.registerTool("list_service_connections", {
|
|
5499
5536
|
title: "List Connected Services",
|
|
5500
|
-
description: "List every third-party 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
|
|
5537
|
+
description: "List every third-party 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; verified providerAccountEmail/providerAccountName identity when the provider exposes it; 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. The provider identity is distinct from the MCP Scraper login: use it to choose the intended account before any read, export, schedule binding, or gated action. 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. 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.",
|
|
5501
5538
|
inputSchema: ListServiceConnectionsInputSchema,
|
|
5502
5539
|
outputSchema: recordOutputSchema("list_service_connections", ListServiceConnectionsOutputSchema),
|
|
5503
5540
|
annotations: { title: "List Connected Services", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
5504
5541
|
}, async (input) => executor.listServiceConnections(input));
|
|
5542
|
+
server.registerTool("test_service_connection", {
|
|
5543
|
+
title: "Test Connected Service",
|
|
5544
|
+
description: "Test the current provider transport for one tenant-owned connection without changing its OAuth lifecycle. Call this when a connected account appears unavailable before recommending reconnect. Reconnect is appropriate only when reconnectRequired is true.",
|
|
5545
|
+
inputSchema: TestServiceConnectionInputSchema,
|
|
5546
|
+
outputSchema: recordOutputSchema("test_service_connection", TestServiceConnectionOutputSchema),
|
|
5547
|
+
annotations: { title: "Test Connected Service", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
|
|
5548
|
+
}, async (input) => executor.testServiceConnection(input));
|
|
5505
5549
|
server.registerTool("slack_send_message", {
|
|
5506
5550
|
title: "Send Slack Message",
|
|
5507
5551
|
description: "Send a message to a Slack channel through a connected, action-enabled Slack connection. Requires a connectionId from list_service_connections with actionsEnabled true; the person must have explicitly turned actions on for that connection.",
|
|
@@ -5887,7 +5931,12 @@ var HttpMcpToolExecutor = class {
|
|
|
5887
5931
|
return this.call("/billing/credits", input);
|
|
5888
5932
|
}
|
|
5889
5933
|
listServiceConnections(input) {
|
|
5890
|
-
return this.getJson("/
|
|
5934
|
+
return this.getJson("/integrations");
|
|
5935
|
+
}
|
|
5936
|
+
testServiceConnection(input) {
|
|
5937
|
+
return this.call(`/integrations/${encodeURIComponent(input.connectionId)}/test`, {
|
|
5938
|
+
...input.providerConfigKey ? { providerConfigKey: input.providerConfigKey } : {}
|
|
5939
|
+
});
|
|
5891
5940
|
}
|
|
5892
5941
|
slackSendMessage(input) {
|
|
5893
5942
|
return this.call("/schedule-connections/actions/slack/send-message", input);
|
|
@@ -5902,13 +5951,13 @@ var HttpMcpToolExecutor = class {
|
|
|
5902
5951
|
return this.call("/schedule-connections/actions/zoom/create-meeting", input);
|
|
5903
5952
|
}
|
|
5904
5953
|
readServiceConnection(input) {
|
|
5905
|
-
return this.call("/
|
|
5954
|
+
return this.call("/integrations/actions/read", input);
|
|
5906
5955
|
}
|
|
5907
5956
|
importServiceConnectionToMemory(input) {
|
|
5908
5957
|
return this.call("/schedule-connections/actions/import-memory", input);
|
|
5909
5958
|
}
|
|
5910
5959
|
describeServiceConnectionTool(input) {
|
|
5911
|
-
return this.call("/
|
|
5960
|
+
return this.call("/integrations/actions/describe", input);
|
|
5912
5961
|
}
|
|
5913
5962
|
exportConnectedServiceData(input) {
|
|
5914
5963
|
const timeoutMs = this.httpTimeoutOverrideMs ?? 29e4;
|
|
@@ -5922,7 +5971,7 @@ var HttpMcpToolExecutor = class {
|
|
|
5922
5971
|
return this.call("/schedule-connections/actions/export-download", input);
|
|
5923
5972
|
}
|
|
5924
5973
|
callServiceConnectionAction(input) {
|
|
5925
|
-
return this.call("/
|
|
5974
|
+
return this.call("/integrations/actions/call", input);
|
|
5926
5975
|
}
|
|
5927
5976
|
setScheduledActionConnections(input) {
|
|
5928
5977
|
return this.call(`/schedule-actions/${encodeURIComponent(input.scheduleActionId)}/connections`, {
|
|
@@ -8059,12 +8108,15 @@ var memoryCaptureTool_notePropsSchema = z3.object({
|
|
|
8059
8108
|
type: z3.string().describe("Note type from the target vault contract (also used to route the note)."),
|
|
8060
8109
|
domain: z3.string().describe("Domain folder for Library/Knowledge (AI, SEO, Copywriting & Ads, Business, Spirituality)."),
|
|
8061
8110
|
folder: z3.string().describe("Explicit sub-folder within the vault; overrides routing-derived folder."),
|
|
8111
|
+
script_links: z3.array(z3.string()).describe("Skills only: one or more Obsidian/internal paths under scripts/."),
|
|
8112
|
+
reference_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under references/."),
|
|
8113
|
+
template_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under templates/."),
|
|
8062
8114
|
parentMessageId: z3.string().describe("Channel messages only: the path of the top-level message this is a reply to. Absent on top-level messages.")
|
|
8063
8115
|
}).partial().passthrough();
|
|
8064
8116
|
var MemoryCaptureSchema = {
|
|
8065
8117
|
id: "memory-capture",
|
|
8066
8118
|
upstreamName: "memoryCaptureTool",
|
|
8067
|
-
description: "Strict normal-create path for durable memory.
|
|
8119
|
+
description: "Strict normal-create path for durable memory. Before capture, list the complete tag vocabulary, call prepare-memory-write, run hybrid memory-search for related notes, and read the strongest link candidates. This tool refuses incomplete notes, writes through memory-put, registers canonical tags, and verifies persisted content and props. Reserve memory-put for low-level migrations or deliberate edits.",
|
|
8068
8120
|
input: {
|
|
8069
8121
|
vault: z3.string(),
|
|
8070
8122
|
folder: z3.string().optional(),
|
|
@@ -8122,7 +8174,7 @@ var MemoryQuestionsSchema = {
|
|
|
8122
8174
|
var PrepareMemoryWriteSchema = {
|
|
8123
8175
|
id: "prepare-memory-write",
|
|
8124
8176
|
upstreamName: "prepareMemoryWriteTool",
|
|
8125
|
-
description: "Mandatory planning pass for a normal new memory.
|
|
8177
|
+
description: "Mandatory planning pass for a normal new memory. First inspect the complete tag vocabulary with list-memory-tags; then this pass routes the note, returns the live template and natural vault relationships, resolves proposed tags, and shortlists interlinks. Use hybrid memory-search (3 focused queries, 50 fused candidates, bounded graph expansion, rerank to 30 by default) and read strong related notes before capture. This is an explicit AI workflow directive, not a claim of persisted call-order enforcement.",
|
|
8126
8178
|
input: {
|
|
8127
8179
|
title: z3.string().min(1),
|
|
8128
8180
|
content: z3.string().min(1),
|
|
@@ -8158,6 +8210,9 @@ var validateMemoryWriteTool_notePropsSchema = z3.object({
|
|
|
8158
8210
|
type: z3.string().describe("Note type from the target vault contract (also used to route the note)."),
|
|
8159
8211
|
domain: z3.string().describe("Domain folder for Library/Knowledge (AI, SEO, Copywriting & Ads, Business, Spirituality)."),
|
|
8160
8212
|
folder: z3.string().describe("Explicit sub-folder within the vault; overrides routing-derived folder."),
|
|
8213
|
+
script_links: z3.array(z3.string()).describe("Skills only: one or more Obsidian/internal paths under scripts/."),
|
|
8214
|
+
reference_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under references/."),
|
|
8215
|
+
template_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under templates/."),
|
|
8161
8216
|
parentMessageId: z3.string().describe("Channel messages only: the path of the top-level message this is a reply to. Absent on top-level messages.")
|
|
8162
8217
|
}).partial().passthrough();
|
|
8163
8218
|
var ValidateMemoryWriteSchema = {
|
|
@@ -8613,6 +8668,39 @@ var LibraryIngestSchema = {
|
|
|
8613
8668
|
openWorldHint: true
|
|
8614
8669
|
}
|
|
8615
8670
|
};
|
|
8671
|
+
var bulkDeleteNotesTool_FilterSchema = z3.object({
|
|
8672
|
+
column: z3.enum(["path", "title", "kind", "source", "captured_at", "created_at", "updated_at", "revision"]).describe("Note column to filter on."),
|
|
8673
|
+
op: z3.enum(["eq", "neq", "gt", "gte", "lt", "lte", "like", "prefix", "in"]).describe('"prefix" anchors to the start of the value only (e.g. path prefix "Mastra/opt-"); "like" matches anywhere in the value; "in" requires an array value.'),
|
|
8674
|
+
value: z3.unknown().describe('Value to compare against. For "in", pass an array.')
|
|
8675
|
+
});
|
|
8676
|
+
var BulkDeleteNotesSchema = {
|
|
8677
|
+
id: "bulk-delete-notes",
|
|
8678
|
+
upstreamName: "bulkDeleteNotesTool",
|
|
8679
|
+
description: "Delete every note in one vault matching all given filters (ANDed) plus an optional tag match (ANY of the given tags) \u2014 at least one filter or tag is required; there is no unfiltered delete-all here (use delete-vault for that). Defaults to dryRun: true, previewing the match count and a sample of up to 20 matching notes without deleting anything. Pass dryRun: false to actually delete. DESTRUCTIVE and not recoverable when dryRun is false. Requires write scope. Refuses secure vaults (not indexed, filtering is meaningless there).",
|
|
8680
|
+
input: {
|
|
8681
|
+
vault: z3.string().optional().describe("Vault to delete from. Optional; defaults to the session active vault, then the first vault the caller is entitled to."),
|
|
8682
|
+
filters: z3.array(bulkDeleteNotesTool_FilterSchema).default([]).describe("Filters to AND together. At least one of filters/tags is required."),
|
|
8683
|
+
tags: z3.array(z3.string()).optional().describe("Match notes carrying ANY of these tags (ORed among themselves, ANDed with filters). At least one of filters/tags is required."),
|
|
8684
|
+
dryRun: z3.boolean().default(true).describe("When true (default), previews matches without deleting anything. Pass false to actually delete.")
|
|
8685
|
+
},
|
|
8686
|
+
output: {
|
|
8687
|
+
ok: z3.boolean().describe("True on success; false on auth/scope/validation error."),
|
|
8688
|
+
vault: z3.string().optional().describe("The vault operated on (after defaulting). Present when ok is true."),
|
|
8689
|
+
dryRun: z3.boolean().optional().describe("Echoes whether this call was a preview or a real delete."),
|
|
8690
|
+
matchCount: z3.number().optional().describe("Number of notes matching the filters. Present on a dry run."),
|
|
8691
|
+
sample: z3.array(z3.object({ path: z3.string(), title: z3.string(), updatedAt: z3.string() })).optional().describe("Up to 20 matching notes, most-recently-updated first. Present on a dry run."),
|
|
8692
|
+
deleted: z3.number().optional().describe("Number of notes actually deleted. Present when dryRun is false."),
|
|
8693
|
+
deletedPaths: z3.array(z3.string()).optional().describe("Paths of the deleted notes. Present when dryRun is false."),
|
|
8694
|
+
error: z3.string().optional().describe("Human-readable failure reason when ok is false.")
|
|
8695
|
+
},
|
|
8696
|
+
annotations: {
|
|
8697
|
+
title: "Bulk Delete Notes",
|
|
8698
|
+
readOnlyHint: false,
|
|
8699
|
+
destructiveHint: true,
|
|
8700
|
+
idempotentHint: false,
|
|
8701
|
+
openWorldHint: false
|
|
8702
|
+
}
|
|
8703
|
+
};
|
|
8616
8704
|
var DeleteNoteSchema = {
|
|
8617
8705
|
id: "delete-note",
|
|
8618
8706
|
upstreamName: "deleteNoteTool",
|
|
@@ -8694,6 +8782,9 @@ var getTool_notePropsSchema = z3.object({
|
|
|
8694
8782
|
type: z3.string().describe("Note type from the target vault contract (also used to route the note)."),
|
|
8695
8783
|
domain: z3.string().describe("Domain folder for Library/Knowledge (AI, SEO, Copywriting & Ads, Business, Spirituality)."),
|
|
8696
8784
|
folder: z3.string().describe("Explicit sub-folder within the vault; overrides routing-derived folder."),
|
|
8785
|
+
script_links: z3.array(z3.string()).describe("Skills only: one or more Obsidian/internal paths under scripts/."),
|
|
8786
|
+
reference_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under references/."),
|
|
8787
|
+
template_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under templates/."),
|
|
8697
8788
|
parentMessageId: z3.string().describe("Channel messages only: the path of the top-level message this is a reply to. Absent on top-level messages.")
|
|
8698
8789
|
}).partial().passthrough();
|
|
8699
8790
|
var GetSchema = {
|
|
@@ -8782,6 +8873,9 @@ var putTool_notePropsSchema = z3.object({
|
|
|
8782
8873
|
type: z3.string().describe("Note type from the target vault contract (also used to route the note)."),
|
|
8783
8874
|
domain: z3.string().describe("Domain folder for Library/Knowledge (AI, SEO, Copywriting & Ads, Business, Spirituality)."),
|
|
8784
8875
|
folder: z3.string().describe("Explicit sub-folder within the vault; overrides routing-derived folder."),
|
|
8876
|
+
script_links: z3.array(z3.string()).describe("Skills only: one or more Obsidian/internal paths under scripts/."),
|
|
8877
|
+
reference_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under references/."),
|
|
8878
|
+
template_links: z3.array(z3.string()).describe("Skills only: optional Obsidian/internal paths under templates/."),
|
|
8785
8879
|
parentMessageId: z3.string().describe("Channel messages only: the path of the top-level message this is a reply to. Absent on top-level messages.")
|
|
8786
8880
|
}).partial().passthrough();
|
|
8787
8881
|
var PutSchema = {
|
|
@@ -8826,44 +8920,64 @@ var PutSchema = {
|
|
|
8826
8920
|
openWorldHint: true
|
|
8827
8921
|
}
|
|
8828
8922
|
};
|
|
8923
|
+
var searchTool_primitiveValue = z3.union([z3.string(), z3.number(), z3.boolean()]);
|
|
8829
8924
|
var SearchSchema = {
|
|
8830
8925
|
id: "memory-search",
|
|
8831
8926
|
upstreamName: "searchTool",
|
|
8832
|
-
description: "
|
|
8927
|
+
description: "Default Smart RAG search across accessible memory. Form 2-4 focused query variants, combine semantic matches with exact vault/tag/date/kind/type/metadata filters, expand one bounded hop of outgoing links and backlinks around strong seeds, then rerank. Defaults: retrieve/fuse 50 candidates, 8 graph seeds, 5 neighbors per seed, rerank to 30. Graph neighbors are candidates, never automatic winners or links. Before tagging or writing, also call list-memory-tags to inspect the complete vocabulary and reuse existing tags; read strong related notes before selecting links.",
|
|
8833
8928
|
input: {
|
|
8834
|
-
vault: z3.string().optional().describe(
|
|
8835
|
-
|
|
8836
|
-
),
|
|
8837
|
-
|
|
8838
|
-
|
|
8839
|
-
),
|
|
8840
|
-
|
|
8841
|
-
|
|
8842
|
-
|
|
8929
|
+
vault: z3.string().optional().describe("Exact logical vault handle to search. Omit to search every entitled vault."),
|
|
8930
|
+
query: z3.string().min(1).describe("A focused semantic reformulation of the request."),
|
|
8931
|
+
userMessage: z3.string().optional().describe("Original human wording. Used as a distinct query variant when useful and logged for quality review."),
|
|
8932
|
+
queries: z3.array(z3.string().min(1)).min(2).max(4).optional().describe("Caller-provided focused query variants. The planner deduplicates these with query, original wording, and tag/entity terms."),
|
|
8933
|
+
entities: z3.array(z3.string().min(1)).max(20).optional().describe("Named entities or exact terms used to form a focused query variant."),
|
|
8934
|
+
tags: z3.array(z3.string().min(1)).max(20).optional().describe("Exact canonical tags used for tag-channel retrieval and filtering."),
|
|
8935
|
+
tagMode: z3.enum(["any", "all"]).optional().describe("Whether a note must match any or all supplied tags. Default any."),
|
|
8936
|
+
kind: z3.enum(["note", "library", "capture", "decision", "message"]).optional().describe("Exact persisted note-kind filter."),
|
|
8937
|
+
type: z3.string().min(1).optional().describe("Exact props.type filter."),
|
|
8938
|
+
dateFrom: z3.string().datetime().optional().describe("Inclusive lower bound for note updatedAt."),
|
|
8939
|
+
dateTo: z3.string().datetime().optional().describe("Inclusive upper bound for note updatedAt."),
|
|
8940
|
+
metadata: z3.record(searchTool_primitiveValue).optional().describe("Exact equality filters for primitive note props."),
|
|
8941
|
+
queryVariantCount: z3.number().int().min(2).max(4).optional().describe("Number of variants. Default 3."),
|
|
8942
|
+
candidatePool: z3.number().int().min(10).max(100).optional().describe("Total fused candidates before final reranking. Default 50."),
|
|
8943
|
+
graphSeedCount: z3.number().int().min(0).max(20).optional().describe("Strong preliminary notes whose graph neighborhoods are considered. Default 8."),
|
|
8944
|
+
graphDepth: z3.literal(1).optional().describe("Graph expansion depth. Bounded to exactly one hop."),
|
|
8945
|
+
graphNeighborsPerSeed: z3.number().int().min(1).max(10).optional().describe("Maximum outgoing-link plus backlink neighbors per seed. Default 5."),
|
|
8946
|
+
rerankTopN: z3.number().int().min(1).max(50).optional().describe("Final results retained after Jina reranking. Default 30."),
|
|
8947
|
+
topK: z3.number().int().min(1).max(50).optional().describe("Deprecated compatibility alias for rerankTopN. Prefer rerankTopN; default remains 30."),
|
|
8948
|
+
includeShared: z3.boolean().optional().describe("Also search individually accepted shares. Default true. Exact note metadata filters exclude shares without accessible metadata.")
|
|
8843
8949
|
},
|
|
8844
8950
|
output: {
|
|
8845
|
-
ok: z3.boolean()
|
|
8846
|
-
vault: z3.string().optional()
|
|
8847
|
-
vaultsSearched: z3.array(z3.string()).optional()
|
|
8848
|
-
|
|
8849
|
-
z3.
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
|
|
8853
|
-
|
|
8854
|
-
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
).optional()
|
|
8858
|
-
|
|
8951
|
+
ok: z3.boolean(),
|
|
8952
|
+
vault: z3.string().optional(),
|
|
8953
|
+
vaultsSearched: z3.array(z3.string()).optional(),
|
|
8954
|
+
planner: z3.object({
|
|
8955
|
+
queryVariants: z3.array(z3.string()),
|
|
8956
|
+
candidatePool: z3.number(),
|
|
8957
|
+
graphSeedCount: z3.number(),
|
|
8958
|
+
graphDepth: z3.number(),
|
|
8959
|
+
graphNeighborsPerSeed: z3.number(),
|
|
8960
|
+
rerankTopN: z3.number(),
|
|
8961
|
+
seeds: z3.array(z3.string()),
|
|
8962
|
+
graphCandidatesAdded: z3.number()
|
|
8963
|
+
}).optional(),
|
|
8964
|
+
rerank: z3.object({ applied: z3.boolean(), provider: z3.string(), fallbackReason: z3.string().optional() }).optional(),
|
|
8965
|
+
results: z3.array(z3.object({
|
|
8966
|
+
text: z3.string(),
|
|
8967
|
+
source: z3.string(),
|
|
8968
|
+
score: z3.number(),
|
|
8969
|
+
originalScore: z3.number(),
|
|
8970
|
+
rerankScore: z3.number().optional(),
|
|
8971
|
+
vault: z3.string().optional(),
|
|
8972
|
+
sharedBy: z3.string().optional(),
|
|
8973
|
+
shareId: z3.string().optional(),
|
|
8974
|
+
matchChannels: z3.array(z3.enum(["semantic", "tag", "metadata", "graph"])),
|
|
8975
|
+
matchedQueries: z3.array(z3.string()),
|
|
8976
|
+
graphFrom: z3.array(z3.string())
|
|
8977
|
+
})).optional(),
|
|
8978
|
+
error: z3.string().optional()
|
|
8859
8979
|
},
|
|
8860
|
-
annotations: {
|
|
8861
|
-
title: "Semantic Memory Search",
|
|
8862
|
-
readOnlyHint: true,
|
|
8863
|
-
destructiveHint: false,
|
|
8864
|
-
idempotentHint: true,
|
|
8865
|
-
openWorldHint: true
|
|
8866
|
-
}
|
|
8980
|
+
annotations: { title: "Hybrid Smart RAG Memory Search", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }
|
|
8867
8981
|
};
|
|
8868
8982
|
var SuggestSchema = {
|
|
8869
8983
|
id: "memory-suggest",
|
|
@@ -8967,14 +9081,14 @@ var TemporalRecallSchema = {
|
|
|
8967
9081
|
var CreateScheduledActionSchema = {
|
|
8968
9082
|
id: "create-scheduled-action",
|
|
8969
9083
|
upstreamName: "createScheduledActionTool",
|
|
8970
|
-
description: "Create a Credit-metered scheduled action for an active MCP Scraper Starter plan or higher, in agent mode (default) or connection_sync mode. Each execution has a 75-Credit base charge; agent model usage is added at 1.5 times OpenRouter's actual reported cost. Agent mode follows the description and writes a result into the target vault. connection_sync deterministically runs approved read-only tools on bound service connections and ingests their data. Google Search Console syncs also upsert a typed tenant-owned performance table for exact filtering with table-query; discover its tableName by calling list_service_connections after the first successful run. Cadence 'once' runs a single time then completes permanently. Requires write access to the target vault.",
|
|
9084
|
+
description: "Create a Credit-metered scheduled action for an active MCP Scraper Starter plan or higher, in agent mode (default) or connection_sync mode. Each execution has a 75-Credit base charge; agent model usage is added at 1.5 times OpenRouter's actual reported cost. Agent mode follows the description and writes a result into the target vault. connection_sync deterministically runs the approved read-only tools on bound service connections and ingests their data; it requires at least one connection to be bound before execution. Google Search Console syncs also upsert a typed tenant-owned performance table for exact filtering with table-query; discover its tableName by calling list_service_connections after the first successful run. Cadence 'once' runs a single time then completes permanently. Requires write access to the target vault.",
|
|
8971
9085
|
input: {
|
|
8972
9086
|
description: z3.string().min(1).describe("Free-text description of what this action should do each time it runs."),
|
|
8973
9087
|
vault: z3.string().min(1).describe("The vault this action writes its results into. You must already have write access to it."),
|
|
8974
9088
|
cadence: z3.enum(["once", "daily", "weekly", "monthly"]).describe('How often this action runs. "once" fires a single time and then completes.'),
|
|
8975
9089
|
executionMode: z3.enum(["agent", "connection_sync"]).default("agent").describe(`How to execute each run. "agent" (default) lets an agent follow the description. "connection_sync" deterministically ingests data from the schedule's bound connections using only their approved read-only tools; bind at least one connection before it runs. Search Console connection_sync also maintains a typed table exposed as the connection tableName.`),
|
|
8976
9090
|
timeOfDay: z3.string().regex(/^([01]\d|2[0-3]):([0-5]\d)$/).optional().describe("24-hour HH:MM clock time to run at, in the given timezone. Optional \u2014 omit to run at any time during the period (matches prior default behavior)."),
|
|
8977
|
-
timezone: z3.string().optional().describe(
|
|
9091
|
+
timezone: z3.string().optional().describe(`IANA timezone name, e.g. "America/Denver". Only meaningful together with timeOfDay or deployDate. Omit to use the account's default timezone (set via set-schedule-defaults), falling back to UTC.`),
|
|
8978
9092
|
deployDate: z3.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe('Calendar date (YYYY-MM-DD, in the given timezone) this action should first become eligible to run \u2014 its deployment/start date. For recurring cadences, the first occurrence lands on or after this date; every later occurrence still follows the normal cadence. For cadence "once", this (combined with timeOfDay if given) is exactly what day it fires. Omit to start immediately.')
|
|
8979
9093
|
},
|
|
8980
9094
|
output: {
|
|
@@ -9036,7 +9150,7 @@ var GetScheduleLinkSchema = {
|
|
|
9036
9150
|
var GetScheduleStatusSchema = {
|
|
9037
9151
|
id: "get-schedule-status",
|
|
9038
9152
|
upstreamName: "getScheduleStatusTool",
|
|
9039
|
-
description: "Get the Credit-metered Scheduled Actions access and
|
|
9153
|
+
description: "Get the Credit-metered Scheduled Actions access, billing policy, and default timezone. Scheduling requires an active MCP Scraper Starter plan or higher but has no separate subscription: each execution has a 75-Credit base charge, and agent model usage is billed at 1.5 times OpenRouter's actual reported cost.",
|
|
9040
9154
|
input: {},
|
|
9041
9155
|
output: {
|
|
9042
9156
|
ok: z3.boolean(),
|
|
@@ -9112,7 +9226,7 @@ var PauseScheduledActionSchema = {
|
|
|
9112
9226
|
var ProposeScheduledActionSchema = {
|
|
9113
9227
|
id: "propose-scheduled-action",
|
|
9114
9228
|
upstreamName: "proposeScheduledActionTool",
|
|
9115
|
-
description: "Turn freeform text describing what you want automated into a structured proposal (description, vault, cadence) for review and confirmation via create-scheduled-action \u2014 this is the propose step only; nothing is created here.",
|
|
9229
|
+
description: "Turn freeform text describing what you want automated into a structured proposal (description, vault, cadence, time of day, timezone) for review and confirmation via create-scheduled-action \u2014 this is the propose step only; nothing is created here.",
|
|
9116
9230
|
input: {
|
|
9117
9231
|
request: z3.string().min(1).describe("Freeform text describing what you want scheduled.")
|
|
9118
9232
|
},
|
|
@@ -9121,6 +9235,8 @@ var ProposeScheduledActionSchema = {
|
|
|
9121
9235
|
description: z3.string().optional().describe("Proposed description \u2014 edit freely before confirming."),
|
|
9122
9236
|
vault: z3.string().optional().describe("Proposed target vault."),
|
|
9123
9237
|
cadence: z3.string().optional().describe("Proposed cadence: once, daily, weekly, or monthly."),
|
|
9238
|
+
timeOfDay: z3.string().optional().describe("Proposed 24-hour HH:MM run time, when the request named one."),
|
|
9239
|
+
timezone: z3.string().optional().describe("Proposed IANA timezone \u2014 from the request, or the account default when the request named a time without a zone."),
|
|
9124
9240
|
rationale: z3.string().optional().describe("Why these choices were made \u2014 read this before confirming."),
|
|
9125
9241
|
error: z3.string().optional()
|
|
9126
9242
|
},
|
|
@@ -9135,7 +9251,7 @@ var ProposeScheduledActionSchema = {
|
|
|
9135
9251
|
var ResumeScheduledActionSchema = {
|
|
9136
9252
|
id: "resume-scheduled-action",
|
|
9137
9253
|
upstreamName: "resumeScheduledActionTool",
|
|
9138
|
-
description: "Resume a paused scheduled action. Its next run is computed fresh from now, not backfilled for time spent paused.",
|
|
9254
|
+
description: "Resume a paused scheduled action for an active MCP Scraper Starter plan or higher. Its next run is computed fresh from now, not backfilled for time spent paused.",
|
|
9139
9255
|
input: {
|
|
9140
9256
|
id: z3.string().min(1).describe("The scheduled action id.")
|
|
9141
9257
|
},
|
|
@@ -9171,14 +9287,34 @@ var RevokeScheduleLinkSchema = {
|
|
|
9171
9287
|
openWorldHint: false
|
|
9172
9288
|
}
|
|
9173
9289
|
};
|
|
9290
|
+
var SetScheduleDefaultsSchema = {
|
|
9291
|
+
id: "set-schedule-defaults",
|
|
9292
|
+
upstreamName: "setScheduleDefaultsTool",
|
|
9293
|
+
description: "Set your default timezone for scheduled actions. Any schedule you later create with a time of day but no explicit timezone uses this default instead of UTC. Pass null to clear it back to UTC.",
|
|
9294
|
+
input: {
|
|
9295
|
+
defaultTimezone: z3.string().nullable().describe('IANA timezone name, e.g. "America/Denver". null clears the default (new schedules fall back to UTC).')
|
|
9296
|
+
},
|
|
9297
|
+
output: {
|
|
9298
|
+
ok: z3.boolean(),
|
|
9299
|
+
defaultTimezone: z3.string().nullable().optional().describe("The default timezone now in effect; null means UTC."),
|
|
9300
|
+
error: z3.string().optional()
|
|
9301
|
+
},
|
|
9302
|
+
annotations: {
|
|
9303
|
+
title: "Set Schedule Defaults",
|
|
9304
|
+
readOnlyHint: false,
|
|
9305
|
+
destructiveHint: false,
|
|
9306
|
+
idempotentHint: true,
|
|
9307
|
+
openWorldHint: false
|
|
9308
|
+
}
|
|
9309
|
+
};
|
|
9174
9310
|
var SetScheduleEntitlementSchema = {
|
|
9175
9311
|
id: "set-schedule-entitlement",
|
|
9176
9312
|
upstreamName: "setScheduleEntitlementTool",
|
|
9177
|
-
description: "Admin-only scheduled-action credential provisioning and historical-row recovery.
|
|
9313
|
+
description: "Admin-only scheduled-action credential provisioning and historical-row recovery. Use mcpScraperApiKey to rotate the encrypted delegated key without changing legacy enabled/quota fields. The former entitlement and quota values are retained only for migration compatibility and are not runtime access controls; paid-plan access is validated against MCP Scraper directly.",
|
|
9178
9314
|
input: {
|
|
9179
9315
|
granteeIdentity: z3.string().min(1).describe("Identity whose scheduling entitlement is being set (e.g. an email)."),
|
|
9180
9316
|
enabled: z3.boolean().optional().describe("Historical entitlement value for migration/recovery only. Omit to preserve the stored value."),
|
|
9181
|
-
quotaPerPeriod: z3.number().optional().describe("Historical monthly
|
|
9317
|
+
quotaPerPeriod: z3.number().optional().describe("Historical monthly quota for migration/recovery only. Omit to preserve the stored value."),
|
|
9182
9318
|
mcpScraperApiKey: z3.string().optional().describe("The identity's mcp-scraper API key, stored encrypted, used to reach mcp-scraper tools during scheduled-action execution.")
|
|
9183
9319
|
},
|
|
9184
9320
|
output: {
|
|
@@ -9423,9 +9559,9 @@ var QueryTableSchema = {
|
|
|
9423
9559
|
var ListTagsSchema = {
|
|
9424
9560
|
id: "list-memory-tags",
|
|
9425
9561
|
upstreamName: "listTagsTool",
|
|
9426
|
-
description: "List the live canonical tag vocabulary, aliases, usage counts, and per-vault distribution.
|
|
9562
|
+
description: "List the complete live canonical tag vocabulary, aliases, usage counts, and per-vault distribution. Always call this before proposing, resolving, or writing tags so the AI can reuse existing concepts and add only central, reusable concepts that are genuinely missing.",
|
|
9427
9563
|
input: {
|
|
9428
|
-
includeDeprecated: z3.boolean().optional()
|
|
9564
|
+
includeDeprecated: z3.boolean().optional().describe("Include deprecated tags as well as active tags. Defaults true so the AI sees the complete vocabulary; pass false only for an active-only display.")
|
|
9429
9565
|
},
|
|
9430
9566
|
output: {
|
|
9431
9567
|
ok: z3.boolean(),
|
|
@@ -9437,7 +9573,7 @@ var ListTagsSchema = {
|
|
|
9437
9573
|
var ResolveTagsSchema = {
|
|
9438
9574
|
id: "resolve-memory-tags",
|
|
9439
9575
|
upstreamName: "resolveTagsTool",
|
|
9440
|
-
description: "Resolve proposed concepts against the live tag vocabulary. Returns reuse, create, or omit
|
|
9576
|
+
description: "Resolve proposed concepts against the live tag vocabulary. Always inspect the complete vocabulary with list-memory-tags first. Returns reuse, create, or omit; a new tag is appropriate only when no equivalent exists and the concept is central and reusable.",
|
|
9441
9577
|
input: {
|
|
9442
9578
|
candidates: z3.array(z3.object({ tag: z3.string().min(1), central: z3.boolean().optional(), reusable: z3.boolean().optional(), description: z3.string().optional() })).min(1).max(20)
|
|
9443
9579
|
},
|
|
@@ -9451,7 +9587,7 @@ var ResolveTagsSchema = {
|
|
|
9451
9587
|
var UpsertTagSchema = {
|
|
9452
9588
|
id: "upsert-memory-tag",
|
|
9453
9589
|
upstreamName: "upsertTagTool",
|
|
9454
|
-
description: "Define or curate one canonical tag, its meaning, aliases, and lifecycle.
|
|
9590
|
+
description: "Define or curate one canonical tag, its meaning, aliases, and lifecycle. Inspect the complete vocabulary with list-memory-tags first; use only after resolve-memory-tags returns create, or to merge/deprecate vocabulary intentionally. Requires write scope.",
|
|
9455
9591
|
input: {
|
|
9456
9592
|
tag: z3.string().min(1),
|
|
9457
9593
|
description: z3.string().optional(),
|
|
@@ -9607,17 +9743,17 @@ var ListVaultsSchema = {
|
|
|
9607
9743
|
var ProvisionDefaultsSchema = {
|
|
9608
9744
|
id: "provision-defaults",
|
|
9609
9745
|
upstreamName: "provisionDefaultsTool",
|
|
9610
|
-
description: "Provision the standard
|
|
9746
|
+
description: "Provision the standard 14-vault memory structure (Ideas, Inspiration, Knowledge, Library, People, Communications, Calendar, Tasks, Projects, Issues, Improvement Log, Experiments, Sprint, Skills) for an identity. Idempotent \u2014 existing vaults are untouched. Optionally issues a fresh API key entitled to all 14. Requires admin scope.",
|
|
9611
9747
|
input: {
|
|
9612
|
-
granteeIdentity: z3.string().min(1).describe("Identity that should OWN the
|
|
9613
|
-
issueKey: z3.boolean().optional().describe("When true, also issue a new API key for the identity entitled to all
|
|
9748
|
+
granteeIdentity: z3.string().min(1).describe("Identity that should OWN the 14 default vaults (e.g. an email or user id)."),
|
|
9749
|
+
issueKey: z3.boolean().optional().describe("When true, also issue a new API key for the identity entitled to all 14 vaults and return its secret once. Default false."),
|
|
9614
9750
|
plan: z3.enum(["free", "pro", "team", "enterprise"]).optional().describe("Subscription plan carried by the issued key. Optional; defaults to free. Only used when issueKey is true.")
|
|
9615
9751
|
},
|
|
9616
9752
|
output: {
|
|
9617
9753
|
ok: z3.boolean().describe("True when provisioning succeeded; false on auth/scope error."),
|
|
9618
9754
|
identity: z3.string().optional().describe("Identity the vaults were provisioned for."),
|
|
9619
|
-
created: z3.array(z3.string()).optional().describe("Vault names newly created on this call (empty when all
|
|
9620
|
-
vaults: z3.array(z3.string()).optional().describe("All
|
|
9755
|
+
created: z3.array(z3.string()).optional().describe("Vault names newly created on this call (empty when all 14 already existed)."),
|
|
9756
|
+
vaults: z3.array(z3.string()).optional().describe("All 14 default vault names the identity now owns."),
|
|
9621
9757
|
keyId: z3.string().optional().describe("Stable id of the issued key. Present only when issueKey was true."),
|
|
9622
9758
|
secret: z3.string().optional().describe("The issued key secret \u2014 RETURNED ONCE. Present only when issueKey was true."),
|
|
9623
9759
|
plan: z3.string().optional().describe("Plan assigned to the issued key. Present only when issueKey was true."),
|
|
@@ -9654,9 +9790,9 @@ var RouteMemorySchema = {
|
|
|
9654
9790
|
var VideoAnalyzeStartSchema = {
|
|
9655
9791
|
id: "video-analyze-start",
|
|
9656
9792
|
upstreamName: "videoAnalyzeStartTool",
|
|
9657
|
-
description: "Start a deep async breakdown of a video: samples frames, transcribes audio, and runs parallel analyses (summary, pacing, WPM, topic outline, key points, hook analysis, visual style, replication recipe) into one saved report. Returns a runId immediately \u2014 poll video-analyze-status.
|
|
9793
|
+
description: "Start a deep async breakdown of a video: samples frames, transcribes audio, and runs parallel analyses (summary, pacing, WPM, topic outline, key points, hook analysis, visual style, replication recipe) into one saved report. Returns a runId immediately \u2014 poll video-analyze-status. Accepts a YouTube, Facebook, Instagram, TikTok, or Vimeo URL directly (downloaded for you), or a direct video file URL (.mp4/.webm/.mov). Videos up to 1 hour.",
|
|
9658
9794
|
input: {
|
|
9659
|
-
sourceUrl: z3.string().url().describe("
|
|
9795
|
+
sourceUrl: z3.string().url().describe("A YouTube, Facebook, Instagram, TikTok, or Vimeo URL (downloaded automatically), or a direct video file URL (.mp4/.webm/.mov/.gif)."),
|
|
9660
9796
|
intervalS: z3.number().min(1).max(30).optional().describe("Preferred seconds between sampled frames (1-30). Default 2. For long videos the interval is automatically widened so the whole video is covered within the frame budget. Lower = denser sampling where the video is short enough to allow it."),
|
|
9661
9797
|
maxFrames: z3.number().int().min(1).max(480).optional().describe("Hard cap on frames analyzed (\u2264480). Default 120. Frames are spread across the whole duration; lowest sampling interval is 1 second, so short videos cannot use more frames than their length in seconds."),
|
|
9662
9798
|
detail: z3.enum(["fast", "standard", "deep"]).optional().describe("Analysis depth. Default standard."),
|
|
@@ -9793,6 +9929,7 @@ var MEMORY_TOOL_SCHEMAS = [
|
|
|
9793
9929
|
GraphPathSchema,
|
|
9794
9930
|
GraphUniverseSchema,
|
|
9795
9931
|
LibraryIngestSchema,
|
|
9932
|
+
BulkDeleteNotesSchema,
|
|
9796
9933
|
DeleteNoteSchema,
|
|
9797
9934
|
ExportSchema,
|
|
9798
9935
|
GetSchema,
|
|
@@ -9811,6 +9948,7 @@ var MEMORY_TOOL_SCHEMAS = [
|
|
|
9811
9948
|
ProposeScheduledActionSchema,
|
|
9812
9949
|
ResumeScheduledActionSchema,
|
|
9813
9950
|
RevokeScheduleLinkSchema,
|
|
9951
|
+
SetScheduleDefaultsSchema,
|
|
9814
9952
|
SetScheduleEntitlementSchema,
|
|
9815
9953
|
CostUsageSchema,
|
|
9816
9954
|
StorageUsageSchema,
|
|
@@ -9916,4 +10054,4 @@ export {
|
|
|
9916
10054
|
registerMemoryMcpTools,
|
|
9917
10055
|
MemoryMcpToolExecutor
|
|
9918
10056
|
};
|
|
9919
|
-
//# sourceMappingURL=chunk-
|
|
10057
|
+
//# sourceMappingURL=chunk-UMTBCKHH.js.map
|