@withpica/mcp-server 2.22.0 → 2.24.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 (78) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/config.d.ts +10 -9
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +10 -7
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/prompts/index.d.ts +64 -64
  8. package/dist/prompts/index.d.ts.map +1 -1
  9. package/dist/prompts/index.js +3 -1
  10. package/dist/prompts/index.js.map +1 -1
  11. package/dist/resources/index.d.ts +53 -53
  12. package/dist/server-instructions.d.ts +1 -1
  13. package/dist/server-instructions.d.ts.map +1 -1
  14. package/dist/server-instructions.js +13 -15
  15. package/dist/server-instructions.js.map +1 -1
  16. package/dist/server.d.ts +49 -49
  17. package/dist/tools/agent-identity.d.ts +36 -0
  18. package/dist/tools/agent-identity.d.ts.map +1 -0
  19. package/dist/tools/agent-identity.js +269 -0
  20. package/dist/tools/agent-identity.js.map +1 -0
  21. package/dist/tools/agreements.d.ts.map +1 -1
  22. package/dist/tools/agreements.js +6 -2
  23. package/dist/tools/agreements.js.map +1 -1
  24. package/dist/tools/audit.d.ts +19 -0
  25. package/dist/tools/audit.d.ts.map +1 -0
  26. package/dist/tools/audit.js +57 -0
  27. package/dist/tools/audit.js.map +1 -0
  28. package/dist/tools/discovery.d.ts.map +1 -1
  29. package/dist/tools/discovery.js +17 -0
  30. package/dist/tools/discovery.js.map +1 -1
  31. package/dist/tools/enrichment.d.ts.map +1 -1
  32. package/dist/tools/enrichment.js +13 -1
  33. package/dist/tools/enrichment.js.map +1 -1
  34. package/dist/tools/feedback.d.ts +22 -0
  35. package/dist/tools/feedback.d.ts.map +1 -0
  36. package/dist/tools/feedback.js +99 -0
  37. package/dist/tools/feedback.js.map +1 -0
  38. package/dist/tools/gap-hints.d.ts +53 -0
  39. package/dist/tools/gap-hints.d.ts.map +1 -0
  40. package/dist/tools/gap-hints.js +245 -0
  41. package/dist/tools/gap-hints.js.map +1 -0
  42. package/dist/tools/index.d.ts +72 -88
  43. package/dist/tools/index.d.ts.map +1 -1
  44. package/dist/tools/index.js +34 -0
  45. package/dist/tools/index.js.map +1 -1
  46. package/dist/tools/integrations.d.ts +5 -1
  47. package/dist/tools/integrations.d.ts.map +1 -1
  48. package/dist/tools/integrations.js +44 -25
  49. package/dist/tools/integrations.js.map +1 -1
  50. package/dist/tools/metadata.d.ts.map +1 -1
  51. package/dist/tools/metadata.js +265 -0
  52. package/dist/tools/metadata.js.map +1 -1
  53. package/dist/tools/notes.d.ts.map +1 -1
  54. package/dist/tools/notes.js +1 -1
  55. package/dist/tools/notes.js.map +1 -1
  56. package/dist/tools/people.d.ts +262 -38
  57. package/dist/tools/people.d.ts.map +1 -1
  58. package/dist/tools/people.js +258 -265
  59. package/dist/tools/people.js.map +1 -1
  60. package/dist/tools/recordings.d.ts +82 -31
  61. package/dist/tools/recordings.d.ts.map +1 -1
  62. package/dist/tools/recordings.js +186 -123
  63. package/dist/tools/recordings.js.map +1 -1
  64. package/dist/tools/releases.d.ts +5 -0
  65. package/dist/tools/releases.d.ts.map +1 -1
  66. package/dist/tools/releases.js +295 -0
  67. package/dist/tools/releases.js.map +1 -1
  68. package/dist/tools/search.d.ts +20 -20
  69. package/dist/tools/settings.d.ts +5 -0
  70. package/dist/tools/settings.d.ts.map +1 -1
  71. package/dist/tools/settings.js +197 -1
  72. package/dist/tools/settings.js.map +1 -1
  73. package/dist/tools/works.d.ts +65 -39
  74. package/dist/tools/works.d.ts.map +1 -1
  75. package/dist/tools/works.js +125 -220
  76. package/dist/tools/works.js.map +1 -1
  77. package/package.json +3 -2
  78. package/server.json +2 -2
