Skip to content

Brix36

by brix36.com · remote · no sign-in to list tools · v0.2.0 · published by com.brix36

Films and music videos. You're the star. No subscription.

Deletes · 26Changes · 49

115 tools: 26 can delete or cancel things, 49 change things and 40 only read.

Scanned Oct 21, 2026

10 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http brix36 https://api.brix36.com/mcp

Findings

Matches of fixed checks, with the text they matched.

9 warn1 info
  • The server marks "studio_artist_photo" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "return": a word for reading.

    What this check looks for
  • The server marks "studio_media_upload_widget" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_media_upload_widget" says "upload": a word for a change.

    What this check looks for
  • The server marks "studio_storyboard_redo_request" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_storyboard_redo_request" says "request": a word for a change.

    What this check looks for
  • The server marks "studio_account_links_read" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_account_links_read" says "link": a word for a change.

    What this check looks for
  • The server marks "studio_ready_made_stars_list" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_ready_made_stars_list" says "star": a word for a change.

    What this check looks for
  • The server marks "studio_reference_upload_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_reference_upload_link" says "upload": a word for a change.

    What this check looks for
Show 4 more findings
  • The server marks "studio_storyboard_prepare" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "validate": a word for reading.

    What this check looks for
  • The server marks "studio_copy_read" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_copy_read" says "copy": a word for a change.

    What this check looks for
  • The server marks "studio_motion_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_motion_preview" says "preview": a word for reading.

    What this check looks for
  • The input schema at properties.url.description mentions "credentials".

    Matched text

    inputSchema.properties.url.description: "...HTTPS media URL, port 443, without user credentials."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

115 tools

