Create stream overlays, AI alerts, and transparent videos through AlertForge.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Records the user's approval of a rendered Style Sheet -- call this ONLY after the user has actually seen the image from get_pack_status's designPackage.imageUrl and said they like it. This is the server-side gate: plan_overlay_pack refuses to plan any scene on this project until approve_design_sheet has been called successfully. Fails if the Style Sheet hasn't finished rendering yet -- poll get_pack_status until designPackage.status is "ready" first. Safe to call again on an already-approved project (returns the same approval, does not re-approve or error).
projectId returned by create_design_sheet.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Records the user's approval of a rendered Style Sheet -- call this ONLY after the user has actually seen the image from get_pack_status's designPackage.imageUrl and said they like it. This is the server-side gate: plan_overlay_pack refuses to plan any scene on this project until approve_design_sheet has been called successfully. Fails if the Style Sheet hasn't finished rendering yet -- poll get_pack_status until designPackage.status is "ready" first. Safe to call again on an already-approved project (returns the same approval, does not re-approve or error).
| Argument | Type | Description |
|---|---|---|
| projectId* | string | projectId returned by create_design_sheet. |
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "projectId returned by create_design_sheet."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Spends credits. Consumes a plan from plan_alert_pack and creates its alert(s). Requires an active AlertForge subscription (checked at this step, not at planning) -- fails with 'subscription_required' otherwise. Calling this again with the same planId after it already succeeded is safe -- it returns the same pack rather than creating a second one or charging twice. A single failed alert does not fail the whole call -- check each entry's `error` field in the result. Returns immediately, before any alert has rendered -- call get_alert_pack_status afterward to check progress. Timing varies by model, queue, processing route, and provider demand.
| Argument | Type | Description |
|---|---|---|
| planId* | string | planId returned by plan_alert_pack. |
{
"type": "object",
"required": [
"planId"
],
"properties": {
"planId": {
"type": "string",
"description": "planId returned by plan_alert_pack."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Consumes a plan from plan_design_sheet, spending its quoted credits and creating the project. Calling this again with the same planId after it already succeeded is safe -- it returns the same project rather than creating a second one or charging twice. Returns immediately, before the Style Sheet image has rendered -- call get_pack_status to advance rendering and get designPackage.imageUrl, show it to the user, then call approve_design_sheet once they approve it. plan_overlay_pack refuses to plan any scene on this project until that approval is recorded.
| Argument | Type | Description |
|---|---|---|
| planId* | string | planId returned by plan_design_sheet. |
{
"type": "object",
"required": [
"planId"
],
"properties": {
"planId": {
"type": "string",
"description": "planId returned by plan_design_sheet."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Consumes a plan from plan_overlay_pack, spending its quoted credits and ATTACHING those scenes to the existing design-approved project (it never creates a new project -- that happened at create_design_sheet time). Calling this again with the same planId after it already succeeded is safe -- it returns the same project rather than attaching the scenes a second time or charging twice. Returns immediately, before any scene has rendered -- call get_pack_status afterward to advance and check progress.
| Argument | Type | Description |
|---|---|---|
| planId* | string | planId returned by plan_overlay_pack. |
{
"type": "object",
"required": [
"planId"
],
"properties": {
"planId": {
"type": "string",
"description": "planId returned by plan_overlay_pack."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Spends the quoted credits and queues the character-region change from plan_style_sheet_character_edit. It keeps the same project and patches only the character slot into the current Style Sheet. Safe to retry with the same planId. The previous approval is cleared; poll get_style_sheet_character_edit_status, show the revised image to the user, then approve_design_sheet only after the user explicitly approves it.
| Argument | Type | Description |
|---|---|---|
| planId* | string | planId returned by plan_style_sheet_character_edit. |
{
"type": "object",
"required": [
"planId"
],
"properties": {
"planId": {
"type": "string",
"description": "planId returned by plan_style_sheet_character_edit."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Spends credits. Consumes a plan from plan_transparent_video and starts the render. No subscription is required to CREATE it (only credits) -- but downloading/exporting the finished file later depends on the account's existing entitlement; plan_transparent_video's `downloadWarning` field tells you up front if the account can't download yet. Calling this again with the same planId after it already succeeded is safe -- it returns the same render rather than creating a second one. Returns immediately -- call get_render_status to check progress. Timing varies by model, duration, queue, processing route, and provider demand.
| Argument | Type | Description |
|---|---|---|
| planId* | string | planId returned by plan_transparent_video. |
{
"type": "object",
"required": [
"planId"
],
"properties": {
"planId": {
"type": "string",
"description": "planId returned by plan_transparent_video."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Bundles the pack's finished scenes into a flat ZIP (WebMs + PNGs + manifest.json) uploaded to R2, returning a time-limited signed download URL. This is the flat agent pack, not the full themed folder-tree artifact (scenes/stinger/alerts/sheet-tile ladders with composited branding) -- that comes from the 'Download pack' button in the web editor at this result's editorUrl.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | projectId returned by create_overlay_pack. |
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "projectId returned by create_overlay_pack."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Spends credits (the exact price is in list_alert_types' characterGenerateCredits). Generates a brand-new standalone character portrait from a text description via AI -- this is a still image, not a video. Returns a renderId immediately; generation is asynchronous and provider timing varies. Poll get_alert_character_status with it until status is 'completed', then use the returned `path` as characterImageUrl in plan_alert_pack.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | A description of the character to generate, up to 600 characters. |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "A description of the character to generate, up to 600 characters."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Free to call. Read-only poll for a character generation started by generate_alert_character -- call it every few seconds until status is 'completed' (with a usable `path`/`url`) or 'failed' (reserved credits are returned to the wallet automatically on failure).
| Argument | Type | Description |
|---|---|---|
| renderId* | string | renderId returned by generate_alert_character. |
{
"type": "object",
"required": [
"renderId"
],
"properties": {
"renderId": {
"type": "string",
"description": "renderId returned by generate_alert_character."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Free to call. Read-only -- unlike get_pack_status, this does NOT advance anything (the render worker progresses these on its own schedule, outside this call). Reports each alert's current status (queued/running/succeeded/failed), its result WebM URL once done, its OBS overlay URL, and its credit cost. Poll at a reasonable interval until every alert reaches a terminal state; provider timing varies.
| Argument | Type | Description |
|---|---|---|
| packId* | string | packId returned by create_alert_pack. |
{
"type": "object",
"required": [
"packId"
],
"properties": {
"packId": {
"type": "string",
"description": "packId returned by create_alert_pack."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Get the caller's current AlertForge credit balance.
No arguments.
{
"type": "object",
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Advances the pack by running up to about 15 seconds of rendering work, then reports current status -- including the Style Sheet's own status and image URL (`designPackage`) and whether it has been approved (`designApproved`), plus per-scene status. A sheet-pack scene (panel-pack/label-pack/sub-badge-pack/ emote-pack) passes through an extra "tiles" stage after its sheet image renders (cropping + uploading each tile) and, once done, reports a `tiles` array (index, label, enabled, a signed download `url`, and an export-ladder `sizes` array for sub-badge-pack/emote-pack). This call has side effects -- call it repeatedly (e.g. every few seconds) until `complete` is true; each call both progresses the pack and returns its latest state. Works on a design-sheet-only project too (from create_design_sheet, before any scene exists) -- poll it until designPackage.status is "ready", then call approve_design_sheet. Every image/video link this returns (designPackage.imageUrl, previewImageUrl, resultUrl, tile urls) is a direct, absolute, signed download URL that opens with no AlertForge login -- never a dashboard link. Links expire after a while, so re-poll to get fresh ones rather than caching one long-term.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | projectId returned by create_design_sheet or create_overlay_pack. |
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "projectId returned by create_design_sheet or create_overlay_pack."
}
},
"additionalProperties": false
}Read-only. What AlertForge is, its key features, supported streaming platforms, and OBS-ecosystem compatibility.
No arguments.
{
"type": "object",
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Free to call. Read-only poll for any single render you own -- a transparent video created via create_transparent_video, or any other render id. Reports status and the result video URL(s) once done.
| Argument | Type | Description |
|---|---|---|
| renderId* | string | renderId returned by create_transparent_video. |
{
"type": "object",
"required": [
"renderId"
],
"properties": {
"renderId": {
"type": "string",
"description": "renderId returned by create_transparent_video."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Advances the queued character edit, performs the server-side region patch, and returns the revised full Style Sheet image when complete. Call repeatedly until completed or failed. Credits reserved for a failed patch are restored.
| Argument | Type | Description |
|---|---|---|
| editId* | string | editId returned by create_style_sheet_character_edit. |
{
"type": "object",
"required": [
"editId"
],
"properties": {
"editId": {
"type": "string",
"description": "editId returned by create_style_sheet_character_edit."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Free to call. Lists the 7 AI Alert types (follow, sub, donation, bits, giftsub, host, raid), the two render tiers (Standard=Veo, Pro=Kling) with their real current credit prices (silent and with audio), and the character-generation price -- all derived live from AlertForge's billing config, never hardcoded. Call this before plan_alert_pack or generate_alert_character.
No arguments.
{
"type": "object",
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. List the caller's animated-overlay projects, most recently updated first (up to 20).
No arguments.
{
"type": "object",
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. List the particle overlay effects that can be Color-Dodge-blended onto a scene (max 4 per scene).
No arguments.
{
"type": "object",
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. List every animated-overlay scene kind with metadata (label, whether it animates, whether it's a cam-frame, and whether it's creatable via this agent surface -- with a one-line reason when it isn't). The four sheet-pack kinds (panel-pack, label-pack, sub-badge-pack, emote-pack) also carry `tileInputs` -- their fixed slot count, whether tile labels are locked to fixed vocabulary (sub-badge-pack only), and how the sheet is billed -- pass per-tile overrides for them as `tileTexts` in plan_overlay_pack. This is the single source of truth for scene kinds; never assume or hardcode a kind name.
No arguments.
{
"type": "object",
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Free to call -- prices a proposed AI Alert pack WITHOUT spending any credits or creating anything. Supports a single alert, a handful, or the full set of 7: pass `alerts` with only the keys you want (e.g. one entry to create just one alert), or omit `alerts` entirely for the full 7-alert pack. Requires `characterImageUrl` -- your own uploaded/generated character (see generate_alert_character). Returns a planId (valid 24 hours, single-use) plus the exact credit cost -- show that to the user and get confirmation before calling create_alert_pack with this planId.
| Argument | Type | Description |
|---|---|---|
| theme | string | Overall visual theme/direction for every alert, up to 400 characters. |
| alerts | array | Which alerts to include. Omit this field entirely for the full 7-alert pack. If provided, ONLY the keys listed here are created -- e.g. a single {key:"follow"} entry creates exactly one alert. Call list_alert_types first for the valid keys. |
| packName | string | Defaults to 'AI Alert Pack'. |
| captionColor | string | #RRGGBB fill for every alert's on-screen caption text (applies to the whole pack, not per-alert). Falls back automatically if too close to the character's chroma-key colour. |
| paletteHexes | array | Up to 8 #RRGGBB colours to steer the pack's look. |
| generateAudio |
Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. The FIRST step for any new overlay pack -- prices the pack's shared Style Sheet (design sheet) WITHOUT spending any credits or creating anything. AlertForge's own web builder always asks the streamer these SAME 3 questions, in this order, before generating anything -- ask the USER these exact questions and pass their answers; never invent a theme yourself: (1) "What is your channel name? We use it where your logo or wordmark needs text. Letters, numbers, spaces, - and _ (max 20)." -> channelName. (2) "What should represent your channel? Describe the logo, mascot, character, or symbol you want." -> logoOrCharacterBrief. (3) "What should the overall style feel like? Describe the world, mood, visual style, and any preferred colours." -> themeAndColorsBrief. Returns a planId (valid 24 hours, single-use) plus the exact credit cost -- show that to the user, then call create_design_sheet with this planId. Scenes cannot be planned until the resulting Style Sheet has rendered (get_pack_status) AND been approved (approve_design_sheet).
| Argument | Type | Description |
|---|---|---|
| channelName* | string | The user's answer to "What is your channel name? We use it where your logo or wordmark needs text. Letters, numbers, spaces, - and _ (max 20).". Required. |
| detailLevel | string | Art style, a choice of look rather than of quality (the web builder's Flat, Illustrated and 3D). "clean" (Flat): bold, simple flat vector with a hand-made poster look. "detailed" (Illustrated): polished vector artwork with a richer scene and a finished character. "intricate" (3D): stylized 3D artwork; the pack's alerts follow that 3D look. Same quality and price for every style. Defaults to "detailed". |
| projectName |
Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Normalizes and prices scenes to add to a DESIGN-APPROVED project WITHOUT spending any credits or creating anything. Requires `projectId` from a project whose Style Sheet has been approved via approve_design_sheet -- every scene inherits that project's approved look (visual identity comes entirely from the Style Sheet; there is no theme/reference input here anymore). Calling this without a valid approved projectId returns a structured `design_sheet_required` error (with the product's 3 onboarding questions and the exact tool sequence to follow) instead of guessing a theme -- see plan_design_sheet. Returns a planId (valid 24 hours, single-use) plus the exact credit cost and a human-readable summary -- SHOW that summary and cost to the user and get their confirmation before calling create_overlay_pack with this planId. Call list_scene_kinds first to see which scene kinds are creatable -- including alert-pack, which crops the identity from this project's Style Sheet and creates the selected production overlay alerts, plus the four sheet-pack kinds (panel-pack, label-pack, sub-badge-pack, emote-pack): each sheet kind renders ONE themed sheet and crops it into individual tile PNGs (a Twitch panel set, activity-feed labels, subscriber badges, or channel emotes) -- pass per-tile overrides via `tileTexts` on that scene entry; list_scene_kinds' `tileInputs` reports each kind's exact slot count and whether labels are locked to fixed vocabulary.
| Argument | Type | Description |
|---|---|---|
| scenes* | array | The scenes to include. Call list_scene_kinds first -- this tool rejects any kind that isn't creatable. |
| projectId* | string | A design-approved project id -- from create_design_sheet, after approve_design_sheet has succeeded on it. Required. |
Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Free to call. Prices a character-region change on an existing Style Sheet WITHOUT spending credits. Use mode=edit for a small change to the same character; use mode=redesign when replacing it with a new character while preserving the rest of the Style Sheet pixel-for-pixel. Returns a single-use 24-hour plan and exact cost; show the quote and obtain confirmation before create_style_sheet_character_edit.
| Argument | Type | Description |
|---|---|---|
| mode | string | edit keeps the same identity and changes details; redesign replaces the character. Defaults to redesign. |
| projectId* | string | The existing overlay project whose rendered Style Sheet will be changed. |
| instruction* | string | The user's exact character-change instruction, up to 1000 characters. |
{
"type": "object",
"required": [
"projectId",
"instruction"
],
"properties": {
"mode": {
"enum": [
"edit",
"redesign"
],
"type": "string",
"description": "edit keeps the same identity and changes details; redesign replaces the character. Defaults to redesign."
},
"projectId": {
"type": "string",
"description": "The existing overlay project whose rendered Style Sheet will be changed."
},
"instruction": {
"type": "string",
"description": "The user's exact character-change instruction, up to 1000 characters."
}
},
"additionalProperties": false
}Requires an approved AlertForge account connection. OAuth-aware clients should start AlertForge's secure authorization flow and ask the user only to sign in and approve. Setup: https://alertforge.ai/ai-agents#agent-setup. Free to call -- prices a single transparent WebM video (a plain animated clip, NOT an AI Alert -- no character chroma-plate, no OBS alert wiring) WITHOUT spending credits or creating anything. Returns a planId (valid 24 hours, single-use) plus the exact credit cost for the chosen model tier -- show that to the user and get confirmation before calling create_transparent_video with this planId.
| Argument | Type | Description |
|---|---|---|
| palette | object | Optional brand colours. Defaults to AlertForge's standard purple/cyan pair. |
| modelTier | string | standard=Kling 3 Standard (default), premium=Veo 3.1 Fast, kling=Kling 3 Pro, exact=animates an uploaded image as-is (requires referenceImageUrl or referenceImagePath, and is always silent). |
| promptExtra* | string | The creative prompt for the video. Required; up to 3400 characters for Standard/Kling (GLM-written shots), 2400 for Premium/Exact. |
| skipBurnText | boolean | |
| templateName | string | Defaults to 'Agent Video'. |
| generateAudio | boolean | Defaults false. Forced false when modelTier is 'exact'. |
| includePalette |
| boolean |
| Whole-pack audio toggle. Defaults true. |
| characterImageUrl* | string | Your own character image: the path/url returned by generate_alert_character (once complete) or your own upload, or a safe https:// URL. Required. |
{
"type": "object",
"required": [
"characterImageUrl"
],
"properties": {
"theme": {
"type": "string",
"description": "Overall visual theme/direction for every alert, up to 400 characters."
},
"alerts": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "An alert key from list_alert_types."
},
"tier": {
"enum": [
"standard",
"kling"
],
"type": "string",
"description": "Per-alert render tier -- Standard (Kling 3 Standard) or Pro (Kling 3 Pro). Defaults to standard."
},
"title": {
"type": "string",
"description": "Custom on-screen title, up to 40 characters."
},
"enabled": {
"type": "boolean",
"description": "Defaults true. Set false to exclude a key you listed."
},
"miniPrompt": {
"type": "string",
"description": "Extra creative direction for just this alert, up to 160 characters."
}
}
},
"description": "Which alerts to include. Omit this field entirely for the full 7-alert pack. If provided, ONLY the keys listed here are created -- e.g. a single {key:\"follow\"} entry creates exactly one alert. Call list_alert_types first for the valid keys."
},
"packName": {
"type": "string",
"description": "Defaults to 'AI Alert Pack'."
},
"captionColor": {
"type": "string",
"description": "#RRGGBB fill for every alert's on-screen caption text (applies to the whole pack, not per-alert). Falls back automatically if too close to the character's chroma-key colour."
},
"paletteHexes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 8 #RRGGBB colours to steer the pack's look."
},
"generateAudio": {
"type": "boolean",
"description": "Whole-pack audio toggle. Defaults true."
},
"characterImageUrl": {
"type": "string",
"description": "Your own character image: the path/url returned by generate_alert_character (once complete) or your own upload, or a safe https:// URL. Required."
}
},
"additionalProperties": false
}| string |
| Defaults to 'Agent Pack'. |
| subjectMode | string | Whether the described subject becomes a generated character, a generated logo, or is inferred automatically from the brief. Defaults to auto -- mirrors the web builder's Auto/Character/Logo chips. |
| referenceRole | string | Only meaningful when referenceImageUrl is set. "character" turns the photo into the pack's character, fully redrawn in its art style; "use-as-is" reproduces a logo or character faithfully. Defaults to "character" when a reference image is given but this is omitted. |
| referenceImageUrl | string | An http(s) URL to a reference image (the user's own photo or logo) for the pack. Data URLs are not accepted here. |
| themeAndColorsBrief* | string | The user's answer to "What should the overall style feel like? Describe the world, mood, visual style, and any preferred colours.". Required. |
| logoOrCharacterBrief* | string | The user's answer to "What should represent your channel? Describe the logo, mascot, character, or symbol you want.". Required. |
{
"type": "object",
"required": [
"channelName",
"logoOrCharacterBrief",
"themeAndColorsBrief"
],
"properties": {
"channelName": {
"type": "string",
"description": "The user's answer to \"What is your channel name? We use it where your logo or wordmark needs text. Letters, numbers, spaces, - and _ (max 20).\". Required."
},
"detailLevel": {
"enum": [
"clean",
"detailed",
"intricate"
],
"type": "string",
"description": "Art style, a choice of look rather than of quality (the web builder's Flat, Illustrated and 3D). \"clean\" (Flat): bold, simple flat vector with a hand-made poster look. \"detailed\" (Illustrated): polished vector artwork with a richer scene and a finished character. \"intricate\" (3D): stylized 3D artwork; the pack's alerts follow that 3D look. Same quality and price for every style. Defaults to \"detailed\"."
},
"projectName": {
"type": "string",
"description": "Defaults to 'Agent Pack'."
},
"subjectMode": {
"enum": [
"auto",
"character",
"logo"
],
"type": "string",
"description": "Whether the described subject becomes a generated character, a generated logo, or is inferred automatically from the brief. Defaults to auto -- mirrors the web builder's Auto/Character/Logo chips."
},
"referenceRole": {
"enum": [
"character",
"use-as-is"
],
"type": "string",
"description": "Only meaningful when referenceImageUrl is set. \"character\" turns the photo into the pack's character, fully redrawn in its art style; \"use-as-is\" reproduces a logo or character faithfully. Defaults to \"character\" when a reference image is given but this is omitted."
},
"referenceImageUrl": {
"type": "string",
"description": "An http(s) URL to a reference image (the user's own photo or logo) for the pack. Data URLs are not accepted here."
},
"themeAndColorsBrief": {
"type": "string",
"description": "The user's answer to \"What should the overall style feel like? Describe the world, mood, visual style, and any preferred colours.\". Required."
},
"logoOrCharacterBrief": {
"type": "string",
"description": "The user's answer to \"What should represent your channel? Describe the logo, mascot, character, or symbol you want.\". Required."
}
},
"additionalProperties": false
}| durationSec |
| number |
| Default animation length in seconds for scenes that don't set their own. |
| imageQuality | string | Default quality for scenes that don't set their own. |
{
"type": "object",
"required": [
"projectId",
"scenes"
],
"properties": {
"scenes": {
"type": "array",
"items": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "A creatable scene kind from list_scene_kinds."
},
"label": {
"type": "string"
},
"alerts": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "Alert key from list_alert_types."
},
"title": {
"type": "string",
"description": "On-screen title, up to 40 characters."
},
"enabled": {
"type": "boolean",
"description": "Defaults true."
},
"miniPrompt": {
"type": "string",
"description": "Creative direction for this alert, up to 160 characters."
}
},
"additionalProperties": false
},
"description": "alert-pack only. Omit for all seven production overlay alerts, or list only the alert types to generate (for example one donation entry). The character is cropped automatically from this project's approved Style Sheet."
},
"cutouts": {
"type": "array",
"items": {
"type": "object"
},
"description": "Rectangular regions on the 1920x1080 canvas where the streamer's own content shows through. Omit to use the scene kind's defaults."
},
"quality": {
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"selected": {
"type": "boolean",
"description": "Whether this scene renders. Defaults to true."
},
"alertTier": {
"enum": [
"standard",
"kling"
],
"type": "string",
"description": "alert-pack only. Production overlay-pack render tier shared by its selected alerts. Defaults to standard."
},
"tileTexts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Up to 80 characters. Ignored for sub-badge-pack."
},
"enabled": {
"type": "boolean",
"description": "Defaults true. A disabled tile still renders on the sheet but is excluded from the ZIP export."
},
"iconName": {
"type": "string",
"description": "A Phosphor icon component name (e.g. \"Heart\", \"Trophy\", \"DiscordLogo\"). Falls back to that slot's default icon when omitted."
}
},
"additionalProperties": false
},
"description": "Sheet-pack kinds only (panel-pack/label-pack/sub-badge-pack/emote-pack) -- per-tile overrides, position-matched (item 0 = tile 1, item 1 = tile 2, ...). A short or omitted list is padded with AlertForge's own defaults; items past the kind's fixed slot count (see list_scene_kinds' `tileInputs.slotCount` -- panel-pack 20, label-pack 4, sub-badge-pack 6, emote-pack 8) are dropped -- these are fixed-cardinality sheets, not add/remove. sub-badge-pack ignores `label` entirely (fixed Twitch tier vocabulary; only `enabled` applies there -- see `tileInputs.labelsLocked`)."
},
"miniPrompt": {
"type": "string",
"description": "Scene-specific prompt detail layered on top of the pack theme."
},
"durationSec": {
"type": "number"
},
"particleIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Particle ids from list_particles."
},
"useAiAnimation": {
"type": "boolean"
},
"animationPrompt": {
"type": "string",
"description": "Optional plain-English animation request when useAiAnimation is true. AlertForge interprets it against the rendered scene and writes the protected video-model prompt; this text is never forwarded verbatim."
}
}
},
"description": "The scenes to include. Call list_scene_kinds first -- this tool rejects any kind that isn't creatable."
},
"projectId": {
"type": "string",
"description": "A design-approved project id -- from create_design_sheet, after approve_design_sheet has succeeded on it. Required."
},
"durationSec": {
"type": "number",
"description": "Default animation length in seconds for scenes that don't set their own."
},
"imageQuality": {
"enum": [
"low",
"medium",
"high"
],
"type": "string",
"description": "Default quality for scenes that don't set their own."
}
},
"additionalProperties": false
}| boolean |
| Defaults false. |
| referenceImageUrl | string | A safe https:// reference image URL. |
| referenceImagePath | string | Your own reference-images/<you>/... path, or the generated character path returned by get_alert_character_status. |
| includeCenteredSubject | boolean | Defaults true. |
{
"type": "object",
"required": [
"promptExtra"
],
"properties": {
"palette": {
"type": "object",
"properties": {
"accent": {
"type": "string"
},
"primary": {
"type": "string"
},
"background": {
"type": "string"
}
},
"description": "Optional brand colours. Defaults to AlertForge's standard purple/cyan pair."
},
"modelTier": {
"enum": [
"standard",
"premium",
"kling",
"exact"
],
"type": "string",
"description": "standard=Kling 3 Standard (default), premium=Veo 3.1 Fast, kling=Kling 3 Pro, exact=animates an uploaded image as-is (requires referenceImageUrl or referenceImagePath, and is always silent)."
},
"promptExtra": {
"type": "string",
"description": "The creative prompt for the video. Required; up to 3400 characters for Standard/Kling (GLM-written shots), 2400 for Premium/Exact."
},
"skipBurnText": {
"type": "boolean"
},
"templateName": {
"type": "string",
"description": "Defaults to 'Agent Video'."
},
"generateAudio": {
"type": "boolean",
"description": "Defaults false. Forced false when modelTier is 'exact'."
},
"includePalette": {
"type": "boolean",
"description": "Defaults false."
},
"referenceImageUrl": {
"type": "string",
"description": "A safe https:// reference image URL."
},
"referenceImagePath": {
"type": "string",
"description": "Your own reference-images/<you>/... path, or the generated character path returned by get_alert_character_status."
},
"includeCenteredSubject": {
"type": "boolean",
"description": "Defaults true."
}
},
"additionalProperties": false
}