@withpica/mcp-server
Version:
MCP Server for withPICA — enables AI assistants to interact with your withPICA music catalog
52 lines • 2.23 kB
TypeScript
/**
* Split Sheets & Recording Splits Tools
* MCP tools for managing publishing split sheets and master recording ownership splits
*/
import { PicaClient } from "@withpica/mcp-sdk";
import { ToolDefinition, ToolExecutor } from "./index.js";
export declare class SplitSheetsTools {
private pica;
constructor(pica: PicaClient);
/**
* Get all split sheet and recording split tools
*/
getTools(): Array<{
definition: ToolDefinition;
executor: ToolExecutor;
}>;
private sendSplitSheet;
private listSplitSheets;
private generateSplitSheet;
private getSplitSheet;
private listRecordingSplits;
/**
* dry_run for pica_recording_splits_create: the row that would land, the
* shares already on the recording for the same split_type + territory, and
* `likely_refusal` when the write would be refused.
*
* It is a PREDICTION, not the guard. It restates validate_recording_splits
* (migration 20260917180000) over the listed rows: an ended new row is not
* checked; otherwise the active shares other than this person's own row plus
* this share must not pass 100% (compared in hundredths, as numeric(5,2)
* stores them — a float sum of 36.06 + 35.24 + 21 + 7.7 is not over 100).
* The total is checked BEFORE the unique key, the order the database uses,
* so a share that is both over 100% and on a taken key predicts
* RECORDING_SPLIT_TOTAL_EXCEEDED, as the write answers. Not seen: rows past
* the list route's 100-row cap, and any later change to the trigger. Pinned
* against the real write by pica-holdout-tests
* scenarios/catalog/recording-split-readd-is-not-a-refusal.spec.ts (case 7)
* and split-sheets.test.ts.
*/
private previewRecordingSplit;
private createRecordingSplit;
private verifyRecordingSplit;
/**
* Turn the edit / end route's envelope into the tool result. The message
* says plainly when a confirmation was cleared, because the agent has to
* tell the user the holder must confirm again.
*/
private editResult;
private updateRecordingSplit;
private endRecordingSplit;
}
//# sourceMappingURL=split-sheets.d.ts.map