Inflyu
Server Details
AI influencer images and video generation and editing for your agent.
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
Scored across 45 tools
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.
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.
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.
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.
25 tool updates
- Added
series_cast_create - Added
series_cast_delete - Added
series_cast_generate_sheet - Added
series_cast_update - Added
series_create - Added
series_delete - Added
series_episodes_create - Added
series_episodes_delete - Added
series_episodes_draft_script - Added
series_episodes_generate_all - Added
series_episodes_get - Added
series_episodes_plan - Added
series_episodes_render - Added
series_episodes_save_script - Added
series_episodes_structure_script - Added
series_episodes_voice - Added
series_get - Added
series_list - Added
series_music_set - Added
series_shots_generate_clip - Added
series_shots_generate_image - Added
series_shots_replace_image - Added
series_shots_update - Added
series_update - Added
series_voices_list
2 tool updates
- Changed
audio_editor_process1 field changed- changed
Input schema / properties / voice / anyOfPrevious 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" + } +]
- Changed
video_editor_process5 fields changed- added
Input schema / properties / endSecAdded value: +{ + "description": "trim only: where the kept part ends, in seconds from the start of the clip.", + "exclusiveMinimum": 0, + "maximum": 121, + "type": "number" +} - changed
Input schema / properties / sourceUrl / descriptionPrevious 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." - added
Input schema / properties / startSecAdded value: +{ + "description": "trim only: where the kept part starts, in seconds from the start of the clip.", + "maximum": 121, + "minimum": 0, + "type": "number" +} - changed
Input schema / properties / tool / enumPrevious 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" +] - changed
Input schema / properties / voice / anyOfPrevious 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 tool updates
- Changed
audio_editor_process8 fields changed- added
Input schema / properties / editModeAdded 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" +} - added
Input schema / properties / extendSecondsAdded value: +{ + "description": "For audio-edit: how many seconds to add, 5 to 60. Example: 20.", + "maximum": 60, + "minimum": 5, + "type": "integer" +} - changed
Input schema / properties / languageCode / descriptionPrevious 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." - changed
Input schema / properties / prompt / descriptionPrevious 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." - changed
Input schema / properties / sourceMedia / descriptionPrevious 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." - changed
Input schema / properties / sourceUrl / descriptionPrevious 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." - added
Input schema / properties / stemsAdded 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" +} - changed
Input schema / properties / tool / enumPrevious 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" +]
- Changed
video_editor_process6 fields changed- added
Input schema / properties / editModeAdded value: +{ + "description": "Not used by the video tools; audio extend lives in audio_editor_process.", + "enum": [ + "trim", + "speed", + "extend" + ], + "type": "string" +} - added
Input schema / properties / extendSecondsAdded value: +{ + "description": "Not used by the video tools; audio extend lives in audio_editor_process.", + "maximum": 60, + "minimum": 5, + "type": "integer" +} - added
Input schema / properties / speedFactorAdded value: +{ + "description": "Not used by the video tools; audio speed is free in the app.", + "maximum": 2, + "minimum": 0.5, + "type": "number" +} - added
Input schema / properties / stemsAdded value: +{ + "description": "Not used by the video tools; stem split lives in audio_editor_process.", + "enum": [ + 2, + 4 + ], + "type": "number" +} - added
Input schema / properties / trimEndAdded value: +{ + "description": "Not used by the video tools; audio trim is free in the app.", + "maximum": 600, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / trimStartAdded value: +{ + "description": "Not used by the video tools; audio trim is free in the app.", + "maximum": 600, + "minimum": 0, + "type": "number" +}
- Changed
video_editor_status2 fields changed- added
Output schema / properties / srtUrlAdded value: +{ + "description": "Transcribe only: URL of the subtitle (.srt) file. resultUrl is the transcript (.txt).", + "type": "string" +} - added
Output schema / properties / stemsAdded 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 tool updates
- Added
audio_editor_process - Added
audio_editor_tools - Changed
video_editor_process8 fields changed- added
Input schema / properties / languageCodeAdded value: +{ + "description": "Not used by the video tools; see audio_editor_process.", + "pattern": "^[a-z]{2,3}(-[A-Za-z]{2,4})?$", + "type": "string" +} - added
Input schema / properties / musicLengthAdded value: +{ + "description": "Not used by the video tools; music generation lives in audio_editor_process.", + "enum": [ + 30, + 60 + ], + "type": "number" +} - added
Input schema / properties / musicLyricsAdded value: +{ + "description": "Not used by the video tools; music generation lives in audio_editor_process.", + "maxLength": 1500, + "type": "string" +} - added
Input schema / properties / sfxSecondsAdded value: +{ + "description": "Not used by the video tools; sound effects live in audio_editor_process.", + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / sourceMediaAdded 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" +} - added
Input schema / properties / textAdded value: +{ + "description": "Not used by the video tools; text to speech lives in audio_editor_process.", + "type": "string" +} - changed
Input schema / properties / voice / anyOfPrevious 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" + } +] - added
Input schema / properties / withVocalsAdded value: +{ + "description": "Not used by the video tools; music generation lives in audio_editor_process.", + "type": "boolean" +}
- Changed
video_editor_status2 fields changed- added
Output schema / properties / audioUrlAdded 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" +} - changed
Output schema / properties / resultUrl / descriptionPrevious 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."
1 tool update
- Changed
influencers_update11 fields changed- added
Input schema / properties / contentStrategy / properties / carouselsCount / $refAdded value: +"#/properties/contentStrategy/properties/reelsCount" - removed
Input schema / properties / contentStrategy / properties / carouselsCount / minimumRemoved value: -0 - removed
Input schema / properties / contentStrategy / properties / carouselsCount / typeRemoved value: -"number" - added
Input schema / properties / contentStrategy / properties / imagesCount / $refAdded value: +"#/properties/contentStrategy/properties/reelsCount" - removed
Input schema / properties / contentStrategy / properties / imagesCount / minimumRemoved value: -0 - removed
Input schema / properties / contentStrategy / properties / imagesCount / typeRemoved value: -"number" - added
Input schema / properties / contentStrategy / properties / reelsCount / maximumAdded value: +168 - changed
Input schema / properties / contentStrategy / properties / reelsCount / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / contentStrategy / properties / storiesCount / $refAdded value: +"#/properties/contentStrategy/properties/reelsCount" - removed
Input schema / properties / contentStrategy / properties / storiesCount / minimumRemoved value: -0 - removed
Input schema / properties / contentStrategy / properties / storiesCount / typeRemoved value: -"number"
1 tool update
- Changed
influencers_generate2 fields changed- changed
Input schema / properties / options / descriptionPrevious 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." - changed
Input schema / properties / provider / descriptionPrevious 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."
1 tool update
- Changed
video_editor_process8 fields changed- changed
Input schema / properties / extraSwaps / descriptionPrevious 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." - changed
Input schema / properties / prompt / descriptionPrevious 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)." - changed
Input schema / properties / referenceImageUrl / descriptionPrevious 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." - changed
Input schema / properties / sourceStartSeconds / descriptionPrevious 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." - changed
Input schema / properties / swapMode / descriptionPrevious 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." - changed
Input schema / properties / swapQuote / descriptionPrevious 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." - changed
Output schema / properties / shots / descriptionPrevious 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)." - changed
Output schema / properties / warnings / descriptionPrevious 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."
2 tool updates
- Changed
video_editor_process1 field changed- changed
Input schema / properties / prompt / descriptionPrevious 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."
- Changed
video_editor_status1 field changed- added
Output schema / properties / fallbackNoticeAdded value: +{ + "description": "Present when a backup engine made the result instead of the main one: which engine and why.", + "type": "string" +}
3 tool updates
- Changed
image_editor_process4 fields changed- changed
Input schema / properties / backgroundImage / descriptionPrevious 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." - changed
Input schema / properties / backgroundPrompt / descriptionPrevious 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\"." - changed
Input schema / properties / prompt / descriptionPrevious 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\"." - changed
Input schema / properties / relightPreset / descriptionPrevious 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."
- Changed
video_editor_process8 fields changed- added
Input schema / properties / extraSwaps / descriptionAdded 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." - changed
Input schema / properties / prompt / descriptionPrevious 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." - added
Input schema / properties / swapQuote / descriptionAdded 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." - added
Input schema / properties / swapQuote / properties / quality / descriptionAdded value: +"\"full\" edits a frame for each shot, \"lite\" one frame per segment (never more credits than full). Both prices are in the reply." - added
Input schema / properties / swapQuote / properties / token / descriptionAdded value: +"The quoteToken from the SWAP_QUOTE_REQUIRED reply. Valid for 30 minutes, for that clip and your account only." - added
Input schema / properties / swapTarget / descriptionAdded value: +"For swap with several replacements: what the first photo replaces (max 120 characters). Example: \"the red mug\"." - added
Output schema / properties / shotsAdded 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" +} - added
Output schema / properties / warningsAdded 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" +}
- Changed
video_editor_status1 field changed- added
Output schema / properties / promptUsedAdded value: +{ + "description": "The rewritten instruction Inflyu actually sent to the model, when it differed from yours; present once the edit has started.", + "type": "string" +}
1 tool update
- Changed
video_editor_process3 fields changed- added
Input schema / properties / sourceStartSecondsAdded 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" +} - changed
Input schema / properties / sourceUrl / descriptionPrevious 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" - added
Input schema / properties / swapQuoteAdded value: +{ + "additionalProperties": false, + "properties": { + "quality": { + "enum": [ + "full", + "lite" + ], + "type": "string" + }, + "token": { + "maxLength": 8000, + "minLength": 10, + "type": "string" + } + }, + "required": [ + "token", + "quality" + ], + "type": "object" +}
1 tool update
- Changed
video_editor_process2 fields changed- added
Input schema / properties / extraSwapsAdded 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" +} - added
Input schema / properties / swapTargetAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
2 tool updates
- Changed
influencers_create1 field changed- changed
Input schema / properties / username / patternPrevious value: -"^[\\w.\\-]+$"New value: +"^[\\w.-]+$"
- Changed
influencers_update1 field changed- changed
Input schema / properties / username / patternPrevious value: -"^[\\w.\\-]+$"New value: +"^[\\w.-]+$"
1 tool update
- Changed
media_upload_presign3 fields changed- changed
Input schema / properties / contentType / descriptionPrevious 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\"." - changed
Input schema / properties / size / descriptionPrevious 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." - changed
Output schema / properties / publicUrl / descriptionPrevious 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."
18 tool updates
- Changed
clone_influencer_run2 fields changed- added
Input schema / properties / referenceImageUrls / descriptionAdded 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\"]." - changed
Output 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" +}
- Changed
image_editor_process12 fields changed- added
Input schema / properties / backgroundImage / descriptionAdded value: +"For \"bg-swap\": HTTPS URL of an image to use as the new background instead of a description." - added
Input schema / properties / backgroundPrompt / descriptionAdded value: +"For \"bg-swap\": describe the new background (max 2000 characters). Example: \"a rainy Tokyo street at night\"." - added
Input schema / properties / influencerId / descriptionAdded 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)." - added
Input schema / properties / preset / descriptionAdded value: +"Filter to apply; required for the \"filters\" tool. One of the listed values. Example: \"watercolor\"." - added
Input schema / properties / prompt / descriptionAdded 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\"." - added
Input schema / properties / ratio / descriptionAdded value: +"For \"expand\": target aspect ratio, \"9:16\" (default), \"4:5\" or \"16:9\"." - added
Input schema / properties / referenceImage / descriptionAdded 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." - added
Input schema / properties / relightPreset / descriptionAdded value: +"For \"relight\": lighting style, \"golden-hour\", \"studio\", \"neon\" or \"window\"." - added
Input schema / properties / sourceImage / descriptionAdded 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." - added
Input schema / properties / tool / descriptionAdded 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\"." - added
Input schema / properties / upscaleFactor / descriptionAdded value: +"For \"upscale\": enlarge by 2 or 4 times (default 2)." - changed
Output 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" +}
- Changed
influencers_create16 fields changed- added
Input schema / properties / ageRange / descriptionAdded value: +"Apparent age range used for generated visuals. Example: \"25-34\"." - added
Input schema / properties / category / descriptionAdded value: +"Niche or topic the influencer covers. Example: \"fitness\", \"travel\" or \"business\"." - added
Input schema / properties / description / descriptionAdded value: +"Free-text bio or persona description that shapes the content (max 2000 characters)." - added
Input schema / properties / gender / descriptionAdded value: +"Gender presentation used for generated visuals. Example: \"female\"." - added
Input schema / properties / isCoach / descriptionAdded value: +"Set true to mark the influencer as a coach or educator persona." - added
Input schema / properties / language / descriptionAdded value: +"Language code for generated content (2-10 characters). Example: \"en\"." - added
Input schema / properties / mashupCategories / descriptionAdded value: +"Up to 2 secondary niches blended with the primary category. Example: [\"travel\", \"food\"]." - added
Input schema / properties / modelType / descriptionAdded value: +"Visual and format style of the influencer; one of the listed values. Example: \"photo_model\"." - added
Input schema / properties / name / descriptionAdded value: +"Display name of the AI influencer (2-100 characters). Example: \"Luna Reyes\"." - added
Input schema / properties / requiresApproval / descriptionAdded value: +"When true, generated content waits for your manual approval before it can be published." - added
Input schema / properties / templateIds / descriptionAdded value: +"Up to 3 persona template IDs this influencer is based on." - added
Input schema / properties / timezone / descriptionAdded value: +"IANA timezone used for scheduling, or null to use your profile timezone. Example: \"America/New_York\"." - added
Input schema / properties / title / descriptionAdded value: +"Short tagline or job-title style label (max 200 characters). Example: \"Fitness Coach\"." - added
Input schema / properties / tone / descriptionAdded value: +"Voice tone used for captions and scripts. Example: \"playful\" or \"professional\"." - added
Input schema / properties / username / descriptionAdded value: +"Unique handle: letters, numbers, underscores, hyphens and dots only (2-50 characters). The call fails if it is taken. Example: \"luna.reyes\"." - changed
Output 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" +}
- Changed
influencers_generate16 fields changed- added
Input schema / properties / adjustmentHint / descriptionAdded value: +"With variationMode \"adjust\": what to change (max 500 characters). Example: \"Make the lighting warmer\"." - added
Input schema / properties / contentType / descriptionAdded 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\"." - added
Input schema / properties / forceIntro / descriptionAdded value: +"Set true to regenerate the influencer's introductory first post." - added
Input schema / properties / influencerId / descriptionAdded value: +"ID of the AI influencer to generate for, as returned by influencers_list. It must be active or otherwise eligible. Example: \"clx9f3k2a0001abcd\"." - added
Input schema / properties / options / descriptionAdded 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." - added
Input schema / properties / options / properties / aspectRatio / descriptionAdded value: +"Frame shape as width:height. Example: \"9:16\"." - added
Input schema / properties / options / properties / seed / descriptionAdded value: +"Number that makes a generation repeatable. Example: 42." - added
Input schema / properties / prompt / descriptionAdded value: +"What the content should show or say (1-5000 characters). Example: \"Morning stretching routine on a sunny balcony\"." - added
Input schema / properties / provider / descriptionAdded value: +"Optional AI provider to prefer. Leave unset to let Inflyu pick the best available one." - added
Input schema / properties / referenceImages / descriptionAdded value: +"Up to 5 HTTPS image URLs to use as visual references, for example from media_upload_presign." - added
Input schema / properties / repurposeTargetType / descriptionAdded value: +"Content type to turn sourceContentId into. Example: \"carousel\"." - added
Input schema / properties / sourceContentId / descriptionAdded value: +"ID of an existing piece of content to vary, adjust or repurpose." - added
Input schema / properties / targetPlatforms / descriptionAdded value: +"Platforms to tailor the result for. Example: [\"instagram\", \"tiktok\"]." - added
Input schema / properties / tone / descriptionAdded value: +"Optional tone override for this piece only. Example: \"motivational\"." - added
Input schema / properties / variationMode / descriptionAdded value: +"How to treat sourceContentId: \"new\" (fresh piece), \"variation\" (similar piece) or \"adjust\" (apply adjustmentHint to it)." - changed
Output 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" +}
- Changed
influencers_get2 fields changed- added
Input schema / properties / influencerId / descriptionAdded value: +"ID of the AI influencer to fetch, as returned by influencers_list. Example: \"clx9f3k2a0001abcd\"." - changed
Output 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" +}
- Changed
influencers_list2 fields changed- added
Input schema / properties / take / descriptionAdded value: +"Maximum number of influencers to return, newest first (1-100, default 50). Example: 20." - changed
Output 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" +}
- Changed
influencers_posts_status3 fields changed- added
Input schema / properties / generationJobId / descriptionAdded 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\"." - added
Input schema / properties / influencerId / descriptionAdded value: +"ID of the AI influencer the generation belongs to. Example: \"clx9f3k2a0001abcd\"." - changed
Output 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" +}
- Changed
influencers_update43 fields changed- added
Input schema / properties / category / descriptionAdded value: +"New niche or topic. Example: \"travel\"." - added
Input schema / properties / contentDirection / descriptionAdded value: +"Steering hints for upcoming content. Not available on every plan; the call is refused with an upgrade message if your plan lacks it." - added
Input schema / properties / contentDirection / properties / avoidTopics / descriptionAdded value: +"Topics the influencer must never post about, or null to clear. Example: \"politics, medical claims\"." - added
Input schema / properties / contentDirection / properties / nextPostHint / descriptionAdded value: +"What the very next post should be about, or null to clear. Example: \"Behind the scenes of a morning workout\"." - added
Input schema / properties / contentDirection / properties / overallStrategyHint / descriptionAdded value: +"Standing guidance for the overall content strategy, or null to clear. Example: \"Educational tips first, product mentions second\"." - added
Input schema / properties / contentStrategy / descriptionAdded value: +"Content planning settings. Posting cadence, schedule and auto-engagement are not available over MCP." - added
Input schema / properties / contentStrategy / properties / aiCalculatedMode / descriptionAdded value: +"When true, Inflyu calculates the growth strategy automatically. May need a higher plan." - added
Input schema / properties / contentStrategy / properties / carouselsCount / descriptionAdded value: +"Carousels to plan per week (0 or more). Example: 1." - added
Input schema / properties / contentStrategy / properties / contentMixMode / descriptionAdded value: +"How the content mix is chosen: \"auto\" (Inflyu decides) or \"manual\" (use the counts above)." - added
Input schema / properties / contentStrategy / properties / contentTypes / descriptionAdded value: +"Content types to produce, as a list or a comma-separated string. Example: [\"image\", \"short_video\", \"carousel\"]." - added
Input schema / properties / contentStrategy / properties / imagesCount / descriptionAdded value: +"Images to plan per week (0 or more). Example: 3." - added
Input schema / properties / contentStrategy / properties / platformContentMode / descriptionAdded value: +"Use the same content everywhere (\"same\") or tailor it per platform (\"platform_optimized\"). The latter may need a higher plan." - added
Input schema / properties / contentStrategy / properties / reelsCount / descriptionAdded value: +"Reels to plan per week (0 or more). Example: 2." - added
Input schema / properties / contentStrategy / properties / storiesCount / descriptionAdded value: +"Stories to plan per week (0 or more). Example: 3." - added
Input schema / properties / description / descriptionAdded value: +"New bio or persona description (max 2000 characters)." - added
Input schema / properties / influencerId / descriptionAdded value: +"ID of the AI influencer to update, as returned by influencers_list. Example: \"clx9f3k2a0001abcd\"." - added
Input schema / properties / isCoach / descriptionAdded value: +"Set true to mark the influencer as a coach or educator persona." - added
Input schema / properties / mashupCategories / descriptionAdded value: +"Up to 2 secondary niches blended with the primary category. Example: [\"travel\", \"food\"]." - added
Input schema / properties / name / descriptionAdded value: +"New display name (2-100 characters). Example: \"Luna Reyes\"." - added
Input schema / properties / personality / descriptionAdded value: +"Voice and writing-style settings. Send only the fields you want to change." - added
Input schema / properties / personality / properties / aiSelfAwareness / descriptionAdded value: +"How openly the influencer treats being AI: \"own_it\", \"subtle\" or \"hide_it\"." - added
Input schema / properties / personality / properties / doRules / descriptionAdded value: +"Things the influencer should always do: a single string or a list of strings. Example: [\"Use a question as the hook\"]." - added
Input schema / properties / personality / properties / dontRules / descriptionAdded value: +"Things the influencer should never do: a single string or a list of strings. Example: [\"Never use slang from other regions\"]." - added
Input schema / properties / personality / properties / emojiKit / descriptionAdded value: +"Emoji characters the influencer favours, as a single string or a list of up to 10 short strings." - added
Input schema / properties / personality / properties / language / descriptionAdded value: +"Language code for generated content (2-10 characters). Example: \"en\"." - added
Input schema / properties / personality / properties / secondaryTone / descriptionAdded value: +"Supporting tone blended in. Example: \"warm\"." - added
Input schema / properties / personality / properties / signaturePhrases / descriptionAdded value: +"Catchphrases to use regularly: a single string or a list of strings. Example: [\"Stay curious\"]." - added
Input schema / properties / personality / properties / tone / descriptionAdded value: +"Main voice tone. Example: \"playful\"." - added
Input schema / properties / personality / properties / toneIntensity / descriptionAdded value: +"How strongly the tone comes through, from 1 (subtle) to 10 (strong). Example: 7." - added
Input schema / properties / personality / properties / voiceExamples / descriptionAdded value: +"Sample posts that show the desired voice: a single string or a list of strings." - added
Input schema / properties / personality / properties / writingStyle / descriptionAdded value: +"Description of the writing style. Example: \"short punchy sentences with light humour\"." - added
Input schema / properties / templateIds / descriptionAdded value: +"Up to 3 persona template IDs this influencer is based on." - added
Input schema / properties / timezone / descriptionAdded value: +"IANA timezone used for scheduling, or null to use your profile timezone. Example: \"Europe/London\"." - added
Input schema / properties / title / descriptionAdded value: +"New short tagline (max 200 characters). Example: \"Fitness Coach\"." - added
Input schema / properties / username / descriptionAdded value: +"New unique handle: letters, numbers, underscores, hyphens and dots (2-50 characters). Example: \"luna.reyes\"." - added
Input schema / properties / visualSettings / descriptionAdded value: +"Look and identity settings for generated images and videos. Send only the fields you want to change." - added
Input schema / properties / visualSettings / properties / ageRange / descriptionAdded value: +"Apparent age range used for generated visuals. Example: \"25-34\"." - added
Input schema / properties / visualSettings / properties / gender / descriptionAdded value: +"Gender presentation used for generated visuals. Example: \"female\"." - added
Input schema / properties / visualSettings / properties / identityLocked / descriptionAdded value: +"When true, generations keep the face and look consistent with the reference images." - added
Input schema / properties / visualSettings / properties / identityStrength / descriptionAdded value: +"How strictly the identity is preserved, from 0 (loose) to 1 (strict). Example: 0.8." - added
Input schema / properties / visualSettings / properties / referenceImages / descriptionAdded value: +"Reference images as a JSON-encoded array of image URL strings, or null to clear. Example: `[\"https://example.com/ref.jpg\"]`." - added
Input schema / properties / visualSettings / properties / stylePreset / descriptionAdded value: +"Visual style preset name. Example: \"cinematic\"." - changed
Output 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" +}
- Changed
jobs_get2 fields changed- added
Input schema / properties / jobId / descriptionAdded 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\"." - changed
Output 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" +}
- Changed
media_upload_presign4 fields changed- added
Input schema / properties / contentType / descriptionAdded value: +"MIME type of the file; must start with image/ or video/. Example: \"video/mp4\" or \"image/jpeg\"." - added
Input schema / properties / filename / descriptionAdded value: +"Original file name including extension (1-200 characters). Example: \"clip.mp4\"." - added
Input schema / properties / size / descriptionAdded value: +"Exact file size in bytes. Images up to 8 MB, videos up to 20 MB. Example: 5242880." - changed
Output 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" +}
- Changed
studio_carousel_generate4 fields changed- added
Input schema / properties / aspectRatio / descriptionAdded value: +"Frame shape as width:height. Example: \"4:5\"." - added
Input schema / properties / prompt / descriptionAdded value: +"Describe the carousel theme (1-4000 characters). Example: \"Five quick tips for a better morning routine\"." - added
Input schema / properties / slideCount / descriptionAdded value: +"Number of slides to generate (1-5, default 3). Credits are charged per slide. Example: 4." - changed
Output 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" +}
- Changed
studio_image_generate3 fields changed- added
Input schema / properties / aspectRatio / descriptionAdded value: +"Frame shape as width:height. Sized presets: \"1:1\", \"16:9\", \"9:16\", \"4:5\". Example: \"4:5\"." - added
Input schema / properties / prompt / descriptionAdded value: +"Describe the image to generate (1-4000 characters). Example: \"A golden retriever wearing sunglasses on a beach at sunset\"." - changed
Output 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" +}
- Changed
studio_reel_generate4 fields changed- added
Input schema / properties / aspectRatio / descriptionAdded value: +"Frame shape as width:height. Example: \"9:16\" for a vertical reel." - added
Input schema / properties / prompt / descriptionAdded value: +"Describe the short video to generate (1-4000 characters). Example: \"A drone shot gliding over a misty mountain lake at dawn\"." - added
Input schema / properties / startImageUrl / descriptionAdded 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." - changed
Output 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" +}
- Changed
studio_story_generate3 fields changed- added
Input schema / properties / aspectRatio / descriptionAdded value: +"Frame shape as width:height. Example: \"9:16\"." - added
Input schema / properties / prompt / descriptionAdded value: +"Describe the story frame to generate (1-4000 characters). Example: \"Cozy coffee shop counter with a handwritten menu, warm light\"." - changed
Output 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" +}
- Changed
trends_list1 field changed- changed
Output 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" +}
- Changed
video_editor_process21 fields changed- added
Input schema / properties / audioUrl / descriptionAdded value: +"HTTPS URL of the speech track for lip-sync (upload it with media_upload_presign)." - added
Input schema / properties / cameraPreset / descriptionAdded value: +"For camera-move: the camera movement to apply (max 40 characters); see video_editor_tools for the options. Example: \"push-in\"." - added
Input schema / properties / captionText / descriptionAdded value: +"For captions: the text to burn into the video (max 200 characters). Example: \"Summer sale starts Friday\"." - added
Input schema / properties / consent / descriptionAdded value: +"Not used by the tools available here; reserved." - added
Input schema / properties / consentGiven / descriptionAdded value: +"Not used by the tools available here; reserved for a song tool that is not offered over MCP." - added
Input schema / properties / duration / descriptionAdded 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." - added
Input schema / properties / genre / descriptionAdded 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\"." - added
Input schema / properties / imageUrls / descriptionAdded value: +"For property-walkthrough: 2 to 4 HTTPS room photo URLs in walkthrough order; also send the first one as sourceUrl." - added
Input schema / properties / influencerId / descriptionAdded 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." - added
Input schema / properties / lipsync / descriptionAdded value: +"Not used by the tools available here; reserved." - added
Input schema / properties / lyrics / descriptionAdded value: +"Not used by the tools available here; reserved for a song tool that is not offered over MCP." - added
Input schema / properties / performerImageUrl / descriptionAdded value: +"Not used by the tools available here; reserved for a song tool that is not offered over MCP." - added
Input schema / properties / preset / descriptionAdded value: +"For restyle: a ready-made look, one of the listed values, used instead of or together with a prompt. Example: \"cinematic\"." - added
Input schema / properties / prompt / descriptionAdded 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\"." - added
Input schema / properties / referenceImageUrl / descriptionAdded 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." - added
Input schema / properties / resolution / descriptionAdded value: +"Output quality for upscale (\"1080p\" or \"4k\", default 1080p) and talking-photo (\"480p\" or \"720p\", default 480p)." - added
Input schema / properties / script / descriptionAdded 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.\"" - added
Input schema / properties / sourceLanguage / descriptionAdded value: +"Not used by the tools available here; reserved. Language code. Example: \"en\"." - added
Input schema / properties / targetLanguage / descriptionAdded value: +"Not used by the tools available here; reserved. Language code. Example: \"es\"." - added
Input schema / properties / voice / descriptionAdded value: +"For voiceover: a stock voice (alloy, echo, fable, onyx, nova or shimmer) or \"clone:<influencerId>\" to use a saved cloned voice. Example: \"nova\"." - changed
Output 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" +}
- Changed
video_editor_status2 fields changed- added
Input schema / properties / jobId / descriptionAdded value: +"Job ID returned by video_editor_process (max 64 characters). Example: \"clx9f3k2a0004vid\"." - changed
Output 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" +}
- Changed
video_editor_tools1 field changed- changed
Output 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" +}
18 tool updates
- First observed
clone_influencer_run - First observed
image_editor_process - First observed
influencers_create - First observed
influencers_generate - First observed
influencers_get - First observed
influencers_list - First observed
influencers_posts_status - First observed
influencers_update - First observed
jobs_get - First observed
media_upload_presign - First observed
studio_carousel_generate - First observed
studio_image_generate - First observed
studio_reel_generate - First observed
studio_story_generate - First observed
trends_list - First observed
video_editor_process - First observed
video_editor_status - First observed
video_editor_tools
Publisher details
- Operator
- Inflyu · Publisher source
- Operator website
- https://inflyu.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://inflyu.com/inflyu-mcp · 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
AI image, video and audio generation for agents: banners, reveal videos, avatars, voice cloning.
Generate and edit images, video, voice, lip-sync and 3D models from your AI agent.
AI images and videos with any model, AI personas, and AI clips from long videos.
Generate AI influencer photos, face swaps, and character sheets with a consistent face.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAgenthook lets AI agents make character-consistent UGC videos, images, and captions from any MCP client. Create a reusable AI influencer once, then ask for that same face by name in every video and image run.1Apache 2.0

SuperCMO Skillsofficial
AlicenseAqualityBmaintenanceOpen-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.2257 npm272 PyPI80Apache 2.0- AlicenseAqualityDmaintenanceEnables AI agents to edit video assemblies from A-roll and B-roll, add captions, and publish to social media platforms.278 npmMIT

Hermosoofficial
AlicenseAqualityAmaintenanceAI 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.185632 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.