Deletes or cancels 26Claude Code: deny
  • studio_artist_deletePermanently erases an artist and their projects, storyboards, references and identity photos.No findings

    Why it is in this group

    • The name "studio_artist_delete" says "delete": a word for removing or ending something.
    • The description says "Permanently erases".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently erases an artist and their projects, storyboards, references and identity photos. Requires catalogue-owner access, the customer's deletion request and their exact current artist name as confirmation. In-flight work or payments prevent deletion. Returns artist=deleted and queued purge counts; external erasure is asynchronous.

    Annotations the server declares

    • title: Delete Brix36 artist
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_reference_deleteRemove one identity reference photo using the app service.No findings

    Why it is in this group

    • The name "studio_artist_reference_delete" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove one identity reference photo using the app service. Requires artist-level permission and the customer choosing this specific photo. Returns the updated identity pack. This can affect future likeness generation; older pinned projects keep their existing rules.

    Annotations the server declares

    • title: Remove artist photo
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_reference_pack_confirmPlaces the one quoted reference-pack purchase only after the customer has explicitly approved the exact credits in this chat.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Places the one quoted reference-pack purchase only after the customer has explicitly approved the exact credits in this chat. Takes the exact operationId, quoteToken, quotedCredits and priceVersion from the quote (and the same look inputs); an existing Brix36 approval code is accepted as confirmationToken instead. Identical retries return the first outcome and never charge twice. status still_checking keeps the original operation; an identical later call returns its outcome without a new price.

    Annotations the server declares

    • title: Buy the approved artist reference pack
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • studio_film_add_lineAdd one finished dialogue line to a scene and return its lineId.No findings

    Why it is in this group

    • The name "studio_film_add_line" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Add one finished dialogue line to a scene and return its lineId. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Add a Film dialogue line
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_assign_actorAssign one available artist to one saved dialogue line.No findings

    Why it is in this group

    • The name "studio_film_assign_actor" says "assign": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Assign one available artist to one saved dialogue line. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Assign a Film dialogue actor
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_direction_setReplace one scene’s direction and reference pictures.No findings

    Why it is in this group

    • The name "studio_film_direction_set" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Replace one scene’s direction and reference pictures. A null sceneIndex with empty text binds whole-Film references. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Set Film direction and reference pictures
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_edit_lineReplace the text of one saved dialogue line.No findings

    Why it is in this group

    • The name "studio_film_edit_line" says "edit": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Replace the text of one saved dialogue line. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Replace a Film dialogue line
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_remove_lineRemove one saved dialogue line.No findings

    Why it is in this group

    • The name "studio_film_remove_line" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove one saved dialogue line. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Remove a Film dialogue line
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_set_durationSet one scene’s duration, normalized to 4–30 seconds; later scenes move to follow it.No findings

    Why it is in this group

    • The name "studio_film_set_duration" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Set one scene’s duration, normalized to 4–30 seconds; later scenes move to follow it. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Set Film scene duration
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_set_lip_syncSet the lip-sync choice for one saved scene.No findings

    Why it is in this group

    • The name "studio_film_set_lip_sync" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Set the lip-sync choice for one saved scene. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Set Film scene lip sync
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_set_speech_voiceSet the saved-character or native speech voice choice for one character in one scene.No findings

    Why it is in this group

    • The name "studio_film_set_speech_voice" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Set the saved-character or native speech voice choice for one character in one scene. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Set a Film character’s scene voice
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_toggle_cameraToggle whether one dialogue line’s speaker is on camera.No findings

    Why it is in this group

    • The name "studio_film_toggle_camera" says "toggle": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Toggle whether one dialogue line’s speaker is on camera. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Toggle a Film speaker’s visibility
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_toggle_soundToggle one Film music, background or effects layer.No findings

    Why it is in this group

    • The name "studio_film_toggle_sound" says "toggle": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Toggle one Film music, background or effects layer. Uses expectedRevision, the current saved Film plan revision, and a stable operationId; identical operationId/input retries reconcile the same edit. No model call or credit charge.

    Annotations the server declares

    • title: Toggle a Film sound layer
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_generation_confirmSpends Brix36 credits and starts the quoted work under the customer's financial approval.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Spends Brix36 credits and starts the quoted work under the customer's financial approval. In chat mode, stage:pictures records one approval for pictures and video using the original operationId, quoteToken, priceVersion, quotedCredits and revisionId. Insufficient balance returns balance, shortfall and creditsInformationUrl without a checkout. Stage:video uses the current picture revision and the same financial approval, subject to the existing readiness gates. Identical stage and argument retries reconcile the same operation. New authorizations retain pause/cap, OAuth studio.spend, account and exact-quote checks. The response waits up to 45 seconds for the started stage and includes current progress, a finished video link when available, or the free status-call arguments for work still rendering. Existing page-approved operations and confirmationToken codes remain supported.

    Annotations the server declares

    • title: Start a generation the customer approved
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • studio_image_confirmSpends Brix36 credits and starts one picture under the customer's financial approval of the exact quoted draftId and quoteId.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Spends Brix36 credits and starts one picture under the customer's financial approval of the exact quoted draftId and quoteId. Identical retries return the same operation without another charge.

    Annotations the server declares

    • title: Make the approved picture
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • studio_motion_confirmStarts the exact paid server render after the customer explicitly approves its quoted price.No findings

    Why it is in this group

    • The description's first verb is "start": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Starts the exact paid server render after the customer explicitly approves its quoted price. Chat approval returns operationId, quoteToken, revisionId, inputDigest and quotedCredits unchanged from the quote. Existing Brix36 confirmationToken codes remain supported as a separate flow. The server enforces spending permission, account policy and exact quote bindings. Identical retries reconcile the original operation. Annotations do not attest to consent or guarantee a host confirmation screen.

    Annotations the server declares

    • title: Render approved Motion scene
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_project_artist_presence_setSet featured or not_featured for this project.No findings

    Why it is in this group

    • The name "studio_project_artist_presence_set" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Set featured or not_featured for this project. Featured requires pinned DNA; the existing directed-storyboard rules still apply. No generation or charge.

    Annotations the server declares

    • title: Set whether the artist appears in a video
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • studio_project_deleteArchive one video or Film using the app project deletion service after the customer requests deletion.No findings

    Why it is in this group

    • The name "studio_project_delete" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Archive one video or Film using the app project deletion service after the customer requests deletion. Requires editor permission. In-flight orders, paid work awaiting consumption and open/review-required checkouts refuse deletion. Returns deleted=true. This is separate from permanently erasing an artist or account.

    Annotations the server declares

    • title: Delete Brix36 project
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_project_dna_pinPin this artist’s currently published DNA to this project once, within its existing pin window.No findings

    Why it is in this group

    • The name "studio_project_dna_pin" says "pin": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Pin this artist’s currently published DNA to this project once, within its existing pin window. Read project state after a lost response before retrying. No generation or charge.

    Annotations the server declares

    • title: Pin current Artist DNA to a project
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • studio_reference_deleteRemove an existing image/video reference attachment from a project using the app service.No findings

    Why it is in this group

    • The name "studio_reference_delete" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove an existing image/video reference attachment from a project using the app service. Requires editor permission and the customer choosing this reference. The app removes its dependent notes and applies existing reference binding rules. Returns deleted=true; it does not delete another project reference or a song.

    Annotations the server declares

    • title: Remove customer reference
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_reference_note_updateApprove, reject or rewrite one reference note using the app service.No findings

    Why it is in this group

    • The name "studio_reference_note_update" says "update": a word for a change.
    • The input takes a statement or command to run (input.statement), which can change anything it can reach.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Approve, reject or rewrite one reference note using the app service. Rewriting records the sentence as user-authored; omitted fields stay unchanged. Returns the updated fact. Requires permission to edit its project and the customer choosing the change. No server interpretation or paid work starts.

    Annotations the server declares

    • title: Review or rewrite reference note
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_likeness_recordRecord the customer’s confirmed or rejected likeness verdict for one exact saved picture.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Record the customer’s confirmed or rejected likeness verdict for one exact saved picture. Requires the revision, shot and still asset the customer reviewed. Changes no picture and spends no credits.

    Annotations the server declares

    • title: Record the customer’s likeness verdict
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_look_acceptRecord the customer’s acceptance of the complete saved key-look picture set.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Record the customer’s acceptance of the complete saved key-look picture set. Supply the exact revision and shot/asset pairs reviewed. Changes no picture and spends no credits.

    Annotations the server declares

    • title: Record the customer’s look acceptance
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_picture_changes_preparePrices requested picture changes by original projectId/operationId, a new requestId and selected stableShotIds.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Prices requested picture changes by original projectId/operationId, a new requestId and selected stableShotIds. New approvals produce separate picture-only quotes containing operationId, quoteToken, revisionId, modelId, mode, priceVersion and totalCredits. Identical requestId retries return the original quotes. Historical approvals can complete their previously approved paid picture changes. No charge for quoting.

    Annotations the server declares

    • title: Prepare selected storyboard picture changes
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • studio_storyboard_stills_confirmSpends Brix36 credits for exactly the approved quoted pictures.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Spends Brix36 credits for exactly the approved quoted pictures. Chat mode requires the quote's unchanged projectId, revisionId, mode, operationId, quoteToken, modelId, priceVersion and quotedCredits. Insufficient balance returns balance, shortfall and creditsInformationUrl without a checkout. Durable purchase/job reconciliation makes identical retries safe, including after expiry. Legacy confirmationToken remains supported. No video authorization or planning-model call.

    Annotations the server declares

    • title: Make the confirmed storyboard pictures
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • studio_video_planCreates or updates a film or music-video project, saves its script or storyboard, and returns a price quote without charging.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Creates or updates a film or music-video project, saves its script or storyboard, and returns a price quote without charging. Film input contains the finished script, language, cast and visualWorld. Music input contains sections, visualWorld and optional songUnderstanding. start identifies a new project; projectId identifies an existing one. A music project without a song returns state needs_song and its projectId; planning can continue on that project after its song upload. The result contains the project, saved plan and quote. Identical operationId and input retries return the same project and quote. Rendering is separate and requires the customer's approval of the quoted price.

    Annotations the server declares

    • title: Plan a music video or film and get its price (one approval)
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
Changes things 49Claude Code: ask
  • studio_ai_sharing_chooseRecords the person's own answer to the AI-sharing question after a creation tool returned ai_processing_choice_required.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Records the person's own answer to the AI-sharing question after a creation tool returned ai_processing_choice_required. allowed true means Allow and false means Not now. Consent counts only as that explicit reply; it is never inferred from the request to create and never supplied on the person's behalf. supersedes is the sequence that refusal returned (null when it was unset). Returns the stored answer; nothing is created or charged.

    Annotations the server declares

    • title: Record the AI-sharing answer
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_cover_setSets an existing passed DNA photograph as the artist cover; referenceId:null restores automatic cover selection.No findings

    Why it is in this group

    • The name "studio_artist_cover_set" says "set": a word for a change.
    Description, as the server wrote it
    Sets an existing passed DNA photograph as the artist cover; referenceId:null restores automatic cover selection. Requires artist permission and expectedRevision from the current profile. Returns profile and revision; creates no image.

    Annotations the server declares

    • title: Choose artist cover photo
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_artist_createCreates an artist through the app service and returns profile and revision.No findings

    Why it is in this group

    • The name "studio_artist_create" says "create": a word for a change.
    Description, as the server wrote it
    Creates an artist through the app service and returns profile and revision. Name is required; photos use dedicated upload/reference tools. catalogueArtistId optionally selects a manageable catalogue through an existing artist. Creation has no replay receipt; the artist list exposes persisted results after an uncertain response. No generation or charge.

    Annotations the server declares

    • title: Create Brix36 artist
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_artist_dna_writeSaves customer-authored or approved creative facts as a new published Artist DNA version, preserving facts pinned by older projects.No findings

    Why it is in this group

    • The name "studio_artist_dna_write" says "write": a word for a change.
    Description, as the server wrote it
    Saves customer-authored or approved creative facts as a new published Artist DNA version, preserving facts pinned by older projects. baseVersionId identifies the current version, or null when absent. Returns versionId and facts. Facts apply at once and need no pin. Requires manager permission; no language model or credit charge.

    Annotations the server declares

    • title: Save artist creative facts
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_artist_photoReturns an artist-photo upload widget and a one-time fallback uploadUrl.1 finding

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "studio_artist_photo" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "return": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Returns an artist-photo upload widget and a one-time fallback uploadUrl. File bytes go directly to Brix36. Repeated calls return the same link or report an existing photo. No charge.

    Annotations the server declares

    • title: Upload the artist photo in the chat
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_ready_made_chooseSaves one Brix36 ready-made fictional portrait on an existing artist using the same service as the app.No findings

    Why it is in this group

    • The description's first verb is "save": a word for a change.
    Description, as the server wrote it
    Saves one Brix36 ready-made fictional portrait on an existing artist using the same service as the app. Requires artist permission and a current starId from the ready-made star list. Returns the saved reference pack and whether it was newly created; choosing the same star retains the existing pack. No image generation or credit charge. Current generation readiness is read separately from the artist list.

    Annotations the server declares

    • title: Choose a free ready-made character
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_reference_addAdds a customer photograph to Artist DNA through screened identity-reference services.No findings

    Why it is in this group

    • The name "studio_artist_reference_add" says "add": a word for a change.
    Description, as the server wrote it
    Adds a customer photograph to Artist DNA through screened identity-reference services. Inline input accepts canonical base64, MIME type and angle up to 512 KiB. Larger files have dedicated upload/app paths. Validates and deduplicates bytes under existing face-source/publication rules. Returns pack and created flag. No image generation.

    Annotations the server declares

    • title: Add existing artist photo
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_reference_pack_quotePrices the artist's missing reference views (photo_pack) or invented look (look) with the same signed price the Brix36 app shows.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Prices the artist's missing reference views (photo_pack) or invented look (look) with the same signed price the Brix36 app shows. Charges nothing. Returns creditAmount, operationId, quoteToken, priceVersion and approvalExpiresAt. Approval of the exact credits takes place in this chat; no link is created. When nothing can be offered, says so without claiming their references are complete. Creating an artist stays free.

    Annotations the server declares

    • title: Price an artist's missing reference pack
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_updateUpdates supplied artist profile fields with expectedRevision from the current profile.No findings

    Why it is in this group

    • The name "studio_artist_update" says "update": a word for a change.
    Description, as the server wrote it
    Updates supplied artist profile fields with expectedRevision from the current profile. Returns the updated profile and revision; conflicting edits are refused. Photos, voices, identity kind and Film casting have separate operations.

    Annotations the server declares

    • title: Update Brix36 artist
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_artist_voice_chooseAssigns an offered ready-made voice from the voice library through a durable revision-bound operation.No findings

    Why it is in this group

    • The description's first verb is "assign": a word for a change.
    Description, as the server wrote it
    Assigns an offered ready-made voice from the voice library through a durable revision-bound operation. voiceId is an opaque catalogue ID and expectedRevision is the current voice revision, or null when no voice exists. May add a shared library voice; creates no speech and debits no credits. Film speech requires its separate quoted financial approval. Identical operation retries retain identity.

    Annotations the server declares

    • title: Assign an offered character voice
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • studio_artist_voice_recordCreates and selects an artist's own speaking voice from an owned confirmed audio sampleAssetId, typically 30–120 seconds.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Creates and selects an artist's own speaking voice from an owned confirmed audio sampleAssetId, typically 30–120 seconds. App recording validation, durable operation, provider admission and daily spend guards apply. Setup cost is included in the artist's first Film quote; this call debits no customer credits. Identical operation/input retries reconcile the saved effect. Unconfigured cloning refuses before provider work. This voice is for Film dialogue, not song singing.

    Annotations the server declares

    • title: Use my voice for this artist
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • studio_copy_readRead an owned saved customer-AI text version without generating or charging.1 finding

    Why it is in this group

    • The name "studio_copy_read" says "copy": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "studio_copy_read" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_copy_read" says "copy": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Read an owned saved customer-AI text version without generating or charging.

    Annotations the server declares

    • title: Read saved text variations
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_copy_saveSaves finished customer-authored headline/caption drafts and supporting source facts as a free text version.No findings

    Why it is in this group

    • The name "studio_copy_save" says "copy": a word for a change.
    Description, as the server wrote it
    Saves finished customer-authored headline/caption drafts and supporting source facts as a free text version. Identical source/revision/result inputs return the saved version. No Brix36 language-model request, publishing or credit charge.

    Annotations the server declares

    • title: Save my AI’s text variations
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_scenes_writeSaves finished Film scenes, visualWorld, camera directions and dialogue against the current revision.No findings

    Why it is in this group

    • The name "studio_film_scenes_write" says "write": a word for a change.
    Description, as the server wrote it
    Saves finished Film scenes, visualWorld, camera directions and dialogue against the current revision. Scenes form 30-second cards, with at most six spoken lines per card and five minutes per Film. Identical operationId/input retries return the saved result. visualWorld is required for quoting. No Brix36 planning model, media generation or credit charge.

    Annotations the server declares

    • title: Save finished Film scenes
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_script_writeImports finished screenplay-style Film text, with SCENE headings, NAME: dialogue and optional visualWorld.No findings

    Why it is in this group

    • The name "studio_film_script_write" says "write": a word for a change.
    • The input takes a statement or command to run (input.script), which can change anything it can reach.
    Description, as the server wrote it
    Imports finished screenplay-style Film text, with SCENE headings, NAME: dialogue and optional visualWorld. Preserves scenes, dialogue and speaker names, caps Film at five minutes and reports uncast speakers. Identical retries return the same plan. A visualWorld is required for quoting. No Brix36 planning model or credit charge.

    Annotations the server declares

    • title: Import a finished Film script
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_generation_quotePrices missing storyboard pictures plus the exact video price for one run without spending credits.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Prices missing storyboard pictures plus the exact video price for one run without spending credits. Returns totalCredits, totalGbpInclVat, balance, shortfall, signed quoteToken, operationId, revisionId and priceVersion. engineRecommendations contains server-ranked choices, current selections and quoted alternatives; section engine selection returns a revised quote. Film quotes include per-character, per-scene speech, motion and lip-sync routes, or historical_unavailable when prior evidence is absent. Chat-mode confirmation uses these exact quote fields. The saved financial approval covers pictures and video; requested picture changes have separate quotes. No checkout or approval-page URL is created. Existing app approvals and issued codes remain supported.

    Annotations the server declares

    • title: Price a generation (nothing is charged)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_image_quotePrices one standalone picture from a text prompt and optional owned uploads, using the same pricing as the Brix36 create box.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Prices one standalone picture from a text prompt and optional owned uploads, using the same pricing as the Brix36 create box. Returns the exact credits and price with draftId and quoteId. Nothing is generated or charged.

    Annotations the server declares

    • title: Price a picture
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_media_import_urlImport a public HTTPS song, artist photo or reference into the same private attachment pipeline as an upload.1 finding

    Why it is in this group

    • The name "studio_media_import_url" says "import": a word for a change.

    Findings

    • Info

      The input schema at properties.url.description mentions "credentials".

      Matched text

      inputSchema.properties.url.description: "...HTTPS media URL, port 443, without user credentials."

      What this check looks for
    Description, as the server wrote it
    Import a public HTTPS song, artist photo or reference into the same private attachment pipeline as an upload. projectId is optional in the schema but required to attach media: omission returns guidance to select a project, never another user project. Refuses private/loopback destinations, unsafe redirects, DNS rebinding, invalid file types, oversized downloads and slow sources. Song/photo replacement rules remain unchanged. Identical reference bytes in the same project replay the existing asset. Returns assetId and status; no provider or language model is called.

    Annotations the server declares

    • title: Import public HTTPS media
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • studio_media_upload_urlCreates an HTTPS POST upload capability bound to the user, project, role, exact file metadata and SHA-256, expiring in 15 minutes.No findings

    Why it is in this group

    • The name "studio_media_upload_url" says "upload": a word for a change.
    Description, as the server wrote it
    Creates an HTTPS POST upload capability bound to the user, project, role, exact file metadata and SHA-256, expiring in 15 minutes. Returns uploadUrl, uploadToken, method and expiresAt. The upload accepts raw bytes with the declared MIME Content-Type; attachment status is confirmed separately. No file bytes pass through MCP and no generation credits are spent.

    Annotations the server declares

    • title: Prepare a signed file upload
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_media_upload_widgetOpens a file picker for a song, artist photo or image/video reference on the specified project.1 finding

    Why it is in this group

    • The name "studio_media_upload_widget" says "upload": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "studio_media_upload_widget" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_media_upload_widget" says "upload": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Opens a file picker for a song, artist photo or image/video reference on the specified project. The customer selects the file; bytes go directly to Brix36. No paid work.

    Annotations the server declares

    • title: Upload a file in chat
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_motion_createSaves a ready server-rendered Motion scene and returns its exact paid-render quote plus an optional free first-frame preview.No findings

    Why it is in this group

    • The name "studio_motion_create" says "create": a word for a change.
    Description, as the server wrote it
    Saves a ready server-rendered Motion scene and returns its exact paid-render quote plus an optional free first-frame preview. Supports lyric video, beat-reactive visualiser, kinetic titles, photo-motion poster, promo cards, the 6 music/lyric/visualiser templates (lyric_video, audio_visualiser, living_cover, kinetic_type, club_tunnel, organic_landscape) across 7 genre looks (pop, hiphop_drill, rnb, house_edm, rock, country_acoustic, afrobeats), and all 24 popular motion styles (styleId). Uses owned audio and picture asset IDs; saved song timing supplies lyric cues and the saved scene can be edited. No AI video model or paid render is called. requestId identifies the saved document across retries. Each returned quote has its own identity; rendering requires explicit customer approval bound to that quote.

    Annotations the server declares

    • title: Create Motion Graphics
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_motion_previewGenerate a free bounded first-frame image of this exact saved revision, maximum 640px long side.1 finding

    Why it is in this group

    • The name "studio_motion_preview" says "preview": a word for reading.
    • The description's first verb is "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "studio_motion_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_motion_preview" says "preview": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Generate a free bounded first-frame image of this exact saved revision, maximum 640px long side. No LLM, render debit or full free movie. Preview is not an approval or a priced render.

    Annotations the server declares

    • title: Preview Motion first frame
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_motion_restoreRestores a saved scene as a new revision with optimistic version checking.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Restores a saved scene as a new revision with optimistic version checking. Original versions and media remain intact. Prior quotes become stale; further paid rendering requires a quote for the restored revision.

    Annotations the server declares

    • title: Restore a Motion version
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_motion_updateSaves typed MotionSceneV1 with exact words, cue frame ranges and owned asset IDs.No findings

    Why it is in this group

    • The name "studio_motion_update" says "update": a word for a change.
    Description, as the server wrote it
    Saves typed MotionSceneV1 with exact words, cue frame ranges and owned asset IDs. Accepts typed layers and approved fonts; HTML, JS, CSS and URLs are not scene inputs. First save creates an opaque documentId with expectedRevision 0; edits bind the current expectedRevision. Conflicts preserve the newer saved version. No Brix36 language model is called.

    Annotations the server declares

    • title: Save Motion scene
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_motion_useAdd the exact finished Motion result to project media through normal attachment screening, preserving original assets, movie orders and expected project revision.No findings

    Why it is in this group

    • The description's first verb is "add": a word for a change.
    Description, as the server wrote it
    Add the exact finished Motion result to project media through normal attachment screening, preserving original assets, movie orders and expected project revision. This does not replace or regenerate a paid movie.

    Annotations the server declares

    • title: Use Motion result
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_picture_use_uploadSets an owned uploaded photograph as a shot's original picture, bound to attachment contentHash and confirmed rights.No findings

    Why it is in this group

    • The name "studio_picture_use_upload" says "upload": a word for a change.
    Description, as the server wrote it
    Sets an owned uploaded photograph as a shot's original picture, bound to attachment contentHash and confirmed rights. Creates a canonical revision and retains earlier versions. Identical argument retries reconcile the same operation. No generation or credit charge.

    Annotations the server declares

    • title: Use my uploaded picture
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_project_palette_writeSave 0–5 unique uppercase #RRGGBB colours as exact project creative direction.No findings

    Why it is in this group

    • The name "studio_project_palette_write" says "write": a word for a change.
    Description, as the server wrote it
    Save 0–5 unique uppercase #RRGGBB colours as exact project creative direction. An empty list clears the selection. Existing work remains in history; stale revision and active work refuse safely.

    Annotations the server declares

    • title: Choose project colours
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_project_renameRenames a video or Film using expectedRevision, title and optional songTitle.No findings

    Why it is in this group

    • The name "studio_project_rename" says "rename": a word for a change.
    Description, as the server wrote it
    Renames a video or Film using expectedRevision, title and optional songTitle. Returns updated project and revision. No generation or charge.

    Annotations the server declares

    • title: Rename Brix36 project
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_ready_made_stars_listLists the same free fictional character portraits offered by the Brix36 app, with each current star ID, name, description and versioned preview image.1 finding

    Why it is in this group

    • The name "studio_ready_made_stars_list" says "star": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "studio_ready_made_stars_list" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_ready_made_stars_list" says "star": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Lists the same free fictional character portraits offered by the Brix36 app, with each current star ID, name, description and versioned preview image. Read-only; creates no artist, image, generation or charge.

    Annotations the server declares

    • title: Browse Brix36 ready-made characters
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_reference_addStores and screens an image/video reference through the app attachment service.No findings

    Why it is in this group

    • The name "studio_reference_add" says "add": a word for a change.
    Description, as the server wrote it
    Stores and screens an image/video reference through the app attachment service. Inline files are limited to 512 KiB; larger files have an app upload-link path. Returns attachment and signed preview. scope:project applies to the project; scope:shot supports later shot binding. The reference list exposes persisted results after uncertain replies. No language model or generation-credit charge.

    Annotations the server declares

    • title: Add customer reference file
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_reference_note_addSave one concrete creative instruction about a customer reference already on this project.No findings

    Why it is in this group

    • The name "studio_reference_note_add" says "add": a word for a change.
    • The input takes a statement or command to run (input.statement), which can change anything it can reach.
    Description, as the server wrote it
    Save one concrete creative instruction about a customer reference already on this project. The connected assistant does the interpretation with the customer; Brix36 validates and stores the finished sentence through the existing app fact service. Returns an approved user-authored fact. Duplicate category/sentence on the same attachment is reused. Free; no server language model is called.

    Annotations the server declares

    • title: Add assistant-authored reference note
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_release_createCreates an album, EP or single collection with title, type, year and artwork preset.No findings

    Why it is in this group

    • The name "studio_release_create" says "create": a word for a change.
    Description, as the server wrote it
    Creates an album, EP or single collection with title, type, year and artwork preset. Returns release summary and app project-creation links. Creation has no replay receipt; the artist's release list exposes saved title/type/year after an uncertain response. No language model, generation or charge.

    Annotations the server declares

    • title: Create artist release collection
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_section_engine_selectSelects an available modelName or generation profile for one quoted section and returns a revised signed quote with costEstimateId.No findings

    Why it is in this group

    • The name "studio_section_engine_select" says "select": a word for a change.
    Description, as the server wrote it
    Selects an available modelName or generation profile for one quoted section and returns a revised signed quote with costEstimateId. Film uses saved scene.index. modelName:null restores the server-ranked Recommended choice; omitted modelName preserves explicit selections. profile {aspect,resolution} is constrained to availableProfiles. Other sections retain their choices; outputs fit the project canvas without cropping. The revised quote has its own price and approval binding. operationId identifies identical selection retries. Film speech data reports the actual per-scene routes or historical_unavailable. No credits are spent and no generation starts.

    Annotations the server declares

    • title: Choose one section’s engine or generation profile and receive its quote
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_sections_set_line_syncSets lip-sync for one existing lyric line identified by section index and stable line ID.No findings

    Why it is in this group

    • The name "studio_sections_set_line_sync" says "set": a word for a change.
    Description, as the server wrote it
    Sets lip-sync for one existing lyric line identified by section index and stable line ID. sync:true means the artist mouths the line. Defaults are true for the artist's own words and false for guest/ad-lib lines. No generation or charge.

    Annotations the server declares

    • title: Set whether the artist mouths one line
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_sections_updateUpdates included, type and/or what for one existing 30-second storyboard section.No findings

    Why it is in this group

    • The name "studio_sections_update" says "update": a word for a change.
    Description, as the server wrote it
    Updates included, type and/or what for one existing 30-second storyboard section. Omitted fields remain unchanged. Timing, names and pictures are outside this operation. No generation or charge.

    Annotations the server declares

    • title: Change one section: tick, Performance/Story, or What happens
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_shot_video_references_writeBinds up to three owned uploaded 1–15 second original clips as shot motion/composition references.No findings

    Why it is in this group

    • The name "studio_shot_video_references_write" says "write": a word for a change.
    Description, as the server wrote it
    Binds up to three owned uploaded 1–15 second original clips as shot motion/composition references. Measures bytes and creates one canonical revision. Stricter model limits or unsupported driving-video inputs refuse before payment. Clips remain video references rather than sampled pictures. Empty attachmentIds clears the selection; identical retries reconcile the same write.

    Annotations the server declares

    • title: Choose shot video references
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_song_attachReturns a song upload widget and a one-time fallback uploadUrl for an existing project.No findings

    Why it is in this group

    • The name "studio_song_attach" says "attach": a word for a change.
    Description, as the server wrote it
    Returns a song upload widget and a one-time fallback uploadUrl for an existing project. File bytes go directly to Brix36. Repeated calls return the same fallback link or the existing song attachment. No charge.

    Annotations the server declares

    • title: Upload a song in the chat
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_song_reuseAttaches existing customer audio from an accessible source project to an empty target through the durable upload/analysis path.No findings

    Why it is in this group

    • The description's first verb is "attach": a word for a change.
    Description, as the server wrote it
    Attaches existing customer audio from an accessible source project to an empty target through the durable upload/analysis path. sourceAttachmentId identifies the saved song attachment. Returns attachment/asset/job IDs or already_attached for identical audio. Repeats return the existing result; different current audio refuses replacement. No arbitrary URL fetch, generated audio or language-model call.

    Annotations the server declares

    • title: Reuse an uploaded song
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_song_understanding_writeSaves finished song understanding against the current analysisId, assetId and understandingRevision.No findings

    Why it is in this group

    • The name "studio_song_understanding_write" says "write": a word for a change.
    Description, as the server wrote it
    Saves finished song understanding against the current analysisId, assetId and understandingRevision. Accepts lyrics/description, language, themes and required words/lines arrays in the timed-transcription shape; empty arrays represent unavailable genuine timing. Source text alone supplies no lip-sync timing or voice ownership. voiceAnswer represents the customer's all_me, other_voices or skipped decision. Preserves measured audio facts and returns canonical understanding with a new revision. Stale input is refused. No transcription/planning model or credit charge.

    Annotations the server declares

    • title: Save customer-authored song understanding
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_storyboard_approveRecords the customer's storyboard approval for the exact current revisionId using the app's approval service.No findings

    Why it is in this group

    • The name "studio_storyboard_approve" says "approve": a word for a change.
    Description, as the server wrote it
    Records the customer's storyboard approval for the exact current revisionId using the app's approval service. Changed revisions are refused. Directed-board and existing purchase guards remain enforced. No credits are spent and no media is generated.

    Annotations the server declares

    • title: Approve the customer’s storyboard
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_edit_promptSaves finished prompt text and existing uploaded references as an immutable storyboard revision.No findings

    Why it is in this group

    • The name "studio_storyboard_edit_prompt" says "edit": a word for a change.
    Description, as the server wrote it
    Saves finished prompt text and existing uploaded references as an immutable storyboard revision. Whole/section scope writes shared sectionDirection; shot/still scope writes frame description and optional motion/camera. References replace targeted bindings; [] clears and omission inherits. Requires the current revision. No pictures, video, planning model or credit charge.

    Annotations the server declares

    • title: Save a finished video, section or still prompt
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_storyboard_prepareValidates and saves visualWorld for an existing Music or Film storyboard at expectedRevisionId.1 finding

    Why it is in this group

    • The description's first verb is "validate": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "studio_storyboard_prepare" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "validate": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Validates and saves visualWorld for an existing Music or Film storyboard at expectedRevisionId. Preserves scenes, dialogue, timing, stable shot IDs, cast, identity choices and references. Returns ready synchronously for a valid world, or needs_visual_world with saved-scene context and schema when absent. An already-valid saved world returns ready without a new revision. No planning model, queue, generation provider or credit use.

    Annotations the server declares

    • title: Prepare the saved storyboard’s visual world
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_storyboard_redo_requestValidates a widget-selected stableShotId against the current visible storyboard and returns a request to price that picture change.1 finding

    Why it is in this group

    • The name "studio_storyboard_redo_request" says "request": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "studio_storyboard_redo_request" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "studio_storyboard_redo_request" says "request": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Validates a widget-selected stableShotId against the current visible storyboard and returns a request to price that picture change. No approval, generation or spending.

    Annotations the server declares

    • title: Request a picture redo
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_stills_quotePrices selected storyboard pictures without spending.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Prices selected storyboard pictures without spending. Supports missing pictures or new_version for exactly one existing picture, bound to the current revision, quality and stableShotIds. lookTest:true selects the saved bounded key-look set. Returns a signed picture-only quote and exact confirmation fields. Missing operationId is derived by the server; new_version uses a stable op_ ID. Chat approval and existing issued confirmation codes are supported. Short balance returns credit information only. This quote covers no video or planning model.

    Annotations the server declares

    • title: Price the storyboard pictures
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_submitValidates and saves a finished Music storyboard with one DirectedShot per fixed shot order, exact expectedRevisionId/audioAnalysisId, optional treatment and visualWorld.No findings

    Why it is in this group

    • The name "studio_storyboard_submit" says "submit": a word for a change.
    Description, as the server wrote it
    Validates and saves a finished Music storyboard with one DirectedShot per fixed shot order, exact expectedRevisionId/audioAnalysisId, optional treatment and visualWorld. Creates an immutable revision while preserving server-owned timing. visualWorld is required for quoting. No model, queue, provider or credit use.

    Annotations the server declares

    • title: Save a finished storyboard
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_storyboard_writeUpdates the supplied existing 30-second storyboard sections with what, type and included fields.No findings

    Why it is in this group

    • The name "studio_storyboard_write" says "write": a word for a change.
    Description, as the server wrote it
    Updates the supplied existing 30-second storyboard sections with what, type and included fields. The server owns section indexes, count, names, timing and pictures. All supplied edits succeed together or the prior board is restored with a refusal identifying the failed section. No generation or credit charge.

    Annotations the server declares

    • title: Write the storyboard sections the customer drafted
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_video_startCreates a Music or Film project in the customer's catalogue.No findings

    Why it is in this group

    • The name "studio_video_start" says "start": a word for a change.
    Description, as the server wrote it
    Creates a Music or Film project in the customer's catalogue. Accepts an existing artist name or a new fictional name with createArtist:true. Fictional characters require no photo or likeness consent; real-person creation retains the app consent flow. Music requires songTitle; Film requires title or songTitle and no song. Identical retries return the same project. Returns project identifiers for song upload or Film script import. No generation or charge.

    Annotations the server declares

    • title: Start a music video or film for this customer
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 40Claude Code: allow
  • studio_account_readRead the connected customer account and its current catalogue memberships.No findings

    Why it is in this group

    • The name "studio_account_read" says "read": a word for reading.
    Description, as the server wrote it
    Read the connected customer account and its current catalogue memberships. Returns user details and up to 50 catalogues with roles. The connection determines identity; no account or workspace argument is accepted. Free.

    Annotations the server declares

    • title: Read Brix36 account
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_actor_readReturns an existing artist's Film castId, identity readiness and Film creation link.No findings

    Why it is in this group

    • The name "studio_artist_actor_read" says "read": a word for reading.
    Description, as the server wrote it
    Returns an existing artist's Film castId, identity readiness and Film creation link. castId equals artistId. No duplicate actor or artist-flag change is created.

    Annotations the server declares

    • title: Use artist as Film actor
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_dna_readReturns identity summary, published photo pack, pending screening, approved creative facts and up to 20 recent social-scan statuses.No findings

    Why it is in this group

    • The name "studio_artist_dna_read" says "read": a word for reading.
    Description, as the server wrote it
    Returns identity summary, published photo pack, pending screening, approved creative facts and up to 20 recent social-scan statuses. Pending or held photos retain their status. The app link identifies consent and scan controls. No scan, language model or image generation starts.

    Annotations the server declares

    • title: Read Artist DNA and photo status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_readReturns one artist's profile, current revision and Artist DNA summary, including genres, visual notes and identity readiness.No findings

    Why it is in this group

    • The name "studio_artist_read" says "read": a word for reading.
    Description, as the server wrote it
    Returns one artist's profile, current revision and Artist DNA summary, including genres, visual notes and identity readiness. The revision binds profile and cover edits. Read-only.

    Annotations the server declares

    • title: Read Brix36 artist
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_voice_readRead the artist’s saved speaking voice and revision, with a private sample link when available.No findings

    Why it is in this group

    • The name "studio_artist_voice_read" says "read": a word for reading.
    Description, as the server wrote it
    Read the artist’s saved speaking voice and revision, with a private sample link when available. A recorded voice is already selected for this artist’s Film dialogue. No voice is created, no speech is generated and no credits are spent.

    Annotations the server declares

    • title: Read the artist’s own voice
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_voice_statusReturns pending, unknown, refused or succeeded for an earlier owned voice operation, with saved voice/revision on success.No findings

    Why it is in this group

    • The name "studio_artist_voice_status" says "status": a word for reading.
    Description, as the server wrote it
    Returns pending, unknown, refused or succeeded for an earlier owned voice operation, with saved voice/revision on success. Unknown provider effects remain unresolved. This read does not repeat provider work or synthesize speech.

    Annotations the server declares

    • title: Recover a character voice request
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_artist_voices_listSearches the voice library's ready-made voices.No findings

    Why it is in this group

    • The name "studio_artist_voices_list" says "list": a word for reading.
    Description, as the server wrote it
    Searches the voice library's ready-made voices. Returns offered opaque IDs, names, descriptions, selected voice, current revision and nextCursor. lib: voices use Brix36's account; acct: voices belong to connected personal accounts and are currently unavailable for Film. No speech generation or credit charge.

    Annotations the server declares

    • title: Find a character’s voice
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • studio_artists_listLists the customer's artists alphabetically, with IDs, names, identity kind, screened photo count, face-check status and whether the real-person video model can use them.No findings

    Why it is in this group

    • The name "studio_artists_list" says "list": a word for reading.
    Description, as the server wrote it
    Lists the customer's artists alphabetically, with IDs, names, identity kind, screened photo count, face-check status and whether the real-person video model can use them. Artist IDs also identify Film cast members. Fictional characters need no photo or likeness consent; real-person artists retain the app's consent flow. Free, read-only pagination, up to 50 artists per page.

    Annotations the server declares

    • title: List the customer's artists, A to Z
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_creative_resultReturns an owned completed creative result by operationId with image.url or video.url, downloadUrl and gallery-widget data.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns an owned completed creative result by operationId with image.url or video.url, downloadUrl and gallery-widget data. Links are private and signed; another read refreshes expired links. The original source is retained. No processing or charge is repeated.

    Annotations the server declares

    • title: Read the finished creative result
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_credit_usage_listLists the connected customer's purchases, spends, refunds and adjustments newest first.No findings

    Why it is in this group

    • The name "studio_credit_usage_list" says "list": a word for reading.
    Description, as the server wrote it
    Lists the connected customer's purchases, spends, refunds and adjustments newest first. Returns signed amounts, source, time, accessible projectTitle and nextCursor. Pagination preserves the cursor value. No wallet changes.

    Annotations the server declares

    • title: List Brix36 credit activity
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_credits_balance_readRead the connected customer wallet.No findings

    Why it is in this group

    • The name "studio_credits_balance_read" says "read": a word for reading.
    Description, as the server wrote it
    Read the connected customer wallet. Returns productionBalance, sandboxBalance, spendableBalance, status, reviewReason and sandboxSpendingEnabled from the app ledger. A review_required wallet cannot spend. Free; purchases remain in the Brix36 app.

    Annotations the server declares

    • title: Read Brix36 credit balance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_film_readReturns saved Film scenes, dialogue, cast, voice assignments, planning state and savedPlan.revision.No findings

    Why it is in this group

    • The name "studio_film_read" says "read": a word for reading.
    Description, as the server wrote it
    Returns saved Film scenes, dialogue, cast, voice assignments, planning state and savedPlan.revision. Add include:['languages'] for supportedLanguages and nativeSpeechLanguages (the video model's own speech), and include:['artists'] for every artist who can join the cast; leave include out for the project view. nativeSpeechEngines holds model-specific evidence. Saved per-scene voice choices determine routing; absent saved voices use native speech. Audio-off prices are unavailable for speaking scenes. operationId reads prior plan progress without starting or settling work.

    Annotations the server declares

    • title: Read the Film, cast and dialogue
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_generation_statusWaits up to 45 seconds for an active rendering stage to finish, then returns its current state and continuation data.No findings

    Why it is in this group

    • The name "studio_generation_status" says "status": a word for reading.
    Description, as the server wrote it
    Waits up to 45 seconds for an active rendering stage to finish, then returns its current state and continuation data. Reads a saved whole-job or picture-only operation by its original projectId and operationId. Returns approval and generation state, next-step data, balance or shortfall where applicable, and any fresh unapproved quote. Whole-job states include making_pictures, pictures_ready, video_waiting_for_payment, starting_video, making_video and failed. Picture-only approval covers only its quoted pictures. Video retains the original financial approval and applicable readiness gates; likeness not_required needs no likeness verdict. This free read does not advance stages or charge credits.

    Annotations the server declares

    • title: Where an approved generation has got to
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_generation_waitWaits up to 45 seconds for active picture generation or the finished video.No findings

    Why it is in this group

    • The name "studio_generation_wait" says "wait": a word for reading.
    Description, as the server wrote it
    Waits up to 45 seconds for active picture generation or the finished video. projectId identifies the video; optional operationId identifies its original picture/video approval. A pending response is a nonterminal timeout containing the exact nextCall for another bounded wait. A completed video response contains video.url. Free and read-only; no generation, approval, quote, payment or credit change.

    Annotations the server declares

    • title: Wait for rendering and the finished video link
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_get_skillReturns one Brix36 creative skill, style card or writing guide by catalogue ID, including full body, version, hash and resource URI.No findings

    Why it is in this group

    • The name "studio_get_skill" says "get": a word for reading.
    Description, as the server wrote it
    Returns one Brix36 creative skill, style card or writing guide by catalogue ID, including full body, version, hash and resource URI. Read-only.

    Annotations the server declares

    • title: Read a Brix36 creative skill
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_image_resultReturns the owned picture for an approved quoteId with image.url, downloadUrl and gallery-widget data once ready, or its current progress.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns the owned picture for an approved quoteId with image.url, downloadUrl and gallery-widget data once ready, or its current progress. Links are private and signed; another read refreshes them. No processing or charge is repeated.

    Annotations the server declares

    • title: Read the finished picture
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_list_skillsSearches Brix36 creative skills and style cards by keyword, medium or family.No findings

    Why it is in this group

    • The name "studio_list_skills" says "list": a word for reading.
    Description, as the server wrote it
    Searches Brix36 creative skills and style cards by keyword, medium or family. Returns summaries rather than full bodies, plus resource URIs and nextCursor. No Brix36 language-model call.

    Annotations the server declares

    • title: Find Brix36 creative skills
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_media_confirmReturns pending or accepted attachment status and assetId for the exact owned uploadToken.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns pending or accepted attachment status and assetId for the exact owned uploadToken. Reconciles the existing upload without creating a second attachment, generating media or spending credits.

    Annotations the server declares

    • title: Confirm the uploaded file
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_model_catalogueReturns the current Brix36 model catalogue, including profiles, settings, media limits, availability reasons, recommended choices and qualified starting prices in credits and GBP m…No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns the current Brix36 model catalogue, including profiles, settings, media limits, availability reasons, recommended choices and qualified starting prices in credits and GBP minor units including VAT. Starting prices are distinct from generation quotes. Pagination uses nextCursor with the same kind. No generation or charge.

    Annotations the server declares

    • title: Browse Brix36 models and options
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_motion_catalogueList available Motion Graphics templates (lyric_video, audio_visualiser, living_cover, kinetic_type, club_tunnel, organic_landscape), 7 genre looks (pop, hiphop_drill, rnb, house_e…No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List available Motion Graphics templates (lyric_video, audio_visualiser, living_cover, kinetic_type, club_tunnel, organic_landscape), 7 genre looks (pop, hiphop_drill, rnb, house_edm, rock, country_acoustic, afrobeats), and all 24 popular motion styles with preview video URLs and input requirements. Read-only discovery.

    Annotations the server declares

    • title: Browse Motion Graphics catalogue
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_motion_quoteReturns the server price in credits and GBP including VAT, bound to the exact revision, output, source and runtime.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns the server price in credits and GBP including VAT, bound to the exact revision, output, source and runtime. A paid render requires one explicit customer approval of this exact price. Edits invalidate prior quotes. No debit or render.

    Annotations the server declares

    • title: Quote Motion render
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • studio_motion_readRead the exact authored scene and revision, including editable lyric cue timing, text and owned media layers.No findings

    Why it is in this group

    • The name "studio_motion_read" says "read": a word for reading.
    Description, as the server wrote it
    Read the exact authored scene and revision, including editable lyric cue timing, text and owned media layers.

    Annotations the server declares

    • title: Read Motion scene
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_motion_resultRead the finished owned asset with video.url and authenticated playback/download links.No findings

    Why it is in this group

    • The description's first verb is "read": a word for reading.
    Description, as the server wrote it
    Read the finished owned asset with video.url and authenticated playback/download links. Source media remain preserved. Pending work is not a completed result.

    Annotations the server declares

    • title: Get Motion result
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_motion_statusRead the original durable operation after pending, timeout or unknown outcome.No findings

    Why it is in this group

    • The name "studio_motion_status" says "status": a word for reading.
    Description, as the server wrote it
    Read the original durable operation after pending, timeout or unknown outcome. Successful work includes playback and download links. Reconcile means the existing effect is being checked; no replacement render is started.

    Annotations the server declares

    • title: Read Motion render status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_motion_waitWaits up to 40 seconds for the original Motion operation, then returns its finished video.url and downloadUrl or a nonterminal pending response with an exact nextCall.No findings

    Why it is in this group

    • The name "studio_motion_wait" says "wait": a word for reading.
    Description, as the server wrote it
    Waits up to 40 seconds for the original Motion operation, then returns its finished video.url and downloadUrl or a nonterminal pending response with an exact nextCall. Each status read checks current access. No generation, approval or credit change.

    Annotations the server declares

    • title: Wait for Motion video link
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_projects_listLists the customer's videos newest first, optionally filtered by artistId.No findings

    Why it is in this group

    • The name "studio_projects_list" says "list": a word for reading.
    Description, as the server wrote it
    Lists the customer's videos newest first, optionally filtered by artistId. Returns projectId, title, artist, status, picture, last-change time and nextCursor. Free and read-only, up to 50 projects per page.

    Annotations the server declares

    • title: List the customer's videos, newest first
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_reference_notes_listReturns a paginated list of existing approved, proposed or rejected reference notes for a project, optionally filtered by attachment.No findings

    Why it is in this group

    • The name "studio_reference_notes_list" says "list": a word for reading.
    Description, as the server wrote it
    Returns a paginated list of existing approved, proposed or rejected reference notes for a project, optionally filtered by attachment. No server interpretation starts.

    Annotations the server declares

    • title: Read reference creative notes
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_references_listBrowse customer image/video references across their accessible projects, or filter one project.No findings

    Why it is in this group

    • The name "studio_references_list" says "list": a word for reading.
    Description, as the server wrote it
    Browse customer image/video references across their accessible projects, or filter one project. Returns up to 50 references with projectId, attachmentId, signed contentUrl, scope, analysis status and a small preview of existing facts, plus nextCursor. Shot references affect only bound shots. Nothing is analysed by this tool.

    Annotations the server declares

    • title: List video and Film references
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_releases_listLists an artist's album, EP and single collections with projectIds, status, artwork, year, verified app project-creation links and nextCursor.No findings

    Why it is in this group

    • The name "studio_releases_list" says "list": a word for reading.
    Description, as the server wrote it
    Lists an artist's album, EP and single collections with projectIds, status, artwork, year, verified app project-creation links and nextCursor. Free and read-only. MCP project creation currently creates standalone releases; collection project creation uses the app.

    Annotations the server declares

    • title: List artist release collections
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_section_enginesReturns engine options for one section of an existing generation quote identified by costEstimateId or quoteToken.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns engine options for one section of an existing generation quote identified by costEstimateId or quoteToken. Film sectionIndex is the saved zero-based scene.index. Includes availability, requirements, selection, server Recommended marker, allocated_final_total section share, availableProfiles and finalVideoCredits. Option selection_total is a whole alternative video quote total, excluding pictures. No selection change or spending.

    Annotations the server declares

    • title: Read the app’s quoted engine choices for a section
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_sections_readReturns the project's 30-second storyboard sections, including indexes, times, names, inclusion, pictures, action, Performance/Story type and lyric line IDs with lip-sync settings.No findings

    Why it is in this group

    • The name "studio_sections_read" says "read": a word for reading.
    Description, as the server wrote it
    Returns the project's 30-second storyboard sections, including indexes, times, names, inclusion, pictures, action, Performance/Story type and lyric line IDs with lip-sync settings. These indexes and IDs identify inputs to section-edit tools. Free and read-only.

    Annotations the server declares

    • title: Read the storyboard sections and their lines
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_shot_video_references_readRead the actual owned driving-video references for a shot.No findings

    Why it is in this group

    • The name "studio_shot_video_references_read" says "read": a word for reading.
    Description, as the server wrote it
    Read the actual owned driving-video references for a shot. These are distinct from extracted reference pictures. No paid work.

    Annotations the server declares

    • title: Read shot video references
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_song_statusRead the currently attached song and its technical analysis for a project.No findings

    Why it is in this group

    • The name "studio_song_status" says "status": a word for reading.
    Description, as the server wrote it
    Read the currently attached song and its technical analysis for a project. Returns the song attachment, latest upload job status, analysis ID, measured duration, tempo, sections and existing themes when available. Absent analysis stays pending. Free; this never starts transcription, reasoning or a storyboard.

    Annotations the server declares

    • title: Read song upload and analysis
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_songs_listList one artist songs using the app canonical grouping, including their available project versions.No findings

    Why it is in this group

    • The name "studio_songs_list" says "list": a word for reading.
    Description, as the server wrote it
    List one artist songs using the app canonical grouping, including their available project versions. Returns a bounded songs page and nextCursor. Each song projectId identifies the project holding that song version. Free; this does not upload or generate audio.

    Annotations the server declares

    • title: List artist songs
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_contextReturns current song analysis, brief, approved Artist DNA, references, exact shot timings and storyboard for a Music project.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns current song analysis, brief, approved Artist DNA, references, exact shot timings and storyboard for a Music project. Includes audioAnalysisId, expectedRevisionId, fixed skeleton, approved evidence and submission schema for direction and visualWorld. No planning model or other work starts.

    Annotations the server declares

    • title: Read the song and fixed storyboard format
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_previewReturns the stored storyboard as 30-second section cards with lines and numbered shots.No findings

    Why it is in this group

    • The name "studio_storyboard_preview" says "preview": a word for reading.
    Description, as the server wrote it
    Returns the stored storyboard as 30-second section cards with lines and numbered shots. Each shot includes stableShotId and a signed stillUrl valid for about a day, or null if no picture exists. Supported hosts also receive an interactive preview. Free and read-only.

    Annotations the server declares

    • title: Preview the storyboard
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_storyboard_readinessReturns readyForVideo, shotsMissingStills, public likenessGate, look-test state and reviewStills for the exact project and revision.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns readyForVideo, shotsMissingStills, public likenessGate, look-test state and reviewStills for the exact project and revision. Each review binding identifies a saved stableShotId/stillAssetId. A likenessGate of not_required needs no likeness verdict; an absent look test needs no look acceptance. Required likeness verdicts and acceptance of the saved look set are recorded separately. Video uses the original approved price and the existing readiness gates. No state change, provider call or charge.

    Annotations the server declares

    • title: Check storyboard picture readiness
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_video_exportReturns signed download links for existing finished Music video or Film results and selected range files, including results beside unfinished edits.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns signed download links for existing finished Music video or Film results and selected range files, including results beside unfinished edits. No public publishing, render, payment or extra export charge.

    Annotations the server declares

    • title: Get a video download link
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_video_previewReturns current edit status and signed playback links for an existing finished master or selected range files, including finished results beside unfinished edits.No findings

    Why it is in this group

    • The name "studio_video_preview" says "preview": a word for reading.
    Description, as the server wrote it
    Returns current edit status and signed playback links for an existing finished master or selected range files, including finished results beside unfinished edits. Supported hosts receive players. No generation or credit charge.

    Annotations the server declares

    • title: Play the finished video
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • studio_video_statusWaits up to 45 seconds while rendering, then returns draft, storyboard_ready, making, ready or needs_attention state, section progress counts, the studio's explanation and video.ur…No findings

    Why it is in this group

    • The name "studio_video_status" says "status": a word for reading.
    Description, as the server wrote it
    Waits up to 45 seconds while rendering, then returns draft, storyboard_ready, making, ready or needs_attention state, section progress counts, the studio's explanation and video.url when finished, with selected range labels, extent and original file links. Excluded sections are counted separately from failures. Provider fallback remains within the quoted price. No new work or charge.

    Annotations the server declares

    • title: How this video is going, and the finished video link
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http brix36 https://api.brix36.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__brix36__studio_artists_list",
      "mcp__brix36__studio_projects_list",
      "mcp__brix36__studio_model_catalogue",
      "mcp__brix36__studio_songs_list",
      "mcp__brix36__studio_song_status",
      "mcp__brix36__studio_media_confirm",
      "mcp__brix36__studio_sections_read",
      "mcp__brix36__studio_storyboard_preview",
      "mcp__brix36__studio_video_preview",
      "mcp__brix36__studio_video_export",
      "mcp__brix36__studio_generation_status",
      "mcp__brix36__studio_generation_wait",
      "mcp__brix36__studio_video_status",
      "mcp__brix36__studio_storyboard_readiness",
      "mcp__brix36__studio_list_skills",
      "mcp__brix36__studio_get_skill",
      "mcp__brix36__studio_account_read",
      "mcp__brix36__studio_credits_balance_read",
      "mcp__brix36__studio_credit_usage_list",
      "mcp__brix36__studio_artist_read",
      "mcp__brix36__studio_artist_actor_read",
      "mcp__brix36__studio_artist_dna_read",
      "mcp__brix36__studio_references_list",
      "mcp__brix36__studio_reference_notes_list",
      "mcp__brix36__studio_releases_list",
      "mcp__brix36__studio_film_read",
      "mcp__brix36__studio_artist_voices_list",
      "mcp__brix36__studio_artist_voice_status",
      "mcp__brix36__studio_storyboard_context",
      "mcp__brix36__studio_section_engines",
      "mcp__brix36__studio_artist_voice_read",
      "mcp__brix36__studio_shot_video_references_read",
      "mcp__brix36__studio_creative_result",
      "mcp__brix36__studio_image_result",
      "mcp__brix36__studio_motion_read",
      "mcp__brix36__studio_motion_quote",
      "mcp__brix36__studio_motion_status",
      "mcp__brix36__studio_motion_wait",
      "mcp__brix36__studio_motion_result",
      "mcp__brix36__studio_motion_catalogue"
    ],
    "ask": [
      "mcp__brix36__studio_video_start",
      "mcp__brix36__studio_song_attach",
      "mcp__brix36__studio_artist_photo",
      "mcp__brix36__studio_media_upload_widget",
      "mcp__brix36__studio_media_upload_url",
      "mcp__brix36__studio_media_import_url",
      "mcp__brix36__studio_storyboard_write",
      "mcp__brix36__studio_sections_update",
      "mcp__brix36__studio_sections_set_line_sync",
      "mcp__brix36__studio_film_script_write",
      "mcp__brix36__studio_storyboard_redo_request",
      "mcp__brix36__studio_generation_quote",
      "mcp__brix36__studio_ai_sharing_choose",
      "mcp__brix36__studio_storyboard_stills_quote",
      "mcp__brix36__studio_storyboard_approve",
      "mcp__brix36__studio_song_understanding_write",
      "mcp__brix36__studio_account_links_read",
      "mcp__brix36__studio_ready_made_stars_list",
      "mcp__brix36__studio_artist_ready_made_choose",
      "mcp__brix36__studio_artist_create",
      "mcp__brix36__studio_artist_update",
      "mcp__brix36__studio_artist_dna_write",
      "mcp__brix36__studio_artist_reference_add",
      "mcp__brix36__studio_artist_cover_set",
      "mcp__brix36__studio_song_reuse",
      "mcp__brix36__studio_reference_upload_link",
      "mcp__brix36__studio_reference_add",
      "mcp__brix36__studio_reference_note_add",
      "mcp__brix36__studio_release_create",
      "mcp__brix36__studio_project_rename",
      "mcp__brix36__studio_artist_reference_pack_quote",
      "mcp__brix36__studio_film_scenes_write",
      "mcp__brix36__studio_artist_voice_choose",
      "mcp__brix36__studio_storyboard_prepare",
      "mcp__brix36__studio_storyboard_submit",
      "mcp__brix36__studio_storyboard_edit_prompt",
      "mcp__brix36__studio_section_engine_select",
      "mcp__brix36__studio_artist_voice_record",
      "mcp__brix36__studio_picture_use_upload",
      "mcp__brix36__studio_project_palette_write",
      "mcp__brix36__studio_shot_video_references_write",
      "mcp__brix36__studio_copy_save",
      "mcp__brix36__studio_copy_read",
      "mcp__brix36__studio_image_quote",
      "mcp__brix36__studio_motion_create",
      "mcp__brix36__studio_motion_update",
      "mcp__brix36__studio_motion_preview",
      "mcp__brix36__studio_motion_use",
      "mcp__brix36__studio_motion_restore"
    ],
    "deny": [
      "mcp__brix36__studio_video_plan",
      "mcp__brix36__studio_storyboard_picture_changes_prepare",
      "mcp__brix36__studio_generation_confirm",
      "mcp__brix36__studio_storyboard_stills_confirm",
      "mcp__brix36__studio_storyboard_likeness_record",
      "mcp__brix36__studio_storyboard_look_accept",
      "mcp__brix36__studio_artist_delete",
      "mcp__brix36__studio_artist_reference_delete",
      "mcp__brix36__studio_reference_note_update",
      "mcp__brix36__studio_reference_delete",
      "mcp__brix36__studio_project_delete",
      "mcp__brix36__studio_artist_reference_pack_confirm",
      "mcp__brix36__studio_image_confirm",
      "mcp__brix36__studio_project_dna_pin",
      "mcp__brix36__studio_project_artist_presence_set",
      "mcp__brix36__studio_film_set_speech_voice",
      "mcp__brix36__studio_film_direction_set",
      "mcp__brix36__studio_film_assign_actor",
      "mcp__brix36__studio_film_add_line",
      "mcp__brix36__studio_film_edit_line",
      "mcp__brix36__studio_film_remove_line",
      "mcp__brix36__studio_film_toggle_camera",
      "mcp__brix36__studio_film_toggle_sound",
      "mcp__brix36__studio_film_set_lip_sync",
      "mcp__brix36__studio_film_set_duration",
      "mcp__brix36__studio_motion_confirm"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as brix36. Review it before you use it.