@withpica/mcp-server 2.111.0 → 2.113.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 (46) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.intro.md +1 -1
  3. package/README.md +4 -4
  4. package/dist/lib/changelog.generated.d.ts +2 -2
  5. package/dist/lib/changelog.generated.d.ts.map +1 -1
  6. package/dist/lib/changelog.generated.js +2 -2
  7. package/dist/lib/changelog.generated.js.map +1 -1
  8. package/dist/lib/file-param-fetch.d.ts +117 -0
  9. package/dist/lib/file-param-fetch.d.ts.map +1 -0
  10. package/dist/lib/file-param-fetch.js +326 -0
  11. package/dist/lib/file-param-fetch.js.map +1 -0
  12. package/dist/resources/index.d.ts.map +1 -1
  13. package/dist/resources/index.js +5 -0
  14. package/dist/resources/index.js.map +1 -1
  15. package/dist/skills/skills.generated.d.ts.map +1 -1
  16. package/dist/skills/skills.generated.js +12 -1
  17. package/dist/skills/skills.generated.js.map +1 -1
  18. package/dist/tools/audio-files.d.ts +7 -0
  19. package/dist/tools/audio-files.d.ts.map +1 -1
  20. package/dist/tools/audio-files.js +181 -6
  21. package/dist/tools/audio-files.js.map +1 -1
  22. package/dist/tools/discovery.d.ts.map +1 -1
  23. package/dist/tools/discovery.js +3 -0
  24. package/dist/tools/discovery.js.map +1 -1
  25. package/dist/tools/index.d.ts +20 -0
  26. package/dist/tools/index.d.ts.map +1 -1
  27. package/dist/tools/index.js +17 -1
  28. package/dist/tools/index.js.map +1 -1
  29. package/dist/tools/metadata.d.ts.map +1 -1
  30. package/dist/tools/metadata.js +12 -0
  31. package/dist/tools/metadata.js.map +1 -1
  32. package/dist/tools/recording-custody.d.ts.map +1 -1
  33. package/dist/tools/recording-custody.js +3 -0
  34. package/dist/tools/recording-custody.js.map +1 -1
  35. package/dist/tools/recovery-hints.d.ts.map +1 -1
  36. package/dist/tools/recovery-hints.js +6 -0
  37. package/dist/tools/recovery-hints.js.map +1 -1
  38. package/dist/tools/statements.d.ts +1 -0
  39. package/dist/tools/statements.d.ts.map +1 -1
  40. package/dist/tools/statements.js +44 -2
  41. package/dist/tools/statements.js.map +1 -1
  42. package/dist/tools/uploads.d.ts.map +1 -1
  43. package/dist/tools/uploads.js +4 -3
  44. package/dist/tools/uploads.js.map +1 -1
  45. package/package.json +2 -2
  46. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -11,6 +11,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [2.113.0] - 2026-10-31
15
+
16
+ > Needs `@withpica/mcp-sdk` 4.2.0 (SDK floor `^4.2.0`) for `pica_statement_import_remove`.
17
+ > `@withpica/mcp-utils` (2.0.2) and the directory are unchanged.
18
+
19
+ ### Added
20
+
21
+ - `pica_statement_import_remove`: undoes an imported royalty statement — its lines come out of the
22
+ royalties and its total goes, together or not at all; an uploaded statement document it came from
23
+ stays, so the file can be imported again. Take `import_batch_id` from `pica_statements_query`.
24
+ Refused while the statement is still importing. Destructive: delegated agents (OAuth or grant)
25
+ create a pending human approval for the owner; a signed-in or first-party-key caller takes the
26
+ normal confirmation-token path.
27
+ - `pica_audio_attach`: stores an audio file the user attached in ChatGPT. The tool declares
28
+ `_meta["openai/fileParams"]: ["file"]`, so ChatGPT passes the attachment as
29
+ `{ download_url, file_id, mime_type?, file_name? }`. PICA fetches it, checks it is audio (WAV, MP3,
30
+ FLAC, AIFF, OGG, WebM; max 800MB), stores it through the usual upload steps, links it to `work_id`
31
+ if given, and starts analysis. It fetches only https links on hosts listed in
32
+ `PICA_FILE_PARAM_HOSTS` and connects only to public addresses; with that setting empty it refuses
33
+ and points at `pica_upload`. Listed on every surface like every other tool; a stdio install has no
34
+ allowed hosts unless its own `PICA_FILE_PARAM_HOSTS` is set, so there it refuses the same way.
35
+ - Skill `register-a-suno-song`: keeps a song made with Suno as a private record — the work and its
36
+ recording, a note quoting what Suno's terms allow for the user's plan, `ai_disclosure` on both, and
37
+ a credit only for a part the user wrote. It never claims ownership, records master ownership only
38
+ for a paid plan with a download from Suno, and never lists the song publicly unless the user wrote
39
+ part of it and asks.
40
+
41
+ ### Fixed
42
+
43
+ - `pica_upload_file` and `pica_audio_presigned_upload` no longer tell agents that users cannot
44
+ upload through the chat: they point at `pica_upload` (the upload card, or an upload page).
45
+
46
+ ## [2.112.0] - 2026-10-30
47
+
48
+ > Server only: `@withpica/mcp-sdk`, `@withpica/mcp-utils` and the directory are unchanged (SDK floor
49
+ > stays `^4.1.0`). The hosted `/api/mcp` already serves this text; this release brings npm (stdio)
50
+ > installs level with it.
51
+
52
+ ### Fixed
53
+
54
+ - `pica_recording_custody_assign` on a recording whose master split is locked (ADR-321) answers
55
+ 409 `SPLIT_LOCKED`. It now carries a recovery hint, and the description says so: the owner must
56
+ start a change, signed in, on the recording's page (`details.page`); an agent cannot, so tell the
57
+ user and do not retry. An agent retried this refusal four times in two minutes.
58
+
14
59
  ## [2.111.0] - 2026-10-29
15
60
 
16
61
  > **Publish order:** `@withpica/mcp-sdk` 4.1.0, `@withpica/mcp-utils` 2.0.2, then this package
package/README.intro.md CHANGED
@@ -104,7 +104,7 @@ Every entry is published deliberately by its rights holder, with attested credit
104
104
 
105
105
  ## Before you train on any of this
106
106
 
107
- withpica.com publishes a blanket TDM reservation at <https://withpica.com/.well-known/tdmrep.json> (`"tdm-reservation": 1`). Nothing here is licensed for text-and-data mining or model training by default.
107
+ withpica.com reserves its users' data (the directory, artist sites and every API except PICA's own open metrics, this server's endpoint included) against text-and-data mining at <https://withpica.com/.well-known/tdmrep.json> (`"tdm-reservation": 1`). Nothing here is licensed for text-and-data mining or model training by default.
108
108
 
109
109
  The `consent` endpoint above is the granular counterpart: ask it about an identifier and it reports what the rights holders have actually cleared, and at what level. A work is cleared at a level only when every credited contributor has granted at least that level; one refusal blocks it. Read `no_assertion_published` literally — it means no permission is published for that identifier, which is not a maybe.
110
110
 
package/README.md CHANGED
@@ -65,7 +65,7 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
65
65
 
66
66
  ## Tools
67
67
 
68
- 374 tools, grouped below by the taxonomy `pica_discover` uses. The server's own `tools/list` is authoritative — not every registered tool is filed under a category yet, so the names below are a map, not a census.
68
+ 376 tools, grouped below by the taxonomy `pica_discover` uses. The server's own `tools/list` is authoritative — not every registered tool is filed under a category yet, so the names below are a map, not a census.
69
69
 
70
70
  **works** — manage your musical works
71
71
 
@@ -101,7 +101,7 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
101
101
 
102
102
  **audio** — manage and analyze audio files
103
103
 
104
- `pica_audio_query`, `pica_audio_inspect`, `pica_audio_presigned_upload`, `pica_audio_complete_upload`, `pica_audio_analyze`, `pica_audio_identify`, `pica_audio_assign`, `pica_audio_bulk_assign_suggested`, `pica_audio_dismiss_match`, `pica_audio_update`, `pica_audio_bulk_update`, `pica_audio_delete`, `pica_upload`, `pica_audio_pipeline_status`
104
+ `pica_audio_query`, `pica_audio_inspect`, `pica_audio_attach`, `pica_audio_presigned_upload`, `pica_audio_complete_upload`, `pica_audio_analyze`, `pica_audio_identify`, `pica_audio_assign`, `pica_audio_bulk_assign_suggested`, `pica_audio_dismiss_match`, `pica_audio_update`, `pica_audio_bulk_update`, `pica_audio_delete`, `pica_upload`, `pica_audio_pipeline_status`
105
105
 
106
106
  **projects** — manage albums, EPs, and work groupings
107
107
 
@@ -237,7 +237,7 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
237
237
 
238
238
  **royalties statements** — view royalties and ingested statements
239
239
 
240
- `pica_royalties_list`, `pica_royalties_get`, `pica_statements_query`, `pica_statements_inspect`, `pica_ingest_statement`, `pica_statements_pending`, `pica_statement_ingest_document`, `pica_statement_imports`, `pica_royalties_blockers`, `pica_royalties_unmatched`, `pica_royalties_attribute`
240
+ `pica_royalties_list`, `pica_royalties_get`, `pica_statements_query`, `pica_statements_inspect`, `pica_ingest_statement`, `pica_statements_pending`, `pica_statement_ingest_document`, `pica_statement_imports`, `pica_statement_import_remove`, `pica_royalties_blockers`, `pica_royalties_unmatched`, `pica_royalties_attribute`
241
241
 
242
242
  **rights** — programmable rights — propose a song, master or share rule for the parties to confirm, check who has confirmed, see what money would be held and why, and what income would pay each party (computed, never paid)
243
243
 
@@ -297,4 +297,4 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
297
297
 
298
298
  ---
299
299
 
300
- Generated for `@withpica/mcp-server@2.111.0`. © 2024-2026 Withpica Ltd. All rights reserved. MIT licensed.
300
+ Generated for `@withpica/mcp-server@2.113.0`. © 2024-2026 Withpica Ltd. All rights reserved. MIT licensed.