Koskamo

AlertForge MCP

An MCP server that allows AI agents to plan, create, monitor, and export stream assets like animated overlays, alerts, and transparent videos for platforms such as Twitch and YouTube. It handles credit-based pricing, style sheet approvals, and file exports via a Streamable HTTP endpoint.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

AlertForge MCP logo, by AlertForgeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by AlertForge
You need:Account tools require an active Starter, Pro, Max, or Ultra subscriptionOAuth-aware clients use AlertForge's sign-in and approval flowolder clients can use a revocable key as a fallback
MCP endpoint (Streamable HTTP)
https://alertforge.ai/api/mcp
Vendor documentation

What you can do with it

  • Plan and price stream overlay packs
  • Create and approve design sheets
  • Monitor generation status
  • Export finished assets as ZIP

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
alertforge-mcp 1.0.0
MCP protocol
2025-06-18
Tools
24 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

AlertForge information + AlertForge for Agents pack tools. get_product_info is read-only and unauthenticated. Every other tool requires an approved account connection and can spend the caller's own credit wallet. OAuth-aware clients should call an account tool, follow the authorization metadata from its HTTP 401 response, and ask the user only to sign in and approve. Agent-led setup: https://alertforge.ai/ai-agents#agent-setup. A revocable access key from https://alertforge.ai/dashboard/agents is a fallback only when the client cannot use OAuth. Call tools/list to see the full set.

Tools

24 advertised

get_product_info — AlertForge product info
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only. What AlertForge is, its key features, supported streaming platforms, and OBS-ecosystem compatibility.

