addrbookFor publishers
← The evidence ledger

Evidence row 770913

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 656c2b58-e5e9-45bb-9a24-ff48e832b101
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
7bbc79c95363cee264670eb69a0adccb00bb0a52552377c8e687786fad816619
Leaf
0xa0198c06d3129c689bc51b73c6ceb2293578fde2becea80bf4c9350358a4eeb9

What was observed

{
  "count": 24,
  "tools": [
    {
      "description": "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).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "projectId": {
            "description": "projectId returned by create_design_sheet.",
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ],
        "type": "object"
      },
      "name": "approve_design_sheet"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "planId": {
            "description": "planId returned by plan_alert_pack.",
            "type": "string"
          }
        },
        "required": [
          "planId"
        ],
        "type": "object"
      },
      "name": "create_alert_pack"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "planId": {
            "description": "planId returned by plan_design_sheet.",
            "type": "string"
          }
        },
        "required": [
          "planId"
        ],
        "type": "object"
      },
      "name": "create_design_sheet"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "planId": {
            "description": "planId returned by plan_overlay_pack.",
            "type": "string"
          }
        },
        "required": [
          "planId"
        ],
        "type": "object"
      },
      "name": "create_overlay_pack"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "planId": {
            "description": "planId returned by plan_style_sheet_character_edit.",
            "type": "string"
          }
        },
        "required": [
          "planId"
        ],
        "type": "object"
      },
      "name": "create_style_sheet_character_edit"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "planId": {
            "description": "planId returned by plan_transparent_video.",
            "type": "string"
          }
        },
        "required": [
          "planId"
        ],
        "type": "object"
      },
      "name": "create_transparent_video"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "projectId": {
            "description": "projectId returned by create_overlay_pack.",
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ],
        "type": "object"
      },
      "name": "export_pack_zip"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "prompt": {
            "description": "A description of the character to generate, up to 600 characters.",
            "type": "string"
          }
        },
        "required": [
          "prompt"
        ],
        "type": "object"
      },
      "name": "generate_alert_character"
    },
    {
      "description": "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).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "renderId": {
            "description": "renderId returned by generate_alert_character.",
            "type": "string"
          }
        },
        "required": [
          "renderId"
        ],
        "type": "object"
      },
      "name": "get_alert_character_status"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "packId": {
            "description": "packId returned by create_alert_pack.",
            "type": "string"
          }
        },
        "required": [
          "packId"
        ],
        "type": "object"
      },
      "name": "get_alert_pack_status"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "get_balance"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "projectId": {
            "description": "projectId returned by create_design_sheet or create_overlay_pack.",
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ],
        "type": "object"
      },
      "name": "get_pack_status"
    },
    {
      "description": "Read-only. What AlertForge is, its key features, supported streaming platforms, and OBS-ecosystem compatibility.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "get_product_info"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "renderId": {
            "description": "renderId returned by create_transparent_video.",
            "type": "string"
          }
        },
        "required": [
          "renderId"
        ],
        "type": "object"
      },
      "name": "get_render_status"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "editId": {
            "description": "editId returned by create_style_sheet_character_edit.",
            "type": "string"
          }
        },
        "required": [
          "editId"
        ],
        "type": "object"
      },
      "name": "get_style_sheet_character_edit_status"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "list_alert_types"
    },
    {
      "description": "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).",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "list_overlay_projects"
    },
    {
      "description": "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).",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "list_particles"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "list_scene_kinds"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "alerts": {
            "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.",
            "items": {
              "properties": {
                "enabled": {
                  "description": "Defaults true. Set false to exclude a key you listed.",
                  "type": "boolean"
                },
                "key": {
                  "description": "An alert key from list_alert_types.",
                  "type": "string"
                },
                "miniPrompt": {
                  "description": "Extra creative direction for just this alert, up to 160 characters.",
                  "type": "string"
                },
                "tier": {
                  "description": "Per-alert render tier -- Standard (Kling 3 Standard) or Pro (Kling 3 Pro). Defaults to standard.",
                  "enum": [
                    "standard",
                    "kling"
                  ],
                  "type": "string"
                },
                "title": {
                  "description": "Custom on-screen title, up to 40 characters.",
                  "type": "string"
                }
              },
              "required": [
                "key"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "captionColor": {
            "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.",
            "type": "string"
          },
          "characterImageUrl": {
            "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.",
            "type": "string"
          },
          "generateAudio": {
            "description": "Whole-pack audio toggle. Defaults true.",
            "type": "boolean"
          },
          "packName": {
            "description": "Defaults to 'AI Alert Pack'.",
            "type": "string"
          },
          "paletteHexes": {
            "description": "Up to 8 #RRGGBB colours to steer the pack's look.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "theme": {
            "description": "Overall visual theme/direction for every alert, up to 400 characters.",
            "type": "string"
          }
        },
        "required": [
          "characterImageUrl"
        ],
        "type": "object"
      },
      "name": "plan_alert_pack"
    },
    {
      "description": "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).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "channelName": {
            "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.",
            "type": "string"
          },
          "detailLevel": {
            "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\".",
            "enum": [
              "clean",
              "detailed",
              "intricate"
            ],
            "type": "string"
          },
          "logoOrCharacterBrief": {
            "description": "The user's answer to \"What should represent your channel? Describe the logo, mascot, character, or symbol you want.\". Required.",
            "type": "string"
          },
          "projectName": {
            "description": "Defaults to 'Agent Pack'.",
            "type": "string"
          },
          "referenceImageUrl": {
            "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.",
            "type": "string"
          },
          "referenceRole": {
            "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.",
            "enum": [
              "character",
              "use-as-is"
            ],
            "type": "string"
          },
          "subjectMode": {
            "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.",
            "enum": [
              "auto",
              "character",
              "logo"
            ],
            "type": "string"
          },
          "themeAndColorsBrief": {
            "description": "The user's answer to \"What should the overall style feel like? Describe the world, mood, visual style, and any preferred colours.\". Required.",
            "type": "string"
          }
        },
        "required": [
          "channelName",
          "logoOrCharacterBrief",
          "themeAndColorsBrief"
        ],
        "type": "object"
      },
      "name": "plan_design_sheet"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "durationSec": {
            "description": "Default animation length in seconds for scenes that don't set their own.",
            "type": "number"
          },
          "imageQuality": {
            "description": "Default quality for scenes that don't set their own.",
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "type": "string"
          },
          "projectId": {
            "description": "A design-approved project id -- from create_design_sheet, after approve_design_sheet has succeeded on it. Required.",
            "type": "string"
          },
          "scenes": {
            "description": "The scenes to include. Call list_scene_kinds first -- this tool rejects any kind that isn't creatable.",
            "items": {
              "properties": {
                "alertTier": {
                  "description": "alert-pack only. Production overlay-pack render tier shared by its selected alerts. Defaults to standard.",
                  "enum": [
                    "standard",
                    "kling"
                  ],
                  "type": "string"
                },
                "alerts": {
                  "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.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Defaults true.",
                        "type": "boolean"
                      },
                      "key": {
                        "description": "Alert key from list_alert_types.",
                        "type": "string"
                      },
                      "miniPrompt": {
                        "description": "Creative direction for this alert, up to 160 characters.",
                        "type": "string"
                      },
                      "title": {
                        "description": "On-screen title, up to 40 characters.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "animationPrompt": {
                  "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.",
                  "type": "string"
                },
                "cutouts": {
                  "description": "Rectangular regions on the 1920x1080 canvas where the streamer's own content shows through. Omit to use the scene kind's defaults.",
                  "items": {
                    "type": "object"
                  },
                  "type": "array"
                },
                "durationSec": {
                  "type": "number"
                },
                "kind": {
                  "description": "A creatable scene kind from list_scene_kinds.",
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "miniPrompt": {
                  "description": "Scene-specific prompt detail layered on top of the pack theme.",
                  "type": "string"
                },
                "particleIds": {
                  "description": "Particle ids from list_particles.",
                  "items": {
                    "type": "string"
                  },
                  "maxItems": 4,
                  "type": "array"
                },
                "quality": {
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ],
                  "type": "string"
                },
                "selected": {
                  "description": "Whether this scene renders. Defaults to true.",
                  "type": "boolean"
                },
                "tileTexts": {
                  "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`).",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Defaults true. A disabled tile still renders on the sheet but is excluded from the ZIP export.",
                        "type": "boolean"
                      },
                      "iconName": {
                        "description": "A Phosphor icon component name (e.g. \"Heart\", \"Trophy\", \"DiscordLogo\"). Falls back to that slot's default icon when omitted.",
                        "type": "string"
                      },
                      "label": {
                        "description": "Up to 80 characters. Ignored for sub-badge-pack.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "useAiAnimation": {
                  "type": "boolean"
                }
              },
              "required": [
                "kind"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "projectId",
          "scenes"
        ],
        "type": "object"
      },
      "name": "plan_overlay_pack"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "instruction": {
            "description": "The user's exact character-change instruction, up to 1000 characters.",
            "type": "string"
          },
          "mode": {
            "description": "edit keeps the same identity and changes details; redesign replaces the character. Defaults to redesign.",
            "enum": [
              "edit",
              "redesign"
            ],
            "type": "string"
          },
          "projectId": {
            "description": "The existing overlay project whose rendered Style Sheet will be changed.",
            "type": "string"
          }
        },
        "required": [
          "projectId",
          "instruction"
        ],
        "type": "object"
      },
      "name": "plan_style_sheet_character_edit"
    },
    {
      "description": "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "generateAudio": {
            "description": "Defaults false. Forced false when modelTier is 'exact'.",
            "type": "boolean"
          },
          "includeCenteredSubject": {
            "description": "Defaults true.",
            "type": "boolean"
          },
          "includePalette": {
            "description": "Defaults false.",
            "type": "boolean"
          },
          "modelTier": {
            "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).",
            "enum": [
              "standard",
              "premium",
              "kling",
              "exact"
            ],
            "type": "string"
          },
          "palette": {
            "description": "Optional brand colours. Defaults to AlertForge's standard purple/cyan pair.",
            "properties": {
              "accent": {
                "type": "string"
              },
              "background": {
                "type": "string"
              },
              "primary": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "promptExtra": {
            "description": "The creative prompt for the video. Required; up to 3400 characters for Standard/Kling (GLM-written shots), 2400 for Premium/Exact.",
            "type": "string"
          },
          "referenceImagePath": {
            "description": "Your own reference-images/<you>/... path, or the generated character path returned by get_alert_character_status.",
            "type": "string"
          },
          "referenceImageUrl": {
            "description": "A safe https:// reference image URL.",
            "type": "string"
          },
          "skipBurnText": {
            "type": "boolean"
          },
          "templateName": {
            "description": "Defaults to 'Agent Video'.",
            "type": "string"
          }
        },
        "required": [
          "promptExtra"
        ],
        "type": "object"
      },
      "name": "plan_transparent_video"
    }
  ]
}

What the leaf hashes

{"body":"7bbc79c95363cee264670eb69a0adccb00bb0a52552377c8e687786fad816619","id":770913,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793188376362359,"prev":null,"subject":"656c2b58-e5e9-45bb-9a24-ff48e832b101","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (231336 rows).

  1. 0xa0194d25b375aaf35a4ed1a2bb829b75c23af605ef6c021363ded7c224f7514f
  2. 0x0bdd0eafa2234fc0d7a3b063da48fd8ee3fda966b81065d2a6ab241741a68a7e
  3. 0x8bde3c2de70b066cffd3b58b44c923cd2345c85873f873a31337505e3f4804fd
  4. 0xe9c830e97b469b20f830ce2758ae03fbde0087fa6a07325a035955016d5afb54
  5. 0x677dd217b2d9cb75ef29912012bb2773ecdfe7202902c5f679e03c44d4ab0fb1
  6. 0xe1c2ac5b001ada67a0d633e9eb658173820e827d895b4ddfb0889932d7ce0edf
  7. 0xcd28a010c28a4a5e382b2b8e45dae826fdcb7cf5678d63e1e55d23552ee409d6
  8. 0xb65f0d72143994ce07465ee52fde13bf59612d67998e805ed55ec7cb1037e58d
  9. 0x8620b491f79653bea376e8d2eaec0d358ed215071594557fa63fc7101a7978a9
  10. 0xd9004785b5e53ae933ea33cbc04e023e1e8c3d5659014e8f4189665e331316ab
  11. 0x1c4c6d976a39c2b9f34d408f5559444dade7a0ca6f241d87549c4aec0976d745
  12. 0x9ad41ad6fb87c51fe544b1778909c03f41ac2424c196c84a0b78024f6a9df13d
  13. 0xa938e25481f6c2bb7474d5ed23c3e6616105250a53a3f98587d0ebff02240902
  14. 0xc4674b97eec0bfb92cf9c2ffb4427d455d9f902b5fe3ea0be83ee462202d7416
  15. 0xcf313ac43fef601c9e46f82a687b6a3c655f47c31675c1791c49de20295be63d
  16. 0x0f8977bd16865247451d1ee836b084081d3d0cd17d6a07353fad0c70393c7403
  17. 0xe08e8bd91858a8a10c46ecde9c29a6288b960987303173c5e882afb46ce91fa0
  18. 0xe6cfe00ae4e02bc12327e45b5f3334ea5850ba3bcc8e3101d30a8189856a95af
Day root
0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
Chained
0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
Published
On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae

How to check it · This row as JSON