@withpica/mcp-server 2.6.1 → 2.7.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.
Files changed (256) hide show
  1. package/dist/config.d.ts +25 -4
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +12 -30
  4. package/dist/config.js.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.js +3 -3
  7. package/dist/index.js.map +1 -1
  8. package/dist/pica-sdk.d.ts +1231 -0
  9. package/dist/pica-sdk.d.ts.map +1 -0
  10. package/dist/pica-sdk.js +1403 -0
  11. package/dist/pica-sdk.js.map +1 -0
  12. package/dist/prompts/index.d.ts +64 -64
  13. package/dist/prompts/index.js +24 -24
  14. package/dist/prompts/index.js.map +1 -1
  15. package/dist/resources/index.d.ts +53 -55
  16. package/dist/resources/index.d.ts.map +1 -1
  17. package/dist/resources/index.js +54 -133
  18. package/dist/resources/index.js.map +1 -1
  19. package/dist/server.d.ts +32 -49
  20. package/dist/server.d.ts.map +1 -1
  21. package/dist/server.js +14 -103
  22. package/dist/server.js.map +1 -1
  23. package/dist/tools/index.d.ts +37 -83
  24. package/dist/tools/index.d.ts.map +1 -1
  25. package/dist/tools/index.js +84 -442
  26. package/dist/tools/index.js.map +1 -1
  27. package/dist/tools/people.d.ts +47 -39
  28. package/dist/tools/people.d.ts.map +1 -1
  29. package/dist/tools/people.js +109 -148
  30. package/dist/tools/people.js.map +1 -1
  31. package/dist/tools/recordings.d.ts +9 -9
  32. package/dist/tools/recordings.d.ts.map +1 -1
  33. package/dist/tools/recordings.js +48 -121
  34. package/dist/tools/recordings.js.map +1 -1
  35. package/dist/tools/search.d.ts +21 -21
  36. package/dist/tools/search.d.ts.map +1 -1
  37. package/dist/tools/search.js +3 -3
  38. package/dist/tools/search.js.map +1 -1
  39. package/dist/tools/works.d.ts +47 -39
  40. package/dist/tools/works.d.ts.map +1 -1
  41. package/dist/tools/works.js +116 -201
  42. package/dist/tools/works.js.map +1 -1
  43. package/dist/utils/errors.d.ts +29 -0
  44. package/dist/utils/errors.d.ts.map +1 -0
  45. package/dist/utils/errors.js +115 -0
  46. package/dist/utils/errors.js.map +1 -0
  47. package/dist/utils/formatting.d.ts +82 -0
  48. package/dist/utils/formatting.d.ts.map +1 -0
  49. package/dist/utils/formatting.js +125 -0
  50. package/dist/utils/formatting.js.map +1 -0
  51. package/package.json +1 -1
  52. package/server.json +3 -3
  53. package/dist/__mocks__/mppx-mcp-sdk-server.d.ts +0 -6
  54. package/dist/__mocks__/mppx-mcp-sdk-server.d.ts.map +0 -1
  55. package/dist/__mocks__/mppx-mcp-sdk-server.js +0 -6
  56. package/dist/__mocks__/mppx-mcp-sdk-server.js.map +0 -1
  57. package/dist/__mocks__/mppx-server.d.ts +0 -12
  58. package/dist/__mocks__/mppx-server.d.ts.map +0 -1
  59. package/dist/__mocks__/mppx-server.js +0 -12
  60. package/dist/__mocks__/mppx-server.js.map +0 -1
  61. package/dist/apps/download.d.ts +0 -2
  62. package/dist/apps/download.d.ts.map +0 -1
  63. package/dist/apps/download.js +0 -125
  64. package/dist/apps/download.js.map +0 -1
  65. package/dist/apps/generated/shared-bundle.d.ts +0 -5
  66. package/dist/apps/generated/shared-bundle.d.ts.map +0 -1
  67. package/dist/apps/generated/shared-bundle.js +0 -7
  68. package/dist/apps/generated/shared-bundle.js.map +0 -1
  69. package/dist/apps/shared.d.ts +0 -15
  70. package/dist/apps/shared.d.ts.map +0 -1
  71. package/dist/apps/shared.js +0 -480
  72. package/dist/apps/shared.js.map +0 -1
  73. package/dist/apps/upload.d.ts +0 -2
  74. package/dist/apps/upload.d.ts.map +0 -1
  75. package/dist/apps/upload.js +0 -280
  76. package/dist/apps/upload.js.map +0 -1
  77. package/dist/resources/llms-primer.d.ts +0 -2
  78. package/dist/resources/llms-primer.d.ts.map +0 -1
  79. package/dist/resources/llms-primer.js +0 -68
  80. package/dist/resources/llms-primer.js.map +0 -1
  81. package/dist/server-instructions.d.ts +0 -9
  82. package/dist/server-instructions.d.ts.map +0 -1
  83. package/dist/server-instructions.js +0 -34
  84. package/dist/server-instructions.js.map +0 -1
  85. package/dist/tools/agreement-types.d.ts +0 -27
  86. package/dist/tools/agreement-types.d.ts.map +0 -1
  87. package/dist/tools/agreement-types.js +0 -387
  88. package/dist/tools/agreement-types.js.map +0 -1
  89. package/dist/tools/agreements.d.ts +0 -20
  90. package/dist/tools/agreements.d.ts.map +0 -1
  91. package/dist/tools/agreements.js +0 -363
  92. package/dist/tools/agreements.js.map +0 -1
  93. package/dist/tools/analytics.d.ts +0 -20
  94. package/dist/tools/analytics.d.ts.map +0 -1
  95. package/dist/tools/analytics.js +0 -124
  96. package/dist/tools/analytics.js.map +0 -1
  97. package/dist/tools/app-tools.d.ts +0 -21
  98. package/dist/tools/app-tools.d.ts.map +0 -1
  99. package/dist/tools/app-tools.js +0 -248
  100. package/dist/tools/app-tools.js.map +0 -1
  101. package/dist/tools/assets.d.ts +0 -21
  102. package/dist/tools/assets.d.ts.map +0 -1
  103. package/dist/tools/assets.js +0 -441
  104. package/dist/tools/assets.js.map +0 -1
  105. package/dist/tools/audio-files.d.ts +0 -20
  106. package/dist/tools/audio-files.d.ts.map +0 -1
  107. package/dist/tools/audio-files.js +0 -384
  108. package/dist/tools/audio-files.js.map +0 -1
  109. package/dist/tools/auth.d.ts +0 -22
  110. package/dist/tools/auth.d.ts.map +0 -1
  111. package/dist/tools/auth.js +0 -210
  112. package/dist/tools/auth.js.map +0 -1
  113. package/dist/tools/bulk.d.ts +0 -16
  114. package/dist/tools/bulk.d.ts.map +0 -1
  115. package/dist/tools/bulk.js +0 -85
  116. package/dist/tools/bulk.js.map +0 -1
  117. package/dist/tools/calendar.d.ts +0 -15
  118. package/dist/tools/calendar.d.ts.map +0 -1
  119. package/dist/tools/calendar.js +0 -67
  120. package/dist/tools/calendar.js.map +0 -1
  121. package/dist/tools/collaborators.d.ts +0 -17
  122. package/dist/tools/collaborators.d.ts.map +0 -1
  123. package/dist/tools/collaborators.js +0 -131
  124. package/dist/tools/collaborators.js.map +0 -1
  125. package/dist/tools/comparisons.d.ts +0 -22
  126. package/dist/tools/comparisons.d.ts.map +0 -1
  127. package/dist/tools/comparisons.js +0 -78
  128. package/dist/tools/comparisons.js.map +0 -1
  129. package/dist/tools/credits.d.ts +0 -17
  130. package/dist/tools/credits.d.ts.map +0 -1
  131. package/dist/tools/credits.js +0 -312
  132. package/dist/tools/credits.js.map +0 -1
  133. package/dist/tools/dashboard.d.ts +0 -19
  134. package/dist/tools/dashboard.d.ts.map +0 -1
  135. package/dist/tools/dashboard.js +0 -146
  136. package/dist/tools/dashboard.js.map +0 -1
  137. package/dist/tools/directory.d.ts +0 -15
  138. package/dist/tools/directory.d.ts.map +0 -1
  139. package/dist/tools/directory.js +0 -106
  140. package/dist/tools/directory.js.map +0 -1
  141. package/dist/tools/discovery.d.ts +0 -28
  142. package/dist/tools/discovery.d.ts.map +0 -1
  143. package/dist/tools/discovery.js +0 -560
  144. package/dist/tools/discovery.js.map +0 -1
  145. package/dist/tools/disputes.d.ts +0 -18
  146. package/dist/tools/disputes.d.ts.map +0 -1
  147. package/dist/tools/disputes.js +0 -61
  148. package/dist/tools/disputes.js.map +0 -1
  149. package/dist/tools/documents.d.ts +0 -15
  150. package/dist/tools/documents.d.ts.map +0 -1
  151. package/dist/tools/documents.js +0 -36
  152. package/dist/tools/documents.js.map +0 -1
  153. package/dist/tools/duplicates.d.ts +0 -16
  154. package/dist/tools/duplicates.d.ts.map +0 -1
  155. package/dist/tools/duplicates.js +0 -87
  156. package/dist/tools/duplicates.js.map +0 -1
  157. package/dist/tools/enrichment.d.ts +0 -20
  158. package/dist/tools/enrichment.d.ts.map +0 -1
  159. package/dist/tools/enrichment.js +0 -154
  160. package/dist/tools/enrichment.js.map +0 -1
  161. package/dist/tools/exports.d.ts +0 -19
  162. package/dist/tools/exports.d.ts.map +0 -1
  163. package/dist/tools/exports.js +0 -175
  164. package/dist/tools/exports.js.map +0 -1
  165. package/dist/tools/import-documents.d.ts +0 -21
  166. package/dist/tools/import-documents.d.ts.map +0 -1
  167. package/dist/tools/import-documents.js +0 -203
  168. package/dist/tools/import-documents.js.map +0 -1
  169. package/dist/tools/import.d.ts +0 -30
  170. package/dist/tools/import.d.ts.map +0 -1
  171. package/dist/tools/import.js +0 -455
  172. package/dist/tools/import.js.map +0 -1
  173. package/dist/tools/integrations.d.ts +0 -15
  174. package/dist/tools/integrations.d.ts.map +0 -1
  175. package/dist/tools/integrations.js +0 -100
  176. package/dist/tools/integrations.js.map +0 -1
  177. package/dist/tools/licensing.d.ts +0 -40
  178. package/dist/tools/licensing.d.ts.map +0 -1
  179. package/dist/tools/licensing.js +0 -431
  180. package/dist/tools/licensing.js.map +0 -1
  181. package/dist/tools/memory.d.ts +0 -21
  182. package/dist/tools/memory.d.ts.map +0 -1
  183. package/dist/tools/memory.js +0 -116
  184. package/dist/tools/memory.js.map +0 -1
  185. package/dist/tools/metadata.d.ts +0 -15
  186. package/dist/tools/metadata.d.ts.map +0 -1
  187. package/dist/tools/metadata.js +0 -1069
  188. package/dist/tools/metadata.js.map +0 -1
  189. package/dist/tools/multimedia.d.ts +0 -19
  190. package/dist/tools/multimedia.d.ts.map +0 -1
  191. package/dist/tools/multimedia.js +0 -291
  192. package/dist/tools/multimedia.js.map +0 -1
  193. package/dist/tools/notes.d.ts +0 -21
  194. package/dist/tools/notes.d.ts.map +0 -1
  195. package/dist/tools/notes.js +0 -108
  196. package/dist/tools/notes.js.map +0 -1
  197. package/dist/tools/notifications.d.ts +0 -17
  198. package/dist/tools/notifications.d.ts.map +0 -1
  199. package/dist/tools/notifications.js +0 -117
  200. package/dist/tools/notifications.js.map +0 -1
  201. package/dist/tools/projects.d.ts +0 -19
  202. package/dist/tools/projects.d.ts.map +0 -1
  203. package/dist/tools/projects.js +0 -140
  204. package/dist/tools/projects.js.map +0 -1
  205. package/dist/tools/publishers.d.ts +0 -16
  206. package/dist/tools/publishers.d.ts.map +0 -1
  207. package/dist/tools/publishers.js +0 -69
  208. package/dist/tools/publishers.js.map +0 -1
  209. package/dist/tools/purchases.d.ts +0 -15
  210. package/dist/tools/purchases.d.ts.map +0 -1
  211. package/dist/tools/purchases.js +0 -63
  212. package/dist/tools/purchases.js.map +0 -1
  213. package/dist/tools/recovery-hints.d.ts +0 -14
  214. package/dist/tools/recovery-hints.d.ts.map +0 -1
  215. package/dist/tools/recovery-hints.js +0 -277
  216. package/dist/tools/recovery-hints.js.map +0 -1
  217. package/dist/tools/releases.d.ts +0 -18
  218. package/dist/tools/releases.d.ts.map +0 -1
  219. package/dist/tools/releases.js +0 -128
  220. package/dist/tools/releases.js.map +0 -1
  221. package/dist/tools/royalties.d.ts +0 -23
  222. package/dist/tools/royalties.d.ts.map +0 -1
  223. package/dist/tools/royalties.js +0 -257
  224. package/dist/tools/royalties.js.map +0 -1
  225. package/dist/tools/send.d.ts +0 -17
  226. package/dist/tools/send.d.ts.map +0 -1
  227. package/dist/tools/send.js +0 -185
  228. package/dist/tools/send.js.map +0 -1
  229. package/dist/tools/sessions.d.ts +0 -18
  230. package/dist/tools/sessions.d.ts.map +0 -1
  231. package/dist/tools/sessions.js +0 -115
  232. package/dist/tools/sessions.js.map +0 -1
  233. package/dist/tools/settings.d.ts +0 -18
  234. package/dist/tools/settings.d.ts.map +0 -1
  235. package/dist/tools/settings.js +0 -96
  236. package/dist/tools/settings.js.map +0 -1
  237. package/dist/tools/share-links.d.ts +0 -19
  238. package/dist/tools/share-links.d.ts.map +0 -1
  239. package/dist/tools/share-links.js +0 -121
  240. package/dist/tools/share-links.js.map +0 -1
  241. package/dist/tools/split-sheets.d.ts +0 -25
  242. package/dist/tools/split-sheets.d.ts.map +0 -1
  243. package/dist/tools/split-sheets.js +0 -307
  244. package/dist/tools/split-sheets.js.map +0 -1
  245. package/dist/tools/team.d.ts +0 -22
  246. package/dist/tools/team.d.ts.map +0 -1
  247. package/dist/tools/team.js +0 -134
  248. package/dist/tools/team.js.map +0 -1
  249. package/dist/tools/telegram.d.ts +0 -20
  250. package/dist/tools/telegram.d.ts.map +0 -1
  251. package/dist/tools/telegram.js +0 -88
  252. package/dist/tools/telegram.js.map +0 -1
  253. package/dist/tools/uploads.d.ts +0 -17
  254. package/dist/tools/uploads.d.ts.map +0 -1
  255. package/dist/tools/uploads.js +0 -156
  256. package/dist/tools/uploads.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Projects Tools — group works into projects (albums, EPs, compilations, or any collection)