@@ -1,6 +1,185 @@
1
1
  // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
2
  import { formatSuccess, formatStructuredList, } from "@withpica/mcp-utils";
3
- import { formatEnrichmentResult } from "@withpica/mcp-utils";
3
+ import { computePersonGapHints } from "./gap-hints.js";
4
+ // `formatEnrichmentResult` was used by the two person enrich executors
5
+ // before ADR-179 Phase 2 folded them into `pica_resolve_person`. The
6
+ // deprecated executors now return a structured `TOOL_DEPRECATED`
7
+ // response via `buildPersonDeprecationResponse` (see bottom of file)
8
+ // rather than calling the SDK enrich methods, so the import is gone.
9
+ /**
10
+ * Canonical source for the pica_people_create / pica_people_update input
11
+ * shape. Mirror of PEOPLE_CORE_WRITE_FIELDS + PEOPLE_SATELLITE_ROUTED_FIELDS
12
+ * in lib/services/people-admin/write-constants.ts. Keep these two in sync:
13
+ * if a property is added here it must be added to the allow-list (so the
14
+ * HTTP route lets it through) and — if it's a satellite field — to
15
+ * ENRICHMENT_SATELLITE_FIELDS (so the service routes it to person_enrichment).
16
+ *
17
+ * Exported for future bulk-tool reuse.
18
+ */
19
+ export const PEOPLE_WRITE_PROPERTIES = {
20
+ // names + identity
21
+ first_name: { type: "string", description: "First name" },
22
+ last_name: { type: "string", description: "Last name" },
23
+ middle_name: { type: "string", description: "Middle name" },
24
+ name: {
25
+ type: "string",
26
+ description: "Full name. Normally derived from first_name + last_name; set explicitly only for imports where the parts aren't separable.",
27
+ },
28
+ stage_name: {
29
+ type: "string",
30
+ description: "Primary stage / artist name (legacy singular)",
31
+ },
32
+ stage_names: {
33
+ type: "array",
34
+ items: { type: "string" },
35
+ description: "All stage / artist names (canonical plural)",
36
+ },
37
+ person_type: {
38
+ type: "array",
39
+ items: { type: "string" },
40
+ description: "Person classification array (e.g. ['individual'], ['business']). Canonical column — `type` is a deprecated duplicate and will be rejected.",
41
+ },
42
+ biography: { type: "string", description: "Biography text" },
43
+ // contact
44
+ email: { type: "string", description: "Primary email address" },
45
+ emails: {
46
+ type: "array",
47
+ items: {
48
+ type: "object",
49
+ properties: {
50
+ email: { type: "string" },
51
+ label: { type: "string" },
52
+ primary: { type: "boolean" },
53
+ },
54
+ },
55
+ description: "Additional emails with label/primary metadata",
56
+ },
57
+ phone: { type: "string", description: "Phone number" },
58
+ website: { type: "string", description: "Website URL" },
59
+ social_media: {
60
+ type: "object",
61
+ description: "Social handles keyed by platform, e.g. { twitter: '@ada', instagram: 'ada_lovelace' }",
62
+ },
63
+ // roles + tags
64
+ roles: {
65
+ type: "array",
66
+ items: { type: "string" },
67
+ description: "Roles (e.g. ['artist', 'songwriter', 'producer']). Canonical column — `role` singular is a deprecated duplicate and will be rejected. Defaults to ['collaborator'] on create if omitted.",
68
+ },
69
+ tags: {
70
+ type: "array",
71
+ items: { type: "string" },
72
+ description: "Tags for categorisation",
73
+ },
74
+ // PRO / industry identifiers on people itself
75
+ cae_ipi_number: {
76
+ type: "string",
77
+ description: "CAE/IPI number (songwriter/publisher identifier, 9-11 digits)",
78
+ },
79
+ ipn_number: {
80
+ type: "string",
81
+ description: "IPN number (performer identifier)",
82
+ },
83
+ prs_number: { type: "string", description: "PRS member number" },
84
+ ppl_number: { type: "string", description: "PPL member number" },
85
+ mcps_member_number: {
86
+ type: "string",
87
+ description: "MCPS member number",
88
+ },
89
+ pro_name: {
90
+ type: "string",
91
+ description: "Performing rights organisation name (e.g. PRS, ASCAP, BMI, SACEM)",
92
+ },
93
+ pro_member_number: {
94
+ type: "string",
95
+ description: "Member number at the PRO named in pro_name",
96
+ },
97
+ default_publisher: {
98
+ type: "string",
99
+ description: "Default publisher name for this person",
100
+ },
101
+ default_publisher_ipi: {
102
+ type: "string",
103
+ description: "Default publisher's IPI number",
104
+ },
105
+ // business-contact fields
106
+ company: { type: "string", description: "Company / organisation name" },
107
+ position: {
108
+ type: "string",
109
+ description: "Job title / position at the company",
110
+ },
111
+ territory: {
112
+ type: "string",
113
+ description: "Primary territory / market (e.g. 'UK', 'US East Coast')",
114
+ },
115
+ relationship_strength: {
116
+ type: "integer",
117
+ description: "Relationship strength score (caller-defined scale)",
118
+ },
119
+ // contact prefs
120
+ email_preferences: {
121
+ type: "object",
122
+ description: "Email opt-in preferences, e.g. { monthly_digest: true, news_announcements: false }",
123
+ },
124
+ // presence
125
+ profile_image_url: {
126
+ type: "string",
127
+ description: "URL to profile image",
128
+ },
129
+ // notes
130
+ notes: { type: "string", description: "Internal notes" },
131
+ // ---- Satellite-routed (person_enrichment) ----
132
+ // These are real columns on public.person_enrichment, not on public.people.
133
+ // The service layer (lib/services/people-admin/enrichment-satellite.ts)
134
+ // fans them out via syncPersonEnrichmentSatellite. Reads surface them
135
+ // back on the person record via a PostgREST join (see person-admin/
136
+ // constants.ts PERSON_ALL_COLUMNS -> person_enrichment(*)).
137
+ isni: {
138
+ type: "string",
139
+ description: "ISNI identifier (16 digits). Stored on person_enrichment satellite.",
140
+ },
141
+ musicbrainz_id: {
142
+ type: "string",
143
+ description: "MusicBrainz artist ID (UUID). Stored on person_enrichment satellite.",
144
+ },
145
+ wikidata_id: {
146
+ type: "string",
147
+ description: "Wikidata entity ID (e.g. Q7259). Stored on person_enrichment satellite.",
148
+ },
149
+ discogs_artist_id: {
150
+ type: "string",
151
+ description: "Discogs artist ID. Stored on person_enrichment satellite.",
152
+ },
153
+ deezer_artist_id: {
154
+ type: "string",
155
+ description: "Deezer artist ID. Stored on person_enrichment satellite.",
156
+ },
157
+ date_of_birth: {
158
+ type: "string",
159
+ description: "Date of birth (ISO 8601, YYYY-MM-DD). Stored on person_enrichment satellite.",
160
+ },
161
+ gender: {
162
+ type: "string",
163
+ description: "Gender (free text; commonly 'male' / 'female' / 'non_binary'). Stored on person_enrichment satellite.",
164
+ },
165
+ nationality: {
166
+ type: "string",
167
+ description: "Nationality (free text; ISO country name preferred). Stored on person_enrichment satellite.",
168
+ },
169
+ birth_place: {
170
+ type: "string",
171
+ description: "Place of birth (free text). Stored on person_enrichment satellite.",
172
+ },
173
+ instruments: {
174
+ type: "array",
175
+ items: { type: "string" },
176
+ description: "Instruments played. Stored on person_enrichment satellite.",
177
+ },
178
+ career_start_year: {
179
+ type: "integer",
180
+ description: "Year career started (4-digit). Stored on person_enrichment satellite.",
181
+ },
182
+ };
4
183
  export class PeopleTools {
5
184
  pica;
6
185
  constructor(pica) {
@@ -76,139 +255,14 @@ export class PeopleTools {
76
255
  {
77
256
  definition: {
78
257
  name: "pica_people_create",
79
- description: "Create a new person record. IMPORTANT: Always call pica_people_query first to check for existing records — duplicate people cause credit and notification issues. " +
80
- "Any field from the Person schema can be passed — " +
81
- "the most commonly used fields are listed below. Additional fields " +
82
- "(e.g. pro_name, pro_member_number, mcps_member_number, " +
83
- "company, position, territory, social_media) " +
84
- "are also accepted. " +
258
+ description: "Create a new person record. IMPORTANT: always call pica_people_query first to check for an existing record — duplicate people break credits and notifications. " +
259
+ "External identifiers (isni, musicbrainz_id, wikidata_id, discogs_artist_id, deezer_artist_id) and biographical fields (date_of_birth, gender, nationality, birth_place, instruments, career_start_year) are stored on the person_enrichment satellite table set them here and the service fans them out. " +
260
+ "Deprecated duplicates that will be rejected: `type` (use `person_type`), `role` (use `roles`). " +
85
261
  "→ before: pica_people_query (check duplicates) → then: pica_people_enrich_isni (fill identifiers), pica_credits_update (add to work)",
86
262
  inputSchema: {
87
263
  type: "object",
88
- properties: {
89
- first_name: {
90
- type: "string",
91
- description: "First name (required)",
92
- },
93
- last_name: {
94
- type: "string",
95
- description: "Last name (required)",
96
- },
97
- roles: {
98
- type: "array",
99
- items: { type: "string" },
100
- description: "Roles (e.g. ['artist', 'songwriter', 'producer']). Defaults to ['collaborator'] if omitted.",
101
- },
102
- email: {
103
- type: "string",
104
- description: "Email address",
105
- },
106
- phone: {
107
- type: "string",
108
- description: "Phone number",
109
- },
110
- biography: {
111
- type: "string",
112
- description: "Biography text",
113
- },
114
- stage_name: {
115
- type: "string",
116
- description: "Primary stage/artist name",
117
- },
118
- stage_names: {
119
- type: "array",
120
- items: { type: "string" },
121
- description: "All stage/artist names",
122
- },
123
- isni: {
124
- type: "string",
125
- description: "ISNI identifier (16-digit)",
126
- },
127
- cae_ipi_number: {
128
- type: "string",
129
- description: "CAE/IPI number (songwriter/publisher identifier)",
130
- },
131
- ipn_number: {
132
- type: "string",
133
- description: "IPN number (performer identifier)",
134
- },
135
- prs_number: {
136
- type: "string",
137
- description: "PRS member number",
138
- },
139
- ppl_number: {
140
- type: "string",
141
- description: "PPL member number",
142
- },
143
- musicbrainz_id: {
144
- type: "string",
145
- description: "MusicBrainz artist ID",
146
- },
147
- wikidata_id: {
148
- type: "string",
149
- description: "Wikidata entity ID (e.g. Q12345)",
150
- },
151
- discogs_artist_id: {
152
- type: "string",
153
- description: "Discogs artist ID",
154
- },
155
- deezer_artist_id: {
156
- type: "string",
157
- description: "Deezer artist ID",
158
- },
159
- website: {
160
- type: "string",
161
- description: "Website URL",
162
- },
163
- date_of_birth: {
164
- type: "string",
165
- description: "Date of birth (ISO 8601)",
166
- },
167
- nationality: {
168
- type: "string",
169
- description: "Nationality",
170
- },
171
- gender: {
172
- type: "string",
173
- description: "Gender",
174
- },
175
- birth_place: {
176
- type: "string",
177
- description: "Place of birth",
178
- },
179
- instruments: {
180
- type: "array",
181
- items: { type: "string" },
182
- description: "Instruments played",
183
- },
184
- career_start_year: {
185
- type: "number",
186
- description: "Year career started",
187
- },
188
- tags: {
189
- type: "array",
190
- items: { type: "string" },
191
- description: "Tags for categorisation",
192
- },
193
- notes: {
194
- type: "string",
195
- description: "Internal notes",
196
- },
197
- profile_image_url: {
198
- type: "string",
199
- description: "URL to profile image",
200
- },
201
- default_publisher: {
202
- type: "string",
203
- description: "Default publisher name for this person",
204
- },
205
- default_publisher_ipi: {
206
- type: "string",
207
- description: "Default publisher's IPI number",
208
- },
209
- },
264
+ properties: PEOPLE_WRITE_PROPERTIES,
210
265
  required: ["first_name", "last_name"],
211
- additionalProperties: true,
212
266
  },
213
267
  },
214
268
  executor: this.createPerson.bind(this),
@@ -216,9 +270,10 @@ export class PeopleTools {
216
270
  {
217
271
  definition: {
218
272
  name: "pica_people_update",
219
- description: "Update an existing person record. Any field from the Person schema can be passed — " +
220
- "the most commonly used fields are listed below. Additional fields are also accepted. " +
221
- "If setting email, a 500 may mean the email already exists on another person record (check for duplicates). " +
273
+ description: "Update an existing person record. Pass only the fields to change. " +
274
+ "External identifiers (isni, musicbrainz_id, wikidata_id, discogs_artist_id, deezer_artist_id) and biographical fields (date_of_birth, gender, nationality, birth_place, instruments, career_start_year) are stored on the person_enrichment satellite — updating them here fans out through the service. " +
275
+ "Deprecated duplicates that will be rejected: `type` (use `person_type`), `role` (use `roles`). " +
276
+ "If setting email, a 500 may mean the email already exists on another person record (check via pica_people_query). " +
222
277
  "→ then: pica_people_inspect (verify changes persisted)",
223
278
  inputSchema: {
224
279
  type: "object",
@@ -227,129 +282,9 @@ export class PeopleTools {
227
282
  type: "string",
228
283
  description: "Person ID (required)",
229
284
  },
230
- first_name: {
231
- type: "string",
232
- description: "First name",
233
- },
234
- last_name: {
235
- type: "string",
236
- description: "Last name",
237
- },
238
- roles: {
239
- type: "array",
240
- items: { type: "string" },
241
- description: "Roles (e.g. ['artist', 'songwriter', 'producer'])",
242
- },
243
- email: {
244
- type: "string",
245
- description: "Email address",
246
- },
247
- phone: {
248
- type: "string",
249
- description: "Phone number",
250
- },
251
- biography: {
252
- type: "string",
253
- description: "Biography text",
254
- },
255
- stage_name: {
256
- type: "string",
257
- description: "Primary stage/artist name",
258
- },
259
- stage_names: {
260
- type: "array",
261
- items: { type: "string" },
262
- description: "All stage/artist names",
263
- },
264
- isni: {
265
- type: "string",
266
- description: "ISNI identifier (16-digit)",
267
- },
268
- cae_ipi_number: {
269
- type: "string",
270
- description: "CAE/IPI number (songwriter/publisher identifier)",
271
- },
272
- ipn_number: {
273
- type: "string",
274
- description: "IPN number (performer identifier)",
275
- },
276
- prs_number: {
277
- type: "string",
278
- description: "PRS member number",
279
- },
280
- ppl_number: {
281
- type: "string",
282
- description: "PPL member number",
283
- },
284
- musicbrainz_id: {
285
- type: "string",
286
- description: "MusicBrainz artist ID",
287
- },
288
- wikidata_id: {
289
- type: "string",
290
- description: "Wikidata entity ID (e.g. Q12345)",
291
- },
292
- discogs_artist_id: {
293
- type: "string",
294
- description: "Discogs artist ID",
295
- },
296
- deezer_artist_id: {
297
- type: "string",
298
- description: "Deezer artist ID",
299
- },
300
- website: {
301
- type: "string",
302
- description: "Website URL",
303
- },
304
- date_of_birth: {
305
- type: "string",
306
- description: "Date of birth (ISO 8601)",
307
- },
308
- nationality: {
309
- type: "string",
310
- description: "Nationality",
311
- },
312
- gender: {
313
- type: "string",
314
- description: "Gender",
315
- },
316
- birth_place: {
317
- type: "string",
318
- description: "Place of birth",
319
- },
320
- instruments: {
321
- type: "array",
322
- items: { type: "string" },
323
- description: "Instruments played",
324
- },
325
- career_start_year: {
326
- type: "number",
327
- description: "Year career started",
328
- },
329
- tags: {
330
- type: "array",
331
- items: { type: "string" },
332
- description: "Tags for categorisation",
333
- },
334
- notes: {
335
- type: "string",
336
- description: "Internal notes",
337
- },
338
- profile_image_url: {
339
- type: "string",
340
- description: "URL to profile image",
341
- },
342
- default_publisher: {
343
- type: "string",
344
- description: "Default publisher name for this person",
345
- },
346
- default_publisher_ipi: {
347
- type: "string",
348
- description: "Default publisher's IPI number",
349
- },
285
+ ...PEOPLE_WRITE_PROPERTIES,
350
286
  },
351
287
  required: ["id"],
352
- additionalProperties: true,
353
288
  },
354
289
  },
355
290
  executor: this.updatePerson.bind(this),
@@ -463,7 +398,13 @@ export class PeopleTools {
463
398
  if (sections && sections.length === 1 && sections[0] === "basic") {
464
399
  // Lightweight: just the basic person record
465
400
  const person = await this.pica.people.get(args.id);
466
- return formatSuccess("Person basic details", { person });
401
+ const base = { person };
402
+ // ADR-193 Surface 2 — basic-section view still knows email,
403
+ // but identifiers aren't fetched here so gap hints stay quiet
404
+ // on industry-id gaps until the caller pulls identifiers.
405
+ const gap_hints = computePersonGapHints(base);
406
+ const enriched = gap_hints.length > 0 ? { ...base, gap_hints } : base;
407
+ return formatSuccess("Person basic details", enriched);
467
408
  }
468
409
  // Full context call — returns person, creditedWorks, recordingCredits, agreements, identifiers
469
410
  const fullResult = await this.pica.entityContext.getPersonFull(args.id);
@@ -476,9 +417,15 @@ export class PeopleTools {
476
417
  const recordingCount = data.recordingCredits?.length || 0;
477
418
  const identifiers = data.identifiers || [];
478
419
  const idTypes = identifiers.map((i) => i.type);
420
+ // ADR-193 Surface 2 — compute over the full payload so identifier
421
+ // heuristics see what the entity-context call surfaced.
422
+ const gap_hints = computePersonGapHints(data);
423
+ const enriched = gap_hints.length > 0
424
+ ? { ...fullResult, gap_hints }
425
+ : fullResult;
479
426
  return formatSuccess(`"${fullName}" — credited on ${workCount} work${workCount !== 1 ? "s" : ""}, ` +
480
427
  `${recordingCount} recording${recordingCount !== 1 ? "s" : ""}. ` +
481
- `Identifiers: ${idTypes.length > 0 ? idTypes.join(", ") : "none"}.`, fullResult);
428
+ `Identifiers: ${idTypes.length > 0 ? idTypes.join(", ") : "none"}.`, enriched);
482
429
  }
483
430
  // Build filtered response from full result
484
431
  const result = {};
@@ -511,7 +458,11 @@ export class PeopleTools {
511
458
  }
512
459
  const person = data.person || {};
513
460
  const fullName = person.name || args.id;
514
- return formatSuccess(`"${fullName}"sections: ${sections.join(", ")}`, result);
461
+ // ADR-193 Surface 2 compute against the filtered result so hints
462
+ // only fire on sections the caller actually requested.
463
+ const gap_hints = computePersonGapHints(result);
464
+ const enriched = gap_hints.length > 0 ? { ...result, gap_hints } : result;
465
+ return formatSuccess(`"${fullName}" — sections: ${sections.join(", ")}`, enriched);
515
466
  }
516
467
  /**
517
468
  * Create person
@@ -561,18 +512,60 @@ export class PeopleTools {
561
512
  return formatSuccess(`Person ${args.id} deleted successfully`);
562
513
  }
563
514
  /**
564
- * Enrich from ISNI
515
+ * ADR-179 Phase 2 deprecation path for the two per-source person
516
+ * enrichment tools. The tool definitions stay registered (so
517
+ * `tools/list` responses still surface them) but every call returns
518
+ * a structured `TOOL_DEPRECATED` error pointing at
519
+ * `pica_resolve_person`. This is the one-minor-version window
520
+ * described in ADR-179 Decision 2 — downstream clients with
521
+ * hardcoded names get a typed error and a suggested replacement
522
+ * call, not silent removal.
523
+ *
524
+ * Removal is scheduled for the next `@withpica/mcp-server` minor
525
+ * after Phase 4's publish; see the ADR's Phase 4 entry.
565
526
  */
566
527
  async enrichFromISNI(args) {
567
- const person = await this.pica.people.enrichFromISNI(args.id, args.isni);
568
- return formatEnrichmentResult("person", args.id, "ISNI", person);
528
+ return buildPersonDeprecationResponse("pica_people_enrich_isni", "isni", args.id);
569
529
  }
570
- /**
571
- * Enrich from MusicBrainz
572
- */
573
530
  async enrichFromMusicBrainz(args) {
574
- const person = await this.pica.people.enrichFromMusicBrainz(args.id, args.musicbrainz_id);
575
- return formatEnrichmentResult("person", args.id, "MusicBrainz", person);
531
+ return buildPersonDeprecationResponse("pica_people_enrich_musicbrainz", "musicbrainz", args.id);
576
532
  }
577
533
  }
534
+ /**
535
+ * ADR-179 Phase 2 deprecation envelope. Mirrors the work-side
536
+ * `buildDeprecationResponse` in enrichment.ts so both deprecation
537
+ * paths return the same shape:
538
+ * - `code`: "TOOL_DEPRECATED"
539
+ * - `jsonrpc_code`: -32070
540
+ * - `replacement`: tool name the agent should call instead
541
+ * - `suggested_call`: a concrete `{ tool, args }` payload the agent
542
+ * can execute via `pica_execute` without further thought
543
+ */
544
+ function buildPersonDeprecationResponse(deprecatedTool, source, personId) {
545
+ const suggested_call = {
546
+ tool: "pica_resolve_person",
547
+ args: {
548
+ person_id: personId ?? "<person_id>",
549
+ sources: [source],
550
+ },
551
+ };
552
+ return {
553
+ content: [
554
+ {
555
+ type: "text",
556
+ text: `TOOL_DEPRECATED: ${deprecatedTool} is deprecated. ` +
557
+ `Use pica_resolve_person(sources: ["${source}"]) instead. ` +
558
+ `This tool will be removed in the next @withpica/mcp-server minor version.`,
559
+ },
560
+ ],
561
+ structuredContent: {
562
+ code: "TOOL_DEPRECATED",
563
+ jsonrpc_code: -32070,
564
+ deprecated_tool: deprecatedTool,
565
+ replacement: "pica_resolve_person",
566
+ suggested_call,
567
+ },
568
+ isError: true,
569
+ };
570
+ }
578
571
  //# sourceMappingURL=people.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"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"}