Skip to main content
Glama

Server Details

AI influencer images and video generation and editing for your agent.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
58.6% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL

TDQS

B3.1/5.0

Scored across 45 tools

Disambiguation3/5

There is notable overlap between audio_editor_process and video_editor_process (both handle voiceover, sound effects, and extend operations), and two separate async status tools (jobs_get vs video_editor_status) could cause misselection. Within the series_* family, multiple script and generation tools are distinct but require careful reading. The detailed descriptions and cross-references help, but the boundaries are not always crisp.

Naming Consistency4/5

Tool names follow a mostly consistent snake_case pattern with domain prefixes (e.g., series_*, influencers_*, video_editor_*). Minor deviations exist, such as clone_influencer_run versus influencers_create, and some actions are nouns (status, tools) while others are verbs. Overall, the naming is predictable and readable.

Tool Count2/5

45 tools is far above the typical 3-15 range and feels excessive even for a broad AI content platform. Many granular series_* operations (e.g., separate cast, episode, shot, and script steps) could be consolidated without losing functionality. The sheer number increases cognitive load and selection difficulty.

Completeness3/5

The series workflow is well-covered with create, read, update, delete, render, and generation tools. However, there is no delete operation for influencers, and clone influencers lack any management (list/get/update/delete) beyond a single run tool. Media management is limited to presigned uploads with no list or delete, leaving notable gaps.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 25 tool updates
    • Addedseries_cast_create
    • Addedseries_cast_delete
    • Addedseries_cast_generate_sheet
    • Addedseries_cast_update
    • Addedseries_create
    • Addedseries_delete
    • Addedseries_episodes_create
    • Addedseries_episodes_delete
    • Addedseries_episodes_draft_script
    • Addedseries_episodes_generate_all
    • Addedseries_episodes_get
    • Addedseries_episodes_plan
    • Addedseries_episodes_render
    • Addedseries_episodes_save_script
    • Addedseries_episodes_structure_script
    • Addedseries_episodes_voice
    • Addedseries_get
    • Addedseries_list
    • Addedseries_music_set
    • Addedseries_shots_generate_clip
    • Addedseries_shots_generate_image
    • Addedseries_shots_replace_image
    • Addedseries_shots_update
    • Addedseries_update
    • Addedseries_voices_list
  2. 2 tool updates
    • Changedaudio_editor_process1 field changed
      • changedInput schema / properties / voice / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "alloy",
        -      "echo",
        -      "fable",
        -      "onyx",
        -      "nova",
        -      "shimmer"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "enum": [
        -      "Rachel",
        -      "Aria",
        -      "Sarah",
        -      "Roger",
        -      "George",
        -      "Charlie"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "pattern": "^clone:[A-Za-z0-9_-]+$",
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "alloy",
        +      "echo",
        +      "fable",
        +      "onyx",
        +      "nova",
        +      "shimmer"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "Rachel",
        +      "Aria",
        +      "Sarah",
        +      "Roger",
        +      "George",
        +      "Charlie"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^clone:[\\w-]+$",
        +    "type": "string"
        +  }
        +]
    • Changedvideo_editor_process5 fields changed
      • addedInput schema / properties / endSec
        Added value: +{
        +  "description": "trim only: where the kept part ends, in seconds from the start of the clip.",
        +  "exclusiveMinimum": 0,
        +  "maximum": 121,
        +  "type": "number"
        +}
      • changedInput schema / properties / sourceUrl / description
        Previous value: -"HTTPS URL of the source clip (3 s to 3 min; longer than the paid length is cut to it, from sourceStartSeconds, default the start) — or, for talking-photo, a JPEG/PNG/WebP photo, not a clip — uploaded via media_upload_presign or from an earlier Inflyu result"New value: +"HTTPS URL of the source clip (3 s to 3 min; longer than the paid length is cut to it, from sourceStartSeconds, default the start) — or, for talking-photo, a JPEG/PNG/WebP photo, not a clip — uploaded via media_upload_presign or from an earlier Inflyu result. For trim: up to 2 minutes, cut with startSec and endSec."
      • addedInput schema / properties / startSec
        Added value: +{
        +  "description": "trim only: where the kept part starts, in seconds from the start of the clip.",
        +  "maximum": 121,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / tool / enum
        Previous value: -[
        -  "swap",
        -  "restyle",
        -  "reimagine",
        -  "erase",
        -  "extend",
        -  "lip-sync",
        -  "captions",
        -  "voiceover",
        -  "copy-video",
        -  "add-sound",
        -  "upscale",
        -  "talking-photo",
        -  "camera-move",
        -  "property-walkthrough",
        -  "music-track"
        -]New value: +[
        +  "swap",
        +  "restyle",
        +  "reimagine",
        +  "erase",
        +  "extend",
        +  "lip-sync",
        +  "captions",
        +  "voiceover",
        +  "copy-video",
        +  "add-sound",
        +  "upscale",
        +  "trim",
        +  "talking-photo",
        +  "camera-move",
        +  "property-walkthrough",
        +  "music-track"
        +]
      • changedInput schema / properties / voice / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "alloy",
        -      "echo",
        -      "fable",
        -      "onyx",
        -      "nova",
        -      "shimmer"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "enum": [
        -      "Rachel",
        -      "Aria",
        -      "Sarah",
        -      "Roger",
        -      "George",
        -      "Charlie"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "pattern": "^clone:[A-Za-z0-9_-]+$",
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "alloy",
        +      "echo",
        +      "fable",
        +      "onyx",
        +      "nova",
        +      "shimmer"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "Rachel",
        +      "Aria",
        +      "Sarah",
        +      "Roger",
        +      "George",
        +      "Charlie"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^clone:[\\w-]+$",
        +    "type": "string"
        +  }
        +]
  3. 3 tool updates
    • Changedaudio_editor_process8 fields changed
      • addedInput schema / properties / editMode
        Added value: +{
        +  "const": "extend",
        +  "description": "For audio-edit: only \"extend\" is available through the API. Trim and speed are free in the app. Defaults to \"extend\".",
        +  "type": "string"
        +}
      • addedInput schema / properties / extendSeconds
        Added value: +{
        +  "description": "For audio-edit: how many seconds to add, 5 to 60. Example: 20.",
        +  "maximum": 60,
        +  "minimum": 5,
        +  "type": "integer"
        +}
      • changedInput schema / properties / languageCode / description
        Previous value: -"For text-to-speech: optional spoken language code; leave out to auto-detect. Example: \"en\"."New value: +"For text-to-speech: optional spoken language code; leave out to auto-detect. Example: \"en\". For transcribe: optional three-letter language code, for example \"eng\"; leave out to auto-detect."
      • changedInput schema / properties / prompt / description
        Previous value: -"Music generator: what the music sounds like (style, mood, instruments). Sound effects: the sound to make. Example: \"calm lofi beat with soft piano\"."New value: +"Music generator: what the music sounds like (style, mood, instruments). Sound effects: the sound to make. Example: \"calm lofi beat with soft piano\". Audio edit (extend): optional, what the added part sounds like, max 300 characters."
      • changedInput schema / properties / sourceMedia / description
        Previous value: -"For voiceover, music-track and translate: \"video\" if sourceUrl is a video clip, \"audio\" if it is an audio file."New value: +"For voiceover, music-track, translate, stem-split, audio-cleanup, transcribe and audio-edit: \"video\" if sourceUrl is a video clip, \"audio\" if it is an audio file. Stem split and audio edit take audio only."
      • changedInput schema / properties / sourceUrl / description
        Previous value: -"HTTPS URL of the source video or audio file, for voiceover, music-track and translate only (not used by text-to-speech, music-generate or sound-effects). Upload it with media_upload_presign or reuse an earlier Inflyu result."New value: +"HTTPS URL of the source video or audio file, for voiceover, music-track, translate, stem-split, audio-cleanup, transcribe and audio-edit (not used by text-to-speech, music-generate or sound-effects). Upload it with media_upload_presign or reuse an earlier Inflyu result."
      • addedInput schema / properties / stems
        Added value: +{
        +  "description": "For stem-split: 2 returns vocals and an instrumental, 4 returns vocals, drums, bass and other. Default 4. The finished job lists them in stems[] on video_editor_status.",
        +  "enum": [
        +    2,
        +    4
        +  ],
        +  "type": "number"
        +}
      • changedInput schema / properties / tool / enum
        Previous value: -[
        -  "text-to-speech",
        -  "voiceover",
        -  "translate",
        -  "music-generate",
        -  "music-track",
        -  "sound-effects"
        -]New value: +[
        +  "text-to-speech",
        +  "voiceover",
        +  "translate",
        +  "music-generate",
        +  "music-track",
        +  "sound-effects",
        +  "stem-split",
        +  "audio-cleanup",
        +  "transcribe",
        +  "audio-edit"
        +]
    • Changedvideo_editor_process6 fields changed
      • addedInput schema / properties / editMode
        Added value: +{
        +  "description": "Not used by the video tools; audio extend lives in audio_editor_process.",
        +  "enum": [
        +    "trim",
        +    "speed",
        +    "extend"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / extendSeconds
        Added value: +{
        +  "description": "Not used by the video tools; audio extend lives in audio_editor_process.",
        +  "maximum": 60,
        +  "minimum": 5,
        +  "type": "integer"
        +}
      • addedInput schema / properties / speedFactor
        Added value: +{
        +  "description": "Not used by the video tools; audio speed is free in the app.",
        +  "maximum": 2,
        +  "minimum": 0.5,
        +  "type": "number"
        +}
      • addedInput schema / properties / stems
        Added value: +{
        +  "description": "Not used by the video tools; stem split lives in audio_editor_process.",
        +  "enum": [
        +    2,
        +    4
        +  ],
        +  "type": "number"
        +}
      • addedInput schema / properties / trimEnd
        Added value: +{
        +  "description": "Not used by the video tools; audio trim is free in the app.",
        +  "maximum": 600,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / trimStart
        Added value: +{
        +  "description": "Not used by the video tools; audio trim is free in the app.",
        +  "maximum": 600,
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Changedvideo_editor_status2 fields changed
      • addedOutput schema / properties / srtUrl
        Added value: +{
        +  "description": "Transcribe only: URL of the subtitle (.srt) file. resultUrl is the transcript (.txt).",
        +  "type": "string"
        +}
      • addedOutput schema / properties / stems
        Added value: +{
        +  "description": "Stem split only: one file per stem, each with a download url. resultUrl is the vocals stem.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "description": "Stem ID, for example \"vocals\" or \"instrumental\".",
        +        "type": "string"
        +      },
        +      "label": {
        +        "description": "Display name of the stem.",
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "Download URL of this stem.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "label",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  4. 4 tool updates
    • Addedaudio_editor_process
    • Addedaudio_editor_tools
    • Changedvideo_editor_process8 fields changed
      • addedInput schema / properties / languageCode
        Added value: +{
        +  "description": "Not used by the video tools; see audio_editor_process.",
        +  "pattern": "^[a-z]{2,3}(-[A-Za-z]{2,4})?$",
        +  "type": "string"
        +}
      • addedInput schema / properties / musicLength
        Added value: +{
        +  "description": "Not used by the video tools; music generation lives in audio_editor_process.",
        +  "enum": [
        +    30,
        +    60
        +  ],
        +  "type": "number"
        +}
      • addedInput schema / properties / musicLyrics
        Added value: +{
        +  "description": "Not used by the video tools; music generation lives in audio_editor_process.",
        +  "maxLength": 1500,
        +  "type": "string"
        +}
      • addedInput schema / properties / sfxSeconds
        Added value: +{
        +  "description": "Not used by the video tools; sound effects live in audio_editor_process.",
        +  "maximum": 20,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / sourceMedia
        Added value: +{
        +  "description": "For voiceover and music-track: \"video\" if sourceUrl is a clip, \"audio\" if it is an audio file (audio_editor_process also runs these).",
        +  "enum": [
        +    "video",
        +    "audio"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / text
        Added value: +{
        +  "description": "Not used by the video tools; text to speech lives in audio_editor_process.",
        +  "type": "string"
        +}
      • changedInput schema / properties / voice / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "alloy",
        -      "echo",
        -      "fable",
        -      "onyx",
        -      "nova",
        -      "shimmer"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "pattern": "^clone:[A-Za-z0-9_-]+$",
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "alloy",
        +      "echo",
        +      "fable",
        +      "onyx",
        +      "nova",
        +      "shimmer"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "Rachel",
        +      "Aria",
        +      "Sarah",
        +      "Roger",
        +      "George",
        +      "Charlie"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^clone:[A-Za-z0-9_-]+$",
        +    "type": "string"
        +  }
        +]
      • addedInput schema / properties / withVocals
        Added value: +{
        +  "description": "Not used by the video tools; music generation lives in audio_editor_process.",
        +  "type": "boolean"
        +}
    • Changedvideo_editor_status2 fields changed
      • addedOutput schema / properties / audioUrl
        Added value: +{
        +  "description": "URL of the finished audio file; present once completed for audio results (text to speech, music, sound effects, or a tool run on an audio source).",
        +  "type": "string"
        +}
      • changedOutput schema / properties / resultUrl / description
        Previous value: -"URL of the finished video or image; present once completed."New value: +"URL of the finished video, image or audio file; present once completed."
  5. 1 tool update
    • Changedinfluencers_update11 fields changed
      • addedInput schema / properties / contentStrategy / properties / carouselsCount / $ref
        Added value: +"#/properties/contentStrategy/properties/reelsCount"
      • removedInput schema / properties / contentStrategy / properties / carouselsCount / minimum
        Removed value: -0
      • removedInput schema / properties / contentStrategy / properties / carouselsCount / type
        Removed value: -"number"
      • addedInput schema / properties / contentStrategy / properties / imagesCount / $ref
        Added value: +"#/properties/contentStrategy/properties/reelsCount"
      • removedInput schema / properties / contentStrategy / properties / imagesCount / minimum
        Removed value: -0
      • removedInput schema / properties / contentStrategy / properties / imagesCount / type
        Removed value: -"number"
      • addedInput schema / properties / contentStrategy / properties / reelsCount / maximum
        Added value: +168
      • changedInput schema / properties / contentStrategy / properties / reelsCount / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / contentStrategy / properties / storiesCount / $ref
        Added value: +"#/properties/contentStrategy/properties/reelsCount"
      • removedInput schema / properties / contentStrategy / properties / storiesCount / minimum
        Removed value: -0
      • removedInput schema / properties / contentStrategy / properties / storiesCount / type
        Removed value: -"number"
  6. 1 tool update
    • Changedinfluencers_generate2 fields changed
      • changedInput schema / properties / options / description
        Previous value: -"Extra generation options. Known keys: seed (number, for repeatable results), aspectRatio (string such as \"9:16\") and, for video, startImageUrl / endImageUrl (HTTPS image URLs). Other keys are passed through."New value: +"Extra generation options. Known keys: seed (number, for repeatable results), aspectRatio (string such as \"9:16\") and, for video, startImageUrl / endImageUrl (HTTPS image URLs). Provider-selection keys (such as excludeProvider) are ignored; other keys are passed through."
      • changedInput schema / properties / provider / description
        Previous value: -"Optional AI provider to prefer. Leave unset to let Inflyu pick the best available one."New value: +"Accepted for compatibility and ignored: Inflyu always picks the best available AI provider."
  7. 1 tool update
    • Changedvideo_editor_process8 fields changed
      • changedInput schema / properties / extraSwaps / description
        Previous value: -"For swap with several replacements: up to 2 more pairs, each { target, referenceImageUrl or influencerId }. Object mode only; send swapTarget and referenceImageUrl for the first pair. Not combined with swapQuote."New value: +"For swap with several replacements: up to 2 more pairs, each { target, referenceImageUrl or influencerId }. Not with swapMode background; send swapTarget and referenceImageUrl for the first pair. A multi-swap is priced per shot: send the swapQuote from the 409 SWAP_QUOTE_REQUIRED reply with the same pairs."
      • changedInput schema / properties / prompt / description
        Previous value: -"Plain-language instruction (long text is trimmed at a word boundary to fit, about 1,900 characters including Inflyu's own instructions). What to replace, remove, add or change, or the look to apply. Required for reimagine, erase and extend; optional for restyle, copy-video and add-sound. Example: \"remove the logo on the shirt\". Ignored for swap with swapMode \"background\", which replaces the whole background with referenceImageUrl."New value: +"Plain-language instruction (long text is trimmed at a word boundary to fit, about 1,900 characters including Inflyu's own instructions). What to replace, remove, add or change, or the look to apply. Required for reimagine, erase and extend; optional for restyle, copy-video and add-sound. Example: \"remove the logo on the shirt\". For swap with swapMode \"background\", describe the new background here, or send referenceImageUrl instead (a photo is optional when this is set)."
      • changedInput schema / properties / referenceImageUrl / description
        Previous value: -"HTTPS URL of a second image: the replacement for swap, or who or what to put in for copy-video. Upload it first with media_upload_presign."New value: +"HTTPS URL of a second image: the replacement for swap (optional for a background swap that has a prompt), or who or what to put in for copy-video. Upload it first with media_upload_presign."
      • changedInput schema / properties / sourceStartSeconds / description
        Previous value: -"Seconds into the source clip where the edited window starts; the window length is the chosen duration. Clamped to the clip. Ignored when the clip is not cut."New value: +"Seconds into the source clip where the edited window starts; the window length is the chosen duration. Clamped to the clip. Ignored when the clip is not cut. A swap is quoted and run from this start: the SWAP_QUOTE_REQUIRED reply carries the start it priced (quote.startSeconds), so send that value back with swapQuote."
      • changedInput schema / properties / swapMode / description
        Previous value: -"swap only: person, object (default) or background"New value: +"swap only: person, object (default) or background. Object (with extraSwaps, a multi-swap) and background are priced per shot via swapQuote; a background swap needs a photo or a prompt describing the new background."
      • changedInput schema / properties / swapQuote / description
        Previous value: -"For an object swap on a clip with several shots: the shot-by-shot price you accepted. Not needed for single-shot clips. Take it from the SWAP_QUOTE_REQUIRED reply of the first call."New value: +"For an object swap, a multi-swap or a background swap on a clip of 4 s or more: the per-shot price you accepted. Take it from the SWAP_QUOTE_REQUIRED reply of the first call, and send sourceStartSeconds equal to quote.startSeconds with it. Not needed for a person swap or a clip under 4 s."
      • changedOutput schema / properties / shots / description
        Previous value: -"Shot check for tools that rebuild a clip from one frame (restyle, reimagine, erase, copy-video, person/background swap)."New value: +"Shot check for tools that rebuild a clip from one frame (restyle, reimagine, erase, copy-video, person swap)."
      • changedOutput schema / properties / warnings / description
        Previous value: -"Notes about this edit. MULTI_SHOT_SOURCE: the clip has cuts, so later shots may change less or not at all. SHOT_SCAN_UNAVAILABLE: the clip could not be checked for cuts. The credits charged are unchanged."New value: +"Notes about this edit. MULTI_SHOT_SOURCE: the clip has cuts, so later shots may change less or not at all (a person swap or another tool rebuilds the clip from one frame; swaps priced through swapQuote handle every shot). SHOT_SCAN_UNAVAILABLE: the clip could not be checked for cuts. The credits charged are unchanged."
  8. 2 tool updates
    • Changedvideo_editor_process1 field changed
      • changedInput schema / properties / prompt / description
        Previous value: -"Plain-language instruction (max 2000 characters). What to replace, remove, add or change, or the look to apply. Required for reimagine, erase and extend; optional for restyle, copy-video and add-sound. Example: \"remove the logo on the shirt\". Ignored for swap with swapMode \"background\", which replaces the whole background with referenceImageUrl."New value: +"Plain-language instruction (long text is trimmed at a word boundary to fit, about 1,900 characters including Inflyu's own instructions). What to replace, remove, add or change, or the look to apply. Required for reimagine, erase and extend; optional for restyle, copy-video and add-sound. Example: \"remove the logo on the shirt\". Ignored for swap with swapMode \"background\", which replaces the whole background with referenceImageUrl."
    • Changedvideo_editor_status1 field changed
      • addedOutput schema / properties / fallbackNotice
        Added value: +{
        +  "description": "Present when a backup engine made the result instead of the main one: which engine and why.",
        +  "type": "string"
        +}
  9. 3 tool updates
    • Changedimage_editor_process4 fields changed
      • changedInput schema / properties / backgroundImage / description
        Previous value: -"For \"bg-swap\": HTTPS URL of an image to use as the new background instead of a description."New value: +"For \"bg-swap\": HTTPS URL of an image to use as the new background instead of a description; required unless backgroundPrompt is given."
      • changedInput schema / properties / backgroundPrompt / description
        Previous value: -"For \"bg-swap\": describe the new background (max 2000 characters). Example: \"a rainy Tokyo street at night\"."New value: +"For \"bg-swap\": describe the new background (max 2000 characters); required unless backgroundImage is given. Example: \"a rainy Tokyo street at night\"."
      • changedInput schema / properties / prompt / description
        Previous value: -"Plain-language description of the change (max 2000 characters). Required for reimagine, replace-object and remove-object; optional extra guidance for relight. Example: \"remove the car in the background\"."New value: +"Plain-language description of the change (max 2000 characters). Required for reimagine, replace-object and remove-object; for relight, either prompt or relightPreset is required. Example: \"remove the car in the background\"."
      • changedInput schema / properties / relightPreset / description
        Previous value: -"For \"relight\": lighting style, \"golden-hour\", \"studio\", \"neon\" or \"window\"."New value: +"For \"relight\": lighting style, \"golden-hour\", \"studio\", \"neon\" or \"window\"; required unless prompt describes the lighting."
    • Changedvideo_editor_process8 fields changed
      • addedInput schema / properties / extraSwaps / description
        Added value: +"For swap with several replacements: up to 2 more pairs, each { target, referenceImageUrl or influencerId }. Object mode only; send swapTarget and referenceImageUrl for the first pair. Not combined with swapQuote."
      • changedInput schema / properties / prompt / description
        Previous value: -"Plain-language instruction (max 2000 characters). What to replace, remove, add or change, or the look to apply. Required for reimagine, erase and extend; optional for restyle, copy-video and add-sound. Example: \"remove the logo on the shirt\"."New value: +"Plain-language instruction (max 2000 characters). What to replace, remove, add or change, or the look to apply. Required for reimagine, erase and extend; optional for restyle, copy-video and add-sound. Example: \"remove the logo on the shirt\". Ignored for swap with swapMode \"background\", which replaces the whole background with referenceImageUrl."
      • addedInput schema / properties / swapQuote / description
        Added value: +"For an object swap on a clip with several shots: the shot-by-shot price you accepted. Not needed for single-shot clips. Take it from the SWAP_QUOTE_REQUIRED reply of the first call."
      • addedInput schema / properties / swapQuote / properties / quality / description
        Added value: +"\"full\" edits a frame for each shot, \"lite\" one frame per segment (never more credits than full). Both prices are in the reply."
      • addedInput schema / properties / swapQuote / properties / token / description
        Added value: +"The quoteToken from the SWAP_QUOTE_REQUIRED reply. Valid for 30 minutes, for that clip and your account only."
      • addedInput schema / properties / swapTarget / description
        Added value: +"For swap with several replacements: what the first photo replaces (max 120 characters). Example: \"the red mug\"."
      • addedOutput schema / properties / shots
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Shot check for tools that rebuild a clip from one frame (restyle, reimagine, erase, copy-video, person/background swap).",
        +  "properties": {
        +    "count": {
        +      "description": "Shots found in the seconds the edit uses; null when the check could not run.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "cuts": {
        +      "description": "Cut times in seconds, counted from the start of the edited window.",
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    "scanned": {
        +      "description": "False when the shot check could not run. It never blocks the edit.",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "cuts",
        +    "scanned"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "description": "Notes about this edit. MULTI_SHOT_SOURCE: the clip has cuts, so later shots may change less or not at all. SHOT_SCAN_UNAVAILABLE: the clip could not be checked for cuts. The credits charged are unchanged.",
        +  "items": {
        +    "additionalProperties": true,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "code",
        +      "message"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedvideo_editor_status1 field changed
      • addedOutput schema / properties / promptUsed
        Added value: +{
        +  "description": "The rewritten instruction Inflyu actually sent to the model, when it differed from yours; present once the edit has started.",
        +  "type": "string"
        +}
  10. 1 tool update
    • Changedvideo_editor_process3 fields changed
      • addedInput schema / properties / sourceStartSeconds
        Added value: +{
        +  "description": "Seconds into the source clip where the edited window starts; the window length is the chosen duration. Clamped to the clip. Ignored when the clip is not cut.",
        +  "maximum": 600,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / sourceUrl / description
        Previous value: -"HTTPS URL of the source clip (3 s to 3 min; longer than the paid length is cut to it) — or, for talking-photo, a JPEG/PNG/WebP photo, not a clip — uploaded via media_upload_presign or from an earlier Inflyu result"New value: +"HTTPS URL of the source clip (3 s to 3 min; longer than the paid length is cut to it, from sourceStartSeconds, default the start) — or, for talking-photo, a JPEG/PNG/WebP photo, not a clip — uploaded via media_upload_presign or from an earlier Inflyu result"
      • addedInput schema / properties / swapQuote
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "quality": {
        +      "enum": [
        +        "full",
        +        "lite"
        +      ],
        +      "type": "string"
        +    },
        +    "token": {
        +      "maxLength": 8000,
        +      "minLength": 10,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "token",
        +    "quality"
        +  ],
        +  "type": "object"
        +}
  11. 1 tool update
    • Changedvideo_editor_process2 fields changed
      • addedInput schema / properties / extraSwaps
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "influencerId": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "referenceImageUrl": {
        +        "format": "uri",
        +        "type": "string"
        +      },
        +      "target": {
        +        "maxLength": 120,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "target"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 2,
        +  "type": "array"
        +}
      • addedInput schema / properties / swapTarget
        Added value: +{
        +  "maxLength": 120,
        +  "minLength": 1,
        +  "type": "string"
        +}
  12. 2 tool updates
    • Changedinfluencers_create1 field changed
      • changedInput schema / properties / username / pattern
        Previous value: -"^[\\w.\\-]+$"New value: +"^[\\w.-]+$"
    • Changedinfluencers_update1 field changed
      • changedInput schema / properties / username / pattern
        Previous value: -"^[\\w.\\-]+$"New value: +"^[\\w.-]+$"
  13. 1 tool update
    • Changedmedia_upload_presign3 fields changed
      • changedInput schema / properties / contentType / description
        Previous value: -"MIME type of the file; must start with image/ or video/. Example: \"video/mp4\" or \"image/jpeg\"."New value: +"MIME type of the file; must start with image/, video/ or audio/. Example: \"video/mp4\", \"image/jpeg\" or \"audio/mpeg\"."
      • changedInput schema / properties / size / description
        Previous value: -"Exact file size in bytes. Images up to 8 MB, videos up to 20 MB. Example: 5242880."New value: +"Exact file size in bytes. Images up to 10 MB, videos up to 190 MB (lip-sync clips up to 50 MB), audio up to 20 MB. Example: 5242880."
      • changedOutput schema / properties / publicUrl / description
        Previous value: -"Public HTTPS URL of the file once uploaded. Pass this to tools that take an image or video URL."New value: +"Public HTTPS URL of the file once uploaded. Pass this to tools that take an image, video or audio URL."
  14. 18 tool updates
    • Changedclone_influencer_run2 fields changed
      • addedInput schema / properties / referenceImageUrls / description
        Added value: +"1 to 3 HTTPS URLs of uploaded reference photos whose look should be cloned. Upload them first with media_upload_presign. Example: [\"https://example.com/ref-1.jpg\"]."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Internal capability that is running the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the queued job. Pass it to jobs_get to poll for the result.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Job state right after it was accepted. Usually \"queued\".",
        +      "enum": [
        +        "queued",
        +        "processing"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId"
        +  ],
        +  "type": "object"
        +}
    • Changedimage_editor_process12 fields changed
      • addedInput schema / properties / backgroundImage / description
        Added value: +"For \"bg-swap\": HTTPS URL of an image to use as the new background instead of a description."
      • addedInput schema / properties / backgroundPrompt / description
        Added value: +"For \"bg-swap\": describe the new background (max 2000 characters). Example: \"a rainy Tokyo street at night\"."
      • addedInput schema / properties / influencerId / description
        Added value: +"ID of one of your AI influencers (from influencers_list). For \"try-on\" it supplies the person photo (sourceImage); for \"face-swap\" it supplies the face (referenceImage)."
      • addedInput schema / properties / preset / description
        Added value: +"Filter to apply; required for the \"filters\" tool. One of the listed values. Example: \"watercolor\"."
      • addedInput schema / properties / prompt / description
        Added value: +"Plain-language description of the change (max 2000 characters). Required for reimagine, replace-object and remove-object; optional extra guidance for relight. Example: \"remove the car in the background\"."
      • addedInput schema / properties / ratio / description
        Added value: +"For \"expand\": target aspect ratio, \"9:16\" (default), \"4:5\" or \"16:9\"."
      • addedInput schema / properties / referenceImage / description
        Added value: +"HTTPS URL of a second image. Required for style-transfer (style), color-grade (color look), product-hold and place-product (the product), try-on (the garment) and face-swap (the new face); optional for replace-object."
      • addedInput schema / properties / relightPreset / description
        Added value: +"For \"relight\": lighting style, \"golden-hour\", \"studio\", \"neon\" or \"window\"."
      • addedInput schema / properties / sourceImage / description
        Added value: +"HTTPS URL of the photo to edit, for example one from media_upload_presign or an earlier Inflyu result. Required unless try-on uses influencerId."
      • addedInput schema / properties / tool / description
        Added value: +"Which edit to run: \"style-transfer\", \"bg-swap\", \"filters\", \"upscale\", \"color-grade\", \"reimagine\", \"replace-object\", \"remove-object\", \"product-hold\", \"place-product\", \"expand\", \"relight\", \"try-on\" or \"face-swap\". Example: \"remove-object\"."
      • addedInput schema / properties / upscaleFactor / description
        Added value: +"For \"upscale\": enlarge by 2 or 4 times (default 2)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Internal capability that is running the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the queued job. Pass it to jobs_get to poll for the result.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Job state right after it was accepted. Usually \"queued\".",
        +      "enum": [
        +        "queued",
        +        "processing"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId"
        +  ],
        +  "type": "object"
        +}
    • Changedinfluencers_create16 fields changed
      • addedInput schema / properties / ageRange / description
        Added value: +"Apparent age range used for generated visuals. Example: \"25-34\"."
      • addedInput schema / properties / category / description
        Added value: +"Niche or topic the influencer covers. Example: \"fitness\", \"travel\" or \"business\"."
      • addedInput schema / properties / description / description
        Added value: +"Free-text bio or persona description that shapes the content (max 2000 characters)."
      • addedInput schema / properties / gender / description
        Added value: +"Gender presentation used for generated visuals. Example: \"female\"."
      • addedInput schema / properties / isCoach / description
        Added value: +"Set true to mark the influencer as a coach or educator persona."
      • addedInput schema / properties / language / description
        Added value: +"Language code for generated content (2-10 characters). Example: \"en\"."
      • addedInput schema / properties / mashupCategories / description
        Added value: +"Up to 2 secondary niches blended with the primary category. Example: [\"travel\", \"food\"]."
      • addedInput schema / properties / modelType / description
        Added value: +"Visual and format style of the influencer; one of the listed values. Example: \"photo_model\"."
      • addedInput schema / properties / name / description
        Added value: +"Display name of the AI influencer (2-100 characters). Example: \"Luna Reyes\"."
      • addedInput schema / properties / requiresApproval / description
        Added value: +"When true, generated content waits for your manual approval before it can be published."
      • addedInput schema / properties / templateIds / description
        Added value: +"Up to 3 persona template IDs this influencer is based on."
      • addedInput schema / properties / timezone / description
        Added value: +"IANA timezone used for scheduling, or null to use your profile timezone. Example: \"America/New_York\"."
      • addedInput schema / properties / title / description
        Added value: +"Short tagline or job-title style label (max 200 characters). Example: \"Fitness Coach\"."
      • addedInput schema / properties / tone / description
        Added value: +"Voice tone used for captions and scripts. Example: \"playful\" or \"professional\"."
      • addedInput schema / properties / username / description
        Added value: +"Unique handle: letters, numbers, underscores, hyphens and dots only (2-50 characters). The call fails if it is taken. Example: \"luna.reyes\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "id": {
        +      "description": "Influencer ID.",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Display name.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Lifecycle state: \"draft\", \"active\" or \"paused\".",
        +      "type": "string"
        +    },
        +    "username": {
        +      "description": "Unique handle.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "username",
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedinfluencers_generate16 fields changed
      • addedInput schema / properties / adjustmentHint / description
        Added value: +"With variationMode \"adjust\": what to change (max 500 characters). Example: \"Make the lighting warmer\"."
      • addedInput schema / properties / contentType / description
        Added value: +"What to generate: \"image\", \"video\", \"reel\", \"short_video\", \"mid_video\", \"long_video\", \"comic_panel\", \"caption\", \"carousel\" or \"story\". \"talking_head\" is retired and is refused. Example: \"image\"."
      • addedInput schema / properties / forceIntro / description
        Added value: +"Set true to regenerate the influencer's introductory first post."
      • addedInput schema / properties / influencerId / description
        Added value: +"ID of the AI influencer to generate for, as returned by influencers_list. It must be active or otherwise eligible. Example: \"clx9f3k2a0001abcd\"."
      • addedInput schema / properties / options / description
        Added value: +"Extra generation options. Known keys: seed (number, for repeatable results), aspectRatio (string such as \"9:16\") and, for video, startImageUrl / endImageUrl (HTTPS image URLs). Other keys are passed through."
      • addedInput schema / properties / options / properties / aspectRatio / description
        Added value: +"Frame shape as width:height. Example: \"9:16\"."
      • addedInput schema / properties / options / properties / seed / description
        Added value: +"Number that makes a generation repeatable. Example: 42."
      • addedInput schema / properties / prompt / description
        Added value: +"What the content should show or say (1-5000 characters). Example: \"Morning stretching routine on a sunny balcony\"."
      • addedInput schema / properties / provider / description
        Added value: +"Optional AI provider to prefer. Leave unset to let Inflyu pick the best available one."
      • addedInput schema / properties / referenceImages / description
        Added value: +"Up to 5 HTTPS image URLs to use as visual references, for example from media_upload_presign."
      • addedInput schema / properties / repurposeTargetType / description
        Added value: +"Content type to turn sourceContentId into. Example: \"carousel\"."
      • addedInput schema / properties / sourceContentId / description
        Added value: +"ID of an existing piece of content to vary, adjust or repurpose."
      • addedInput schema / properties / targetPlatforms / description
        Added value: +"Platforms to tailor the result for. Example: [\"instagram\", \"tiktok\"]."
      • addedInput schema / properties / tone / description
        Added value: +"Optional tone override for this piece only. Example: \"motivational\"."
      • addedInput schema / properties / variationMode / description
        Added value: +"How to treat sourceContentId: \"new\" (fresh piece), \"variation\" (similar piece) or \"adjust\" (apply adjustmentHint to it)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Internal capability that is running the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the queued job. Pass it to jobs_get to poll for the result.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Job state right after it was accepted. Usually \"queued\".",
        +      "enum": [
        +        "queued",
        +        "processing"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId"
        +  ],
        +  "type": "object"
        +}
    • Changedinfluencers_get2 fields changed
      • addedInput schema / properties / influencerId / description
        Added value: +"ID of the AI influencer to fetch, as returned by influencers_list. Example: \"clx9f3k2a0001abcd\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "influencer": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "avatar": {
        +          "description": "Avatar image URL, or null when none has been generated.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "category": {
        +          "description": "Niche or topic. Example: \"fitness\".",
        +          "type": "string"
        +        },
        +        "createdAt": {
        +          "description": "Creation time, ISO 8601.",
        +          "type": "string"
        +        },
        +        "id": {
        +          "description": "Influencer ID. Example: \"clx9f3k2a0001abcd\".",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Display name.",
        +          "type": "string"
        +        },
        +        "status": {
        +          "description": "Lifecycle state: \"draft\", \"active\" or \"paused\".",
        +          "type": "string"
        +        },
        +        "title": {
        +          "description": "Short tagline, or null when not set.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "username": {
        +          "description": "Unique handle.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "username",
        +        "title",
        +        "avatar",
        +        "category",
        +        "status",
        +        "createdAt"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "influencer"
        +  ],
        +  "type": "object"
        +}
    • Changedinfluencers_list2 fields changed
      • addedInput schema / properties / take / description
        Added value: +"Maximum number of influencers to return, newest first (1-100, default 50). Example: 20."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "influencers": {
        +      "description": "Your AI influencers, newest first.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "avatar": {
        +            "description": "Avatar image URL, or null when none has been generated.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "category": {
        +            "description": "Niche or topic. Example: \"fitness\".",
        +            "type": "string"
        +          },
        +          "createdAt": {
        +            "description": "Creation time, ISO 8601.",
        +            "type": "string"
        +          },
        +          "id": {
        +            "description": "Influencer ID. Example: \"clx9f3k2a0001abcd\".",
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "Display name.",
        +            "type": "string"
        +          },
        +          "status": {
        +            "description": "Lifecycle state: \"draft\", \"active\" or \"paused\".",
        +            "type": "string"
        +          },
        +          "title": {
        +            "description": "Short tagline, or null when not set.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "username": {
        +            "description": "Unique handle.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "username",
        +          "title",
        +          "avatar",
        +          "category",
        +          "status",
        +          "createdAt"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "influencers"
        +  ],
        +  "type": "object"
        +}
    • Changedinfluencers_posts_status3 fields changed
      • addedInput schema / properties / generationJobId / description
        Added value: +"ID of the generation job: the generationJobId (or poll.generationJobId) inside the finished influencers_generate job result, which you read with jobs_get. Example: \"clx9f3k2a0002wxyz\"."
      • addedInput schema / properties / influencerId / description
        Added value: +"ID of the AI influencer the generation belongs to. Example: \"clx9f3k2a0001abcd\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "completedAt": {
        +      "description": "When the job finished, ISO 8601, or null while running.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "contentType": {
        +      "description": "Content type being generated. Example: \"image\".",
        +      "type": "string"
        +    },
        +    "createdAt": {
        +      "description": "When the job was created, ISO 8601.",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "Failure reason when status is \"failed\"; otherwise null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "generationJobId": {
        +      "description": "ID of the generation job.",
        +      "type": "string"
        +    },
        +    "kind": {
        +      "const": "generation",
        +      "description": "Always \"generation\" for this tool.",
        +      "type": "string"
        +    },
        +    "progress": {
        +      "description": "Progress from 0 to 100.",
        +      "type": "number"
        +    },
        +    "progressLabel": {
        +      "description": "Human-readable current step, or null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "result": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "properties": {
        +            "aiReasoning": {
        +              "description": "Why the content was made this way."
        +            },
        +            "caption": {
        +              "description": "Generated caption."
        +            },
        +            "contentType": {
        +              "description": "Content type."
        +            },
        +            "createdAt": {
        +              "description": "Creation time."
        +            },
        +            "description": {
        +              "description": "Content description."
        +            },
        +            "hashtags": {
        +              "description": "Generated hashtags."
        +            },
        +            "id": {
        +              "description": "ID of the generated content."
        +            },
        +            "platformVariants": {
        +              "description": "Per-platform variants, when requested."
        +            },
        +            "prompt": {
        +              "description": "Prompt that produced the content."
        +            },
        +            "status": {
        +              "description": "Content status."
        +            },
        +            "text": {
        +              "description": "Generated text, when the content is text."
        +            },
        +            "thumbnail": {
        +              "description": "Thumbnail URL."
        +            },
        +            "url": {
        +              "description": "URL of the generated media."
        +            }
        +          },
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "The finished content once status is \"completed\"; null before that."
        +    },
        +    "status": {
        +      "description": "Job state, for example \"processing\", \"completed\" or \"failed\".",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "kind",
        +    "generationJobId",
        +    "status",
        +    "progress",
        +    "progressLabel",
        +    "contentType",
        +    "result",
        +    "error",
        +    "createdAt",
        +    "completedAt"
        +  ],
        +  "type": "object"
        +}
    • Changedinfluencers_update43 fields changed
      • addedInput schema / properties / category / description
        Added value: +"New niche or topic. Example: \"travel\"."
      • addedInput schema / properties / contentDirection / description
        Added value: +"Steering hints for upcoming content. Not available on every plan; the call is refused with an upgrade message if your plan lacks it."
      • addedInput schema / properties / contentDirection / properties / avoidTopics / description
        Added value: +"Topics the influencer must never post about, or null to clear. Example: \"politics, medical claims\"."
      • addedInput schema / properties / contentDirection / properties / nextPostHint / description
        Added value: +"What the very next post should be about, or null to clear. Example: \"Behind the scenes of a morning workout\"."
      • addedInput schema / properties / contentDirection / properties / overallStrategyHint / description
        Added value: +"Standing guidance for the overall content strategy, or null to clear. Example: \"Educational tips first, product mentions second\"."
      • addedInput schema / properties / contentStrategy / description
        Added value: +"Content planning settings. Posting cadence, schedule and auto-engagement are not available over MCP."
      • addedInput schema / properties / contentStrategy / properties / aiCalculatedMode / description
        Added value: +"When true, Inflyu calculates the growth strategy automatically. May need a higher plan."
      • addedInput schema / properties / contentStrategy / properties / carouselsCount / description
        Added value: +"Carousels to plan per week (0 or more). Example: 1."
      • addedInput schema / properties / contentStrategy / properties / contentMixMode / description
        Added value: +"How the content mix is chosen: \"auto\" (Inflyu decides) or \"manual\" (use the counts above)."
      • addedInput schema / properties / contentStrategy / properties / contentTypes / description
        Added value: +"Content types to produce, as a list or a comma-separated string. Example: [\"image\", \"short_video\", \"carousel\"]."
      • addedInput schema / properties / contentStrategy / properties / imagesCount / description
        Added value: +"Images to plan per week (0 or more). Example: 3."
      • addedInput schema / properties / contentStrategy / properties / platformContentMode / description
        Added value: +"Use the same content everywhere (\"same\") or tailor it per platform (\"platform_optimized\"). The latter may need a higher plan."
      • addedInput schema / properties / contentStrategy / properties / reelsCount / description
        Added value: +"Reels to plan per week (0 or more). Example: 2."
      • addedInput schema / properties / contentStrategy / properties / storiesCount / description
        Added value: +"Stories to plan per week (0 or more). Example: 3."
      • addedInput schema / properties / description / description
        Added value: +"New bio or persona description (max 2000 characters)."
      • addedInput schema / properties / influencerId / description
        Added value: +"ID of the AI influencer to update, as returned by influencers_list. Example: \"clx9f3k2a0001abcd\"."
      • addedInput schema / properties / isCoach / description
        Added value: +"Set true to mark the influencer as a coach or educator persona."
      • addedInput schema / properties / mashupCategories / description
        Added value: +"Up to 2 secondary niches blended with the primary category. Example: [\"travel\", \"food\"]."
      • addedInput schema / properties / name / description
        Added value: +"New display name (2-100 characters). Example: \"Luna Reyes\"."
      • addedInput schema / properties / personality / description
        Added value: +"Voice and writing-style settings. Send only the fields you want to change."
      • addedInput schema / properties / personality / properties / aiSelfAwareness / description
        Added value: +"How openly the influencer treats being AI: \"own_it\", \"subtle\" or \"hide_it\"."
      • addedInput schema / properties / personality / properties / doRules / description
        Added value: +"Things the influencer should always do: a single string or a list of strings. Example: [\"Use a question as the hook\"]."
      • addedInput schema / properties / personality / properties / dontRules / description
        Added value: +"Things the influencer should never do: a single string or a list of strings. Example: [\"Never use slang from other regions\"]."
      • addedInput schema / properties / personality / properties / emojiKit / description
        Added value: +"Emoji characters the influencer favours, as a single string or a list of up to 10 short strings."
      • addedInput schema / properties / personality / properties / language / description
        Added value: +"Language code for generated content (2-10 characters). Example: \"en\"."
      • addedInput schema / properties / personality / properties / secondaryTone / description
        Added value: +"Supporting tone blended in. Example: \"warm\"."
      • addedInput schema / properties / personality / properties / signaturePhrases / description
        Added value: +"Catchphrases to use regularly: a single string or a list of strings. Example: [\"Stay curious\"]."
      • addedInput schema / properties / personality / properties / tone / description
        Added value: +"Main voice tone. Example: \"playful\"."
      • addedInput schema / properties / personality / properties / toneIntensity / description
        Added value: +"How strongly the tone comes through, from 1 (subtle) to 10 (strong). Example: 7."
      • addedInput schema / properties / personality / properties / voiceExamples / description
        Added value: +"Sample posts that show the desired voice: a single string or a list of strings."
      • addedInput schema / properties / personality / properties / writingStyle / description
        Added value: +"Description of the writing style. Example: \"short punchy sentences with light humour\"."
      • addedInput schema / properties / templateIds / description
        Added value: +"Up to 3 persona template IDs this influencer is based on."
      • addedInput schema / properties / timezone / description
        Added value: +"IANA timezone used for scheduling, or null to use your profile timezone. Example: \"Europe/London\"."
      • addedInput schema / properties / title / description
        Added value: +"New short tagline (max 200 characters). Example: \"Fitness Coach\"."
      • addedInput schema / properties / username / description
        Added value: +"New unique handle: letters, numbers, underscores, hyphens and dots (2-50 characters). Example: \"luna.reyes\"."
      • addedInput schema / properties / visualSettings / description
        Added value: +"Look and identity settings for generated images and videos. Send only the fields you want to change."
      • addedInput schema / properties / visualSettings / properties / ageRange / description
        Added value: +"Apparent age range used for generated visuals. Example: \"25-34\"."
      • addedInput schema / properties / visualSettings / properties / gender / description
        Added value: +"Gender presentation used for generated visuals. Example: \"female\"."
      • addedInput schema / properties / visualSettings / properties / identityLocked / description
        Added value: +"When true, generations keep the face and look consistent with the reference images."
      • addedInput schema / properties / visualSettings / properties / identityStrength / description
        Added value: +"How strictly the identity is preserved, from 0 (loose) to 1 (strict). Example: 0.8."
      • addedInput schema / properties / visualSettings / properties / referenceImages / description
        Added value: +"Reference images as a JSON-encoded array of image URL strings, or null to clear. Example: `[\"https://example.com/ref.jpg\"]`."
      • addedInput schema / properties / visualSettings / properties / stylePreset / description
        Added value: +"Visual style preset name. Example: \"cinematic\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "id": {
        +      "description": "Influencer ID.",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Display name.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Lifecycle state: \"draft\", \"active\" or \"paused\".",
        +      "type": "string"
        +    },
        +    "username": {
        +      "description": "Unique handle.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "username",
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedjobs_get2 fields changed
      • addedInput schema / properties / jobId / description
        Added value: +"Job ID returned by an async tool such as influencers_generate, studio_image_generate, image_editor_process or clone_influencer_run (max 64 characters). Example: \"clx9f3k2a0003jobid\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Capability that ran the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "creditsCharged": {
        +      "description": "Credits charged for the job.",
        +      "type": "number"
        +    },
        +    "error": {
        +      "description": "Failure reason when the job failed.",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the job.",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "Job result once completed. Its shape depends on the capability, for example { mediaUrl, contentId } for an image."
        +    },
        +    "status": {
        +      "description": "Job state: \"queued\", \"processing\", \"completed\" or \"failed\".",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId",
        +    "creditsCharged"
        +  ],
        +  "type": "object"
        +}
    • Changedmedia_upload_presign4 fields changed
      • addedInput schema / properties / contentType / description
        Added value: +"MIME type of the file; must start with image/ or video/. Example: \"video/mp4\" or \"image/jpeg\"."
      • addedInput schema / properties / filename / description
        Added value: +"Original file name including extension (1-200 characters). Example: \"clip.mp4\"."
      • addedInput schema / properties / size / description
        Added value: +"Exact file size in bytes. Images up to 8 MB, videos up to 20 MB. Example: 5242880."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "key": {
        +      "description": "Storage key of the uploaded object.",
        +      "type": "string"
        +    },
        +    "mimeType": {
        +      "description": "Content type the upload must be sent with.",
        +      "type": "string"
        +    },
        +    "publicUrl": {
        +      "description": "Public HTTPS URL of the file once uploaded. Pass this to tools that take an image or video URL.",
        +      "type": "string"
        +    },
        +    "uploadUrl": {
        +      "description": "Presigned URL valid for 5 minutes. PUT the raw file bytes to it with the same Content-Type.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "uploadUrl",
        +    "publicUrl",
        +    "key",
        +    "mimeType"
        +  ],
        +  "type": "object"
        +}
    • Changedstudio_carousel_generate4 fields changed
      • addedInput schema / properties / aspectRatio / description
        Added value: +"Frame shape as width:height. Example: \"4:5\"."
      • addedInput schema / properties / prompt / description
        Added value: +"Describe the carousel theme (1-4000 characters). Example: \"Five quick tips for a better morning routine\"."
      • addedInput schema / properties / slideCount / description
        Added value: +"Number of slides to generate (1-5, default 3). Credits are charged per slide. Example: 4."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Internal capability that is running the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the queued job. Pass it to jobs_get to poll for the result.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Job state right after it was accepted. Usually \"queued\".",
        +      "enum": [
        +        "queued",
        +        "processing"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId"
        +  ],
        +  "type": "object"
        +}
    • Changedstudio_image_generate3 fields changed
      • addedInput schema / properties / aspectRatio / description
        Added value: +"Frame shape as width:height. Sized presets: \"1:1\", \"16:9\", \"9:16\", \"4:5\". Example: \"4:5\"."
      • addedInput schema / properties / prompt / description
        Added value: +"Describe the image to generate (1-4000 characters). Example: \"A golden retriever wearing sunglasses on a beach at sunset\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Internal capability that is running the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the queued job. Pass it to jobs_get to poll for the result.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Job state right after it was accepted. Usually \"queued\".",
        +      "enum": [
        +        "queued",
        +        "processing"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId"
        +  ],
        +  "type": "object"
        +}
    • Changedstudio_reel_generate4 fields changed
      • addedInput schema / properties / aspectRatio / description
        Added value: +"Frame shape as width:height. Example: \"9:16\" for a vertical reel."
      • addedInput schema / properties / prompt / description
        Added value: +"Describe the short video to generate (1-4000 characters). Example: \"A drone shot gliding over a misty mountain lake at dawn\"."
      • addedInput schema / properties / startImageUrl / description
        Added value: +"Optional HTTPS URL of an image to animate as the first frame, for example one from media_upload_presign or an earlier Inflyu result."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Internal capability that is running the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the queued job. Pass it to jobs_get to poll for the result.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Job state right after it was accepted. Usually \"queued\".",
        +      "enum": [
        +        "queued",
        +        "processing"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId"
        +  ],
        +  "type": "object"
        +}
    • Changedstudio_story_generate3 fields changed
      • addedInput schema / properties / aspectRatio / description
        Added value: +"Frame shape as width:height. Example: \"9:16\"."
      • addedInput schema / properties / prompt / description
        Added value: +"Describe the story frame to generate (1-4000 characters). Example: \"Cozy coffee shop counter with a handwritten menu, warm light\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "capabilityId": {
        +      "description": "Internal capability that is running the job. Example: \"studio.image.generate\".",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the queued job. Pass it to jobs_get to poll for the result.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Job state right after it was accepted. Usually \"queued\".",
        +      "enum": [
        +        "queued",
        +        "processing"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "capabilityId"
        +  ],
        +  "type": "object"
        +}
    • Changedtrends_list1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "trends": {
        +      "description": "Active trends.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "appPath": {
        +            "description": "In-app path to use the trend.",
        +            "type": "string"
        +          },
        +          "description": {
        +            "description": "What the trend produces.",
        +            "type": "string"
        +          },
        +          "formats": {
        +            "description": "Formats the trend is offered in, with credit prices.",
        +            "items": {
        +              "additionalProperties": true,
        +              "properties": {
        +                "format": {
        +                  "description": "Format ID.",
        +                  "type": "string"
        +                },
        +                "label": {
        +                  "description": "Format name.",
        +                  "type": "string"
        +                },
        +                "price": {
        +                  "description": "Credit price of this format.",
        +                  "type": "number"
        +                }
        +              },
        +              "required": [
        +                "format",
        +                "label",
        +                "price"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "hot": {
        +            "description": "True when the trend is currently popular.",
        +            "type": "boolean"
        +          },
        +          "id": {
        +            "description": "Trend ID.",
        +            "type": "string"
        +          },
        +          "marketingPath": {
        +            "description": "Public page path on inflyu.com.",
        +            "type": "string"
        +          },
        +          "minPrice": {
        +            "description": "Lowest credit price across the formats.",
        +            "type": "number"
        +          },
        +          "title": {
        +            "description": "Trend name.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "title",
        +          "description",
        +          "hot",
        +          "marketingPath",
        +          "appPath",
        +          "minPrice",
        +          "formats"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "trends"
        +  ],
        +  "type": "object"
        +}
    • Changedvideo_editor_process21 fields changed
      • addedInput schema / properties / audioUrl / description
        Added value: +"HTTPS URL of the speech track for lip-sync (upload it with media_upload_presign)."
      • addedInput schema / properties / cameraPreset / description
        Added value: +"For camera-move: the camera movement to apply (max 40 characters); see video_editor_tools for the options. Example: \"push-in\"."
      • addedInput schema / properties / captionText / description
        Added value: +"For captions: the text to burn into the video (max 200 characters). Example: \"Summer sale starts Friday\"."
      • addedInput schema / properties / consent / description
        Added value: +"Not used by the tools available here; reserved."
      • addedInput schema / properties / consentGiven / description
        Added value: +"Not used by the tools available here; reserved for a song tool that is not offered over MCP."
      • addedInput schema / properties / duration / description
        Added value: +"Output length in seconds; the default is 8. Allowed: restyle, reimagine, swap, erase and copy-video 4, 6, 8 or 15; extend 4, 6 or 8; lip-sync up to 10; camera-move 5 or 10; upscale and talking-photo 5, 10 or 15. See video_editor_tools."
      • addedInput schema / properties / genre / description
        Added value: +"For music-track: the style or mood of the track to mix under the clip (max 40 characters, never a named artist). Example: \"lofi hip-hop\"."
      • addedInput schema / properties / imageUrls / description
        Added value: +"For property-walkthrough: 2 to 4 HTTPS room photo URLs in walkthrough order; also send the first one as sourceUrl."
      • addedInput schema / properties / influencerId / description
        Added value: +"ID of one of your AI influencers (from influencers_list). For talking-photo it can supply the speaking character's photo; for swap with person mode it can supply the replacement."
      • addedInput schema / properties / lipsync / description
        Added value: +"Not used by the tools available here; reserved."
      • addedInput schema / properties / lyrics / description
        Added value: +"Not used by the tools available here; reserved for a song tool that is not offered over MCP."
      • addedInput schema / properties / performerImageUrl / description
        Added value: +"Not used by the tools available here; reserved for a song tool that is not offered over MCP."
      • addedInput schema / properties / preset / description
        Added value: +"For restyle: a ready-made look, one of the listed values, used instead of or together with a prompt. Example: \"cinematic\"."
      • addedInput schema / properties / prompt / description
        Added value: +"Plain-language instruction (max 2000 characters). What to replace, remove, add or change, or the look to apply. Required for reimagine, erase and extend; optional for restyle, copy-video and add-sound. Example: \"remove the logo on the shirt\"."
      • addedInput schema / properties / referenceImageUrl / description
        Added value: +"HTTPS URL of a second image: the replacement for swap, or who or what to put in for copy-video. Upload it first with media_upload_presign."
      • addedInput schema / properties / resolution / description
        Added value: +"Output quality for upscale (\"1080p\" or \"4k\", default 1080p) and talking-photo (\"480p\" or \"720p\", default 480p)."
      • addedInput schema / properties / script / description
        Added value: +"For voiceover and talking-photo: the words to speak (5-800 characters; it must fit the chosen duration). Example: \"Hi, I am Luna. Here are three tips for your morning routine.\""
      • addedInput schema / properties / sourceLanguage / description
        Added value: +"Not used by the tools available here; reserved. Language code. Example: \"en\"."
      • addedInput schema / properties / targetLanguage / description
        Added value: +"Not used by the tools available here; reserved. Language code. Example: \"es\"."
      • addedInput schema / properties / voice / description
        Added value: +"For voiceover: a stock voice (alloy, echo, fable, onyx, nova or shimmer) or \"clone:<influencerId>\" to use a saved cloned voice. Example: \"nova\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "creditsCost": {
        +      "description": "Credits charged for this edit. Failed edits are refunded automatically.",
        +      "type": "number"
        +    },
        +    "hint": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "properties": {
        +            "tool": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "tool"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Suggested alternative tool, or null."
        +    },
        +    "jobId": {
        +      "description": "ID of the edit job. Poll it with video_editor_status about every 15 seconds.",
        +      "type": "string"
        +    },
        +    "next": {
        +      "description": "What to do next: poll video_editor_status.",
        +      "type": "string"
        +    },
        +    "requestedTool": {
        +      "description": "Tool you asked for.",
        +      "type": "string"
        +    },
        +    "routedFrom": {
        +      "description": "The requested tool when it was re-routed to another one; otherwise null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "status": {
        +      "description": "Job state, normally \"processing\" right after the start.",
        +      "type": "string"
        +    },
        +    "targetKind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "person",
        +            "other"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "For swap: whether the replaced subject is a person or something else; otherwise null."
        +    },
        +    "tool": {
        +      "description": "Tool that actually runs. It can differ from the one requested when Inflyu re-routes the edit.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "tool",
        +    "requestedTool",
        +    "routedFrom",
        +    "hint",
        +    "creditsCost",
        +    "targetKind",
        +    "next"
        +  ],
        +  "type": "object"
        +}
    • Changedvideo_editor_status2 fields changed
      • addedInput schema / properties / jobId / description
        Added value: +"Job ID returned by video_editor_process (max 64 characters). Example: \"clx9f3k2a0004vid\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "completedAt": {
        +      "description": "When the edit finished, ISO 8601; present once completed or failed.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "creditsCost": {
        +      "description": "Credits charged for the edit, or null when unknown.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "error": {
        +      "description": "Failure reason; present when the edit failed (credits are refunded).",
        +      "type": "string"
        +    },
        +    "jobId": {
        +      "description": "ID of the edit job.",
        +      "type": "string"
        +    },
        +    "next": {
        +      "description": "Hint to check again; present while the edit is still running.",
        +      "type": "string"
        +    },
        +    "progress": {
        +      "description": "Progress from 0 to 100.",
        +      "type": "number"
        +    },
        +    "progressLabel": {
        +      "description": "Human-readable current step, or null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "resultUrl": {
        +      "description": "URL of the finished video or image; present once completed.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Current state of the edit.",
        +      "enum": [
        +        "processing",
        +        "completed",
        +        "failed"
        +      ],
        +      "type": "string"
        +    },
        +    "tool": {
        +      "description": "Tool that ran the edit, or null when unknown.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "jobId",
        +    "status",
        +    "tool",
        +    "progress",
        +    "progressLabel",
        +    "creditsCost"
        +  ],
        +  "type": "object"
        +}
    • Changedvideo_editor_tools1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "howTo": {
        +      "description": "The recommended upload, process and poll workflow.",
        +      "type": "string"
        +    },
        +    "restylePresets": {
        +      "description": "Preset styles accepted by the restyle tool's \"preset\" input.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "label"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sourceRules": {
        +      "description": "Rules for the source clip or photo: length, format and size limits.",
        +      "type": "string"
        +    },
        +    "tools": {
        +      "description": "Video editor tools currently available, with inputs and credit prices.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "credits": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": {
        +                  "type": "number"
        +                },
        +                "type": "object"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "string"
        +              }
        +            ],
        +            "description": "Credit price: a single number, or a map from length or tier (for example \"8s\" or \"1080p 5s\") to credits."
        +          },
        +          "description": {
        +            "description": "What the tool does.",
        +            "type": "string"
        +          },
        +          "durations": {
        +            "description": "Allowed output lengths in seconds; empty when the tool has no length choice.",
        +            "items": {
        +              "type": "number"
        +            },
        +            "type": "array"
        +          },
        +          "id": {
        +            "description": "Tool ID to pass as \"tool\" to video_editor_process. Example: \"restyle\".",
        +            "type": "string"
        +          },
        +          "label": {
        +            "description": "Display name of the tool.",
        +            "type": "string"
        +          },
        +          "requires": {
        +            "description": "Inputs the tool needs besides sourceUrl.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "label",
        +          "description",
        +          "requires",
        +          "durations",
        +          "credits"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "tools",
        +    "restylePresets",
        +    "sourceRules",
        +    "howTo"
        +  ],
        +  "type": "object"
        +}
  15. 18 tool updates
    • First observedclone_influencer_run
    • First observedimage_editor_process
    • First observedinfluencers_create
    • First observedinfluencers_generate
    • First observedinfluencers_get
    • First observedinfluencers_list
    • First observedinfluencers_posts_status
    • First observedinfluencers_update
    • First observedjobs_get
    • First observedmedia_upload_presign
    • First observedstudio_carousel_generate
    • First observedstudio_image_generate
    • First observedstudio_reel_generate
    • First observedstudio_story_generate
    • First observedtrends_list
    • First observedvideo_editor_process
    • First observedvideo_editor_status
    • First observedvideo_editor_tools

Publisher details

Operator
Inflyu · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Requires an Inflyu account (OAuth sign-in). Generation and edit tools spend Inflyu credits: new accounts get 20 free credits, then credit packs from $1.99 or monthly plans. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Open-source skills that empower any AI agent (Claude, Cursor, Codex, Hermes, etc.) to generate end-to-end marketing campaigns — UGC videos, ad videos, product photography and more. From a product photo and a brief it casts AI actors, picks the best models, and edits finished assets of any length with consistent actor and product. It also researches competitors, publishes, and reviews performance.
    22
    57 npm
    272 PyPI
    80
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    AI marketing agent and AI ad generator, 900+ tools. No markup on models. Research winning ads across ad libraries and organic social, make image and video ads with your real product, batch static ads from a product catalog, swap a real or AI presenter into any video, publish to 11 social channels or let Autopilot posting fill your calendar, automate DMs, and run campaigns on 12 ad platforms.
    185
    632 npm
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources