Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Changed the definition of "get_canvas" and "refresh_canvas"
⟨25 unchanged words⟩ are checked against their jobs on every read. Shows the board as a view; a board already on screen updates itself, so call this to show a board that is not. Costs no credits. SIGN-IN REQUIRED: connect this server ⟨20 unchanged words⟩
⟨23 unchanged words⟩ the card's status to done and its media_url. It opens no new view: a board already on screen refreshes itself. Costs no credits. SIGN-IN REQUIRED: connect this server ⟨20 unchanged words⟩
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Changed the definition of "ad_to_canvas_card", "add_frame", "add_generation_card" and 22 more
⟨122 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨71 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Changed the definition of "generate_video" and "list_models"
⟨37 unchanged words⟩ :"number"},"image_url":{"description":"Optional publicPublic image URL to animate (image-to-video). Required for models whose list_models entry has needs_start_image; optional for the rest.","type":"string"},"model":{ ⟨140 unchanged words⟩
⟨11 unchanged words⟩ {"properties":{"credits":{"description":"FlatCostcostof
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Changed the definition of "estimate_ad_cost", "generate_ad" and "write_ad_storyboard"
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨13 unchanged words⟩ format (an id from list_ad_formats), shotCount (2-51-5), totalDurationSec (6-205-20), aspect (9:16 | 16:9 ⟨166 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨50 unchanged words⟩ Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Added "connect_cards"; changed the definition of "add_frame", "add_generation_card", "add_media_card" and 10 more (41 tools before, 42 now)
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨137 unchanged words⟩
⟨49 unchanged words⟩ quote for run_generation_card must be taken with them. For a step that builds on an earlier card (a still that becomes a video), pass from_card_id: the new card is connected to that card on the board and, unless it has its own image_url, starts from that card's finished image.
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Changed the definition of "estimate_credit_cost" and "generate_video"
⟨54 unchanged words⟩ for planning.","type":"number"},"reference_video_seconds":{"description":"Length in seconds of the reference video you will pass as reference_video_url (seedance_2_5 up to 30 s, or seedance_2_0_fast up to 15 s at 720p). Reference seconds are billed as input, so they change the price; the server measures the file and refuses a quote whose length does not match.","type":"number"},"resolution":{"description":"Video resolution you intend ⟨21 unchanged words⟩
⟨69 unchanged words⟩ retry safe.","type":"string"},"reference_video_seconds":{"description":"Reference-video seconds priced as input, when a reference was quoted.","type":"number"},"resolution":{"description":"The resolution actually priced ⟨24 unchanged words⟩
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
Certificate recorded, valid to 2026-11-25
Authorization not required, issuer https://csnjnchyuugcfxokubrl.supabase.co/auth/v1
First tool surface recorded: 41 tools (server version 1.1.0)
Showing the latest 25 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨143 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨96 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨96 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨10 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨78 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨10 unchanged words⟩
⟨75 unchanged words⟩ ":"0-1.","type":"number"},"decodedAt":{"type":"string"},"layers":{"description":"hook { pattern, ⟨42 unchanged words⟩ ,"required":["layers","recreationPrompt","confidence","decodedAt"],"type":"object"},"next_step": ⟨46 unchanged words⟩
⟨39 unchanged words⟩ was returned.","type":"boolean"},"run_idstatus":{"typeenum":["stringqueued"],"nulltype"]:"string"},"statusstudio_url":{"enumdescription":["queuedThe job's page in the studio on AI Content Drop."],"type":["string","null"]}},"required":["job_id","status", ⟨6 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":false,"title":"Generate avatar"}
⟨92 unchanged words⟩ not terminal.","type":"number"},"run_id":{"type":"string"},"size_bytes":{"type":"number"},"stage" ⟨21 unchanged words⟩ storyboard sheet image, when the run produced one.","type":"string"},"studio_url":{"description":"The job's page in the studio on AI Content Drop.","type":"string"},"video_url":{ ⟨20 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨10 unchanged words⟩
{"properties":{"created_at":{"type":["string","null"]},"credits_used":{"description":"Charged only on success ⟨69 unchanged words⟩
⟨173 unchanged words⟩ ","type":["number","null"]},"saved_at":{"type":["string","null"]}},"required":["id","ad_ref","platform ⟨8 unchanged words⟩ ,"cta_text","ad_url","demo","decoded","saved_at"],"type":"object"},"decode":{ ⟨14 unchanged words⟩ ":"0-1.","type":"number"},"decodedAt":{"type":"string"},"layers":{"description":"hook { pattern, ⟨42 unchanged words⟩ ,"required":["layers","recreationPrompt","confidence","decodedAt"],"type":["object","null"] ⟨9 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨96 unchanged words⟩
⟨30 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link"],"type":"object"}, ⟨14 unchanged words⟩
⟨4 unchanged words⟩ "generations":{"items":{"properties":{"created_at":{"type":["string","null"]},"credits_used":{"description":"Charged only on success ⟨76 unchanged words⟩
⟨174 unchanged words⟩ ","type":["number","null"]},"saved_at":{"type":["string","null"]}},"required":["id","ad_ref","platform ⟨8 unchanged words⟩ ","cta_text","ad_url","demo","decoded","saved_at"],"type":"object"},"type": ⟨13 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨10 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨10 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨10 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨137 unchanged words⟩
⟨173 unchanged words⟩ ","type":["number","null"]},"saved_at":{"type":["string","null"]}},"required":["id","ad_ref","platform ⟨8 unchanged words⟩ ","cta_text","ad_url","demo","decoded","saved_at"],"type":"object"},"next_step": ⟨7 unchanged words⟩
⟨185 unchanged words⟩ write bumps it.","type":"number"},"updated_at":{"type":["string","null"]}},"required":["id","name","revision","card_count","updated_at","link","cards","edges"]," ⟨96 unchanged words⟩
{"destructiveHint":falsetrue,"idempotentHint":false,"openWorldHint":false,"readOnlyHint" ⟨4 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
Turn an ad brief into a storyboard:2-51-5 shots with framing, the spoken line, the ⟨53 unchanged words⟩
⟨13 unchanged words⟩ format (an id from list_ad_formats), shotCount (2-51-5), totalDurationSec (6-205-20), aspect (9:16 | 16:9 ⟨23 unchanged words⟩
⟨36 unchanged words⟩ by duration.","type":"number"},"from_card_id":{"description":"Optional: an image generation card or an image media card on the same board. The new card is connected to it, and its finished image is the new card's start frame when the new card runs (run the source card first).","type":"string"},"height":{"description":"Optional card height in ⟨129 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"},"id" ⟨120 unchanged words⟩ "id","type","position","data"],"type":["object","null"]},"edge":{"description":"The connection from from_card_id, when one was given.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":["object","null"]}, ⟨9 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨137 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨137 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨51 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨51 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨51 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨137 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨51 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨51 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨51 unchanged words⟩
⟨50 unchanged words⟩ and the quote is verified against the card. A card added with from_card_id and no image_url starts from its source card's finished image; until that card is done the run is refused with nothing charged. Credits are charged only on success; a retry ⟨33 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨178 unchanged words⟩
⟨92 unchanged words⟩ "array"},"edges":{"items":{"description":"A connection drawn from one card to the next: { id, source, target, label? }. data.role start_image means the source card's finished image is the target card's start frame.","properties":{"id":{"type":"string"},"label":{"description":"Text drawn on the line, when it has one."},"source":{"description":"The card the connection starts from.","type":"string"},"target":{"description":"The card it leads to.","type":"string"}},"type":"object"},"type":"array"} ⟨137 unchanged words⟩
Connect two cards on a board with a line from one to the next, so the board reads as a flow: a script card to the card that renders it, an idea to each of its variations. Costs no credits. Refuses a card connected to itself, a frame, and a connection that is already there. To make an image card's result the start frame of a new card, add that card with add_generation_card and from_card_id instead. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.
⟨98 unchanged words⟩ resolution. Required.","type":"string"},"reference_video_url":{"description":"Optional public https URL of a reference video (for example a 3D blockout playblast) whose camera movement, shot rhythm and subject motion the generation must follow. seedance_2_5 (30 s max) or seedance_2_0_fast (15 s max, 720p). The quote must have been priced with reference_video_seconds equal to this clip's length rounded up; the server measures the clip and refuses on mismatch.","type":"string"},"resolution":{"description":"e.g. \"720p\" ⟨19 unchanged words⟩