@withpica/mcp-server 2.1.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 (226) hide show
  1. package/README.md +305 -0
  2. package/dist/config.d.ts +34 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +33 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +34 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/pica-sdk.d.ts +1162 -0
  11. package/dist/pica-sdk.d.ts.map +1 -0
  12. package/dist/pica-sdk.js +1371 -0
  13. package/dist/pica-sdk.js.map +1 -0
  14. package/dist/prompts/index.d.ts +78 -0
  15. package/dist/prompts/index.d.ts.map +1 -0
  16. package/dist/prompts/index.js +513 -0
  17. package/dist/prompts/index.js.map +1 -0
  18. package/dist/resources/index.d.ts +64 -0
  19. package/dist/resources/index.d.ts.map +1 -0
  20. package/dist/resources/index.js +310 -0
  21. package/dist/resources/index.js.map +1 -0
  22. package/dist/resources/llms-primer.d.ts +2 -0
  23. package/dist/resources/llms-primer.d.ts.map +1 -0
  24. package/dist/resources/llms-primer.js +67 -0
  25. package/dist/resources/llms-primer.js.map +1 -0
  26. package/dist/server.d.ts +27 -0
  27. package/dist/server.d.ts.map +1 -0
  28. package/dist/server.js +140 -0
  29. package/dist/server.js.map +1 -0
  30. package/dist/tools/agreement-types.d.ts +37 -0
  31. package/dist/tools/agreement-types.d.ts.map +1 -0
  32. package/dist/tools/agreement-types.js +579 -0
  33. package/dist/tools/agreement-types.js.map +1 -0
  34. package/dist/tools/agreements.d.ts +21 -0
  35. package/dist/tools/agreements.d.ts.map +1 -0
  36. package/dist/tools/agreements.js +328 -0
  37. package/dist/tools/agreements.js.map +1 -0
  38. package/dist/tools/analytics.d.ts +20 -0
  39. package/dist/tools/analytics.d.ts.map +1 -0
  40. package/dist/tools/analytics.js +126 -0
  41. package/dist/tools/analytics.js.map +1 -0
  42. package/dist/tools/assets.d.ts +23 -0
  43. package/dist/tools/assets.d.ts.map +1 -0
  44. package/dist/tools/assets.js +220 -0
  45. package/dist/tools/assets.js.map +1 -0
  46. package/dist/tools/audio-files.d.ts +21 -0
  47. package/dist/tools/audio-files.d.ts.map +1 -0
  48. package/dist/tools/audio-files.js +358 -0
  49. package/dist/tools/audio-files.js.map +1 -0
  50. package/dist/tools/bulk.d.ts +16 -0
  51. package/dist/tools/bulk.d.ts.map +1 -0
  52. package/dist/tools/bulk.js +82 -0
  53. package/dist/tools/bulk.js.map +1 -0
  54. package/dist/tools/calendar.d.ts +15 -0
  55. package/dist/tools/calendar.d.ts.map +1 -0
  56. package/dist/tools/calendar.js +69 -0
  57. package/dist/tools/calendar.js.map +1 -0
  58. package/dist/tools/collaborators.d.ts +17 -0
  59. package/dist/tools/collaborators.d.ts.map +1 -0
  60. package/dist/tools/collaborators.js +133 -0
  61. package/dist/tools/collaborators.js.map +1 -0
  62. package/dist/tools/comparisons.d.ts +22 -0
  63. package/dist/tools/comparisons.d.ts.map +1 -0
  64. package/dist/tools/comparisons.js +86 -0
  65. package/dist/tools/comparisons.js.map +1 -0
  66. package/dist/tools/credits.d.ts +17 -0
  67. package/dist/tools/credits.d.ts.map +1 -0
  68. package/dist/tools/credits.js +136 -0
  69. package/dist/tools/credits.js.map +1 -0
  70. package/dist/tools/dashboard.d.ts +20 -0
  71. package/dist/tools/dashboard.d.ts.map +1 -0
  72. package/dist/tools/dashboard.js +156 -0
  73. package/dist/tools/dashboard.js.map +1 -0
  74. package/dist/tools/directory.d.ts +15 -0
  75. package/dist/tools/directory.d.ts.map +1 -0
  76. package/dist/tools/directory.js +108 -0
  77. package/dist/tools/directory.js.map +1 -0
  78. package/dist/tools/disputes.d.ts +18 -0
  79. package/dist/tools/disputes.d.ts.map +1 -0
  80. package/dist/tools/disputes.js +66 -0
  81. package/dist/tools/disputes.js.map +1 -0
  82. package/dist/tools/documents.d.ts +15 -0
  83. package/dist/tools/documents.d.ts.map +1 -0
  84. package/dist/tools/documents.js +38 -0
  85. package/dist/tools/documents.js.map +1 -0
  86. package/dist/tools/duplicates.d.ts +16 -0
  87. package/dist/tools/duplicates.d.ts.map +1 -0
  88. package/dist/tools/duplicates.js +72 -0
  89. package/dist/tools/duplicates.js.map +1 -0
  90. package/dist/tools/enrichment.d.ts +23 -0
  91. package/dist/tools/enrichment.d.ts.map +1 -0
  92. package/dist/tools/enrichment.js +207 -0
  93. package/dist/tools/enrichment.js.map +1 -0
  94. package/dist/tools/exports.d.ts +19 -0
  95. package/dist/tools/exports.d.ts.map +1 -0
  96. package/dist/tools/exports.js +155 -0
  97. package/dist/tools/exports.js.map +1 -0
  98. package/dist/tools/health.d.ts +17 -0
  99. package/dist/tools/health.d.ts.map +1 -0
  100. package/dist/tools/health.js +69 -0
  101. package/dist/tools/health.js.map +1 -0
  102. package/dist/tools/import-documents.d.ts +21 -0
  103. package/dist/tools/import-documents.d.ts.map +1 -0
  104. package/dist/tools/import-documents.js +191 -0
  105. package/dist/tools/import-documents.js.map +1 -0
  106. package/dist/tools/import.d.ts +29 -0
  107. package/dist/tools/import.d.ts.map +1 -0
  108. package/dist/tools/import.js +404 -0
  109. package/dist/tools/import.js.map +1 -0
  110. package/dist/tools/index.d.ts +48 -0
  111. package/dist/tools/index.d.ts.map +1 -0
  112. package/dist/tools/index.js +394 -0
  113. package/dist/tools/index.js.map +1 -0
  114. package/dist/tools/integrations.d.ts +15 -0
  115. package/dist/tools/integrations.d.ts.map +1 -0
  116. package/dist/tools/integrations.js +102 -0
  117. package/dist/tools/integrations.js.map +1 -0
  118. package/dist/tools/licensing.d.ts +40 -0
  119. package/dist/tools/licensing.d.ts.map +1 -0
  120. package/dist/tools/licensing.js +436 -0
  121. package/dist/tools/licensing.js.map +1 -0
  122. package/dist/tools/memory.d.ts +21 -0
  123. package/dist/tools/memory.d.ts.map +1 -0
  124. package/dist/tools/memory.js +121 -0
  125. package/dist/tools/memory.js.map +1 -0
  126. package/dist/tools/multimedia.d.ts +19 -0
  127. package/dist/tools/multimedia.d.ts.map +1 -0
  128. package/dist/tools/multimedia.js +293 -0
  129. package/dist/tools/multimedia.js.map +1 -0
  130. package/dist/tools/notes.d.ts +21 -0
  131. package/dist/tools/notes.d.ts.map +1 -0
  132. package/dist/tools/notes.js +126 -0
  133. package/dist/tools/notes.js.map +1 -0
  134. package/dist/tools/notifications.d.ts +17 -0
  135. package/dist/tools/notifications.d.ts.map +1 -0
  136. package/dist/tools/notifications.js +117 -0
  137. package/dist/tools/notifications.js.map +1 -0
  138. package/dist/tools/people.d.ts +53 -0
  139. package/dist/tools/people.d.ts.map +1 -0
  140. package/dist/tools/people.js +534 -0
  141. package/dist/tools/people.js.map +1 -0
  142. package/dist/tools/pica-score.d.ts +15 -0
  143. package/dist/tools/pica-score.d.ts.map +1 -0
  144. package/dist/tools/pica-score.js +30 -0
  145. package/dist/tools/pica-score.js.map +1 -0
  146. package/dist/tools/projects.d.ts +19 -0
  147. package/dist/tools/projects.d.ts.map +1 -0
  148. package/dist/tools/projects.js +142 -0
  149. package/dist/tools/projects.js.map +1 -0
  150. package/dist/tools/purchases.d.ts +15 -0
  151. package/dist/tools/purchases.d.ts.map +1 -0
  152. package/dist/tools/purchases.js +65 -0
  153. package/dist/tools/purchases.js.map +1 -0
  154. package/dist/tools/recordings.d.ts +41 -0
  155. package/dist/tools/recordings.d.ts.map +1 -0
  156. package/dist/tools/recordings.js +293 -0
  157. package/dist/tools/recordings.js.map +1 -0
  158. package/dist/tools/registration.d.ts +16 -0
  159. package/dist/tools/registration.d.ts.map +1 -0
  160. package/dist/tools/registration.js +52 -0
  161. package/dist/tools/registration.js.map +1 -0
  162. package/dist/tools/releases.d.ts +18 -0
  163. package/dist/tools/releases.d.ts.map +1 -0
  164. package/dist/tools/releases.js +138 -0
  165. package/dist/tools/releases.js.map +1 -0
  166. package/dist/tools/royalties.d.ts +23 -0
  167. package/dist/tools/royalties.d.ts.map +1 -0
  168. package/dist/tools/royalties.js +263 -0
  169. package/dist/tools/royalties.js.map +1 -0
  170. package/dist/tools/search.d.ts +30 -0
  171. package/dist/tools/search.d.ts.map +1 -0
  172. package/dist/tools/search.js +117 -0
  173. package/dist/tools/search.js.map +1 -0
  174. package/dist/tools/send.d.ts +18 -0
  175. package/dist/tools/send.d.ts.map +1 -0
  176. package/dist/tools/send.js +189 -0
  177. package/dist/tools/send.js.map +1 -0
  178. package/dist/tools/sessions.d.ts +18 -0
  179. package/dist/tools/sessions.d.ts.map +1 -0
  180. package/dist/tools/sessions.js +107 -0
  181. package/dist/tools/sessions.js.map +1 -0
  182. package/dist/tools/settings.d.ts +18 -0
  183. package/dist/tools/settings.d.ts.map +1 -0
  184. package/dist/tools/settings.js +98 -0
  185. package/dist/tools/settings.js.map +1 -0
  186. package/dist/tools/share-links.d.ts +19 -0
  187. package/dist/tools/share-links.d.ts.map +1 -0
  188. package/dist/tools/share-links.js +126 -0
  189. package/dist/tools/share-links.js.map +1 -0
  190. package/dist/tools/split-sheets.d.ts +24 -0
  191. package/dist/tools/split-sheets.d.ts.map +1 -0
  192. package/dist/tools/split-sheets.js +189 -0
  193. package/dist/tools/split-sheets.js.map +1 -0
  194. package/dist/tools/team.d.ts +22 -0
  195. package/dist/tools/team.d.ts.map +1 -0
  196. package/dist/tools/team.js +139 -0
  197. package/dist/tools/team.js.map +1 -0
  198. package/dist/tools/telegram.d.ts +20 -0
  199. package/dist/tools/telegram.d.ts.map +1 -0
  200. package/dist/tools/telegram.js +94 -0
  201. package/dist/tools/telegram.js.map +1 -0
  202. package/dist/tools/uploads.d.ts +17 -0
  203. package/dist/tools/uploads.d.ts.map +1 -0
  204. package/dist/tools/uploads.js +159 -0
  205. package/dist/tools/uploads.js.map +1 -0
  206. package/dist/tools/works.d.ts +53 -0
  207. package/dist/tools/works.d.ts.map +1 -0
  208. package/dist/tools/works.js +517 -0
  209. package/dist/tools/works.js.map +1 -0
  210. package/dist/utils/credit-gate.d.ts +17 -0
  211. package/dist/utils/credit-gate.d.ts.map +1 -0
  212. package/dist/utils/credit-gate.js +111 -0
  213. package/dist/utils/credit-gate.js.map +1 -0
  214. package/dist/utils/errors.d.ts +29 -0
  215. package/dist/utils/errors.d.ts.map +1 -0
  216. package/dist/utils/errors.js +114 -0
  217. package/dist/utils/errors.js.map +1 -0
  218. package/dist/utils/formatting.d.ts +63 -0
  219. package/dist/utils/formatting.d.ts.map +1 -0
  220. package/dist/utils/formatting.js +130 -0
  221. package/dist/utils/formatting.js.map +1 -0
  222. package/dist/utils/mpp.d.ts +78 -0
  223. package/dist/utils/mpp.d.ts.map +1 -0
  224. package/dist/utils/mpp.js +136 -0
  225. package/dist/utils/mpp.js.map +1 -0
  226. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAQtE,qBAAa,WAAW;IACtB,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;IA+ZzE;;OAEG;YACW,UAAU;IAqBxB;;OAEG;YACW,SAAS;IAKvB;;OAEG;YACW,YAAY;IA8B1B;;OAEG;YACW,YAAY;IAM1B;;OAEG;YACW,YAAY;IAK1B;;OAEG;YACW,YAAY;IAmB1B;;OAEG;YACW,cAAc;IAK5B;;OAEG;YACW,qBAAqB;IAanC;;OAEG;YACW,aAAa;CAoB5B"}
