@withpica/mcp-server 2.81.0 → 2.83.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 (91) hide show
  1. package/.claude/settings.local.json +5 -0
  2. package/CHANGELOG.md +57 -0
  3. package/dist/lib/changelog.generated.d.ts +2 -2
  4. package/dist/lib/changelog.generated.d.ts.map +1 -1
  5. package/dist/lib/changelog.generated.js +2 -2
  6. package/dist/lib/changelog.generated.js.map +1 -1
  7. package/dist/resources/required-schemas.generated.d.ts +6 -2
  8. package/dist/resources/required-schemas.generated.d.ts.map +1 -1
  9. package/dist/resources/required-schemas.generated.js +9 -0
  10. package/dist/resources/required-schemas.generated.js.map +1 -1
  11. package/dist/resources/required-schemas.source.d.ts.map +1 -1
  12. package/dist/resources/required-schemas.source.js +5 -0
  13. package/dist/resources/required-schemas.source.js.map +1 -1
  14. package/dist/skills/index.d.ts +24 -1
  15. package/dist/skills/index.d.ts.map +1 -1
  16. package/dist/skills/index.js +54 -14
  17. package/dist/skills/index.js.map +1 -1
  18. package/dist/skills/skills.generated.d.ts +4 -0
  19. package/dist/skills/skills.generated.d.ts.map +1 -1
  20. package/dist/skills/skills.generated.js +3 -3
  21. package/dist/skills/skills.generated.js.map +1 -1
  22. package/dist/tools/audio-files.d.ts +1 -0
  23. package/dist/tools/audio-files.d.ts.map +1 -1
  24. package/dist/tools/audio-files.js +39 -1
  25. package/dist/tools/audio-files.js.map +1 -1
  26. package/dist/tools/dashboard.d.ts +17 -0
  27. package/dist/tools/dashboard.d.ts.map +1 -1
  28. package/dist/tools/dashboard.js +124 -0
  29. package/dist/tools/dashboard.js.map +1 -1
  30. package/dist/tools/discovery.d.ts.map +1 -1
  31. package/dist/tools/discovery.js +55 -1
  32. package/dist/tools/discovery.js.map +1 -1
  33. package/dist/tools/documents.d.ts +3 -0
  34. package/dist/tools/documents.d.ts.map +1 -1
  35. package/dist/tools/documents.js +133 -1
  36. package/dist/tools/documents.js.map +1 -1
  37. package/dist/tools/duplicates.d.ts +18 -0
  38. package/dist/tools/duplicates.d.ts.map +1 -1
  39. package/dist/tools/duplicates.js +96 -1
  40. package/dist/tools/duplicates.js.map +1 -1
  41. package/dist/tools/enrichment.d.ts +6 -0
  42. package/dist/tools/enrichment.d.ts.map +1 -1
  43. package/dist/tools/enrichment.js +88 -0
  44. package/dist/tools/enrichment.js.map +1 -1
  45. package/dist/tools/exports.d.ts.map +1 -1
  46. package/dist/tools/exports.js +17 -2
  47. package/dist/tools/exports.js.map +1 -1
  48. package/dist/tools/index.d.ts +17 -1
  49. package/dist/tools/index.d.ts.map +1 -1
  50. package/dist/tools/index.js +2 -1
  51. package/dist/tools/index.js.map +1 -1
  52. package/dist/tools/metadata.d.ts.map +1 -1
  53. package/dist/tools/metadata.js +55 -0
  54. package/dist/tools/metadata.js.map +1 -1
  55. package/dist/tools/multimedia.js +1 -1
  56. package/dist/tools/people.d.ts +4 -0
  57. package/dist/tools/people.d.ts.map +1 -1
  58. package/dist/tools/people.js +4 -0
  59. package/dist/tools/people.js.map +1 -1
  60. package/dist/tools/public-filter.d.ts.map +1 -1
  61. package/dist/tools/public-filter.js +3 -0
  62. package/dist/tools/public-filter.js.map +1 -1
  63. package/dist/tools/recordings.d.ts.map +1 -1
  64. package/dist/tools/recordings.js +8 -0
  65. package/dist/tools/recordings.js.map +1 -1
  66. package/dist/tools/recovery-hints.d.ts.map +1 -1
  67. package/dist/tools/recovery-hints.js +40 -0
  68. package/dist/tools/recovery-hints.js.map +1 -1
  69. package/dist/tools/register.d.ts.map +1 -1
  70. package/dist/tools/register.js +14 -4
  71. package/dist/tools/register.js.map +1 -1
  72. package/dist/tools/releases.d.ts +1 -0
  73. package/dist/tools/releases.d.ts.map +1 -1
  74. package/dist/tools/releases.js +32 -1
  75. package/dist/tools/releases.js.map +1 -1
  76. package/dist/tools/sessions.d.ts.map +1 -1
  77. package/dist/tools/sessions.js +8 -3
  78. package/dist/tools/sessions.js.map +1 -1
  79. package/dist/tools/skills.d.ts +2 -1
  80. package/dist/tools/skills.d.ts.map +1 -1
  81. package/dist/tools/skills.js +18 -5
  82. package/dist/tools/skills.js.map +1 -1
  83. package/dist/tools/split-sheets.d.ts.map +1 -1
  84. package/dist/tools/split-sheets.js +14 -5
  85. package/dist/tools/split-sheets.js.map +1 -1
  86. package/dist/tools/works.d.ts.map +1 -1
  87. package/dist/tools/works.js +32 -2
  88. package/dist/tools/works.js.map +1 -1
  89. package/package.json +3 -3
  90. package/scripts/build-skills.ts +37 -3
  91. package/server.json +2 -2
