@withpica/mcp-server 2.103.0 → 2.105.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.
- package/CHANGELOG.md +91 -0
- package/README.md +9 -5
- package/dist/lib/changelog.generated.d.ts +2 -2
- package/dist/lib/changelog.generated.d.ts.map +1 -1
- package/dist/lib/changelog.generated.js +2 -2
- package/dist/lib/changelog.generated.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +23 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/required-schemas.generated.d.ts +77 -0
- package/dist/resources/required-schemas.generated.d.ts.map +1 -1
- package/dist/resources/required-schemas.generated.js +114 -0
- package/dist/resources/required-schemas.generated.js.map +1 -1
- package/dist/resources/required-schemas.source.d.ts.map +1 -1
- package/dist/resources/required-schemas.source.js +85 -0
- package/dist/resources/required-schemas.source.js.map +1 -1
- package/dist/server-instructions.d.ts +2 -2
- package/dist/server-instructions.d.ts.map +1 -1
- package/dist/server-instructions.js +2 -0
- package/dist/server-instructions.js.map +1 -1
- package/dist/skills/skills.generated.d.ts.map +1 -1
- package/dist/skills/skills.generated.js +25 -3
- package/dist/skills/skills.generated.js.map +1 -1
- package/dist/tools/app-tools.js +1 -1
- package/dist/tools/app-tools.js.map +1 -1
- package/dist/tools/assets.d.ts +1 -0
- package/dist/tools/assets.d.ts.map +1 -1
- package/dist/tools/assets.js +45 -40
- package/dist/tools/assets.js.map +1 -1
- package/dist/tools/audio-files.js +6 -6
- package/dist/tools/audio-files.js.map +1 -1
- package/dist/tools/catalogue-argument.d.ts +76 -0
- package/dist/tools/catalogue-argument.d.ts.map +1 -0
- package/dist/tools/catalogue-argument.js +114 -0
- package/dist/tools/catalogue-argument.js.map +1 -0
- package/dist/tools/custody.d.ts +2 -2
- package/dist/tools/custody.d.ts.map +1 -1
- package/dist/tools/custody.js +22 -20
- package/dist/tools/custody.js.map +1 -1
- package/dist/tools/dashboard.d.ts.map +1 -1
- package/dist/tools/dashboard.js +7 -4
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +30 -2
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/duplicates.d.ts +15 -2
- package/dist/tools/duplicates.d.ts.map +1 -1
- package/dist/tools/duplicates.js +109 -10
- package/dist/tools/duplicates.js.map +1 -1
- package/dist/tools/enrichment.d.ts.map +1 -1
- package/dist/tools/enrichment.js +10 -1
- package/dist/tools/enrichment.js.map +1 -1
- package/dist/tools/explainability.js +1 -1
- package/dist/tools/explainability.js.map +1 -1
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/exports.js +15 -8
- package/dist/tools/exports.js.map +1 -1
- package/dist/tools/handovers.d.ts +42 -0
- package/dist/tools/handovers.d.ts.map +1 -0
- package/dist/tools/handovers.js +302 -0
- package/dist/tools/handovers.js.map +1 -0
- package/dist/tools/import.d.ts.map +1 -1
- package/dist/tools/import.js +6 -2
- package/dist/tools/import.js.map +1 -1
- package/dist/tools/index.d.ts +18 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +82 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +87 -1
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/notifications.js +3 -3
- package/dist/tools/notifications.js.map +1 -1
- package/dist/tools/recordings.d.ts.map +1 -1
- package/dist/tools/recordings.js +10 -2
- package/dist/tools/recordings.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts.map +1 -1
- package/dist/tools/recovery-hints.js +141 -0
- package/dist/tools/recovery-hints.js.map +1 -1
- package/dist/tools/relationship-change.d.ts +16 -0
- package/dist/tools/relationship-change.d.ts.map +1 -0
- package/dist/tools/relationship-change.js +60 -0
- package/dist/tools/relationship-change.js.map +1 -0
- package/dist/tools/relationship-copy.d.ts +99 -0
- package/dist/tools/relationship-copy.d.ts.map +1 -0
- package/dist/tools/relationship-copy.js +213 -0
- package/dist/tools/relationship-copy.js.map +1 -0
- package/dist/tools/relationship-scope.d.ts +104 -0
- package/dist/tools/relationship-scope.d.ts.map +1 -0
- package/dist/tools/relationship-scope.js +106 -0
- package/dist/tools/relationship-scope.js.map +1 -0
- package/dist/tools/relationships.d.ts +64 -0
- package/dist/tools/relationships.d.ts.map +1 -0
- package/dist/tools/relationships.js +1062 -0
- package/dist/tools/relationships.js.map +1 -0
- package/dist/tools/send.js +1 -1
- package/dist/tools/send.js.map +1 -1
- package/dist/tools/settings.d.ts.map +1 -1
- package/dist/tools/settings.js +4 -1
- package/dist/tools/settings.js.map +1 -1
- package/dist/tools/share-links.js +3 -3
- package/dist/tools/share-links.js.map +1 -1
- package/dist/tools/split-sheets.d.ts.map +1 -1
- package/dist/tools/split-sheets.js +4 -0
- package/dist/tools/split-sheets.js.map +1 -1
- package/dist/tools/works.d.ts +11 -0
- package/dist/tools/works.d.ts.map +1 -1
- package/dist/tools/works.js +63 -3
- package/dist/tools/works.js.map +1 -1
- package/package.json +3 -3
- package/scripts/build-required-schemas.ts +6 -4
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,97 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [2.105.0] - 2026-10-15
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- `pica_physical_assets_market_check` — an AI market price estimate for a physical
|
|
19
|
+
asset, from the organisation's own AI provider. A write (`write:catalog`), so a
|
|
20
|
+
client confirms before it runs.
|
|
21
|
+
- A tool definition can declare `alsoRequires`: scopes a credential must hold as
|
|
22
|
+
well as `scope`. `pica_tool_details` reports them as `also_requires`.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- `pica_export_snapshot`, `pica_export_song_dossiers` and
|
|
27
|
+
`pica_export_catalog_asset_report` declare both scopes their routes need
|
|
28
|
+
(`write:catalog` and `write:files`). Each declared one, so a credential
|
|
29
|
+
holding only what the tool advertised was refused 403 underneath.
|
|
30
|
+
- `pica_run_person_cascade` and `pica_split_sheet_send` also require
|
|
31
|
+
`write:people`, which their routes already needed.
|
|
32
|
+
- `pica_share_links_create`, `_update`, `_delete` and `pica_upload` require
|
|
33
|
+
`write:files` (a share or an upload is a file operation), as their routes now do.
|
|
34
|
+
- `pica_audio_assign`, `_bulk_assign_suggested`, `_dismiss_match`, `_update` and
|
|
35
|
+
`_bulk_update` require `write:catalog`: they attach or edit audio against the
|
|
36
|
+
catalogue, and their routes are floored there. Upload, analyse and identify
|
|
37
|
+
stay `write:files`, and their routes' floor is now `write:files` too.
|
|
38
|
+
- `pica_notification_acknowledge` requires `write:catalog`: it acknowledges
|
|
39
|
+
catalogue discoveries, which is what its route requires.
|
|
40
|
+
- `pica_physical_assets_query`, `pica_physical_assets_inspect`,
|
|
41
|
+
`pica_audio_pipeline_status`, `pica_count_explain`, `pica_notifications_list`
|
|
42
|
+
and `pica_send_query` require `read:catalog`, which their routes require.
|
|
43
|
+
- `pica_notifications_recent` requires `read:catalog`; its route, and
|
|
44
|
+
`pica_discoveries_query`'s, no longer require `write:catalog` for a read.
|
|
45
|
+
- `pica_physical_assets_inspect` no longer has a `market` section: a read never
|
|
46
|
+
calls an AI provider. Use `pica_physical_assets_market_check`.
|
|
47
|
+
- `pica_import_analyze` is a write tool (`write:catalog`): it spends PICA's
|
|
48
|
+
paid AI model on the file, so a client asks before running it.
|
|
49
|
+
|
|
50
|
+
- The seven physical-asset write tools (`pica_physical_assets_create`,
|
|
51
|
+
`_update`, `_delete`, `_link_work`, `_link_recording`, `_unlink_work`,
|
|
52
|
+
`_unlink_recording`) declare `write:catalog`, the scope their routes and the
|
|
53
|
+
REST write floor require. They declared `write:files`, so a credential holding
|
|
54
|
+
exactly that passed MCP dispatch and was refused 403 underneath.
|
|
55
|
+
|
|
56
|
+
## [2.104.0] - 2026-10-14
|
|
57
|
+
|
|
58
|
+
### Added
|
|
59
|
+
|
|
60
|
+
- Three tools for preparing a catalogue for a client who will own it:
|
|
61
|
+
`pica_handover_create` (an organisation creates the catalogue; nothing is sent),
|
|
62
|
+
`pica_handover_send` (emails the client, who has 60 days to accept; from a connected app the
|
|
63
|
+
person approves it first) and `pica_handover_answer` (gives the client the link to accept on
|
|
64
|
+
screen; it never accepts or declines, because taking ownership is the person's own act).
|
|
65
|
+
- Tools that read or change a catalogue's records take an optional `catalogue` argument: the id of
|
|
66
|
+
a client catalogue your organisation looks after. The call then acts for that client, within what
|
|
67
|
+
the relationship allows, and the app refuses anything outside it with the reason. A tool that
|
|
68
|
+
can't act for a client (account, keys, billing, feedback, and the relationship tools themselves)
|
|
69
|
+
refuses the argument rather than ignoring it, and a confirmation token issued for one client
|
|
70
|
+
can't be used for another.
|
|
71
|
+
- Nine tools for who looks after whose catalogue:
|
|
72
|
+
- for a catalogue's owner: `pica_relationships_list` (who looks after it, what each may do, and
|
|
73
|
+
invitations waiting), `pica_relationships_answer` (accept, decline or change a request, or
|
|
74
|
+
accept an invitation), `pica_relationships_grant` (invite an organisation by email),
|
|
75
|
+
`pica_relationships_revoke` and `pica_relationships_activity` (what was done through a
|
|
76
|
+
relationship);
|
|
77
|
+
- for an organisation: `pica_portfolio_list` (the client catalogues it looks after, with each
|
|
78
|
+
one's id for `catalogue`), `pica_portfolio_briefing` (what needs doing across them),
|
|
79
|
+
`pica_portfolio_invite` (ask a client by email) and `pica_relationships_step_down`.
|
|
80
|
+
Accepting, changing, revoking and an owner's invitation are the person's own decision: from a
|
|
81
|
+
connected app they ask the person to approve first, and from PICA's own assistant they give the
|
|
82
|
+
link to do it on screen. Every step sends the version of the terms that was read; if the terms
|
|
83
|
+
changed since, nothing happens and the current terms come back. A check PICA couldn't make says
|
|
84
|
+
so, never 0. New resource: `pica://schemas/relationship-required`.
|
|
85
|
+
- Two skills: `look-after-clients` (an organisation sees every client, finds what needs doing and
|
|
86
|
+
fixes it in the right client's catalogue, within what each allowed) and
|
|
87
|
+
`who-can-see-my-catalogue` (an owner sees who looks after their catalogue, what each can do and
|
|
88
|
+
has done, and answers, changes or ends it). `first-session` routes to them, and the server
|
|
89
|
+
instructions say how to act for a client catalogue.
|
|
90
|
+
- `pica_duplicates_mark_different` — when the user says recordings or releases that
|
|
91
|
+
`pica_find_duplicates` grouped are not the same, `action: "mark"` records it for every pair
|
|
92
|
+
among 2–25 ids and they are not offered as duplicates again; `action: "unmark"` takes it back.
|
|
93
|
+
Nothing is merged, deleted or edited. Works are still dismissed in the catalog duplicates view.
|
|
94
|
+
|
|
95
|
+
### Changed
|
|
96
|
+
|
|
97
|
+
- `pica_export_snapshot` says it is for an owner or admin of the catalogue only;
|
|
98
|
+
its route now refuses anyone else.
|
|
99
|
+
|
|
100
|
+
- `pica_find_duplicates`: recording and release groups no longer include a pair the owner marked
|
|
101
|
+
different, and their "keep them separate" option now says how to stop them coming back
|
|
102
|
+
(it used to say they would keep appearing). A group never holds a marked pair, even through a
|
|
103
|
+
third copy matching both.
|
|
104
|
+
|
|
14
105
|
## [2.103.0] - 2026-10-09
|
|
15
106
|
|
|
16
107
|
### Security
|
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
|
-
|
|
68
|
+
368 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
|
|
|
@@ -119,9 +119,9 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
|
|
|
119
119
|
|
|
120
120
|
`pica_notes_query`, `pica_notes_inspect`, `pica_notes_create`, `pica_notes_delete`
|
|
121
121
|
|
|
122
|
-
**duplicates** — detect duplicate records and merge them (audio_files can be found but not merged — a duplicate file is deleted)
|
|
122
|
+
**duplicates** — detect duplicate records and merge them, or mark recordings and releases as different so they stop being offered (audio_files can be found but not merged — a duplicate file is deleted)
|
|
123
123
|
|
|
124
|
-
`pica_find_duplicates`, `pica_merge_duplicates`
|
|
124
|
+
`pica_find_duplicates`, `pica_merge_duplicates`, `pica_duplicates_mark_different`
|
|
125
125
|
|
|
126
126
|
**import** — import catalog data from files and streaming services, and see what happened to emails forwarded to PICA
|
|
127
127
|
|
|
@@ -225,7 +225,11 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
|
|
|
225
225
|
|
|
226
226
|
**physical assets** — manage physical assets (master tapes, hardware, artefacts)
|
|
227
227
|
|
|
228
|
-
`pica_physical_assets_query`, `pica_physical_assets_inspect`, `pica_physical_assets_create`, `pica_physical_assets_update`, `pica_physical_assets_delete`, `pica_physical_assets_export`, `pica_physical_assets_stats`, `pica_physical_assets_link_work`, `pica_physical_assets_link_recording`, `pica_physical_assets_unlink_work`, `pica_physical_assets_unlink_recording`
|
|
228
|
+
`pica_physical_assets_query`, `pica_physical_assets_inspect`, `pica_physical_assets_create`, `pica_physical_assets_update`, `pica_physical_assets_market_check`, `pica_physical_assets_delete`, `pica_physical_assets_export`, `pica_physical_assets_stats`, `pica_physical_assets_link_work`, `pica_physical_assets_link_recording`, `pica_physical_assets_unlink_work`, `pica_physical_assets_unlink_recording`
|
|
229
|
+
|
|
230
|
+
**portfolio** — who looks after a catalogue — see and answer requests, invite an organisation or a client by email, end access, see what was done through a relationship, (for organisations) the client catalogues you look after with what needs doing, and preparing a catalogue for a client to take over
|
|
231
|
+
|
|
232
|
+
`pica_relationships_list`, `pica_relationships_answer`, `pica_relationships_grant`, `pica_relationships_revoke`, `pica_relationships_activity`, `pica_relationships_step_down`, `pica_portfolio_list`, `pica_portfolio_briefing`, `pica_portfolio_invite`, `pica_handover_create`, `pica_handover_send`, `pica_handover_answer`
|
|
229
233
|
|
|
230
234
|
**recording splits** — manage recording (master) splits between contributors
|
|
231
235
|
|
|
@@ -293,4 +297,4 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
|
|
|
293
297
|
|
|
294
298
|
---
|
|
295
299
|
|
|
296
|
-
Generated for `@withpica/mcp-server@2.
|
|
300
|
+
Generated for `@withpica/mcp-server@2.105.0`. © 2024-2026 Withpica Ltd. All rights reserved. MIT licensed.
|