@@ -0,0 +1,534 @@
1
+ /**
2
+ * People Tools - MCP tools for managing people (artists, composers, etc.)
3
+ */
4
+ import { formatAsText, formatSuccess, formatStructuredList, } from "../utils/formatting.js";
5
+ export class PeopleTools {
6
+ pica;
7
+ constructor(pica) {
8
+ this.pica = pica;
9
+ }
10
+ /**
11
+ * Get all people tools
12
+ */
13
+ getTools() {
14
+ return [
15
+ {
16
+ definition: {
17
+ name: "pica_people_list",
18
+ description: "List people (artists, composers, etc.) from PICA catalog",
19
+ inputSchema: {
20
+ type: "object",
21
+ properties: {
22
+ limit: {
23
+ type: "number",
24
+ description: "Maximum number of results to return (default: 50)",
25
+ },
26
+ search: {
27
+ type: "string",
28
+ description: "Search query to filter people by name",
29
+ },
30
+ },
31
+ },
32
+ },
33
+ executor: this.listPeople.bind(this),
34
+ },
35
+ {
36
+ definition: {
37
+ name: "pica_people_get",
38
+ description: "Get details of a specific person by ID",
39
+ inputSchema: {
40
+ type: "object",
41
+ properties: {
42
+ id: {
43
+ type: "string",
44
+ description: "Person ID",
45
+ },
46
+ },
47
+ required: ["id"],
48
+ },
49
+ },
50
+ executor: this.getPerson.bind(this),
51
+ },
52
+ {
53
+ definition: {
54
+ name: "pica_people_create",
55
+ description: "Create a new person record. Any field from the Person schema can be passed — " +
56
+ "the most commonly used fields are listed below. Additional fields " +
57
+ "(e.g. pro_name, pro_member_number, mcps_member_number, default_publisher, " +
58
+ "default_publisher_ipi, company, position, territory, social_media) " +
59
+ "are also accepted. " +
60
+ "→ then: pica_enrich_person (fill identifiers), pica_credits_update (add to work)",
61
+ inputSchema: {
62
+ type: "object",
63
+ properties: {
64
+ first_name: {
65
+ type: "string",
66
+ description: "First name (required)",
67
+ },
68
+ last_name: {
69
+ type: "string",
70
+ description: "Last name (required)",
71
+ },
72
+ roles: {
73
+ type: "array",
74
+ items: { type: "string" },
75
+ description: "Roles (e.g. ['artist', 'songwriter', 'producer']). Maps to the roles array column.",
76
+ },
77
+ email: {
78
+ type: "string",
79
+ description: "Email address",
80
+ },
81
+ phone: {
82
+ type: "string",
83
+ description: "Phone number",
84
+ },
85
+ biography: {
86
+ type: "string",
87
+ description: "Biography text",
88
+ },
89
+ stage_name: {
90
+ type: "string",
91
+ description: "Primary stage/artist name",
92
+ },
93
+ stage_names: {
94
+ type: "array",
95
+ items: { type: "string" },
96
+ description: "All stage/artist names",
97
+ },
98
+ isni: {
99
+ type: "string",
100
+ description: "ISNI identifier (16-digit)",
101
+ },
102
+ cae_ipi_number: {
103
+ type: "string",
104
+ description: "CAE/IPI number (songwriter/publisher identifier)",
105
+ },
106
+ ipn_number: {
107
+ type: "string",
108
+ description: "IPN number (performer identifier)",
109
+ },
110
+ prs_number: {
111
+ type: "string",
112
+ description: "PRS member number",
113
+ },
114
+ ppl_number: {
115
+ type: "string",
116
+ description: "PPL member number",
117
+ },
118
+ musicbrainz_id: {
119
+ type: "string",
120
+ description: "MusicBrainz artist ID",
121
+ },
122
+ wikidata_id: {
123
+ type: "string",
124
+ description: "Wikidata entity ID (e.g. Q12345)",
125
+ },
126
+ discogs_artist_id: {
127
+ type: "string",
128
+ description: "Discogs artist ID",
129
+ },
130
+ deezer_artist_id: {
131
+ type: "string",
132
+ description: "Deezer artist ID",
133
+ },
134
+ website: {
135
+ type: "string",
136
+ description: "Website URL",
137
+ },
138
+ date_of_birth: {
139
+ type: "string",
140
+ description: "Date of birth (ISO 8601)",
141
+ },
142
+ nationality: {
143
+ type: "string",
144
+ description: "Nationality",
145
+ },
146
+ gender: {
147
+ type: "string",
148
+ description: "Gender",
149
+ },
150
+ birth_place: {
151
+ type: "string",
152
+ description: "Place of birth",
153
+ },
154
+ instruments: {
155
+ type: "array",
156
+ items: { type: "string" },
157
+ description: "Instruments played",
158
+ },
159
+ career_start_year: {
160
+ type: "number",
161
+ description: "Year career started",
162
+ },
163
+ tags: {
164
+ type: "array",
165
+ items: { type: "string" },
166
+ description: "Tags for categorisation",
167
+ },
168
+ notes: {
169
+ type: "string",
170
+ description: "Internal notes",
171
+ },
172
+ profile_image_url: {
173
+ type: "string",
174
+ description: "URL to profile image",
175
+ },
176
+ },
177
+ required: ["first_name", "last_name"],
178
+ additionalProperties: true,
179
+ },
180
+ },
181
+ executor: this.createPerson.bind(this),
182
+ },
183
+ {
184
+ definition: {
185
+ name: "pica_people_update",
186
+ description: "Update an existing person record. Any field from the Person schema can be passed — " +
187
+ "the most commonly used fields are listed below. Additional fields are also accepted.",
188
+ inputSchema: {
189
+ type: "object",
190
+ properties: {
191
+ id: {
192
+ type: "string",
193
+ description: "Person ID (required)",
194
+ },
195
+ first_name: {
196
+ type: "string",
197
+ description: "First name",
198
+ },
199
+ last_name: {
200
+ type: "string",
201
+ description: "Last name",
202
+ },
203
+ roles: {
204
+ type: "array",
205
+ items: { type: "string" },
206
+ description: "Roles (e.g. ['artist', 'songwriter', 'producer'])",
207
+ },
208
+ email: {
209
+ type: "string",
210
+ description: "Email address",
211
+ },
212
+ phone: {
213
+ type: "string",
214
+ description: "Phone number",
215
+ },
216
+ biography: {
217
+ type: "string",
218
+ description: "Biography text",
219
+ },
220
+ stage_name: {
221
+ type: "string",
222
+ description: "Primary stage/artist name",
223
+ },
224
+ stage_names: {
225
+ type: "array",
226
+ items: { type: "string" },
227
+ description: "All stage/artist names",
228
+ },
229
+ isni: {
230
+ type: "string",
231
+ description: "ISNI identifier (16-digit)",
232
+ },
233
+ cae_ipi_number: {
234
+ type: "string",
235
+ description: "CAE/IPI number (songwriter/publisher identifier)",
236
+ },
237
+ ipn_number: {
238
+ type: "string",
239
+ description: "IPN number (performer identifier)",
240
+ },
241
+ prs_number: {
242
+ type: "string",
243
+ description: "PRS member number",
244
+ },
245
+ ppl_number: {
246
+ type: "string",
247
+ description: "PPL member number",
248
+ },
249
+ musicbrainz_id: {
250
+ type: "string",
251
+ description: "MusicBrainz artist ID",
252
+ },
253
+ wikidata_id: {
254
+ type: "string",
255
+ description: "Wikidata entity ID (e.g. Q12345)",
256
+ },
257
+ discogs_artist_id: {
258
+ type: "string",
259
+ description: "Discogs artist ID",
260
+ },
261
+ deezer_artist_id: {
262
+ type: "string",
263
+ description: "Deezer artist ID",
264
+ },
265
+ website: {
266
+ type: "string",
267
+ description: "Website URL",
268
+ },
269
+ date_of_birth: {
270
+ type: "string",
271
+ description: "Date of birth (ISO 8601)",
272
+ },
273
+ nationality: {
274
+ type: "string",
275
+ description: "Nationality",
276
+ },
277
+ gender: {
278
+ type: "string",
279
+ description: "Gender",
280
+ },
281
+ birth_place: {
282
+ type: "string",
283
+ description: "Place of birth",
284
+ },
285
+ instruments: {
286
+ type: "array",
287
+ items: { type: "string" },
288
+ description: "Instruments played",
289
+ },
290
+ career_start_year: {
291
+ type: "number",
292
+ description: "Year career started",
293
+ },
294
+ tags: {
295
+ type: "array",
296
+ items: { type: "string" },
297
+ description: "Tags for categorisation",
298
+ },
299
+ notes: {
300
+ type: "string",
301
+ description: "Internal notes",
302
+ },
303
+ profile_image_url: {
304
+ type: "string",
305
+ description: "URL to profile image",
306
+ },
307
+ },
308
+ required: ["id"],
309
+ additionalProperties: true,
310
+ },
311
+ },
312
+ executor: this.updatePerson.bind(this),
313
+ },
314
+ {
315
+ definition: {
316
+ name: "pica_people_delete",
317
+ description: "Delete a person record",
318
+ inputSchema: {
319
+ type: "object",
320
+ properties: {
321
+ id: {
322
+ type: "string",
323
+ description: "Person ID",
324
+ },
325
+ },
326
+ required: ["id"],
327
+ },
328
+ },
329
+ executor: this.deletePerson.bind(this),
330
+ },
331
+ {
332
+ definition: {
333
+ name: "pica_people_search",
334
+ description: "Search people by name or other criteria. " +
335
+ "→ then: pica_people_get_full (full details), pica_enrich_person (fill identifiers), pica_credits_update (add to work)",
336
+ inputSchema: {
337
+ type: "object",
338
+ properties: {
339
+ query: {
340
+ type: "string",
341
+ description: "Search query",
342
+ },
343
+ limit: {
344
+ type: "number",
345
+ description: "Maximum number of results (default: 50)",
346
+ },
347
+ },
348
+ required: ["query"],
349
+ },
350
+ },
351
+ executor: this.searchPeople.bind(this),
352
+ },
353
+ {
354
+ definition: {
355
+ name: "pica_people_enrich_isni",
356
+ description: "Enrich person data from ISNI (International Standard Name Identifier)",
357
+ inputSchema: {
358
+ type: "object",
359
+ properties: {
360
+ id: {
361
+ type: "string",
362
+ description: "Person ID",
363
+ },
364
+ isni: {
365
+ type: "string",
366
+ description: "ISNI identifier to enrich from",
367
+ },
368
+ },
369
+ required: ["id", "isni"],
370
+ },
371
+ },
372
+ executor: this.enrichFromISNI.bind(this),
373
+ },
374
+ {
375
+ definition: {
376
+ name: "pica_people_enrich_musicbrainz",
377
+ description: "Enrich person data from MusicBrainz",
378
+ inputSchema: {
379
+ type: "object",
380
+ properties: {
381
+ id: {
382
+ type: "string",
383
+ description: "Person ID",
384
+ },
385
+ musicbrainz_id: {
386
+ type: "string",
387
+ description: "MusicBrainz artist ID",
388
+ },
389
+ },
390
+ required: ["id", "musicbrainz_id"],
391
+ },
392
+ },
393
+ executor: this.enrichFromMusicBrainz.bind(this),
394
+ },
395
+ {
396
+ definition: {
397
+ name: "pica_people_get_full",
398
+ description: "Get FULL context for a person in a single call — the person record plus all their " +
399
+ "credited works (with work details), agreements, and identifier status (IPI, ISNI, " +
400
+ "MusicBrainz, Wikidata, Discogs). Use this instead of making multiple separate tool " +
401
+ "calls when you need to understand a person's complete catalog presence. " +
402
+ "→ then: pica_enrich_person (fill gaps), pica_people_update (fix details)",
403
+ inputSchema: {
404
+ type: "object",
405
+ properties: {
406
+ id: {
407
+ type: "string",
408
+ description: "Person ID",
409
+ },
410
+ },
411
+ required: ["id"],
412
+ },
413
+ },
414
+ executor: this.getPersonFull.bind(this),
415
+ },
416
+ ];
417
+ }
418
+ /**
419
+ * List people
420
+ */
421
+ async listPeople(args) {
422
+ const limit = args.limit || 50;
423
+ const people = await this.pica.people.list({ limit });
424
+ // Apply search filter if provided
425
+ let filtered = people;
426
+ if (args.search) {
427
+ const searchLower = args.search.toLowerCase();
428
+ filtered = filtered.filter((person) => person.first_name?.toLowerCase().includes(searchLower) ||
429
+ person.last_name?.toLowerCase().includes(searchLower));
430
+ }
431
+ return formatStructuredList(filtered, "person", {
432
+ total: filtered.length,
433
+ limit,
434
+ });
435
+ }
436
+ /**
437
+ * Get person by ID
438
+ */
439
+ async getPerson(args) {
440
+ const person = await this.pica.people.get(args.id);
441
+ return formatAsText(person);
442
+ }
443
+ /**
444
+ * Create person
445
+ */
446
+ async createPerson(args) {
447
+ const person = await this.pica.people.create(args);
448
+ const hints = [
449
+ {
450
+ gap: "person_not_credited",
451
+ suggestion: "Add this person as a credit on a work (pica_credits_update)",
452
+ severity: "important",
453
+ },
454
+ ];
455
+ if (!person?.isni && !person?.musicbrainz_id) {
456
+ hints.push({
457
+ gap: "person_missing_identifiers",
458
+ suggestion: "Enrich with ISNI or MusicBrainz for royalty collection (pica_people_enrich_isni)",
459
+ severity: "important",
460
+ });
461
+ }
462
+ if (person?.email) {
463
+ hints.push({
464
+ gap: "person_not_invited",
465
+ suggestion: `Invite ${person.first_name || "them"} to PICA so they can manage their own profile (pica_collaborators_invite)`,
466
+ severity: "nice_to_have",
467
+ });
468
+ }
469
+ return formatSuccess("Person created successfully", person, hints);
470
+ }
471
+ /**
472
+ * Update person
473
+ */
474
+ async updatePerson(args) {
475
+ const { id, ...updates } = args;
476
+ const person = await this.pica.people.update(id, updates);
477
+ return formatSuccess("Person updated successfully", person);
478
+ }
479
+ /**
480
+ * Delete person
481
+ */
482
+ async deletePerson(args) {
483
+ await this.pica.people.delete(args.id);
484
+ return formatSuccess(`Person ${args.id} deleted successfully`);
485
+ }
486
+ /**
487
+ * Search people
488
+ */
489
+ async searchPeople(args) {
490
+ const limit = args.limit || 50;
491
+ const people = await this.pica.people.list({ limit });
492
+ const searchLower = args.query.toLowerCase();
493
+ const filtered = people.filter((person) => person.first_name?.toLowerCase().includes(searchLower) ||
494
+ person.last_name?.toLowerCase().includes(searchLower) ||
495
+ person.email?.toLowerCase().includes(searchLower));
496
+ return formatStructuredList(filtered, "person", {
497
+ query: args.query,
498
+ total: filtered.length,
499
+ limit,
500
+ });
501
+ }
502
+ /**
503
+ * Enrich from ISNI
504
+ */
505
+ async enrichFromISNI(args) {
506
+ const person = await this.pica.people.enrichFromISNI(args.id, args.isni);
507
+ return formatSuccess("Person enriched from ISNI successfully", person);
508
+ }
509
+ /**
510
+ * Enrich from MusicBrainz
511
+ */
512
+ async enrichFromMusicBrainz(args) {
513
+ const person = await this.pica.people.enrichFromMusicBrainz(args.id, args.musicbrainz_id);
514
+ return formatSuccess("Person enriched from MusicBrainz successfully", person);
515
+ }
516
+ /**
517
+ * Get full person context bundle
518
+ */
519
+ async getPersonFull(args) {
520
+ const result = await this.pica.entityContext.getPersonFull(args.id);
521
+ const data = result;
522
+ const person = data.person || {};
523
+ const fullName = person.name || args.id;
524
+ const workCount = data.creditedWorks?.length || 0;
525
+ const recordingCount = data.recordingCredits?.length || 0;
526
+ // identifiers is now an array of { type, value }
527
+ const identifiers = data.identifiers || [];
528
+ const idTypes = identifiers.map((i) => i.type);
529
+ return formatSuccess(`"${fullName}" — credited on ${workCount} work${workCount !== 1 ? "s" : ""}, ` +
530
+ `${recordingCount} recording${recordingCount !== 1 ? "s" : ""}. ` +
531
+ `Identifiers: ${idTypes.length > 0 ? idTypes.join(", ") : "none"}.`, result);
532
+ }
533
+ }
534
+ //# sourceMappingURL=people.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * PICA Score Tools - MCP tool for catalog health assessment
3
+ */
4
+ import { PicaClient } from "../pica-sdk.js";
5
+ import { ToolDefinition, ToolExecutor } from "./index.js";
6
+ export declare class PicaScoreTools {
7
+ private pica;
8
+ constructor(pica: PicaClient);
9
+ getTools(): Array<{
10
+ definition: ToolDefinition;
11
+ executor: ToolExecutor;
12
+ }>;
13
+ private getScore;
14
+ }
15
+ //# sourceMappingURL=pica-score.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pica-score.d.ts","sourceRoot":"","sources":["../../src/tools/pica-score.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,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;YAiB3D,QAAQ;CAIvB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * PICA Score Tools - MCP tool for catalog health assessment
3
+ */
4
+ import { formatAsText } from "../utils/formatting.js";
5
+ export class PicaScoreTools {
6
+ pica;
7
+ constructor(pica) {
8
+ this.pica = pica;
9
+ }
10
+ getTools() {
11
+ return [
12
+ {
13
+ definition: {
14
+ name: "pica_score_get",
15
+ description: "Get the PICA Score — a composite legibility index (0-100) measuring catalog health across 4 pillars: income readiness, ownership clarity, asset completeness, and verification status. Returns grade (A-F), per-pillar breakdown, and actionable suggestions.",
16
+ inputSchema: {
17
+ type: "object",
18
+ properties: {},
19
+ },
20
+ },
21
+ executor: this.getScore.bind(this),
22
+ },
23
+ ];
24
+ }
25
+ async getScore(_args) {
26
+ const score = await this.pica.picaScore.get();
27
+ return formatAsText(score);
28
+ }
29
+ }
30
+ //# sourceMappingURL=pica-score.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pica-score.js","sourceRoot":"","sources":["../../src/tools/pica-score.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,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,gBAAgB;oBACtB,WAAW,EACT,+PAA+P;oBACjQ,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;qBACf;iBACF;gBACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;aACnC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,KAA0B;QAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC9C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Projects Tools — group works into projects (albums, EPs, compilations, or any collection)
3
+ */
4
+ import { PicaClient } from "../pica-sdk.js";
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,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"}