{"server":{"name":"PrismClip","version":"1.0.0","transport":"streamable_http","endpoint":"https://prismclip.com/mcp"},"authentication":{"required":true,"primary":"oauth2","alternatives":["api_key"],"authorizationServer":"https://prismclip.com/.well-known/oauth-authorization-server","protectedResource":"https://prismclip.com/.well-known/oauth-protected-resource/mcp","description":"Connect with PrismClip OAuth. API-key Bearer tokens remain available for manually managed and headless MCP clients."},"capabilities":{"tools":{"list_projects":{"name":"list_projects","title":"List projects","description":"List active projects owned by the API-key account in reverse creation order. Use the returned opaque cursor to read the next page.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"create_direct_upload":{"name":"create_direct_upload","title":"Create direct upload","description":"Create an owned project for a local media file and return bounded multipart upload instructions. Upload every part with the returned upload ID, retain each ETag, then complete the session.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},"get_project":{"name":"get_project","title":"Get project","description":"Retrieve processing state and media metadata for one active project owned by the API-key account.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"complete_direct_upload":{"name":"complete_direct_upload","title":"Complete direct upload","description":"Complete an owned multipart upload after every part succeeds. Provide the returned ETags in sequential order and send the upload session ID in X-PrismClip-Upload-Id.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},"cancel_direct_upload":{"name":"cancel_direct_upload","title":"Cancel direct upload","description":"Abort an active multipart upload owned by the API-key account and mark its project cancelled. Send the upload session ID in X-PrismClip-Upload-Id.","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},"start_youtube_import":{"name":"start_youtube_import","title":"Start YouTube import","description":"Start a best-effort import of one YouTube video into an owned PrismClip project. Availability, download permission, restrictions, and provider behavior can prevent ingestion. Retain the original source until the import completes.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"start_google_drive_import":{"name":"start_google_drive_import","title":"Start Google Drive import","description":"Start an import of one explicit Google Drive video or audio file. Public files are attempted directly. Private files use the Google Drive connection established by the account through PrismClip's normal OAuth flow; provider tokens never enter this API payload.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"get_remote_import":{"name":"get_remote_import","title":"Get remote import","description":"Read durable state, byte progress, retry attempts, and normalized failure category for an owned Google Drive or YouTube import.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"cancel_remote_import":{"name":"cancel_remote_import","title":"Cancel remote import","description":"Request cancellation of an owned queued, retrying, or running Google Drive or YouTube import. Running work observes the durable cancellation request between bounded transfer parts.","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},"search_library":{"name":"search_library","title":"Search library","description":"Search active owned projects across filenames, generated summaries, transcript words, and completed visual scene descriptions. Results identify which evidence sources matched and use a stable cursor.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"get_transcript_passage":{"name":"get_transcript_passage","title":"Get transcript passage","description":"Retrieve a bounded passage of source-relative transcript words and exact timing from an owned project. Paginate with nextAfterOrdinal or constrain the result to a source time window.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"get_visual_scenes":{"name":"get_visual_scenes","title":"Get visual scenes","description":"Retrieve a bounded page of source-relative scenes from the latest completed full visual analysis for an owned project, including the analysis ID, model, duration, and timestamps needed for provenance.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"create_moment_set":{"name":"create_moment_set","title":"Create moment set","description":"Create and activate a ready moment set from ordered source ranges backed by transcript words, visual scenes, or both. PrismClip validates every citation against the owned project's stored evidence and preserves caption corrections.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},"get_moment_set":{"name":"get_moment_set","title":"Get moment set","description":"Retrieve an owned moment set and its ordered evidence-backed passages, including caption corrections and durable state.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"revise_moment_passages":{"name":"revise_moment_passages","title":"Revise moment passages","description":"Replace the passages of an owned moment set using the same evidence and caption validation as the Studio review UI. Revisions are immutable: PrismClip creates and activates a new ready moment set and returns the prior ID.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},"queue_render":{"name":"queue_render","title":"Queue render","description":"Queue a durable MP4 render from the active owned moment set. Choose an aspect ratio, framing, captions, transition, and an optional ordered passage subset.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},"get_render":{"name":"get_render","title":"Get render","description":"Retrieve durable render status, progress, settings, preview and download URLs, and source provenance identifiers for an owned render.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"remove_render":{"name":"remove_render","title":"Cancel or delete render","description":"Cancel an active owned render or delete a terminal render when no feed submission depends on it.","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},"create_feed_submission":{"name":"create_feed_submission","title":"Create feed submission","description":"Send a completed owned 9:16 render into PrismClip's human moderation workflow. The submission captures immutable source, evidence, render, transcript, and analysis provenance. Rights confirmation is required.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},"get_feed_submission":{"name":"get_feed_submission","title":"Get feed submission","description":"Read the durable state and public metadata of an owned feed submission. Moderation notes and internal review fields are excluded.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"revise_feed_submission":{"name":"revise_feed_submission","title":"Revise feed submission","description":"Replace the public title and category of an owned pending feed submission. Review status, withdrawal, approval, rejection, and publication remain human control-panel operations.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"auto_pick_clips":{"name":"auto_pick_clips","title":"Auto-pick clips","description":"Queue 1–12 independent 15–30 second clip suggestions from an owned project's completed visual timeline. The operation is asynchronous and safely replayed with the same Idempotency-Key.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"get_auto_pick_job":{"name":"get_auto_pick_job","title":"Get auto-pick job","description":"Read an owned automatic clip-selection job. Completed jobs include their candidate moments.","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"resources":{"prismclip://guides/workflow":{"uri":"prismclip://guides/workflow","title":"PrismClip workflow","description":"How to move from an owned source recording to reviewed clip outputs.","mimeType":"text/markdown"},"prismclip://guides/source-selection":{"uri":"prismclip://guides/source-selection","title":"Choose a source","description":"Choose between local upload, Google Drive, and best-effort YouTube import.","mimeType":"text/markdown"},"prismclip://guides/evidence-and-moments":{"uri":"prismclip://guides/evidence-and-moments","title":"Evidence and moments","description":"Use transcript, visual, and mixed evidence to choose complete moments.","mimeType":"text/markdown"},"prismclip://guides/jobs-and-idempotency":{"uri":"prismclip://guides/jobs-and-idempotency","title":"Jobs and idempotency","description":"Poll durable jobs and retry safely.","mimeType":"text/markdown"},"prismclip://guides/rendering-and-review":{"uri":"prismclip://guides/rendering-and-review","title":"Rendering and review","description":"Choose output settings and retain human review.","mimeType":"text/markdown"},"prismclip://guides/errors-and-recovery":{"uri":"prismclip://guides/errors-and-recovery","title":"Errors and recovery","description":"Respond to validation, provider, rate-limit, and processing failures.","mimeType":"text/markdown"}}},"instructions":"Read prismclip://guides/source-selection before ingestion and prismclip://guides/workflow before a multi-step clipping workflow. Local upload is the most reliable source path, Google Drive is preferred for remote sources, and YouTube import is best-effort."}