← WebMCP Directory

Tool tree

creative-studio-eight-vert.vercel.app

AI & AgentsTools verified
Website
A multi-agent creative studio where 10+ specialist AI agents collaborate with humans to create video content through WebMCP tools.
Explore capabilities
    create_projectAction

    Starts a new video campaign in the studio. Sets the campaign name, goal, target audience, platform, and visual style. Call this once at the very start of a new campaign, before any other studio tool. When SEED_DEMO=true (env), the studio hydrates from a pre-recorded manifest so the deployed live URL can show real Veo 3 + OpenAI artifacts without burning provider budget per click.

    View tool JSON
    {
      "name": "create_project",
      "kind": "act",
      "impl": "imperative",
      "description": "Starts a new video campaign in the studio. Sets the campaign name, goal, target audience, platform, and visual style. Call this once at the very start of a new campaign, before any other studio tool. When SEED_DEMO=true (env), the studio hydrates from a pre-recorded manifest so the deployed live URL can show real Veo 3 + OpenAI artifacts without burning provider budget per click.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Short, human-readable campaign name."
          },
          "goal": {
            "type": "string",
            "description": "What this video should accomplish, in plain language."
          },
          "audience": {
            "type": "string",
            "description": "Who the video is for."
          },
          "platform": {
            "type": "string",
            "enum": [
              "instagram",
              "youtube",
              "tiktok",
              "linkedin",
              "generic"
            ],
            "description": "Where this video will primarily be published."
          },
          "style": {
            "type": "string",
            "enum": [
              "professional",
              "casual",
              "dramatic",
              "playful",
              "cinematic"
            ],
            "description": "Overall creative tone for the campaign."
          },
          "targetDurationSeconds": {
            "type": "number",
            "description": "Approximate target length of the finished video, in seconds."
          }
        },
        "required": [
          "name",
          "goal",
          "audience",
          "platform",
          "style"
        ]
      }
    }
    generate_scriptAction

    Scriptwriter agent: writes a beat-sheet video script (Hook → Pain → Promise → Proof → Objection → Payoff → CTA) as concrete, spoken narration lines powered by the project brief, platform, audience, and style. Each scene's description is a real VO line that feeds directly into Speechify TTS. Call after brand guidelines exist and before any visual or audio generation.

    View tool JSON
    {
      "name": "generate_script",
      "kind": "act",
      "impl": "imperative",
      "description": "Scriptwriter agent: writes a beat-sheet video script (Hook → Pain → Promise → Proof → Objection → Payoff → CTA) as concrete, spoken narration lines powered by the project brief, platform, audience, and style. Each scene's description is a real VO line that feeds directly into Speechify TTS. Call after brand guidelines exist and before any visual or audio generation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneCount": {
            "type": "number",
            "description": "How many scenes/beats the script should have. Short-form platforms (Instagram, TikTok) work best at 5-7; YouTube and LinkedIn can take 8+."
          },
          "keyMessage": {
            "type": "string",
            "description": "The single most important idea the script must land (e.g. 'drive signups for an eco walking-shoe launch'). Falls back to the project brief goal."
          }
        },
        "required": [
          "sceneCount",
          "keyMessage"
        ]
      }
    }
    create_storyboardAction

    Graphic Designer agent: turns the existing script scenes into a storyboard by writing a concrete image-generation prompt for each scene. Call after generate_script and before generate_image.

    View tool JSON
    {
      "name": "create_storyboard",
      "kind": "act",
      "impl": "imperative",
      "description": "Graphic Designer agent: turns the existing script scenes into a storyboard by writing a concrete image-generation prompt for each scene. Call after generate_script and before generate_image.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "visualStyleNotes": {
            "type": "string",
            "description": "Art-direction notes to apply across every scene."
          }
        },
        "required": [
          "visualStyleNotes"
        ]
      }
    }
    generate_imageAction

    Graphic Designer agent: generates the still key visual for one scene from its storyboard prompt. Call once per scene after create_storyboard.

    View tool JSON
    {
      "name": "generate_image",
      "kind": "act",
      "impl": "imperative",
      "description": "Graphic Designer agent: generates the still key visual for one scene from its storyboard prompt. Call once per scene after create_storyboard.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneId": {
            "type": "string",
            "description": "The scene id, e.g. 'scene_1'."
          },
          "promptOverride": {
            "type": "string",
            "description": "Optional replacement prompt."
          }
        },
        "required": [
          "sceneId"
        ]
      }
    }
    text_to_videoAction

    Motion Graphics agent: generates a short video clip for a scene from a text prompt.

    View tool JSON
    {
      "name": "text_to_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Motion Graphics agent: generates a short video clip for a scene from a text prompt.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneId": {
            "type": "string"
          },
          "durationSeconds": {
            "type": "number",
            "description": "Target clip length in seconds (2–10)."
          },
          "motionNotes": {
            "type": "string"
          }
        },
        "required": [
          "sceneId",
          "durationSeconds"
        ]
      }
    }
    image_to_videoAction

    Motion Graphics agent: animates an existing scene key visual into a short video clip.

    View tool JSON
    {
      "name": "image_to_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Motion Graphics agent: animates an existing scene key visual into a short video clip.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneId": {
            "type": "string"
          },
          "durationSeconds": {
            "type": "number",
            "description": "Target clip length in seconds (2–10)."
          },
          "motionNotes": {
            "type": "string",
            "description": "Camera/motion direction, e.g. 'slow push in, parallax'."
          }
        },
        "required": [
          "sceneId",
          "durationSeconds"
        ]
      }
    }
    text_to_speechAction

    Voiceover agent: converts a scene's narration line into spoken audio.

    View tool JSON
    {
      "name": "text_to_speech",
      "kind": "act",
      "impl": "imperative",
      "description": "Voiceover agent: converts a scene's narration line into spoken audio.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneId": {
            "type": "string"
          },
          "line": {
            "type": "string",
            "description": "The narration line to voice."
          },
          "voiceTone": {
            "type": "string",
            "enum": [
              "warm",
              "energetic",
              "authoritative",
              "calm",
              "playful"
            ],
            "description": "Vocal tone."
          }
        },
        "required": [
          "sceneId",
          "line",
          "voiceTone"
        ]
      }
    }
    write_captionAction

    Copywriter agent: writes short-form on-screen text or a social caption for one scene.

    View tool JSON
    {
      "name": "write_caption",
      "kind": "act",
      "impl": "imperative",
      "description": "Copywriter agent: writes short-form on-screen text or a social caption for one scene.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneId": {
            "type": "string"
          },
          "purpose": {
            "type": "string",
            "enum": [
              "on_screen_text",
              "post_caption",
              "hook_line"
            ],
            "description": "Type of copy."
          }
        },
        "required": [
          "sceneId",
          "purpose"
        ]
      }
    }
    compose_videoAction

    Video Editor agent: assembles all scene clips, narration, and captions into a single timeline.

    View tool JSON
    {
      "name": "compose_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Video Editor agent: assembles all scene clips, narration, and captions into a single timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "transitionStyle": {
            "type": "string",
            "enum": [
              "cut",
              "crossfade",
              "whip_pan",
              "match_cut"
            ],
            "description": "Style of transition between scenes."
          }
        },
        "required": [
          "transitionStyle"
        ]
      }
    }
    review_videoAction

    Critic/QA agent. Does NOT create content. Reviews the composed video and returns APPROVED or NEEDS_REVISION with notes. Read-only.

    View tool JSON
    {
      "name": "review_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Critic/QA agent. Does NOT create content. Reviews the composed video and returns APPROVED or NEEDS_REVISION with notes. Read-only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "checklistNotes": {
            "type": "string"
          }
        }
      }
    }
    request_human_approvalAction

    Pauses the campaign and asks the human to approve or reject before proceeding. The human veto: call it before marking a campaign complete, before anything would be published or sent externally, and any other time a specialist's output needs a human sign-off. Execution does not resume until the human responds. Use sparingly — this is a blocking checkpoint.

    View tool JSON
    {
      "name": "request_human_approval",
      "kind": "act",
      "impl": "imperative",
      "description": "Pauses the campaign and asks the human to approve or reject before proceeding. The human veto: call it before marking a campaign complete, before anything would be published or sent externally, and any other time a specialist's output needs a human sign-off. Execution does not resume until the human responds. Use sparingly — this is a blocking checkpoint.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string",
            "description": "One-line summary of what's being approved."
          },
          "detail": {
            "type": "string",
            "description": "Fuller context the human needs to decide."
          }
        },
        "required": [
          "summary",
          "detail"
        ]
      }
    }
    get_project_roadmapAnswer

    Project Manager agent. Does NOT create or judge content. Returns the full production roadmap and the current phase. Read-only; safe to call at any time.

    View tool JSON
    {
      "name": "get_project_roadmap",
      "kind": "answer",
      "impl": "imperative",
      "description": "Project Manager agent. Does NOT create or judge content. Returns the full production roadmap and the current phase. Read-only; safe to call at any time.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    get_project_statusAnswer

    Project Manager agent. Does NOT create or judge content. Returns a snapshot of the current project: name, phase, per-scene asset completeness, and any open QA notes or pending approvals. Read-only; safe to call at any time, including before deciding what to do next.

    View tool JSON
    {
      "name": "get_project_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Project Manager agent. Does NOT create or judge content. Returns a snapshot of the current project: name, phase, per-scene asset completeness, and any open QA notes or pending approvals. Read-only; safe to call at any time, including before deciding what to do next.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    refine_sceneAction

    Refines an existing scene from specific feedback and/or a list of property/value changes. Applied from the Critic/QA NEEDS_REVISION loop, or from a human asking for a targeted edit. Pass sceneId plus optional feedback (why it needs work) and a changes array covering one or more of: description, imagePrompt, caption, durationSeconds. When the scene has a key visual, the still is re-generated against the feedback.

    View tool JSON
    {
      "name": "refine_scene",
      "kind": "act",
      "impl": "imperative",
      "description": "Refines an existing scene from specific feedback and/or a list of property/value changes. Applied from the Critic/QA NEEDS_REVISION loop, or from a human asking for a targeted edit. Pass sceneId plus optional feedback (why it needs work) and a changes array covering one or more of: description, imagePrompt, caption, durationSeconds. When the scene has a key visual, the still is re-generated against the feedback.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneId": {
            "type": "string",
            "description": "The scene id, e.g. \"scene_2\"."
          },
          "feedback": {
            "type": "string",
            "description": "Why the scene needs refinement — this drives re-generation."
          },
          "changes": {
            "type": "array",
            "description": "Specific property/value edits to apply to the scene.",
            "items": {
              "type": "object",
              "properties": {
                "property": {
                  "type": "string",
                  "description": "One of: description, imagePrompt, caption, durationSeconds."
                },
                "value": {
                  "type": "string",
                  "description": "The new value."
                }
              }
            }
          }
        },
        "required": [
          "sceneId"
        ]
      }
    }
    export_videoAction

    Video Editor agent: confirms the composed video is ready to ship and reports what export would produce. With download=true an agent running in the browser triggers the actual file download. Without a real mp4 on disk the studio falls back to a per-scene slideshow manifest that the VideoPreview component stitches in-browser.

    View tool JSON
    {
      "name": "export_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Video Editor agent: confirms the composed video is ready to ship and reports what export would produce. With download=true an agent running in the browser triggers the actual file download. Without a real mp4 on disk the studio falls back to a per-scene slideshow manifest that the VideoPreview component stitches in-browser.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "download": {
            "type": "boolean",
            "description": "When true (browser-side only), trigger the actual file download."
          }
        }
      }
    }
    list_available_providersAnswer

    Returns which generation providers are configured for each capability (image, tts, text-to-video, image-to-video, compose). Lets an external agent see whether the studio will call real APIs (OpenAI, fal.ai, Speechify, etc.) or fall back to deterministic placeholders under DEMO_MODE. Read-only.

    View tool JSON
    {
      "name": "list_available_providers",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns which generation providers are configured for each capability (image, tts, text-to-video, image-to-video, compose). Lets an external agent see whether the studio will call real APIs (OpenAI, fal.ai, Speechify, etc.) or fall back to deterministic placeholders under DEMO_MODE. Read-only.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    procedural_videoAction

    Generates a real video file from a scene's still image by animating it with Ken Burns / parallax / pulse / glide / tilt-shift transforms and recording the result via MediaRecorder. Browser-only fallback used when external video providers (Veo, FAL, Luma, Runway, Replicate) are not reachable. Uploads the WebM to /public/assets/ and stores the public URL on scene.videoUrl so the scene plays as a real video, not a static image.

    View tool JSON
    {
      "name": "procedural_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Generates a real video file from a scene's still image by animating it with Ken Burns / parallax / pulse / glide / tilt-shift transforms and recording the result via MediaRecorder. Browser-only fallback used when external video providers (Veo, FAL, Luma, Runway, Replicate) are not reachable. Uploads the WebM to /public/assets/ and stores the public URL on scene.videoUrl so the scene plays as a real video, not a static image.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sceneId": {
            "type": "string",
            "description": "ID of the scene to generate procedural video for. Must already have an imageUrl."
          },
          "pattern": {
            "type": "string",
            "enum": [
              "kenBurns-in",
              "kenBurns-out",
              "parallax-drift",
              "glide-up",
              "pulse-zoom"
            ],
            "description": "Ken Burns pattern. Default 'kenBurns-in'."
          },
          "logToActivity": {
            "type": "boolean",
            "description": "When true, log this call to the activity feed and update the motion-graphics agent status."
          }
        },
        "required": [
          "sceneId"
        ]
      }
    }