generate_voiceover
Generate TTS audio for the project's voice blocks. Without voice_block_ids it fills gaps: only blocks with no audio yet run, so re-calling it is always safe (already-generated and currently-generating blocks are skipped, never re-billed). Pass voice_block_ids to explicitly REgenerate those blocks...
This record as markdown: /tools/com-framesail-framesail/generate-voiceover.md
What generate_voiceover does on Framesail
AI agents use generate_voiceover 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | — | TTS model ID; empty uses the default for the project's TTS provider. If set, it must belong to that provider — see list_models("voice_block") for each model's p |
settings | object | — | Model-specific TTS settings applied to every selected block; valid keys come from the model's settings_schema in list_models("voice_block") |
project_id | string | Yes | Project ID, as returned by create_project or list_projects |
voice_block_ids | object | — | Block IDs (from list_voice_blocks) to explicitly REgenerate; omit to fill gaps — only blocks with no audio yet run |
editable_sections | object | — | Per-call prompt section overrides applied to every selected block; see get_section_template("voice_block") |
Parameters from the server's own tool schema.
Why generate_voiceover is rated Medium
An AI agent can call generate_voiceover faster than any human can review: one bad instruction and it creates or modifies resources in Framesail by the hundred, each call as confident as the last.
Risk signalsBulk/mass operation — affects multiple targets
Attacks that exploit this kind of access
The rule that runs generate_voiceover safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Framesail, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For generate_voiceover, this is the rule to start with:
generate_voiceover stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Framesail, apply this rule, and every generate_voiceover call is checked against it from then on.
Questions about generate_voiceover
Generate TTS audio for the project's voice blocks. Without voice_block_ids it fills gaps: only blocks with no audio yet run, so re-calling it is always safe (already-generated and currently-generating blocks are skipped, never re-billed). Pass voice_block_ids to explicitly REgenerate those blocks (e.g. after changing a block's voice). Speakers must have voices bound first — set_narrator_voice / set_character_voice. Optional editable_sections/settings apply to every selected block (see get_section_template("voice_block") and list_models("voice_block")). Async — returns one job per block. It is categorised as a Write tool in the Framesail MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
generate_voiceover accepts 5 parameters: model, settings, project_id, voice_block_ids, editable_sections. Required: project_id. The full parameter table on this page comes from the server's own tool schema.
Register the Framesail MCP server in PolicyLayer and add a rule for generate_voiceover: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Framesail. Nothing to install.
generate_voiceover is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the generate_voiceover rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for generate_voiceover. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
generate_voiceover is provided by the Framesail MCP server (https://api.framesail.com/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Framesail, and thousands of servers like it.
This server
Across the catalogue