@withpica/mcp-server 2.99.0 → 2.101.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 +203 -0
- package/README.md +6 -6
- 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/prompts/creator-question-atlas.d.ts.map +1 -1
- package/dist/prompts/creator-question-atlas.js +11 -0
- package/dist/prompts/creator-question-atlas.js.map +1 -1
- package/dist/prompts/index.js +2 -2
- package/dist/resources/agent-guide.d.ts.map +1 -1
- package/dist/resources/agent-guide.js +38 -7
- package/dist/resources/agent-guide.js.map +1 -1
- package/dist/resources/index.d.ts +15 -2
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +37 -27
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/required-schemas.generated.d.ts +16 -10
- package/dist/resources/required-schemas.generated.d.ts.map +1 -1
- package/dist/resources/required-schemas.generated.js +29 -15
- 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 +15 -11
- 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 -2
- package/dist/server-instructions.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -1
- package/dist/skills/index.d.ts +5 -3
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +11 -9
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/sep2640.d.ts +71 -0
- package/dist/skills/sep2640.d.ts.map +1 -0
- package/dist/skills/sep2640.js +198 -0
- package/dist/skills/sep2640.js.map +1 -0
- package/dist/skills/skills.generated.js +2 -2
- package/dist/skills/skills.generated.js.map +1 -1
- package/dist/tools/api-error-body.d.ts +16 -4
- package/dist/tools/api-error-body.d.ts.map +1 -1
- package/dist/tools/api-error-body.js +40 -1
- package/dist/tools/api-error-body.js.map +1 -1
- package/dist/tools/approvals.d.ts.map +1 -1
- package/dist/tools/approvals.js +12 -1
- package/dist/tools/approvals.js.map +1 -1
- package/dist/tools/assets.d.ts.map +1 -1
- package/dist/tools/assets.js +15 -3
- package/dist/tools/assets.js.map +1 -1
- package/dist/tools/credits.d.ts.map +1 -1
- package/dist/tools/credits.js +205 -45
- package/dist/tools/credits.js.map +1 -1
- package/dist/tools/dashboard.js +1 -1
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/directory.d.ts.map +1 -1
- package/dist/tools/directory.js +21 -10
- package/dist/tools/directory.js.map +1 -1
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +14 -3
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +6 -4
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/duplicates.d.ts +13 -0
- package/dist/tools/duplicates.d.ts.map +1 -1
- package/dist/tools/duplicates.js +178 -1
- package/dist/tools/duplicates.js.map +1 -1
- package/dist/tools/import-documents.d.ts +1 -0
- package/dist/tools/import-documents.d.ts.map +1 -1
- package/dist/tools/import-documents.js +67 -0
- package/dist/tools/import-documents.js.map +1 -1
- package/dist/tools/import.d.ts.map +1 -1
- package/dist/tools/import.js +14 -0
- package/dist/tools/import.js.map +1 -1
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +39 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory.d.ts.map +1 -1
- package/dist/tools/memory.js +24 -6
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +42 -0
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/people.d.ts +54 -22
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +236 -27
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/profile-claims.d.ts +31 -0
- package/dist/tools/profile-claims.d.ts.map +1 -0
- package/dist/tools/profile-claims.js +188 -0
- package/dist/tools/profile-claims.js.map +1 -0
- package/dist/tools/public-filter.js +1 -1
- package/dist/tools/public-filter.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts.map +1 -1
- package/dist/tools/recovery-hints.js +140 -7
- package/dist/tools/recovery-hints.js.map +1 -1
- package/dist/tools/rights.d.ts.map +1 -1
- package/dist/tools/rights.js +11 -1
- package/dist/tools/rights.js.map +1 -1
- package/dist/tools/shows.d.ts.map +1 -1
- package/dist/tools/shows.js +25 -2
- package/dist/tools/shows.js.map +1 -1
- package/dist/tools/skills.d.ts +3 -4
- package/dist/tools/skills.d.ts.map +1 -1
- package/dist/tools/skills.js.map +1 -1
- package/dist/tools/split-sheets.d.ts +8 -0
- package/dist/tools/split-sheets.d.ts.map +1 -1
- package/dist/tools/split-sheets.js +191 -8
- package/dist/tools/split-sheets.js.map +1 -1
- package/package.json +6 -4
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,197 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [2.101.0] - 2026-10-06
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **Skills over the MCP skills extension (SEP-2640, `io.modelcontextprotocol/skills`).**
|
|
19
|
+
The server declares the extension at `initialize` and answers `skills/list`
|
|
20
|
+
and `skills/get`. Each entry carries the skill's frontmatter and a `sha256`
|
|
21
|
+
digest and byte size for its `SKILL.md`, so a conforming host can verify
|
|
22
|
+
what it reads through `resources/read`. `skills/get` on an unknown or
|
|
23
|
+
malformed URI returns `-32602`. Signed-out (lobby) sessions list no skills.
|
|
24
|
+
`skill://withpica/index.json`, `pica_skill_list` and `pica_skill_get` are
|
|
25
|
+
unchanged for hosts without the extension.
|
|
26
|
+
- **`pica_rights_propose` takes `effective_from` and `corrects_start_date` on
|
|
27
|
+
song and master rules.** A first lock may start on any real date up to
|
|
28
|
+
today (default: the earliest date PICA holds for the song or recording);
|
|
29
|
+
a change to a locked split applies from today. `corrects_start_date: true`
|
|
30
|
+
corrects only a wrongly dated first lock, with the same shares and an
|
|
31
|
+
earlier date.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- **Served `SKILL.md` frontmatter follows the Agent Skills specification.**
|
|
36
|
+
Top-level keys are now `name`, `description`, `compatibility` and
|
|
37
|
+
`metadata`. PICA's own fields moved under `metadata` as strings:
|
|
38
|
+
`pica-audience`, `pica-output`, `pica-triggers` and `pica-tools-required`
|
|
39
|
+
(lists joined by newline), `pica-definition-of-done`, `pica-when-not-to-use`
|
|
40
|
+
and `pica-origin`. `definition_of_done` and `when_not_to_use` were
|
|
41
|
+
previously dropped from the resource text; they now reach readers. The
|
|
42
|
+
skill body and the tool route's output are unchanged.
|
|
43
|
+
- **A person whose ownership share ended can be given a new one.**
|
|
44
|
+
`pica_recording_splits_create` `dry_run` no longer predicts
|
|
45
|
+
`RECORDING_SPLIT_EXISTS` when the person's share in that place has ended
|
|
46
|
+
(any `end_date`, today included) or when the new row is written already
|
|
47
|
+
ended — only a second ACTIVE share is refused, matching the database once
|
|
48
|
+
migration 20261004140000 applies. `pica_dashboard_attention`'s
|
|
49
|
+
`recordings_without_splits` now counts a recording whose shares have all
|
|
50
|
+
ended as having no current owner.
|
|
51
|
+
|
|
52
|
+
- **`pica_directory_settings` reports listing per song.** It returns how many
|
|
53
|
+
songs are listed, ready but not listed, hidden and not ready, instead of a
|
|
54
|
+
catalogue-wide "discoverable / private". `opted_in: true` lists every ready
|
|
55
|
+
song; `opted_in: false` records the decline and leaves listed songs up
|
|
56
|
+
until each is hidden from its own page.
|
|
57
|
+
- **`pica_credits_send_for_attestation` names writers who are on PICA in
|
|
58
|
+
another catalogue.** They are listed apart from "No email on file", with a
|
|
59
|
+
pointer to `pica_collaborators_invite`.
|
|
60
|
+
|
|
61
|
+
## [2.100.0] - 2026-10-04
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
|
|
65
|
+
- **`pica_recording_splits_update` and `pica_recording_splits_end` — fix a
|
|
66
|
+
wrong ownership share.** Before, a recording split could only be created
|
|
67
|
+
through the API, so a wrong row (a holder-less "unknown" share, the wrong
|
|
68
|
+
percentage or role) blocked adding the right owner with
|
|
69
|
+
`RECORDING_SPLIT_TOTAL_EXCEEDED` and had to be fixed by hand in /inspect.
|
|
70
|
+
`_update` changes `person_id` (relink to a person in the organisation, not
|
|
71
|
+
deleted), percentage, role, `split_type`, territory, dates or notes; the 100%
|
|
72
|
+
total is checked after the change with the row's old value left out.
|
|
73
|
+
`_end` sets `end_date` (default today) so the share stops counting, keeping the
|
|
74
|
+
row as history. Both report `verification_cleared: true` when the change
|
|
75
|
+
cleared the holder's confirmation. Typed refusals: `SPLIT_NOT_FOUND`,
|
|
76
|
+
`PERSON_NOT_FOUND`, `PERSON_DELETED`, `SPLIT_ALREADY_ENDED`,
|
|
77
|
+
`INVALID_SPLIT_PERCENTAGE`, `INVALID_SPLIT_ROLE`, `INVALID_SPLIT_TYPE`,
|
|
78
|
+
`INVALID_SPLIT_TERRITORY`, `INVALID_SPLIT_DATES`, plus the existing split total / exists / locked codes.
|
|
79
|
+
- **`pica_merge_duplicates` takes a list — one approval for a whole cleanup.**
|
|
80
|
+
Send several confirmed duplicate groups as `merges` (up to 50 items of
|
|
81
|
+
`{entity_type, winner_id, loser_ids}`) instead of one call per group. A
|
|
82
|
+
delegated agent (OAuth connector / `pica_grant_*`) then raises ONE human
|
|
83
|
+
approval and the owner gets ONE email listing every pair, approved or
|
|
84
|
+
denied as a whole — before this, a 15-merge cleanup sent 15 emails, each
|
|
85
|
+
expiring on its own. Every pair is checked before the email goes out; one
|
|
86
|
+
bad pair refuses the list. Once approved, `pica_approval_status` returns a
|
|
87
|
+
per-pair outcome (`merged` / `skipped` because already merged or deleted /
|
|
88
|
+
`failed` with the reason); one failed pair does not stop the others, and the
|
|
89
|
+
approval reads `failed` if any pair failed. Callers that execute directly
|
|
90
|
+
get the same per-pair result. The single-merge fields work exactly as
|
|
91
|
+
before; send one shape or the other, never both. The tool's input schema no
|
|
92
|
+
longer lists a top-level `required`, because the two shapes cannot share
|
|
93
|
+
one.
|
|
94
|
+
- **`pica_people_split_identity` — give one person their own identity when
|
|
95
|
+
two different people share one** (ops 482424b7). The opposite of a merge:
|
|
96
|
+
when a wrong match (e.g. someone else's ISNI) joined two people to one
|
|
97
|
+
global identity, custody transfers to it can't tell whose it is and land as
|
|
98
|
+
"unknown". This gives the named person a new identity. Nothing is guessed:
|
|
99
|
+
identifiers stay with the original unless listed in `move_identifiers`, and
|
|
100
|
+
only the unattributed split rows listed in `relink_split_ids` move.
|
|
101
|
+
`clear_person_identifiers` removes identifiers that were never the person's
|
|
102
|
+
from their record; `undo_external_ids` strips everything a wrong external
|
|
103
|
+
record (e.g. a Wikidata Q-id) wrote. Custody legs are append-only and never
|
|
104
|
+
rewritten. Tier `destructive`, `approvalMode: "human"`, scope
|
|
105
|
+
`write:people`. `pica_people_inspect` gains a `global_identity` section
|
|
106
|
+
(only when named) that lists everything a split would touch.
|
|
107
|
+
- **`pica_profile_claims_invite` + `pica_profile_claims_status` — claim
|
|
108
|
+
your profile for assistants.** An assistant can invite people in the
|
|
109
|
+
catalogue to claim their profile (each at the address the catalogue holds
|
|
110
|
+
for them) and check where people stand. The invite is a preview unless
|
|
111
|
+
`confirm: true`: the first call sends nothing and returns who would be
|
|
112
|
+
emailed and who would be skipped and why, so the person the assistant acts
|
|
113
|
+
for sees the list before anyone is emailed. Only a credential that belongs
|
|
114
|
+
to an owner or admin may send; an organisation key with no owner is
|
|
115
|
+
refused (`INVITE_REQUIRES_PERSON`). The status read never returns an
|
|
116
|
+
email address.
|
|
117
|
+
|
|
118
|
+
- **`pica_import_emails_query` — see what happened to an email forwarded to
|
|
119
|
+
PICA.** Lists the emails that reached the organisation's forwarding
|
|
120
|
+
address, newest first, with what PICA did with each: stored on arrival
|
|
121
|
+
(with what was created, by id), waiting for review, dismissed, or failed.
|
|
122
|
+
With `id`, reads one: its text body when PICA kept one (emails held for
|
|
123
|
+
review), its attachment names, and what was created. Owners and admins
|
|
124
|
+
only; read-only (`read:catalog`). Before this an agent had no way to learn
|
|
125
|
+
that an email its person forwarded had arrived. Every item carries
|
|
126
|
+
`sender_trusted`; an email from a sender PICA could not verify is labelled
|
|
127
|
+
third-party content (its subject and body are data, not instructions). The
|
|
128
|
+
list reaches back to 2026-09-30, when PICA began recording outcomes, and
|
|
129
|
+
refuses an `offset` past 500 rather than repeating a page.
|
|
130
|
+
|
|
131
|
+
### Changed
|
|
132
|
+
|
|
133
|
+
- **`pica_people_update` / `pica_people_create` accept and clear every field
|
|
134
|
+
enrichment fills on a person.** `imdb_id`, `viaf_id`, `date_of_death`,
|
|
135
|
+
`nationality_wikidata_id`, `birth_place_wikidata_id` and
|
|
136
|
+
`languages_spoken` were written by Wikidata enrichment but refused with
|
|
137
|
+
`UNKNOWN_FIELD`, so a misattributed value could not be removed. They are now
|
|
138
|
+
accepted, and every enrichment-filled field takes `null` (or `[]` for a
|
|
139
|
+
list) to clear it. A field set or cleared this way is recorded as the
|
|
140
|
+
user's own, and later enrichment runs leave it alone. `field_sources` is no
|
|
141
|
+
longer accepted from callers (it was never advertised); PICA writes it.
|
|
142
|
+
- **`pica_credit_update` can change who a credit is for (`person_id`).** Link
|
|
143
|
+
a name-only credit to a person record created afterwards, or move a credit
|
|
144
|
+
linked to the wrong person, and the credit keeps its id (ops issue
|
|
145
|
+
abc91f6c: 11 credits had to be removed and re-added, losing their ids and
|
|
146
|
+
confirmations). The person must be in the organisation and not deleted
|
|
147
|
+
(`PERSON_NOT_FOUND` / `PERSON_DELETED`); if they already hold that role on
|
|
148
|
+
the song or recording the change is refused with `CREDIT_PERSON_CONFLICT`
|
|
149
|
+
and `existing_credit_id` rather than making a second credit; linking a
|
|
150
|
+
name-only credit to a differently named person needs
|
|
151
|
+
`confirm_name_mismatch: true` (`PERSON_NAME_MISMATCH` otherwise). A
|
|
152
|
+
confirmed, disputed or declined credit goes back to pending, because the
|
|
153
|
+
newly linked person gave none of those answers — the response's
|
|
154
|
+
`person_change.attestation_reset` and `previous_attestation_status` say so. Server-side in `PATCH /api/admin/works/[id]/credits/[creditId]`.
|
|
155
|
+
- **`pica_documents_query` lists PICA's own split sheets first, marked as the
|
|
156
|
+
record.** Each entry now carries `kind` (`split_sheet` or `upload`); a
|
|
157
|
+
split sheet PICA generated has `split_sheet_role: "record"` and
|
|
158
|
+
`read_with: "pica_split_sheet_get"`, and an uploaded or forwarded split
|
|
159
|
+
sheet has `split_sheet_role: "supporting"` (plus `master: true` when it is
|
|
160
|
+
about the master only). An archived PICA sheet is `"superseded"`, not the
|
|
161
|
+
record. Paging is one sequence: PICA's sheets, then uploads, with `total`
|
|
162
|
+
covering both. With `parsed_status` `pending` or `completed`, only uploads
|
|
163
|
+
are listed. `pica_documents_link` / `_delete` take an entry with
|
|
164
|
+
`kind: "upload"`. Server-side change in `/api/admin/documents/catalog`;
|
|
165
|
+
the tool description says how to read each kind.
|
|
166
|
+
|
|
167
|
+
### Fixed
|
|
168
|
+
|
|
169
|
+
- `pica_recording_credits_update` no longer advertises or forwards
|
|
170
|
+
`attestation_status`. A caller could create a producer or performer
|
|
171
|
+
credit already marked "attested" without the credited person ever
|
|
172
|
+
confirming it. The field is gone from the input schema, and a call that
|
|
173
|
+
sends any attestation field (`attestation_status`, `attested_at`,
|
|
174
|
+
`attested_by`, `attestation_source_type`, `attestation_source_id`), in
|
|
175
|
+
the single form or on any `credits[]` entry, is refused before anything
|
|
176
|
+
is written with `ATTESTATION_NOT_SETTABLE`. The refusal points at the way
|
|
177
|
+
a recording credit actually gets confirmed: `pica_collaborators_invite`
|
|
178
|
+
with the `recording_id`, or `pica_credits_send_for_attestation` on the
|
|
179
|
+
recording's song. The server refuses the same fields on
|
|
180
|
+
`POST /api/admin/recordings/[id]/credits` and the bulk route.
|
|
181
|
+
- `pica_credit_add` on a work now treats `share_pct: null` like an
|
|
182
|
+
omitted share: stored as unknown. The server refused an explicit `null`
|
|
183
|
+
with a 400, so a client that sends `null` for an empty optional field
|
|
184
|
+
(ChatGPT's connector does) could not add a credit without a share.
|
|
185
|
+
Server-side fix in `/api/admin/works/[id]/credits/atomic-add`; it reaches
|
|
186
|
+
every client on deploy. The input schema now declares `share_pct` as
|
|
187
|
+
number-or-null, matching `pica_credit_update`.
|
|
188
|
+
- When the server refuses `pica_credit_add` with a machine code
|
|
189
|
+
(`VALIDATION_ERROR`, `PERSON_ORG_MISMATCH`, `RECORDING_TARGET_REQUIRED`,
|
|
190
|
+
`INSUFFICIENT_SCOPE`, …), the tool now returns that code and message,
|
|
191
|
+
plus the fields the server put beside them (`remedy`, `person_ids`,
|
|
192
|
+
`next_tool`). It no longer reports those refusals as `CREDIT_ADD_FAILED`,
|
|
193
|
+
which read as a transport failure and invited a blind retry. A server
|
|
194
|
+
error (5xx), or a refusal with no code, is still `CREDIT_ADD_FAILED`.
|
|
195
|
+
- `pica_credits_update` no longer advertises `attestation_status`. The
|
|
196
|
+
server stopped accepting it on 2026-09-29 (a caller could mark a credit
|
|
197
|
+
"attested" with no one ever confirming it), but the tool kept offering
|
|
198
|
+
it, so agents sent it and the whole save failed with `UNKNOWN_FIELD`. The
|
|
199
|
+
field is gone from the input schema, the description and the
|
|
200
|
+
`work-credits-required` resource. A call that still sends it is refused
|
|
201
|
+
before anything is written with `ATTESTATION_NOT_SETTABLE`, naming the
|
|
202
|
+
entry and pointing at `pica_credits_send_for_attestation` — the way a
|
|
203
|
+
credit actually gets confirmed.
|
|
204
|
+
|
|
14
205
|
## [2.99.0] - 2026-09-30
|
|
15
206
|
|
|
16
207
|
### Added
|
|
@@ -95,6 +286,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
95
286
|
|
|
96
287
|
### Fixed
|
|
97
288
|
|
|
289
|
+
- `pica_sync_placements_cite` no longer answers 404 on every call: the SDK
|
|
290
|
+
posted to `/sync-placements/{id}/sources`, a route that never existed; it
|
|
291
|
+
now posts to `/cite` (needs the matching `@withpica/mcp-sdk` fix). The
|
|
292
|
+
sync-placement item routes also required `read:sync_placements` /
|
|
293
|
+
`write:sync_placements`, scopes no key can hold, so only `admin` keys got
|
|
294
|
+
through; they now require `read:agreements` / `write:agreements`, the
|
|
295
|
+
scopes these tools declare.
|
|
296
|
+
- `pica_physical_assets_inspect`'s `market` section no longer fails on every
|
|
297
|
+
call (the SDK sent GET to a POST-only route). Because that section asks an
|
|
298
|
+
AI model for a price estimate each time it runs, it is no longer part of
|
|
299
|
+
"omit sections for everything": it runs only when `sections` names
|
|
300
|
+
`market`, and needs a key with `write:catalog` (or `admin`).
|
|
98
301
|
- `pica_integrity_waive`'s `gap_code` enum now lists `WORK_SPLITS_ABSENT` and
|
|
99
302
|
`WORK_SPLITS_INVALID`, which the app has accepted since 2026-08-16.
|
|
100
303
|
- **`pica_rights_statements`** (read:finances) — ADR-321 Phase 3, COMPUTED NOT
|
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
|
+
349 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
|
|
|
@@ -73,7 +73,7 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
|
|
|
73
73
|
|
|
74
74
|
**people** — manage people in your catalog
|
|
75
75
|
|
|
76
|
-
`pica_people_query`, `pica_people_inspect`, `pica_people_create`, `pica_people_update`, `pica_people_delete`, `pica_people_bulk_delete`, `pica_people_bulk_update_roles`, `pica_people_bulk_add_tags`, `pica_group_add_member`, `pica_group_remove_member`, `pica_group_list_members`, `pica_person_list_groups`, `pica_artist_projects`
|
|
76
|
+
`pica_people_query`, `pica_people_inspect`, `pica_people_create`, `pica_people_update`, `pica_people_delete`, `pica_people_bulk_delete`, `pica_people_split_identity`, `pica_people_bulk_update_roles`, `pica_people_bulk_add_tags`, `pica_group_add_member`, `pica_group_remove_member`, `pica_group_list_members`, `pica_person_list_groups`, `pica_artist_projects`, `pica_profile_claims_invite`, `pica_profile_claims_status`
|
|
77
77
|
|
|
78
78
|
**groups** — manage group → member relationships on people
|
|
79
79
|
|
|
@@ -123,9 +123,9 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
|
|
|
123
123
|
|
|
124
124
|
`pica_find_duplicates`, `pica_merge_duplicates`
|
|
125
125
|
|
|
126
|
-
**import** — import catalog data from files and streaming services
|
|
126
|
+
**import** — import catalog data from files and streaming services, and see what happened to emails forwarded to PICA
|
|
127
127
|
|
|
128
|
-
`pica_import_fields`, `pica_import_template`, `pica_import_analyze`, `pica_import_validate`, `pica_import_execute`, `pica_import_streaming_link`, `pica_import_documents_query`, `pica_import_documents_inspect`, `pica_import_youtube_link`, `pica_ingest_statement`
|
|
128
|
+
`pica_import_fields`, `pica_import_template`, `pica_import_analyze`, `pica_import_validate`, `pica_import_execute`, `pica_import_streaming_link`, `pica_import_documents_query`, `pica_import_documents_inspect`, `pica_import_emails_query`, `pica_import_youtube_link`, `pica_ingest_statement`
|
|
129
129
|
|
|
130
130
|
**export** — export catalog data in various formats
|
|
131
131
|
|
|
@@ -229,7 +229,7 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
|
|
|
229
229
|
|
|
230
230
|
**recording splits** — manage recording (master) splits between contributors
|
|
231
231
|
|
|
232
|
-
`pica_recording_splits_list`, `pica_recording_splits_create`, `pica_recording_splits_verify`, `pica_split_sheet_generate`, `pica_recording_credits_update`
|
|
232
|
+
`pica_recording_splits_list`, `pica_recording_splits_create`, `pica_recording_splits_update`, `pica_recording_splits_end`, `pica_recording_splits_verify`, `pica_split_sheet_generate`, `pica_recording_credits_update`
|
|
233
233
|
|
|
234
234
|
**royalties statements** — view royalties and ingested statements
|
|
235
235
|
|
|
@@ -293,4 +293,4 @@ Read tools are annotated read-only and are safe to call freely. Write tools repo
|
|
|
293
293
|
|
|
294
294
|
---
|
|
295
295
|
|
|
296
|
-
Generated for `@withpica/mcp-server@2.
|
|
296
|
+
Generated for `@withpica/mcp-server@2.101.0`. © 2024-2026 Withpica Ltd. All rights reserved. MIT licensed.
|