Browse documentation

BHuman MCP

Create a Speakeasy presenter video.

Prepare narration, review the render estimate and retrieve playable output.

Beta integration guide · verification in progress

The deployed schema and source have been reviewed on October 2, 2026. Ordinary-customer generation, credit failures, credential rotation and both client workflows are awaiting end-to-end qualification. These examples are not yet certified for customer launch.

Before creating a Speakeasy video

Speakeasy creates a presenter video from narration and a script. It does not personalize an AI Studio template or run a LeadR campaign. Connect the hosted MCP using the shared setup, then confirm get_capabilities, list_presenters and list_voices work for your account.

Use owned saved media for your first render. Prepare a script with at least 100 characters of narration and select your presenter and voice. prepare_video accepts target_seconds from 10 to 600. Provide script or script_prompt, not both.

Review product eligibility, balance and provider limits in Plan & usage. Standard uses 1× billable duration; HD uses 2×. The normal shared-credit conversion is 0.25 credits per billable second: a 20-second video is approximately 5 Standard or 10 HD credits. The current plan and account pricing are authoritative.

Quickstart: prepare, approve, render

1. Connect either client above. Call get_capabilities, list_presenters and list_voices. Choose owned saved assets or assets you are authorized to use. Read-only discovery should succeed before requesting any generation.

2. Ask the assistant to prepare a 20-second Standard video with the prompt below. It should call prepare_video, save the script/presenter/narration and return a current render plan. Preparing does not start a paid video render; drafting and provider preparation can still take time or have account/provider limits.

3. Review plan_id, project.id, quality, output_resolution, estimated_billable_seconds and expires_at. Confirm the exact cost only if it fits your available credits and budget. Then ask the assistant to call start_render with that plan_id, confirm_credit_charge: true and one unique idempotency_key. Save the plan, project and returned job reference.

4. Ask it to call get_render with project_id until structuredContent.project.video_url is populated or structuredContent.project reports a terminal error. Open the URL and confirm video and audio play. If a long call times out, check the existing project and narration before preparing again; do not create a second project blindly.

Preparation prompt

Prompt
Use my selected saved presenter and voice to prepare a 20-second introduction about our own business. Use standard quality, continuous video, 16:9, no B-roll and no background sound. Call prepare_video and show me the plan, estimated billable seconds and expiry. Do not start a render.

Approval prompt · substitute the reviewed estimate

Prompt
I approve the current plan and its displayed charge of REVIEWED_BILLABLE_SECONDS Speakeasy seconds. Call start_render once with the reviewed plan_id, confirm_credit_charge=true and one unique idempotency key. Preserve that key for retries. Then monitor get_render for this project and return the playable video URL.

Supported render choices

The deployed source contract supports quality=standard (480p) and quality=hd (720p); standard is the default. HD uses a 2× estimated duration multiplier and remains subject to account access and balance checks. The supported video_style is continuous. Avoid obsolete quality or style values from older guides.

aspect_ratio accepts match (default), 16:9 or 9:16. broll_percent accepts 0–100 and defaults to 0. source_urls accepts up to ten HTTP(S) URLs; source references alone do not enable B-roll. add_background_sound defaults to false. Use only documented product choices; raw provider, pipeline and composition overrides are rejected.

A plan is bound to the script, presenter, narration and voice settings. Any material edit requires a new plan and new review. Use expires_at from the returned plan; voice audition candidates expire after 30 minutes.

Speakeasy tools

Discovery: get_capabilities, list_projects, get_project, list_presenters and list_voices. Drafting: create_project, write_script, generate_presenter, edit_presenter, find_voice_candidates and create_narration. Full preparation: prepare_video. Rendering: plan_render → start_render → get_render.

start_render requires plan_id, confirm_credit_charge: true and idempotency_key. The key accepts 8–128 characters using letters, digits, dot, underscore, colon or hyphen. get_render returns structuredContent.project, including video_url when ready. Client displays may wrap structuredContent; read the tool payload rather than guessing a top-level URL.

Retries, charges and asynchronous failure

A paid start requires explicit confirmation and a caller-supplied idempotency key. Reuse the same key and unchanged inputs when retrying the same start; a new key represents new work. Check get_render or the matching Studio generation before repeating anything after a timeout. Never rerun the entire preparation workflow as an automatic paid retry.

Speakeasy retains the latest render reference on the project; its idempotency behavior is not an unlimited guarantee across old plans, edits or subsequent renders. An expired plan can require fresh planning even for an attempted retry. Check the existing job before approving a new start. Studio start keys are stored durably by its backend.

Rendering is asynchronous. A tool's successful start means accepted work, not completed output. Wait for a video URL and verify playback. On failure, preserve sanitized project/job references and the public error code for support; review balance before authorizing a fresh render.

Troubleshooting and limits

401 Unauthorized: check the exact endpoint, Authorization: Bearer prefix and the MCP key. Invalid, expired and rotated keys all fail authorization. Generate a new key in Settings and reconnect. A REST secret or an application JWT is not this MCP credential.

Connected but no tools: enable the server in your client, confirm HTTP transport and inspect its connection status. Studio-only authorization failure: rotate a pre-Studio key and retry a read-only tool. Unsupported fields: use the current tools/list schema; remove obsolete style or quality choices.

Insufficient credits: inspect Plan & usage for the right account/product, choose Standard if appropriate, and resolve the balance before another paid start. Missing script, presenter or narration: complete that stage, then request a fresh plan. Expired or changed plan: inspect the project and replan; do not reuse an old cost approval.

Hosted MCP has a source default limit of 120 requests per credential per 60 seconds; observe the live X-RateLimit-* headers and Retry-After on 429 as authoritative. Back off polling. MCP errors can appear as HTTP failures or tool results with isError=true and a public error payload; clients must handle both. There is no guaranteed render completion time.