@@ -0,0 +1,5 @@
1
+ {
2
+ "disabledMcpjsonServers": [
3
+ "pica-directory"
4
+ ]
5
+ }
package/CHANGELOG.md CHANGED
@@ -11,6 +11,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [2.83.0] - 2026-06-25
15
+
16
+ ### Added
17
+
18
+ - **`pica_resolve_release`** — release-grain Spotify resolver (scope
19
+ `write:catalog`). Gap-fills `upc`, `release_date`, `artwork_url`, `title`,
20
+ and `parent_label` from Spotify when `spotify_album_id` is set; routes every
21
+ write through the authority gate so human / higher-authority / unprovenanced
22
+ values are never overwritten. Idempotent (second call → `applied=[]`).
23
+ Spotify failure lands in `errors[]`, never throws. No `spotify_album_id` →
24
+ no-op + `recovery_hints`. v1 Spotify-only; additional sources in future ADRs.
25
+ New: route `POST /api/admin/releases/[id]/resolve`, SDK `resolveRelease`.
26
+ - **`pica_catalog_health`** — agent-first no-arg whole-catalog **completeness +
27
+ cleanliness** verdict (score + ranked punch-list across works / recordings /
28
+ releases / people). Honest-zero: a check that throws is reported
29
+ `notAssessed`, never a silent pass. Org-scoped, bounded sample ids. (ADR-272)
30
+ - **`pica_catalog_health_plan`** — derives an actionable fix-plan from the
31
+ health verdict: concrete fix-actions tagged safe/needs-scope plus a residual
32
+ list of what can't be auto-fixed, returned with a `planToken`. (ADR-273)
33
+ - **`pica_catalog_health_fix`** — applies accepted plan actions (a list of
34
+ `actionIds`, or `all_safe_auto`) against a `planToken`; reports honest
35
+ `applied` / `skipped` and never reports a partial apply as success. (ADR-273)
36
+ - **`pica_documents_list`** — lists uploaded catalog documents for the org
37
+ (parsed status + lean projection). ADR-274 document bridge.
38
+ - **`pica_documents_read`** — scope-gated bounded read of a parsed document's
39
+ extracted content (`offset` / `max_chars`). ADR-274 document bridge.
40
+ - **`pica_documents_link`** — stamps a parsed document's provenance link to a
41
+ `work` / `person` / `recording`. ADR-274 document bridge.
42
+
43
+ ### Changed
44
+
45
+ - **`pica_recordings_update`** now accepts a free-text `notes` field (master-grain
46
+ annotation, parity with `works.notes`).
47
+
48
+ ## [2.82.0] - 2026-06-22
49
+
50
+ ### Added
51
+
52
+ - **`pica_releases_delete`** — delete a release (scope `write:catalog`, tier
53
+ `destructive`). Refuses with the structured blocking list when the release
54
+ still has tracks attached or active share links (releases have no soft-delete);
55
+ detach the tracks and revoke the links, then retry.
56
+ - **`pica_audio_delete`** — delete an audio file (scope `write:catalog`, tier
57
+ `destructive`). Removes the file record AND its underlying storage object — no
58
+ orphan is left behind — along with its analysis/transcription satellites. Does
59
+ not touch the parent work or recording.
60
+
61
+ ### Fixed
62
+
63
+ - **`pica_merge_duplicates` (works)** now refuses a merge that would collapse
64
+ distinct recordings: when the winner and a loser each link a recording with a
65
+ different ISRC, the merge is blocked with `MERGE_BLOCKED_DISTINCT_RECORDINGS`
66
+ (and a recovery hint) instead of destroying the loser work. Prevents the
67
+ title-only-duplicate data-loss class.
68
+ - **`pica_people_update`** now accepts `is_group` (boolean) — previously
69
+ rejected as an unknown field, forcing the `group` tag and boolean to drift.
70
+
14
71
  ## [2.81.0] - 2026-06-19
15
72
 
16
73
  ### Added