get_product_info input schema
{
  "type": "object",
  "additionalProperties": false
}
get_product_info annotations
{
  "title": "AlertForge product info",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_scene_kinds — List animated-overlay scene kinds
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_scene_kinds input schema
{
  "type": "object",
  "additionalProperties": false
}
list_scene_kinds annotations
{
  "title": "List animated-overlay scene kinds",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_particles — List particle overlay effects
Advertised by the server during the last successful anonymous check.
Advertised read-only

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).

list_particles input schema
{
  "type": "object",
  "additionalProperties": false
}
list_particles annotations
{
  "title": "List particle overlay effects",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_balance — Get credit balance
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_balance input schema
{
  "type": "object",
  "additionalProperties": false
}
get_balance annotations
{
  "title": "Get credit balance",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_overlay_projects — List overlay projects
Advertised by the server during the last successful anonymous check.
Advertised read-only

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).

list_overlay_projects input schema
{
  "type": "object",
  "additionalProperties": false
}
list_overlay_projects annotations
{
  "title": "List overlay projects",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
plan_design_sheet — Plan a Style Sheet (design sheet) for a new pack
Advertised by the server during the last successful anonymous check.

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).

plan_design_sheet input schema
{
  "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
}
plan_design_sheet annotations
{
  "title": "Plan a Style Sheet (design sheet) for a new pack",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_design_sheet — Create the Style Sheet project from a plan
Advertised by the server during the last successful anonymous check.
Open-world

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.

create_design_sheet input schema
{
  "type": "object",
  "required": [
    "planId"
  ],
  "properties": {
    "planId": {
      "type": "string",
      "description": "planId returned by plan_design_sheet."
    }
  },
  "additionalProperties": false
}
create_design_sheet annotations
{
  "title": "Create the Style Sheet project from a plan",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
approve_design_sheet — Approve a project's Style Sheet
Advertised by the server during the last successful anonymous check.

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).

approve_design_sheet input schema
{
  "type": "object",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "projectId returned by create_design_sheet."
    }
  },
  "additionalProperties": false
}
approve_design_sheet annotations
{
  "title": "Approve a project's Style Sheet",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
plan_style_sheet_character_edit — Plan a same-project Style Sheet character change
Advertised by the server during the last successful anonymous check.

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.

plan_style_sheet_character_edit input schema
{
  "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
}
plan_style_sheet_character_edit annotations
{
  "title": "Plan a same-project Style Sheet character change",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_style_sheet_character_edit — Create a planned Style Sheet character change
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

create_style_sheet_character_edit input schema
{
  "type": "object",
  "required": [
    "planId"
  ],
  "properties": {
    "planId": {
      "type": "string",
      "description": "planId returned by plan_style_sheet_character_edit."
    }
  },
  "additionalProperties": false
}
create_style_sheet_character_edit annotations
{
  "title": "Create a planned Style Sheet character change",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": true
}
get_style_sheet_character_edit_status — Advance and check a Style Sheet character change
Advertised by the server during the last successful anonymous check.
Open-world

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.

get_style_sheet_character_edit_status input schema
{
  "type": "object",
  "required": [
    "editId"
  ],
  "properties": {
    "editId": {
      "type": "string",
      "description": "editId returned by create_style_sheet_character_edit."
    }
  },
  "additionalProperties": false
}
get_style_sheet_character_edit_status annotations
{
  "title": "Advance and check a Style Sheet character change",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
plan_overlay_pack — Plan scenes for a design-approved overlay pack
Advertised by the server during the last successful anonymous check.

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.

plan_overlay_pack input schema
{
  "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
}
plan_overlay_pack annotations
{
  "title": "Plan scenes for a design-approved overlay pack",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_overlay_pack — Attach planned scenes to an overlay pack
Advertised by the server during the last successful anonymous check.
Open-world

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.

create_overlay_pack input schema
{
  "type": "object",
  "required": [
    "planId"
  ],
  "properties": {
    "planId": {
      "type": "string",
      "description": "planId returned by plan_overlay_pack."
    }
  },
  "additionalProperties": false
}
create_overlay_pack annotations
{
  "title": "Attach planned scenes to an overlay pack",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_pack_status — Advance and check pack status
Advertised by the server during the last successful anonymous check.
Open-world

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.

get_pack_status input schema
{
  "type": "object",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "projectId returned by create_design_sheet or create_overlay_pack."
    }
  },
  "additionalProperties": false
}
get_pack_status annotations
{
  "title": "Advance and check pack status",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
export_pack_zip — Export a pack ZIP
Advertised by the server during the last successful anonymous check.
Open-world

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.

export_pack_zip input schema
{
  "type": "object",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "projectId returned by create_overlay_pack."
    }
  },
  "additionalProperties": false
}
export_pack_zip annotations
{
  "title": "Export a pack ZIP",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
list_alert_types — List AI Alert types and prices
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_alert_types input schema
{
  "type": "object",
  "additionalProperties": false
}
list_alert_types annotations
{
  "title": "List AI Alert types and prices",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
plan_alert_pack — Plan an AI Alert pack
Advertised by the server during the last successful anonymous check.

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.

plan_alert_pack input schema
{
  "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
}
plan_alert_pack annotations
{
  "title": "Plan an AI Alert pack",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_alert_pack — Create an AI Alert pack from a plan
Advertised by the server during the last successful anonymous check.
Open-world

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.

create_alert_pack input schema
{
  "type": "object",
  "required": [
    "planId"
  ],
  "properties": {
    "planId": {
      "type": "string",
      "description": "planId returned by plan_alert_pack."
    }
  },
  "additionalProperties": false
}
create_alert_pack annotations
{
  "title": "Create an AI Alert pack from a plan",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_alert_pack_status — Check AI Alert pack status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_alert_pack_status input schema
{
  "type": "object",
  "required": [
    "packId"
  ],
  "properties": {
    "packId": {
      "type": "string",
      "description": "packId returned by create_alert_pack."
    }
  },
  "additionalProperties": false
}
get_alert_pack_status annotations
{
  "title": "Check AI Alert pack status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
generate_alert_character — Generate a new AI Alert character
Advertised by the server during the last successful anonymous check.
Open-world

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.

generate_alert_character input schema
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "prompt": {
      "type": "string",
      "description": "A description of the character to generate, up to 600 characters."
    }
  },
  "additionalProperties": false
}
generate_alert_character annotations
{
  "title": "Generate a new AI Alert character",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_alert_character_status — Check AI Alert character generation status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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).

get_alert_character_status input schema
{
  "type": "object",
  "required": [
    "renderId"
  ],
  "properties": {
    "renderId": {
      "type": "string",
      "description": "renderId returned by generate_alert_character."
    }
  },
  "additionalProperties": false
}
get_alert_character_status annotations
{
  "title": "Check AI Alert character generation status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
plan_transparent_video — Plan a transparent video
Advertised by the server during the last successful anonymous check.

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.

plan_transparent_video input schema
{
  "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
}
plan_transparent_video annotations
{
  "title": "Plan a transparent video",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_transparent_video — Create a transparent video from a plan
Advertised by the server during the last successful anonymous check.
Open-world

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.

create_transparent_video input schema
{
  "type": "object",
  "required": [
    "planId"
  ],
  "properties": {
    "planId": {
      "type": "string",
      "description": "planId returned by plan_transparent_video."
    }
  },
  "additionalProperties": false
}
create_transparent_video annotations
{
  "title": "Create a transparent video from a plan",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_render_status — Check a render's status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_render_status input schema
{
  "type": "object",
  "required": [
    "renderId"
  ],
  "properties": {
    "renderId": {
      "type": "string",
      "description": "renderId returned by create_transparent_video."
    }
  },
  "additionalProperties": false
}
get_render_status annotations
{
  "title": "Check a render's status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1022 ms
95th percentile latency
1022 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1022 ms · metadata changed · 24 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http alertforge-mcp https://alertforge.ai/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add alertforge-mcp --url https://alertforge.ai/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable alertforge-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "alertforge-mcp": {
      "url": "https://alertforge.ai/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "alertforge-mcp": {
      "type": "streamableHttp",
      "url": "https://alertforge.ai/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start alertforge-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "alertforge-mcp": {
      "type": "http",
      "url": "https://alertforge.ai/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http alertforge-mcp https://alertforge.ai/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "alertforge-mcp": {
      "url": "https://alertforge.ai/api/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "alertforge-mcp": {
      "serverUrl": "https://alertforge.ai/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like AlertForge MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.