@withpica/mcp-server 2.7.0 → 2.9.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/__mocks__/mppx-mcp-sdk-server.d.ts +6 -0
- package/dist/__mocks__/mppx-mcp-sdk-server.d.ts.map +1 -0
- package/dist/__mocks__/mppx-mcp-sdk-server.js +6 -0
- package/dist/__mocks__/mppx-mcp-sdk-server.js.map +1 -0
- package/dist/__mocks__/mppx-server.d.ts +12 -0
- package/dist/__mocks__/mppx-server.d.ts.map +1 -0
- package/dist/__mocks__/mppx-server.js +12 -0
- package/dist/__mocks__/mppx-server.js.map +1 -0
- package/dist/apps/download.d.ts +2 -0
- package/dist/apps/download.d.ts.map +1 -0
- package/dist/apps/download.js +125 -0
- package/dist/apps/download.js.map +1 -0
- package/dist/apps/generated/shared-bundle.d.ts +5 -0
- package/dist/apps/generated/shared-bundle.d.ts.map +1 -0
- package/dist/apps/generated/shared-bundle.js +7 -0
- package/dist/apps/generated/shared-bundle.js.map +1 -0
- package/dist/apps/shared.d.ts +15 -0
- package/dist/apps/shared.d.ts.map +1 -0
- package/dist/apps/shared.js +480 -0
- package/dist/apps/shared.js.map +1 -0
- package/dist/apps/upload.d.ts +2 -0
- package/dist/apps/upload.d.ts.map +1 -0
- package/dist/apps/upload.js +280 -0
- package/dist/apps/upload.js.map +1 -0
- package/dist/config.d.ts +9 -30
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +36 -12
- package/dist/config.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts/index.js +24 -24
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/index.d.ts +4 -2
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +133 -54
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/llms-primer.d.ts +2 -0
- package/dist/resources/llms-primer.d.ts.map +1 -0
- package/dist/resources/llms-primer.js +68 -0
- package/dist/resources/llms-primer.js.map +1 -0
- package/dist/server-instructions.d.ts +9 -0
- package/dist/server-instructions.d.ts.map +1 -0
- package/dist/server-instructions.js +34 -0
- package/dist/server-instructions.js.map +1 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +103 -14
- package/dist/server.js.map +1 -1
- package/dist/tools/agreement-types.d.ts +27 -0
- package/dist/tools/agreement-types.d.ts.map +1 -0
- package/dist/tools/agreement-types.js +387 -0
- package/dist/tools/agreement-types.js.map +1 -0
- package/dist/tools/agreements.d.ts +20 -0
- package/dist/tools/agreements.d.ts.map +1 -0
- package/dist/tools/agreements.js +363 -0
- package/dist/tools/agreements.js.map +1 -0
- package/dist/tools/analytics.d.ts +20 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +124 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/app-tools.d.ts +21 -0
- package/dist/tools/app-tools.d.ts.map +1 -0
- package/dist/tools/app-tools.js +248 -0
- package/dist/tools/app-tools.js.map +1 -0
- package/dist/tools/assets.d.ts +25 -0
- package/dist/tools/assets.d.ts.map +1 -0
- package/dist/tools/assets.js +631 -0
- package/dist/tools/assets.js.map +1 -0
- package/dist/tools/audio-files.d.ts +20 -0
- package/dist/tools/audio-files.d.ts.map +1 -0
- package/dist/tools/audio-files.js +384 -0
- package/dist/tools/audio-files.js.map +1 -0
- package/dist/tools/auth.d.ts +22 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +210 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/bulk.d.ts +16 -0
- package/dist/tools/bulk.d.ts.map +1 -0
- package/dist/tools/bulk.js +85 -0
- package/dist/tools/bulk.js.map +1 -0
- package/dist/tools/calendar.d.ts +15 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +67 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/collaborators.d.ts +21 -0
- package/dist/tools/collaborators.d.ts.map +1 -0
- package/dist/tools/collaborators.js +311 -0
- package/dist/tools/collaborators.js.map +1 -0
- package/dist/tools/comparisons.d.ts +22 -0
- package/dist/tools/comparisons.d.ts.map +1 -0
- package/dist/tools/comparisons.js +78 -0
- package/dist/tools/comparisons.js.map +1 -0
- package/dist/tools/credits.d.ts +17 -0
- package/dist/tools/credits.d.ts.map +1 -0
- package/dist/tools/credits.js +312 -0
- package/dist/tools/credits.js.map +1 -0
- package/dist/tools/custody-hints.d.ts +16 -0
- package/dist/tools/custody-hints.d.ts.map +1 -0
- package/dist/tools/custody-hints.js +27 -0
- package/dist/tools/custody-hints.js.map +1 -0
- package/dist/tools/custody.d.ts +38 -0
- package/dist/tools/custody.d.ts.map +1 -0
- package/dist/tools/custody.js +274 -0
- package/dist/tools/custody.js.map +1 -0
- package/dist/tools/dashboard.d.ts +19 -0
- package/dist/tools/dashboard.d.ts.map +1 -0
- package/dist/tools/dashboard.js +146 -0
- package/dist/tools/dashboard.js.map +1 -0
- package/dist/tools/directory.d.ts +15 -0
- package/dist/tools/directory.d.ts.map +1 -0
- package/dist/tools/directory.js +106 -0
- package/dist/tools/directory.js.map +1 -0
- package/dist/tools/discovery.d.ts +28 -0
- package/dist/tools/discovery.d.ts.map +1 -0
- package/dist/tools/discovery.js +560 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/disputes.d.ts +18 -0
- package/dist/tools/disputes.d.ts.map +1 -0
- package/dist/tools/disputes.js +61 -0
- package/dist/tools/disputes.js.map +1 -0
- package/dist/tools/documents.d.ts +15 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +36 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/duplicates.d.ts +16 -0
- package/dist/tools/duplicates.d.ts.map +1 -0
- package/dist/tools/duplicates.js +87 -0
- package/dist/tools/duplicates.js.map +1 -0
- package/dist/tools/enrichment.d.ts +23 -0
- package/dist/tools/enrichment.d.ts.map +1 -0
- package/dist/tools/enrichment.js +220 -0
- package/dist/tools/enrichment.js.map +1 -0
- package/dist/tools/exports.d.ts +19 -0
- package/dist/tools/exports.d.ts.map +1 -0
- package/dist/tools/exports.js +175 -0
- package/dist/tools/exports.js.map +1 -0
- package/dist/tools/import-documents.d.ts +21 -0
- package/dist/tools/import-documents.d.ts.map +1 -0
- package/dist/tools/import-documents.js +203 -0
- package/dist/tools/import-documents.js.map +1 -0
- package/dist/tools/import.d.ts +30 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +455 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +67 -5
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +448 -84
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/integrations.d.ts +15 -0
- package/dist/tools/integrations.d.ts.map +1 -0
- package/dist/tools/integrations.js +100 -0
- package/dist/tools/integrations.js.map +1 -0
- package/dist/tools/licensing.d.ts +40 -0
- package/dist/tools/licensing.d.ts.map +1 -0
- package/dist/tools/licensing.js +431 -0
- package/dist/tools/licensing.js.map +1 -0
- package/dist/tools/memory.d.ts +21 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +116 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/metadata.d.ts +15 -0
- package/dist/tools/metadata.d.ts.map +1 -0
- package/dist/tools/metadata.js +1106 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/tools/multimedia.d.ts +19 -0
- package/dist/tools/multimedia.d.ts.map +1 -0
- package/dist/tools/multimedia.js +291 -0
- package/dist/tools/multimedia.js.map +1 -0
- package/dist/tools/notes.d.ts +21 -0
- package/dist/tools/notes.d.ts.map +1 -0
- package/dist/tools/notes.js +108 -0
- package/dist/tools/notes.js.map +1 -0
- package/dist/tools/notifications.d.ts +20 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +266 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/people.d.ts +5 -13
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +148 -109
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/projects.d.ts +19 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +140 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/publishers.d.ts +16 -0
- package/dist/tools/publishers.d.ts.map +1 -0
- package/dist/tools/publishers.js +69 -0
- package/dist/tools/publishers.js.map +1 -0
- package/dist/tools/purchases.d.ts +15 -0
- package/dist/tools/purchases.d.ts.map +1 -0
- package/dist/tools/purchases.js +63 -0
- package/dist/tools/purchases.js.map +1 -0
- package/dist/tools/recordings.d.ts +35 -35
- package/dist/tools/recordings.d.ts.map +1 -1
- package/dist/tools/recordings.js +136 -48
- package/dist/tools/recordings.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts +14 -0
- package/dist/tools/recovery-hints.d.ts.map +1 -0
- package/dist/tools/recovery-hints.js +277 -0
- package/dist/tools/recovery-hints.js.map +1 -0
- package/dist/tools/releases.d.ts +18 -0
- package/dist/tools/releases.d.ts.map +1 -0
- package/dist/tools/releases.js +128 -0
- package/dist/tools/releases.js.map +1 -0
- package/dist/tools/royalties.d.ts +23 -0
- package/dist/tools/royalties.d.ts.map +1 -0
- package/dist/tools/royalties.js +257 -0
- package/dist/tools/royalties.js.map +1 -0
- package/dist/tools/search.d.ts +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +3 -3
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/send.d.ts +17 -0
- package/dist/tools/send.d.ts.map +1 -0
- package/dist/tools/send.js +185 -0
- package/dist/tools/send.js.map +1 -0
- package/dist/tools/sessions.d.ts +18 -0
- package/dist/tools/sessions.d.ts.map +1 -0
- package/dist/tools/sessions.js +115 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/settings.d.ts +18 -0
- package/dist/tools/settings.d.ts.map +1 -0
- package/dist/tools/settings.js +96 -0
- package/dist/tools/settings.js.map +1 -0
- package/dist/tools/share-links.d.ts +19 -0
- package/dist/tools/share-links.d.ts.map +1 -0
- package/dist/tools/share-links.js +121 -0
- package/dist/tools/share-links.js.map +1 -0
- package/dist/tools/split-sheets.d.ts +25 -0
- package/dist/tools/split-sheets.d.ts.map +1 -0
- package/dist/tools/split-sheets.js +307 -0
- package/dist/tools/split-sheets.js.map +1 -0
- package/dist/tools/team.d.ts +22 -0
- package/dist/tools/team.d.ts.map +1 -0
- package/dist/tools/team.js +134 -0
- package/dist/tools/team.js.map +1 -0
- package/dist/tools/telegram.d.ts +21 -0
- package/dist/tools/telegram.d.ts.map +1 -0
- package/dist/tools/telegram.js +141 -0
- package/dist/tools/telegram.js.map +1 -0
- package/dist/tools/uploads.d.ts +17 -0
- package/dist/tools/uploads.d.ts.map +1 -0
- package/dist/tools/uploads.js +156 -0
- package/dist/tools/uploads.js.map +1 -0
- package/dist/tools/works.d.ts +5 -13
- package/dist/tools/works.d.ts.map +1 -1
- package/dist/tools/works.js +219 -116
- package/dist/tools/works.js.map +1 -1
- package/package.json +1 -1
- package/dist/pica-sdk.d.ts +0 -1231
- package/dist/pica-sdk.d.ts.map +0 -1
- package/dist/pica-sdk.js +0 -1403
- package/dist/pica-sdk.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -29
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -115
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/formatting.d.ts +0 -82
- package/dist/utils/formatting.d.ts.map +0 -1
- package/dist/utils/formatting.js +0 -125
- package/dist/utils/formatting.js.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
|
+
import { formatStructuredList, formatSuccess } from "@withpica/mcp-utils";
|
|
3
|
+
export class PublishersTools {
|
|
4
|
+
pica;
|
|
5
|
+
constructor(pica) {
|
|
6
|
+
this.pica = pica;
|
|
7
|
+
}
|
|
8
|
+
getTools() {
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
definition: {
|
|
12
|
+
name: "pica_publishers_query",
|
|
13
|
+
description: "Find publishers by name or IPI. Use before setting publisher on credits. " +
|
|
14
|
+
"→ then: pica_credits_update (link publisher to a credit)",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
query: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Search by publisher name or IPI",
|
|
21
|
+
},
|
|
22
|
+
limit: {
|
|
23
|
+
type: "number",
|
|
24
|
+
description: "Max results (default: 50)",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
executor: this.queryPublishers.bind(this),
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
definition: {
|
|
33
|
+
name: "pica_publishers_create",
|
|
34
|
+
description: "Create a new publisher record. Check pica_publishers_query first to avoid duplicates.",
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: "object",
|
|
37
|
+
properties: {
|
|
38
|
+
name: { type: "string", description: "Publisher name" },
|
|
39
|
+
ipi: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "Publisher IPI number (9-11 digits)",
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
required: ["name"],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
executor: this.createPublisher.bind(this),
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
async queryPublishers(args) {
|
|
52
|
+
const result = await this.pica.publishers.list({
|
|
53
|
+
query: args.query,
|
|
54
|
+
limit: args.limit || 50,
|
|
55
|
+
});
|
|
56
|
+
const publishers = Array.isArray(result) ? result : result?.data || [];
|
|
57
|
+
return formatStructuredList(publishers, "publisher", {
|
|
58
|
+
total: publishers.length,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async createPublisher(args) {
|
|
62
|
+
const result = await this.pica.publishers.create({
|
|
63
|
+
name: args.name,
|
|
64
|
+
ipi: args.ipi,
|
|
65
|
+
});
|
|
66
|
+
return formatSuccess("Publisher created", result);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=publishers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishers.js","sourceRoot":"","sources":["../../src/tools/publishers.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAQ7D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,OAAO,eAAe;IAClB,IAAI,CAAa;IAEzB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,OAAO;YACL;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EACT,2EAA2E;wBAC3E,0DAA0D;oBAC5D,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,iCAAiC;6BAC/C;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,2BAA2B;6BACzC;yBACF;qBACF;iBACF;gBACD,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;YACD;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,WAAW,EACT,uFAAuF;oBACzF,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;4BACvD,GAAG,EAAE;gCACH,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,oCAAoC;6BAClD;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAA6B;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAA2B;YACvC,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,EAAE;SACpC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACvE,OAAO,oBAAoB,CAAC,UAAU,EAAE,WAAW,EAAE;YACnD,KAAK,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAA6B;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,IAAc;YACzB,GAAG,EAAE,IAAI,CAAC,GAAyB;SACpC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purchase Tools - MCP tools for buying Pica credits
|
|
3
|
+
*/
|
|
4
|
+
import { PicaClient } from "@withpica/mcp-sdk";
|
|
5
|
+
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
6
|
+
export declare class PurchasesTools {
|
|
7
|
+
private pica;
|
|
8
|
+
constructor(pica: PicaClient);
|
|
9
|
+
getTools(): Array<{
|
|
10
|
+
definition: ToolDefinition;
|
|
11
|
+
executor: ToolExecutor;
|
|
12
|
+
}>;
|
|
13
|
+
private purchaseCredits;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=purchases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchases.d.ts","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YA4C3D,eAAe;CAkB9B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
|
+
import { formatSuccess } from "@withpica/mcp-utils";
|
|
3
|
+
export class PurchasesTools {
|
|
4
|
+
pica;
|
|
5
|
+
constructor(pica) {
|
|
6
|
+
this.pica = pica;
|
|
7
|
+
}
|
|
8
|
+
getTools() {
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
definition: {
|
|
12
|
+
name: "pica_credits_purchase",
|
|
13
|
+
description: "Get a checkout link to purchase Pica credits. Returns a Stripe checkout URL the user can open to buy credits. " +
|
|
14
|
+
"Packages: pica_10 (10 credits), pica_25 (25 credits, best value), pica_50 (50 credits), pica_100 (100 credits). " +
|
|
15
|
+
"Currencies: GBP, USD, EUR, CAD, AUD, ZAR, NGN, KES, BRL, MXN. " +
|
|
16
|
+
"→ then: pica_credits_balance (verify purchase landed)",
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: "object",
|
|
19
|
+
properties: {
|
|
20
|
+
package_id: {
|
|
21
|
+
type: "string",
|
|
22
|
+
enum: ["pica_10", "pica_25", "pica_50", "pica_100"],
|
|
23
|
+
description: "Credit package. pica_25 is most popular.",
|
|
24
|
+
},
|
|
25
|
+
currency: {
|
|
26
|
+
type: "string",
|
|
27
|
+
enum: [
|
|
28
|
+
"GBP",
|
|
29
|
+
"USD",
|
|
30
|
+
"EUR",
|
|
31
|
+
"CAD",
|
|
32
|
+
"AUD",
|
|
33
|
+
"ZAR",
|
|
34
|
+
"NGN",
|
|
35
|
+
"KES",
|
|
36
|
+
"BRL",
|
|
37
|
+
"MXN",
|
|
38
|
+
],
|
|
39
|
+
description: "Payment currency (default: GBP). Emerging markets use PPP pricing.",
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
required: ["package_id"],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
executor: this.purchaseCredits.bind(this),
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
async purchaseCredits(args) {
|
|
50
|
+
const result = await this.pica.creditsBalance.purchase({
|
|
51
|
+
package_id: args.package_id,
|
|
52
|
+
currency: args.currency || "GBP",
|
|
53
|
+
});
|
|
54
|
+
const data = result.data || result;
|
|
55
|
+
const safeData = {
|
|
56
|
+
checkout_url: data.checkout_url,
|
|
57
|
+
package_id: args.package_id,
|
|
58
|
+
currency: args.currency || "GBP",
|
|
59
|
+
};
|
|
60
|
+
return formatSuccess(`Checkout link ready. Share this URL with the user to complete the purchase:\n${safeData.checkout_url}`, safeData);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=purchases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchases.js","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAQ7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,OAAO,cAAc;IACjB,IAAI,CAAa;IAEzB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,OAAO;YACL;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EACT,gHAAgH;wBAChH,kHAAkH;wBAClH,gEAAgE;wBAChE,uDAAuD;oBACzD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;gCACnD,WAAW,EAAE,0CAA0C;6BACxD;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE;oCACJ,KAAK;oCACL,KAAK;oCACL,KAAK;oCACL,KAAK;oCACL,KAAK;oCACL,KAAK;oCACL,KAAK;oCACL,KAAK;oCACL,KAAK;oCACL,KAAK;iCACN;gCACD,WAAW,EACT,oEAAoE;6BACvE;yBACF;wBACD,QAAQ,EAAE,CAAC,YAAY,CAAC;qBACzB;iBACF;gBACD,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAyB;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YACrD,UAAU,EAAE,IAAI,CAAC,UAAoB;YACrC,QAAQ,EAAG,IAAI,CAAC,QAAmB,IAAI,KAAK;SAC7C,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QACnC,MAAM,QAAQ,GAAG;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;SACjC,CAAC;QAEF,OAAO,aAAa,CAClB,gFAAgF,QAAQ,CAAC,YAAY,EAAE,EACvG,QAAQ,CACT,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Recordings Tools - MCP tools for managing recordings
|
|
3
|
+
*
|
|
4
|
+
* ADR-149 Phase 5b: Consolidated to query+inspect pattern.
|
|
5
|
+
* - pica_recordings_query replaces pica_recordings_list + pica_recordings_by_work
|
|
6
|
+
* - pica_recordings_inspect replaces pica_recordings_get (with sections support)
|
|
3
7
|
*/
|
|
4
|
-
import { PicaClient } from "
|
|
8
|
+
import { PicaClient } from "@withpica/mcp-sdk";
|
|
5
9
|
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
6
10
|
export declare class RecordingsTools {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Get recordings by work
|
|
38
|
-
*/
|
|
39
|
-
private getRecordingsByWork;
|
|
11
|
+
private pica;
|
|
12
|
+
constructor(pica: PicaClient);
|
|
13
|
+
/**
|
|
14
|
+
* Get all recordings tools
|
|
15
|
+
*/
|
|
16
|
+
getTools(): Array<{
|
|
17
|
+
definition: ToolDefinition;
|
|
18
|
+
executor: ToolExecutor;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Query recordings — list all, search by text, or filter by work
|
|
22
|
+
*/
|
|
23
|
+
private queryRecordings;
|
|
24
|
+
/**
|
|
25
|
+
* Inspect a recording — get details with optional section filtering
|
|
26
|
+
*/
|
|
27
|
+
private inspectRecording;
|
|
28
|
+
/**
|
|
29
|
+
* Create recording
|
|
30
|
+
*/
|
|
31
|
+
private createRecording;
|
|
32
|
+
/**
|
|
33
|
+
* Update recording
|
|
34
|
+
*/
|
|
35
|
+
private updateRecording;
|
|
36
|
+
/**
|
|
37
|
+
* Delete recording
|
|
38
|
+
*/
|
|
39
|
+
private deleteRecording;
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=recordings.d.ts.map
|
|
41
|
+
//# sourceMappingURL=recordings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/tools/recordings.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/tools/recordings.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAOtE,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAyOzE;;OAEG;YACW,eAAe;IAkC7B;;OAEG;YACW,gBAAgB;IA8F9B;;OAEG;YACW,eAAe;IAU7B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,eAAe;CAM9B"}
|
package/dist/tools/recordings.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
|
-
import {
|
|
2
|
+
import { formatSuccess, formatStructuredList, } from "@withpica/mcp-utils";
|
|
3
3
|
export class RecordingsTools {
|
|
4
4
|
pica;
|
|
5
5
|
constructor(pica) {
|
|
@@ -12,24 +12,34 @@ export class RecordingsTools {
|
|
|
12
12
|
return [
|
|
13
13
|
{
|
|
14
14
|
definition: {
|
|
15
|
-
name: "
|
|
16
|
-
description: "
|
|
15
|
+
name: "pica_recordings_query",
|
|
16
|
+
description: "Find recordings — list all, search by query, or filter by work. " +
|
|
17
|
+
"→ then: pica_recordings_inspect (details for a specific recording)",
|
|
17
18
|
inputSchema: {
|
|
18
19
|
type: "object",
|
|
19
20
|
properties: {
|
|
21
|
+
query: {
|
|
22
|
+
type: "string",
|
|
23
|
+
description: "Search by title, ISRC, or artist name",
|
|
24
|
+
},
|
|
25
|
+
work_id: {
|
|
26
|
+
type: "string",
|
|
27
|
+
description: "Filter recordings by work ID (replaces pica_recordings_by_work)",
|
|
28
|
+
},
|
|
20
29
|
limit: {
|
|
21
30
|
type: "number",
|
|
22
|
-
description: "
|
|
31
|
+
description: "Max results (default: 50)",
|
|
23
32
|
},
|
|
24
33
|
},
|
|
25
34
|
},
|
|
26
35
|
},
|
|
27
|
-
executor: this.
|
|
36
|
+
executor: this.queryRecordings.bind(this),
|
|
28
37
|
},
|
|
29
38
|
{
|
|
30
39
|
definition: {
|
|
31
|
-
name: "
|
|
32
|
-
description: "Get details
|
|
40
|
+
name: "pica_recordings_inspect",
|
|
41
|
+
description: "Get details for a specific recording. Omit sections for everything. " +
|
|
42
|
+
"→ then: pica_audio_query (audio files), pica_credits_update (fix credits)",
|
|
33
43
|
inputSchema: {
|
|
34
44
|
type: "object",
|
|
35
45
|
properties: {
|
|
@@ -37,21 +47,29 @@ export class RecordingsTools {
|
|
|
37
47
|
type: "string",
|
|
38
48
|
description: "Recording ID",
|
|
39
49
|
},
|
|
50
|
+
sections: {
|
|
51
|
+
type: "array",
|
|
52
|
+
items: {
|
|
53
|
+
type: "string",
|
|
54
|
+
enum: ["basic", "credits", "audio", "production_assets"],
|
|
55
|
+
},
|
|
56
|
+
description: 'Which data sections to include. Omit for all sections. Use ["basic"] for lightweight lookup.',
|
|
57
|
+
},
|
|
40
58
|
},
|
|
41
59
|
required: ["id"],
|
|
42
60
|
},
|
|
43
61
|
},
|
|
44
|
-
executor: this.
|
|
62
|
+
executor: this.inspectRecording.bind(this),
|
|
45
63
|
},
|
|
46
64
|
{
|
|
47
65
|
definition: {
|
|
48
66
|
name: "pica_recordings_create",
|
|
49
|
-
description: "Create a new recording. IMPORTANT: Always call
|
|
67
|
+
description: "Create a new recording. IMPORTANT: Always call pica_recordings_query with work_id first to check for existing recordings on this work — duplicate recordings cause ISRC conflicts. " +
|
|
50
68
|
"Any field from the Recording schema can be passed — " +
|
|
51
69
|
"the most commonly used fields are listed below. Additional fields " +
|
|
52
70
|
"(e.g. mlc_recording_id, mlc_song_code, global_recording_id, global_release_id) " +
|
|
53
71
|
"are also accepted. " +
|
|
54
|
-
"→ before:
|
|
72
|
+
"→ before: pica_recordings_query (check duplicates) → then: pica_audio_presigned_upload (upload audio), pica_audio_analyze (extract features)",
|
|
55
73
|
inputSchema: {
|
|
56
74
|
type: "object",
|
|
57
75
|
properties: {
|
|
@@ -123,7 +141,7 @@ export class RecordingsTools {
|
|
|
123
141
|
name: "pica_recordings_update",
|
|
124
142
|
description: "Update an existing recording. Any field from the Recording schema can be passed — " +
|
|
125
143
|
"the most commonly used fields are listed below. Additional fields are also accepted. " +
|
|
126
|
-
"→ then:
|
|
144
|
+
"→ then: pica_recordings_inspect (verify changes persisted)",
|
|
127
145
|
inputSchema: {
|
|
128
146
|
type: "object",
|
|
129
147
|
properties: {
|
|
@@ -207,30 +225,33 @@ export class RecordingsTools {
|
|
|
207
225
|
},
|
|
208
226
|
executor: this.deleteRecording.bind(this),
|
|
209
227
|
},
|
|
210
|
-
{
|
|
211
|
-
definition: {
|
|
212
|
-
name: "pica_recordings_by_work",
|
|
213
|
-
description: "Get all recordings of a specific work",
|
|
214
|
-
inputSchema: {
|
|
215
|
-
type: "object",
|
|
216
|
-
properties: {
|
|
217
|
-
work_id: {
|
|
218
|
-
type: "string",
|
|
219
|
-
description: "Work ID",
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
required: ["work_id"],
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
executor: this.getRecordingsByWork.bind(this),
|
|
226
|
-
},
|
|
227
228
|
];
|
|
228
229
|
}
|
|
229
230
|
/**
|
|
230
|
-
*
|
|
231
|
+
* Query recordings — list all, search by text, or filter by work
|
|
231
232
|
*/
|
|
232
|
-
async
|
|
233
|
+
async queryRecordings(args) {
|
|
233
234
|
const limit = args.limit || 50;
|
|
235
|
+
const workId = args.work_id;
|
|
236
|
+
const query = args.query;
|
|
237
|
+
// Filter by work_id — delegate to getByWork
|
|
238
|
+
if (workId) {
|
|
239
|
+
const recordings = await this.pica.recordings.getByWork(workId);
|
|
240
|
+
return formatStructuredList(recordings, "recording", {
|
|
241
|
+
work_id: workId,
|
|
242
|
+
total: recordings.length,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
// Search by text query — delegate to search method (client-side filtering)
|
|
246
|
+
if (query) {
|
|
247
|
+
const result = await this.pica.recordings.search({ query, limit });
|
|
248
|
+
return formatStructuredList(result.data, "recording", {
|
|
249
|
+
query,
|
|
250
|
+
total: result.total,
|
|
251
|
+
hasMore: result.hasMore,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
// Default: list all
|
|
234
255
|
const recordings = await this.pica.recordings.list({ limit });
|
|
235
256
|
return formatStructuredList(recordings, "recording", {
|
|
236
257
|
total: recordings.length,
|
|
@@ -238,16 +259,93 @@ export class RecordingsTools {
|
|
|
238
259
|
});
|
|
239
260
|
}
|
|
240
261
|
/**
|
|
241
|
-
*
|
|
262
|
+
* Inspect a recording — get details with optional section filtering
|
|
242
263
|
*/
|
|
243
|
-
async
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
264
|
+
async inspectRecording(args) {
|
|
265
|
+
const id = args.id;
|
|
266
|
+
const sections = args.sections;
|
|
267
|
+
const allSections = !sections || sections.length === 0;
|
|
268
|
+
const result = {};
|
|
269
|
+
// Basic section: recording details + ISRC prefix intel
|
|
270
|
+
if (allSections || sections?.includes("basic")) {
|
|
271
|
+
try {
|
|
272
|
+
const recording = await this.pica.recordings.get(id);
|
|
273
|
+
result.recording = recording;
|
|
274
|
+
// Enrich with ISRC prefix intelligence if ISRC is present
|
|
275
|
+
if (recording.isrc) {
|
|
276
|
+
const prefixIntel = await this.pica.recordings.prefixLookup(recording.isrc);
|
|
277
|
+
if (prefixIntel) {
|
|
278
|
+
result.prefix_intel = prefixIntel;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
result.recording_error =
|
|
284
|
+
error instanceof Error ? error.message : "Failed to fetch recording";
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Credits section: work credits (via recording's parent work)
|
|
288
|
+
if (allSections || sections?.includes("credits")) {
|
|
289
|
+
try {
|
|
290
|
+
// We need the recording to get its work_id
|
|
291
|
+
const recording = result.recording ||
|
|
292
|
+
(await this.pica.recordings.get(id));
|
|
293
|
+
const workId = recording.work_id;
|
|
294
|
+
if (workId) {
|
|
295
|
+
const credits = await this.pica.credits.listForWork(workId);
|
|
296
|
+
result.credits = credits;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
result.credits = [];
|
|
300
|
+
result.credits_note = "No parent work linked — no credits available";
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
result.credits_error =
|
|
305
|
+
error instanceof Error ? error.message : "Failed to fetch credits";
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// Audio section: audio files linked to the parent work
|
|
309
|
+
if (allSections || sections?.includes("audio")) {
|
|
310
|
+
try {
|
|
311
|
+
const recording = result.recording ||
|
|
312
|
+
(await this.pica.recordings.get(id));
|
|
313
|
+
const workId = recording.work_id;
|
|
314
|
+
if (workId) {
|
|
315
|
+
const audioFiles = await this.pica.audioFiles.list({
|
|
316
|
+
work_id: workId,
|
|
317
|
+
});
|
|
318
|
+
result.audio_files = audioFiles;
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
result.audio_files = [];
|
|
322
|
+
result.audio_note =
|
|
323
|
+
"No parent work linked — no audio files available";
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
result.audio_error =
|
|
328
|
+
error instanceof Error
|
|
329
|
+
? error.message
|
|
330
|
+
: "Failed to fetch audio files";
|
|
331
|
+
}
|
|
249
332
|
}
|
|
250
|
-
|
|
333
|
+
// ADR-156 op #3 Session B Task 5 — surface linked physical assets
|
|
334
|
+
// so the inspect tool is discoverable from the recording side.
|
|
335
|
+
if (allSections || sections?.includes("production_assets")) {
|
|
336
|
+
try {
|
|
337
|
+
result.production_assets =
|
|
338
|
+
await this.pica.recordings.listProductionAssets(id);
|
|
339
|
+
}
|
|
340
|
+
catch (error) {
|
|
341
|
+
result.production_assets = [];
|
|
342
|
+
result.production_assets_error =
|
|
343
|
+
error instanceof Error
|
|
344
|
+
? error.message
|
|
345
|
+
: "Failed to fetch production assets";
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return formatSuccess("Recording details", result);
|
|
251
349
|
}
|
|
252
350
|
/**
|
|
253
351
|
* Create recording
|
|
@@ -273,15 +371,5 @@ export class RecordingsTools {
|
|
|
273
371
|
await this.pica.recordings.delete(args.id);
|
|
274
372
|
return formatSuccess(`Recording ${args.id} deleted successfully`);
|
|
275
373
|
}
|
|
276
|
-
/**
|
|
277
|
-
* Get recordings by work
|
|
278
|
-
*/
|
|
279
|
-
async getRecordingsByWork(args) {
|
|
280
|
-
const recordings = await this.pica.recordings.getByWork(args.work_id);
|
|
281
|
-
return formatStructuredList(recordings, "recording", {
|
|
282
|
-
work_id: args.work_id,
|
|
283
|
-
total: recordings.length,
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
374
|
}
|
|
287
375
|
//# sourceMappingURL=recordings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordings.js","sourceRoot":"","sources":["../../src/tools/recordings.ts"],"names":[],"mappings":"AAAA,6DAA6D;
|
|
1
|
+
{"version":3,"file":"recordings.js","sourceRoot":"","sources":["../../src/tools/recordings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recovery Hints Registry — ADR-149 Phase 2
|
|
3
|
+
*
|
|
4
|
+
* Per-tool failure-mode declarations. When a tool fails, the hint tells
|
|
5
|
+
* the AI what to try next — forming a recovery graph.
|
|
6
|
+
*/
|
|
7
|
+
export interface RecoveryHint {
|
|
8
|
+
error_code: string;
|
|
9
|
+
suggestion: string;
|
|
10
|
+
next_tool?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const RECOVERY_HINTS: Record<string, RecoveryHint[]>;
|
|
13
|
+
export declare function getRecoveryHint(toolName: string, errorCode: string): RecoveryHint | undefined;
|
|
14
|
+
//# sourceMappingURL=recovery-hints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery-hints.d.ts","sourceRoot":"","sources":["../../src/tools/recovery-hints.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CA+QzD,CAAC;AAEF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,YAAY,GAAG,SAAS,CAI1B"}
|