@withpica/mcp-server
Version:
MCP Server for withPICA — enables AI assistants to interact with your withPICA music catalog
42 lines • 1.95 kB
TypeScript
/**
* Recording Custody MCP Tools — ADR-262
*
* Two tools exposing the master-side chain of custody for recordings (the
* CONTROL chain). Thin wrappers around this.pica.recordingCustody.* which
* calls the HTTP routes under /api/admin/recording-custody/.
*
* Tools:
* pica_recording_custody_assign — transfer custody of a recording (write)
* pica_recording_provenance — read the custody legs + origin credits (read)
*
* RBAC + org-scoping (enforced at the HTTP route layer, see
* app/api/admin/recording-custody/*):
* assign → admin/owner only; route verifies the recording belongs to
* the caller's org before touching recording_custodians
* provenance → any authenticated org member; same org-ownership check
*
* Transfer types (ADR-268 WS5 completed the ownership layer):
* delivery | license | admin_grant — control/possession; ownership unchanged.
* assignment | full_transfer — OWNERSHIP moves: the transferor's active
* master ownership era closes and the transferee's opens (recording_splits,
* append-only, same transaction). Partial transfers that cannot determine
* whose share moves, or that exceed the transferor's share, are refused
* (honest-gap rule — never silently lossy). Credits never move. A transfer
* to the party who already holds every active owner row moves nothing
* (migration 20260926143000, ops issue ef63bd25) — only the leg is written.
*
* Pricing: FREE. ADR-162 deprecates credit gating as a user-facing concept.
*/
import { PicaClient } from "@withpica/mcp-sdk";
import type { ToolDefinition, ToolExecutor } from "./index.js";
export declare class RecordingCustodyTools {
private pica;
constructor(pica: PicaClient);
getTools(): Array<{
definition: ToolDefinition;
executor: ToolExecutor;
}>;
private assign;
private provenance;
}
//# sourceMappingURL=recording-custody.d.ts.map