3
- */
4
- import { PicaClient } from "@withpica/mcp-sdk";
5
- import { ToolDefinition, ToolExecutor } from "./index.js";
6
- export declare class ProjectsTools {
7
- private pica;
8
- constructor(pica: PicaClient);
9
- getTools(): Array<{
10
- definition: ToolDefinition;
11
- executor: ToolExecutor;
12
- }>;
13
- private listProjects;
14
- private getProject;
15
- private createProject;
16
- private updateProject;
17
- private deleteProject;
18
- }
19
- //# sourceMappingURL=projects.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,qBAAa,aAAa;IACxB,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;YA+G3D,YAAY;YAQZ,UAAU;YAKV,aAAa;YAMb,aAAa;YAMb,aAAa;CAI5B"}
@@ -1,140 +0,0 @@
1
- // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
- import { formatSuccess, formatStructuredList } from "@withpica/mcp-utils";
3
- export class ProjectsTools {
4
- pica;
5
- constructor(pica) {
6
- this.pica = pica;
7
- }
8
- getTools() {
9
- return [
10
- {
11
- definition: {
12
- name: "pica_projects_list",
13
- description: "List projects — albums, EPs, compilations, or any collection of works.",
14
- inputSchema: {
15
- type: "object",
16
- properties: {
17
- limit: {
18
- type: "number",
19
- description: "Max results to return (default 50)",
20
- },
21
- },
22
- },
23
- },
24
- executor: this.listProjects.bind(this),
25
- },
26
- {
27
- definition: {
28
- name: "pica_projects_get",
29
- description: "Get project details including linked works.",
30
- inputSchema: {
31
- type: "object",
32
- properties: {
33
- id: { type: "string", description: "Project ID" },
34
- },
35
- required: ["id"],
36
- },
37
- },
38
- executor: this.getProject.bind(this),
39
- },
40
- {
41
- definition: {
42
- name: "pica_projects_create",
43
- description: "Create a new project to organise your works — albums, EPs, compilations, or any collection.",
44
- inputSchema: {
45
- type: "object",
46
- properties: {
47
- name: {
48
- type: "string",
49
- description: "Project name",
50
- },
51
- project_type: {
52
- type: "string",
53
- description: "Type of project (e.g. album, ep, compilation, single, mixtape)",
54
- },
55
- description: {
56
- type: "string",
57
- description: "Optional project description",
58
- },
59
- work_ids: {
60
- type: "array",
61
- items: { type: "string" },
62
- description: "Optional: work IDs to add to the project",
63
- },
64
- },
65
- required: ["name"],
66
- },
67
- },
68
- executor: this.createProject.bind(this),
69
- },
70
- {
71
- definition: {
72
- name: "pica_projects_update",
73
- description: "Update project details — name, type, description, or linked works.",
74
- inputSchema: {
75
- type: "object",
76
- properties: {
77
- id: { type: "string", description: "Project ID" },
78
- name: { type: "string", description: "Updated project name" },
79
- project_type: {
80
- type: "string",
81
- description: "Updated project type",
82
- },
83
- description: {
84
- type: "string",
85
- description: "Updated description",
86
- },
87
- work_ids: {
88
- type: "array",
89
- items: { type: "string" },
90
- description: "Updated list of work IDs",
91
- },
92
- },
93
- required: ["id"],
94
- },
95
- },
96
- executor: this.updateProject.bind(this),
97
- },
98
- {
99
- definition: {
100
- name: "pica_projects_delete",
101
- description: "Delete a project. Works linked to it are not deleted.",
102
- inputSchema: {
103
- type: "object",
104
- properties: {
105
- id: { type: "string", description: "Project ID to delete" },
106
- },
107
- required: ["id"],
108
- },
109
- },
110
- executor: this.deleteProject.bind(this),
111
- },
112
- ];
113
- }
114
- async listProjects(args) {
115
- const result = await this.pica.projects.list({
116
- limit: args.limit,
117
- });
118
- const projects = Array.isArray(result) ? result : [];
119
- return formatStructuredList(projects, "project");
120
- }
121
- async getProject(args) {
122
- const project = await this.pica.projects.get(args.id);
123
- return formatSuccess("Project retrieved", project);
124
- }
125
- async createProject(args) {
126
- const { id, ...data } = args;
127
- const project = await this.pica.projects.create(data);
128
- return formatSuccess("Project created", project);
129
- }
130
- async updateProject(args) {
131
- const { id, ...updates } = args;
132
- const project = await this.pica.projects.update(id, updates);
133
- return formatSuccess("Project updated", project);
134
- }
135
- async deleteProject(args) {
136
- await this.pica.projects.delete(args.id);
137
- return formatSuccess(`Project ${args.id} deleted`);
138
- }
139
- }
140
- //# sourceMappingURL=projects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Publishers Tools - MCP tools for querying and creating publisher records
3
- */
4
- import { PicaClient } from "@withpica/mcp-sdk";
5
- import { ToolDefinition, ToolExecutor } from "./index.js";
6
- export declare class PublishersTools {
7
- private pica;
8
- constructor(pica: PicaClient);
9
- getTools(): Array<{
10
- definition: ToolDefinition;
11
- executor: ToolExecutor;
12
- }>;
13
- private queryPublishers;
14
- private createPublisher;
15
- }
16
- //# sourceMappingURL=publishers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishers.d.ts","sourceRoot":"","sources":["../../src/tools/publishers.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,qBAAa,eAAe;IAC1B,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;YA8C3D,eAAe;YAaf,eAAe;CAS9B"}
@@ -1,69 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,15 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,63 +0,0 @@
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
@@ -1 +0,0 @@
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,14 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,277 +0,0 @@
1
- // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
- export const RECOVERY_HINTS = {
3
- // ── destructive tools ──
4
- pica_works_delete: [
5
- {
6
- error_code: "NOT_FOUND",
7
- suggestion: "search for the work by title",
8
- next_tool: "pica_works_query",
9
- },
10
- {
11
- error_code: "HAS_DEPENDENCIES",
12
- suggestion: "check what's linked to this work first",
13
- next_tool: "pica_works_inspect",
14
- },
15
- ],
16
- pica_works_bulk_delete: [
17
- {
18
- error_code: "PARTIAL_NOT_FOUND",
19
- suggestion: "some IDs not found — list your works to verify",
20
- next_tool: "pica_works_query",
21
- },
22
- ],
23
- pica_people_delete: [
24
- {
25
- error_code: "NOT_FOUND",
26
- suggestion: "search for the person by name",
27
- next_tool: "pica_people_query",
28
- },
29
- {
30
- error_code: "PERSON_HAS_CREDITS",
31
- suggestion: "check their credits before removing",
32
- next_tool: "pica_people_inspect",
33
- },
34
- ],
35
- pica_recordings_delete: [
36
- {
37
- error_code: "NOT_FOUND",
38
- suggestion: "list recordings for this work",
39
- next_tool: "pica_recordings_query",
40
- },
41
- ],
42
- pica_agreements_delete: [
43
- {
44
- error_code: "NOT_FOUND",
45
- suggestion: "list your agreements to find the right one",
46
- next_tool: "pica_agreements_query",
47
- },
48
- {
49
- error_code: "HAS_LINKED_WORKS",
50
- suggestion: "check what works are linked",
51
- next_tool: "pica_agreements_inspect",
52
- },
53
- ],
54
- pica_projects_delete: [
55
- {
56
- error_code: "NOT_FOUND",
57
- suggestion: "list your projects",
58
- next_tool: "pica_projects_list",
59
- },
60
- ],
61
- pica_merge_duplicates: [
62
- {
63
- error_code: "ENTITY_NOT_FOUND",
64
- suggestion: "check both entities exist",
65
- next_tool: "pica_find_duplicates",
66
- },
67
- {
68
- error_code: "MERGE_CONFLICT",
69
- suggestion: "compare the entities first",
70
- next_tool: "pica_enrichment_compare",
71
- },
72
- ],
73
- pica_team_remove: [
74
- {
75
- error_code: "CANNOT_REMOVE_OWNER",
76
- suggestion: "check team roles",
77
- next_tool: "pica_team_list",
78
- },
79
- {
80
- error_code: "NOT_FOUND",
81
- suggestion: "list team members",
82
- next_tool: "pica_team_list",
83
- },
84
- ],
85
- pica_notes_delete: [
86
- {
87
- error_code: "NOT_FOUND",
88
- suggestion: "list your notes",
89
- next_tool: "pica_notes_list",
90
- },
91
- ],
92
- pica_memory_delete: [
93
- {
94
- error_code: "NOT_FOUND",
95
- suggestion: "list your memories",
96
- next_tool: "pica_memory_list",
97
- },
98
- ],
99
- pica_physical_assets_delete: [
100
- {
101
- error_code: "NOT_FOUND",
102
- suggestion: "list your assets",
103
- next_tool: "pica_physical_assets_query",
104
- },
105
- ],
106
- pica_agreement_templates_delete: [
107
- {
108
- error_code: "NOT_FOUND",
109
- suggestion: "list your agreement templates",
110
- next_tool: "pica_agreement_templates_list",
111
- },
112
- ],
113
- pica_producer_agreements_delete: [
114
- {
115
- error_code: "NOT_FOUND",
116
- suggestion: "list your producer agreements",
117
- next_tool: "pica_producer_agreements_list",
118
- },
119
- ],
120
- pica_work_for_hire_delete: [
121
- {
122
- error_code: "NOT_FOUND",
123
- suggestion: "list your work-for-hire agreements",
124
- next_tool: "pica_work_for_hire_list",
125
- },
126
- ],
127
- // ── enrichment tools ──
128
- pica_enrich_work_spotify: [
129
- {
130
- error_code: "NO_MATCH",
131
- suggestion: "no Spotify match — try MusicBrainz",
132
- next_tool: "pica_enrich_work_musicbrainz",
133
- },
134
- {
135
- error_code: "MISSING_INPUT",
136
- suggestion: "provide a Spotify URL or ensure the work has a spotify_track_uri",
137
- next_tool: "pica_works_update",
138
- },
139
- ],
140
- pica_enrich_work_musicbrainz: [
141
- {
142
- error_code: "NO_MATCH",
143
- suggestion: "no MusicBrainz match — try MLC",
144
- next_tool: "pica_enrich_work_mlc",
145
- },
146
- ],
147
- pica_enrich_work_mlc: [
148
- {
149
- error_code: "NO_MATCH",
150
- suggestion: "no MLC match — try Discogs",
151
- next_tool: "pica_enrich_work_discogs",
152
- },
153
- {
154
- error_code: "CREDIT_INSUFFICIENT",
155
- suggestion: "check your credit balance",
156
- next_tool: "pica_credits_balance",
157
- },
158
- ],
159
- pica_enrich_work_discogs: [
160
- {
161
- error_code: "NO_MATCH",
162
- suggestion: "no Discogs match — try adding identifiers manually",
163
- next_tool: "pica_works_update",
164
- },
165
- ],
166
- pica_enrich_work_youtube: [
167
- {
168
- error_code: "NO_MATCH",
169
- suggestion: "no YouTube data — ensure a YouTube video is linked",
170
- next_tool: "pica_multimedia_link_youtube",
171
- },
172
- ],
173
- pica_people_enrich_isni: [
174
- {
175
- error_code: "NO_MATCH",
176
- suggestion: "no ISNI match — try MusicBrainz",
177
- next_tool: "pica_people_enrich_musicbrainz",
178
- },
179
- ],
180
- pica_people_enrich_musicbrainz: [
181
- {
182
- error_code: "NO_MATCH",
183
- suggestion: "no MusicBrainz match — try adding identifiers manually",
184
- next_tool: "pica_people_update",
185
- },
186
- ],
187
- // ── mutating tools ──
188
- pica_works_create: [
189
- {
190
- error_code: "DUPLICATE_WORK",
191
- suggestion: "a similar work already exists — search first",
192
- next_tool: "pica_works_query",
193
- },
194
- ],
195
- pica_people_create: [
196
- {
197
- error_code: "DUPLICATE_PERSON",
198
- suggestion: "a similar person already exists — search first",
199
- next_tool: "pica_people_query",
200
- },
201
- ],
202
- pica_credits_update: [
203
- {
204
- error_code: "SPLITS_NOT_100",
205
- suggestion: "credit splits must total 100% — check current splits",
206
- next_tool: "pica_credits_list",
207
- },
208
- {
209
- error_code: "PERSON_NOT_FOUND",
210
- suggestion: "person not in catalog — create them first",
211
- next_tool: "pica_people_create",
212
- },
213
- ],
214
- pica_split_sheet_generate: [
215
- {
216
- error_code: "SPLITS_NOT_100",
217
- suggestion: "fix credits before generating split sheet",
218
- next_tool: "pica_credits_update",
219
- },
220
- ],
221
- pica_import_execute: [
222
- {
223
- error_code: "VALIDATION_ERROR",
224
- suggestion: "validate the import first to see row-level issues",
225
- next_tool: "pica_import_validate",
226
- },
227
- ],
228
- pica_export_song_registration: [
229
- {
230
- error_code: "CREDIT_INSUFFICIENT",
231
- suggestion: "song registration export costs 1 credit",
232
- next_tool: "pica_credits_balance",
233
- },
234
- ],
235
- pica_export_catalog_asset_report: [
236
- {
237
- error_code: "CREDIT_INSUFFICIENT",
238
- suggestion: "catalog asset report costs 5 credits",
239
- next_tool: "pica_credits_balance",
240
- },
241
- ],
242
- pica_audio_analyze: [
243
- {
244
- error_code: "CREDIT_INSUFFICIENT",
245
- suggestion: "audio analysis costs credits",
246
- next_tool: "pica_credits_balance",
247
- },
248
- ],
249
- pica_audio_identify: [
250
- {
251
- error_code: "NO_MATCH",
252
- suggestion: "no fingerprint match — enter metadata manually",
253
- next_tool: "pica_works_update",
254
- },
255
- ],
256
- pica_notify_person: [
257
- {
258
- error_code: "NOT_PICA_USER",
259
- suggestion: "person isn't on PICA — invite them first",
260
- next_tool: "pica_collaborators_invite",
261
- },
262
- ],
263
- pica_recordings_create: [
264
- {
265
- error_code: "DUPLICATE_ISRC",
266
- suggestion: "recording with this ISRC already exists",
267
- next_tool: "pica_recordings_by_work",
268
- },
269
- ],
270
- };
271
- export function getRecoveryHint(toolName, errorCode) {
272
- const hints = RECOVERY_HINTS[toolName];
273
- if (!hints)
274
- return undefined;
275
- return hints.find((h) => h.error_code === errorCode);
276
- }
277
- //# sourceMappingURL=recovery-hints.js.map