Skip to main content
Glama
BlockRunAI

BlockRun MCP

Official
by BlockRunAI

blockrun_realface

Enroll a real person's face through phone liveness verification, then use the resulting asset to drive personalized Seedance 2.0 videos.

Instructions

Enroll a real person's face as a BytePlus RealFace asset, then drive Seedance 2.0 video with it (blockrun_video real_face_asset_id).

A RealFace asset (ta_xxxx) lets Seedance 2.0 / 2.0-fast generate video of a SPECIFIC real person — not a generic seed image. Enrollment is a multi-step flow because BytePlus requires a live phone liveness check (the real person nods + blinks on camera) before a face photo can be uploaded.

Actions:

  • init: FREE. Create an asset group + a phone H5 link. The tool renders the link as a QR code and opens it; the real person scans it on their phone and completes the ~1 min liveness check. Pass group_id to refresh an expired link.

  • status: FREE. Poll a group until status:"active" (ready_to_finalize:true). The H5 link is valid ~120s — re-init if it expires.

  • enroll: PAID ($0.01 USDC, Base only). After the group is active, upload a clear front-facing photo (image_url) of the SAME person. Returns the ta_xxxx asset id.

  • portrait: PAID ($0.01 USDC, Base only). Virtual Portrait — enroll an AI-GENERATED character from an image URL directly, NO liveness needed (one step: name + image_url → ta_xxxx). For fictional/AI characters only; for a real person use the init→status→enroll liveness flow.

  • list: FREE. List the RealFace + Virtual Portrait assets enrolled by this wallet (their ta_xxxx ids + names) so you can pick one for blockrun_video.

Typical flow:

  1. blockrun_realface action:"init" name:"Alice" → scan QR on phone, do liveness

  2. blockrun_realface action:"status" group_id:"legacy_rf_…" → repeat until ready_to_finalize:true

  3. blockrun_realface action:"enroll" name:"Alice" group_id:"legacy_rf_…" image_url:"https://…/alice.jpg" → ta_xxxx

  4. blockrun_video model:"bytedance/seedance-2.0" real_face_asset_id:"ta_xxxx" prompt:"…"

Privacy: BlockRun does not store face/liveness data — only the asset id, name, and the photo URL you supply.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesWhat to do
nameNoDisplay name for the person/character (required for init, enroll, and portrait).
group_idNoAsset-group id from init (required for status and enroll; pass to init to refresh an expired H5 link). Not used by portrait.
image_urlNoPublic HTTPS URL to a clear front-facing face image (JPG/PNG/WEBP, ≤10MB). Required for enroll and portrait.
agent_idNoAgent identifier for budget tracking and enforcement (enroll only).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully covers behavior: multi-step liveness check, cost (free vs $0.01 USDC), timeouts (H5 link valid ~120s), error handling (re-init if expired), and data privacy (BlockRun does not store face/liveness data). Describes what each action does and returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is long but well-structured with bullet points and a typical flow example. Every sentence adds value; however, it could be slightly more concise by grouping related details. Front-loaded with main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of multiple actions, external liveness check, and no output schema, the description is comprehensive. It covers inputs, outputs (implied returns like group_id, ta_xxxx), edge cases (expired link, repeat until ready), costs, and privacy. Leaves no major gaps for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds significant context: explains which actions each parameter is required for (e.g., group_id needed for status/enroll, name for init/enroll/portrait), the relationship between parameters (group_id from init, pass to init to refresh), and additional constraints (image_url format).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool enrolls a real person's face as a BytePlus RealFace asset for Seedance 2.0 video, and breaks down five distinct actions (init, status, enroll, portrait, list) with their specific purposes. It also differentiates from sibling tool blockrun_video by mentioning real_face_asset_id usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidelines on when to use each action, the complete flow for real persons versus AI characters (portrait), and mentions alternatives. Includes a typical flow example with four steps, cost details, and privacy note. Clearly states when to use portrait vs the liveness flow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BlockRunAI/blockrun-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server