@withpica/mcp-server
Version:
MCP Server for withPICA — enables AI assistants to interact with your withPICA music catalog
34 lines • 1.62 kB
TypeScript
export interface RecoveryHint {
error_code: string;
suggestion: string;
next_tool?: string;
}
export declare const RECOVERY_HINTS: Record<string, RecoveryHint[]>;
/**
* Tools that are intentionally NOT in `RECOVERY_HINTS` despite being
* `mutating` or `destructive`. Read by the lint at
* `scripts/lint-mcp-tools.ts` (ADR-180 Rule 10) — every mutating/
* destructive tool must either appear in `RECOVERY_HINTS` or here.
*
* Three buckets:
*
* `rich_response`: returns a structured response shape that already
* carries the "what next" affordance. The resolver tools populate
* `recovery_hints: string[]` on the response itself; import/export
* tools return a structured download envelope; cascade runners are
* fire-and-forget; the upload pair returns presigned-URL state.
*
* `terminal`: no plausible recovery. One-shot tools, idempotent acks,
* or validation-only writes whose only failure mode is a clear schema
* error the agent can fix from the error message alone.
*
* `dispatcher`: discriminated-branch tool that is a renaming candidate
* per the agreement-types audit. Adding hints to the dispatcher would
* be wasted work if the tools split.
*
* If a tool is added to `RECOVERY_HINTS`, remove it from here. The lint
* emits a stale-skip warning when both are populated for the same tool.
*/
export declare const INTENTIONALLY_SKIPPED: ReadonlyMap<string, "rich_response" | "terminal" | "dispatcher">;
export declare function getRecoveryHint(toolName: string, errorCode: string): RecoveryHint | undefined;
//# sourceMappingURL=recovery-hints.d.ts.map