# generate_storyboard

Plan the full visual storyboard: segments, shot pacing, image/video prompts, overlays, continuation chains — driven by the channel's director and art styles. Requires voiceover to exist (timing comes from it). BEFORE calling: confirm the project's asset_mix with your user (image vs video vs generated_graphic percentages, update_project) — the storyboard plans against it and video-heavy mixes multiply the later render cost. Async — returns {job_id}; this is the longest LLM step.

Agent View of the PolicyLayer registry record for `generate_storyboard`. HTML page: https://policylayer.com/tools/com-framesail-framesail/generate-storyboard

## Facts

- Tool: `generate_storyboard`
- Server: Framesail (`https://api.framesail.com/mcp`) — https://policylayer.com/tools/com-framesail-framesail.md
- Homepage: https://github.com/https://api.framesail.com/mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 4 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `model` | string | no | Model ID to plan with; empty uses the default (see list_models("storyboard")) |
| `settings` | object | no | Model-specific settings; valid keys come from the model's settings_schema in list_models("storyboard") |
| `project_id` | string | yes | Project ID, as returned by create_project or list_projects |
| `editable_sections` | object | no | Per-call prompt section overrides, keyed by section name; see get_section_template("storyboard") |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "generate_storyboard",
    "arguments": {
      "project_id": "<project_id>"
    }
  }
}
```

## Why generate_storyboard is rated Medium

The tool creates new structured data (storyboard configuration) that modifies the project state and drives later rendering stages. While it doesn't execute the actual video rendering or delete anything, it is a generative/creative write operation that produces artifacts used by subsequent pipeline steps.

From the tool's own definition: "Tool 'generates' and 'plans' a storyboard with segments, shot pacing, prompts, and overlays. The description states it creates visual planning artifacts (segments, shot pacing, image/video prompts, overlays, continuation chains) that structure downstream…"

## Use case

AI agents use generate_storyboard to create or update resources in Framesail, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Framesail environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Framesail:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "generate_storyboard": {
      "limits": [
        {
          "counter": "generate_storyboard_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Framesail (67)

- `delete_asset` — Destructive — https://policylayer.com/tools/com-framesail-framesail/delete-asset.md
- `delete_project` — Destructive — https://policylayer.com/tools/com-framesail-framesail/delete-project.md
- `delete_style` — Destructive — https://policylayer.com/tools/com-framesail-framesail/delete-style.md
- `director_note` — Destructive — https://policylayer.com/tools/com-framesail-framesail/director-note.md
- `remove_music_track` — Destructive — https://policylayer.com/tools/com-framesail-framesail/remove-music-track.md
- `scan_script` — Destructive — https://policylayer.com/tools/com-framesail-framesail/scan-script.md
- `analyze_style` — Execute — https://policylayer.com/tools/com-framesail-framesail/analyze-style.md
- `build_scenes` — Execute — https://policylayer.com/tools/com-framesail-framesail/build-scenes.md
- `export_video` — Execute — https://policylayer.com/tools/com-framesail-framesail/export-video.md
- `regenerate_segment_asset` — Execute — https://policylayer.com/tools/com-framesail-framesail/regenerate-segment-asset.md
- `await_jobs` — Read — https://policylayer.com/tools/com-framesail-framesail/await-jobs.md
- `browse_audio_library` — Read — https://policylayer.com/tools/com-framesail-framesail/browse-audio-library.md
- `get_credit_balance` — Read — https://policylayer.com/tools/com-framesail-framesail/get-credit-balance.md
- `get_pipeline_progress` — Read — https://policylayer.com/tools/com-framesail-framesail/get-pipeline-progress.md
- `get_project` — Read — https://policylayer.com/tools/com-framesail-framesail/get-project.md
- `get_script` — Read — https://policylayer.com/tools/com-framesail-framesail/get-script.md
- `get_section_template` — Read — https://policylayer.com/tools/com-framesail-framesail/get-section-template.md
- `get_segment_assets` — Read — https://policylayer.com/tools/com-framesail-framesail/get-segment-assets.md
- `get_segments` — Read — https://policylayer.com/tools/com-framesail-framesail/get-segments.md
- `get_style` — Read — https://policylayer.com/tools/com-framesail-framesail/get-style.md
- `get_video_url` — Read — https://policylayer.com/tools/com-framesail-framesail/get-video-url.md
- `get_workflow_status` — Read — https://policylayer.com/tools/com-framesail-framesail/get-workflow-status.md
- `list_assets` — Read — https://policylayer.com/tools/com-framesail-framesail/list-assets.md
- `list_channels` — Read — https://policylayer.com/tools/com-framesail-framesail/list-channels.md
- `list_models` — Read — https://policylayer.com/tools/com-framesail-framesail/list-models.md
- `list_music_tracks` — Read — https://policylayer.com/tools/com-framesail-framesail/list-music-tracks.md
- `list_projects` — Read — https://policylayer.com/tools/com-framesail-framesail/list-projects.md
- `list_provider_keys` — Read — https://policylayer.com/tools/com-framesail-framesail/list-provider-keys.md
- `list_scenes` — Read — https://policylayer.com/tools/com-framesail-framesail/list-scenes.md
- `list_style_presets` — Read — https://policylayer.com/tools/com-framesail-framesail/list-style-presets.md
- …and 37 more: https://policylayer.com/tools/com-framesail-framesail.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-framesail-framesail · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-framesail-framesail
