Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.superlcr/bilibili-huasheng-video

NPM · @SUPERLCR/HS

Script to finished Bilibili video with Huasheng: storyboard, narration, footage, export, publish.

Available components

−1 this week 82 Trust /100

Last scanned (8 hours ago)

Scores higher than 72% of npm servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 4 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency32
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.Unverified
  • Actively maintained (last published 1 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 6516 tokens (~181/item across 36 items; 33 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 96% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 35 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −1
    • Security disclosure: pass → unverified ▼ functional
  • 4 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 3 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Schema quality: excellent → good functional
    • Package version: 0.6.0 → 0.6.2 functional
    • Package version: 0.6.0 → 0.6.1 functional
  • 31 Oct 26 0
    • Stability: 0.97 → pass security
  • 30 Oct 26 0
    • Stability: pass → 0.97 functional
  • 24 Oct 26 0
    • Stability: 0.97 → pass security
  • 23 Oct 26 0
    • Stability: pass → 0.97 functional
  • 21 Oct 26 +26
    • Malware scan: unverified → pass ▲ security
    • Known CVEs: unverified → pass ▲ security
    • Dependency health: unverified → 1.00 ▲ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@superlcr/hs@0.6.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 4 packages
Packages resolved 4
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 33 exposed · ~6,006 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
huasheng_answer_question ~193

Answers a batch of questions only as a whole: one answer per question; a partial batch is rejected. Copy option text or answer freely. Storyboard approval uses huasheng_confirm_plan. This waits until Huasheng moves on. For a new, separate decision, make that decision and continue within authorization; otherwise show complete questions/options or plan_requirements/cost_points and wait. Never ask for confirmation without showing the decision. Video forms: video_generation alone confirms (answers optional); plain text cancels/revises. Models/pricing: video_generation_options.

NameTypeReqDescription
answersarray–Answers in question order.
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidintegeryesThe 15-digit video id; no default.
ui_langstring–MCP App language. Models omit.
video_generationobject––

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_ask_agent ~327

Asks Huasheng for a change in your own words — "make it livelier", "cut it to a minute", "try a different opening". **This is not how you answer a question.** When the video is PAUSED waiting on you, use huasheng_answer_question; using this instead leaves the question hanging forever. To reword one specific clip, huasheng_edit_clip is faster and more precise — this tool handles open-ended requests. Set clip or animation to anchor words such as 'this' and 'here' to one exact storyboard item. Never set both. Also: rename, still-image motion (clip), add (clip) or change (animation) motion graphics. Approved storyboards cannot switch plans. Follow it with huasheng_wait_for_project.

NameTypeReqDescription
animationinteger–Optional animation id from huasheng_list_clips; cannot be combined with clip
attachmentsarray–Materials to hand Huasheng with the request, up to 8: ids from huasheng_list_materials, or file paths / public URLs (added to the library first, analysed and billed like huasheng_manage_materials). A…
clipinteger–Optional 1-based clip position from huasheng_list_clips; cannot be combined with animation
pidintegeryesThe 15-digit video id; no default.
requeststringyesWhat to change, in the user's own words

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_confirm_plan ~196

Approves the storyboard and starts production. **This spends credits and they are not refundable.** It covers both ways Huasheng asks for approval: PLAN_READY, and PAUSED where it asks as a question. Before calling it, inspect plan_requirements and cost_points from the latest project status. You may approve directly when that is a reasonable execution of the user's delegated goal. Otherwise show both in text and stop for the user. Never request a blind approval. The project may queue before production starts. First track the returned action.operation.id with huasheng_wait_for_action until the approval is authoritative, then use huasheng_wait_for_project for the next project decision.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidintegeryesThe 15-digit video id; no default.
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_control_run ~95

cancel stops the current run; spent credits are not refunded. retry only when the status has suggested_action=retry: it re-queues (no immediate start) and **uses one of today's slots**. Otherwise use huasheng_ask_agent. Call once, then huasheng_wait_for_project.

NameTypeReqDescription
actionstringyes–
pidintegeryesThe 15-digit video id; no default.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_create_project ~480

Hands a one-line idea or a full script to Huasheng and starts a video. **The video itself is free** — credits are spent when the storyboard is approved, and up front for any material Huasheng has to read. Afterwards you normally call huasheng_wait_for_project while it plans or asks a question. Do not infer a narrator voice from the topic, language, audience, or tone. Omit voice unless the user explicitly supplied an exact voice already available in their Huasheng account. **This is not idempotent**: calling it twice with the same arguments makes two videos. Never retry after check_state — it may have worked; a local validation error says nothing was created: fix the arguments.

NameTypeReqDescription
aspectstring–Landscape or portrait. Omit for the default
audiostring–Narration recording (mp3/wav/flac/mp4/m4a): local file or public http(s) URL without login. hs uploads it and keeps this voice; never request an internal storage address
fastboolean–Priority for this project only; default false. Costs extra at execution and may still queue.
localestring–Content language of the video. en-US makes an English video; omit for Chinese.
materialarray–Candidate footage: local files, public URLs without login, or library ids. New files are imported; reading video costs credits by the second, reported in the result. A pool to choose from, **not a re…
preference_idinteger–Saved preference id; wins over style_note
scriptstring–Text mode: a one-line idea or a complete script — both go here. Huasheng reads it and decides how to proceed. Give either script or audio, not both
style_notestring–A style note for this video only, such as "plain-spoken, slightly fast". It does not affect other videos
transcriptstring–Audio mode only, optional: the word-for-word transcript of the recording. Omit it and Huasheng transcribes the recording itself
voicestring–An exact narrator voice name already available in this account. Never infer one from gender, topic, language, audience, or tone; omit for the default

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_delete_materials ~129

Permanently deletes footage files or one folder from the Huasheng library. This cannot be undone. List the library first, name exactly what will be removed, and let the host ask the user for confirmation before calling this tool.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
folder_idinteger–Folder id when kind=folder
idsarray–Material ids when kind=files
kindstringyesWhat to delete
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_delete_preference ~92

Permanently deletes one saved creative preference. This cannot be undone. Read the preference first, name it to the user, and let the host ask for confirmation before calling this tool.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
idintegeryesSaved preference id
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_delete_project ~123

Permanently deletes one Huasheng video. It disappears from the user's project list, cannot be restored through the public product, and credits already spent are not refunded. Use huasheng_get_project first, name the exact video to the user, and let the host ask for confirmation before calling this tool.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidintegeryesThe 15-digit id of the video to delete
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_disable_fast_mode ~115

Turns off priority processing before the first production is confirmed, including before a plan exists. Refresh the plan quote before confirmation. It never refunds a completed paid upgrade and the service refuses disabling an irreversible queued upgrade. Calling this twice has the same result.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidinteger–Video id (15 digits); default: this machine's current video.
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_edit_clip ~342

Edit storyboard clips using 1-based numbers from huasheng_list_clips. applied=false is not a failure: track action.operation.id with huasheng_wait_for_action. For redub, follow next_call to apply the existing recording; never restart generation. Undo via huasheng_list_project_versions.

NameTypeReqDescription
actionstringyesThe reversible storyboard operation to perform
client_action_idstring–MCP App: reuse for the same click. Models omit.
clipinteger–The main clip, counting from 1. Omit for add; use target for insertion
expected_revisioninteger–Reject if the clip has changed since this revision.
operation_idstring–For redub only: continue the existing recording, without generating it again. Omit clip, text and expected_revision.
pidintegeryesThe 15-digit video id; no default.
targetobject–For add: {before: n} or {after: n}; for split: {line: n}; for merge: {into: n}; for edit: {readings: [{text, say}]} sets how specific words are read (pinyin or homophones, at most 3x the word's lengt…
textstring–Narration for edit/add, or optional pronunciation text for redub. For edit it may be omitted when only target.readings change
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_enable_fast_mode ~146

Moves a project to priority processing. Before production is queued this is a reversible planning choice, even before a plan exists. Refresh the plan quote before confirmation. Priority may still queue; after it is queued, upgrading adds credits charged at execution and cannot be undone. The annotation therefore uses the riskier case. Call huasheng_get_project first and tell the user the current wait and fast_upgrade_cost_points before enabling it.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidintegeryesThe 15-digit video id; no default.
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_export_video ~304

Exports the finished video and returns a download link; with save_to it also saves it to that path on this machine. Use it only when the current user request asks to deliver, download, export, or publish the video; READY only means exporting is possible and does not authorize it. **Exporting changes nothing and can be repeated safely.** It waits up to timeout_s (max 35), otherwise returns pending=true — not a failure: track action.operation.id with huasheng_wait_for_action; do not call this write again. save_to saves in the background (saving_to), tracked the same way. task_id resumes a known export; cancel=true stops it.

NameTypeReqDescription
ai_markboolean–Carry the small 'AI generated' mark; omit for the account default. Not the Huasheng watermark
cancelboolean–Stop the task_id export
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidinteger–Video id (15 digits); default: this machine's current video.
save_tostring–Local path to save to, e.g. ./out.mp4; omit for a link only
task_idstring–Existing export task to resume instead of exporting again
timeout_sinteger–Seconds to wait, up to 35 (default)
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_generate_clip_video ~90

Generate and apply video to one clip in a READY project using exact settings. Spends credits. Returns acceptance; track operation.id with wait_for_action, never repeat generate to poll. Pending forms use answer_question.

NameTypeReqDescription
clipintegeryesClip position or stable id.
pidintegeryesThe 15-digit video id; no default.
video_generationobjectyes–

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_get_account ~65

Shows the credit balance and when the next batch of credits expires. Use it before starting work to check there is enough, or to confirm the situation when another tool reports low credits or no sign-in. At zero credits even a one-word edit is refused. Changes nothing.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_get_project ~145

Checks project-level state: what Huasheng is doing, whether a question or approval is waiting, what it would cost, and whether an action is required to progress. Use it to answer status, progress, decision and price questions. It does not return the storyboard and does not open the editing workspace; use huasheng_list_clips for clip facts. It returns that project-level state in one call. Changes nothing.

NameTypeReqDescription
detailstring–concise (default) gives state and any required next action; full adds running detail and what the last run cost
pidinteger–Video id (15 digits); default: this machine's current video.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_get_style ~110

Shows the project title and presentation settings: aspect ratio, narrator voice, speaking pace, subtitles, background music and volume. Omit setting to list everything, or pass one setting to see its current value and accepted choices. Changes nothing. Use huasheng_set_style only after deciding a concrete new value.

NameTypeReqDescription
pidinteger–Video id (15 digits); default: this machine's current video.
settingstring–One setting to inspect. Omit to list all settings

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_list_clips ~198

Reads every clip: 1-based position, narration, footage and health. Use before editing or to diagnose problems. clips_in_trouble lists broken clips; health, trouble and fix_by explain each. Follow the server's fix_by: swap_footage = inspect with huasheng_list_footage_candidates then apply with huasheng_replace_clip_footage; edit_text = reword; delete_clip = remove. Name affected clips and their fixes. Pass the 1-based number to huasheng_edit_clip. Never opens a card: explicit timeline viewing uses huasheng_preview_project; project state, decisions and price use huasheng_get_project. Changes nothing.

NameTypeReqDescription
detailstring–full (default) adds length, footage and opaque media references for the visual timeline; concise gives only positions and narration
pidinteger–Video id (15 digits); default: this machine's current video.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_list_footage_candidates ~312

Inspects replacement footage for one clip without changing it or opening a card. Inspect the numbered images: the only way to know what the footage shows. For user selection use huasheng_choose_footage. Apply the chosen candidate's exact choice with huasheng_replace_clip_footage. Judge in order: (1) what this clip's narration is talking about; (2) Is the footage itself good (sharpness, composition, watermark/captions, stock-photo appearance); (3) does it sit well beside the neighbouring clips. Neighbours are context, not choices. Length is not a quality signal: playback_rate above 1 means trimming at normal speed; below 1 slows footage to fit narration. Mention visible slow motion below about 0.6; never reject on rate alone. used_by_clip indicates repetition: prefer unused footage, but reuse is allowed. If none fits, try from="similar". Clips are numbered from 1; huasheng_list_clips shows them.

NameTypeReqDescription
captionsboolean–Also fetch what each piece of footage shows (caption and recognised brands / place / era); one extra request
clipintegeryesWhich clip, counting from 1
fromstring–Where to look. agent (default) is the set Huasheng originally found; similar widens the search around the footage in use
pidinteger–Video id (15 digits); default: this machine's current video.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_list_materials ~189

Lists footage files and folders in the user's Huasheng library. Changes nothing. Pass folder_id to open one folder; omit it for the top level. Pass list="uploads" for a different set: files the user sent while editing a video, which Huasheng never read and therefore cannot pick on its own. huasheng_manage_materials action=add with one of their ids reads it into the library.

NameTypeReqDescription
folder_idinteger–Folder to list; omit for top level
liststring–"library" (default) is footage Huasheng has read and can pick. "uploads" is what the user sent while editing — unread, and not in folders
sortstring–Order by when added (default) or last changed, newest first
statusstring–Only files in this state; omit for all

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_list_preferences ~52

Lists the user's reusable creative preferences, or returns one full preference when id is given. Changes nothing. Preferences affect projects started afterwards.

NameTypeReqDescription
idinteger–One preference id; omit to list all

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_list_project_versions ~98

Lists the project's fine-grained checkpoints and saved s-version rounds. Changes nothing. Use huasheng_set_project_version to undo, redo, or restore one of the returned rounds. An s-version is the state just after its instruction. version: preview that round read-only.

NameTypeReqDescription
pidinteger–Video id (15 digits); default: this machine's current video.
versioninteger–s-version to preview

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_list_projects ~179

Lists Huasheng videos, newest first; with query, searches every project by title or script. has_more=true: pass next_cursor back only if the user asked for the complete list. Use it to find another video the user names or describes, instead of asking for a pid; never to guess the current video (omit pid for that). Read-only; rename with huasheng_set_style setting=name.

NameTypeReqDescription
cursorstring–next_cursor from the previous call; it already carries query and since_days
limitinteger–How many videos to return, up to 50; default 20
querystring–Optional title or script text to search across every project
since_daysinteger–Only videos created in the last N days; pass only when the user asked for a time range

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_login ~119

Has the user sign in to Huasheng: they approve on a Bilibili page in their own browser. **Their password never passes through us**; only a token comes back. Use it when a tool reports NO_CREDENTIAL or an expired session. The first call returns pending=true (not a failure) and authorize_url; call again to check, or with code as that result explains.

NameTypeReqDescription
codestring–The 127.0.0.1 address the browser ended on after approving, when it would not load

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_manage_materials ~297

Adds footage to the user's Huasheng library, or organises what is already there. add takes files on this machine, public URLs and ids alike. Huasheng reads a newly added video before it can pick it, which costs credits by the second; the result says how many. Images are free and usable at once. action=price answers "how much would this cost" without adding anything. Use huasheng_list_materials to inspect the library. Permanent deletion uses huasheng_delete_materials so the host can show the right warning.

NameTypeReqDescription
actionstringyesLibrary operation. price = what add would cost, without adding anything
client_action_idstring–MCP App: reuse for the same click. Models omit.
folder_idinteger–Folder to list, rename, or move into; 0 is top level
idsarray–Material ids for move
materialarray–For add: what to add, each one a file on this machine, a public http(s) URL, or the id of something the user sent while editing (huasheng_list_materials with list="uploads" shows those)
namestring–File or folder name
ui_langstring–MCP App language. Models omit.
urlstring–Compatibility only. Use material for new calls — one public http(s) URL

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_publish_video ~232

Publishes the video to the user's own Bilibili channel. **It appears on their channel and enters review, and this cannot be undone.** Before calling it, use huasheng_export_video to get a link so the user can watch it, and confirm the title with them. Export not ready → published=false and task_id, nothing posted; call again with task_id. **Publishing is not idempotent** — do not retry on failure or timeout, because that can post it twice. Have the user check their uploads first. If Bilibili suggests no category, pass archive.tid.

NameTypeReqDescription
ai_labelboolean–Bilibili's AI-generated content label; omit to keep the project's setting
archiveobject––
coverstring–Thumbnail URL; default from the export
pidintegeryesThe 15-digit video id; no default.
tagsarray–A few tags
task_idstring–From a previous call; skips re-exporting
titlestringyesThe title to publish under

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_replace_clip_footage ~248

Replace one clip's footage. Copy the candidate choice, never its changing list position; own files/URLs also work. For pending receipts, track operation.id with huasheng_wait_for_action; do not repeat the write.

NameTypeReqDescription
apply_fromstring–With numeric choice: ai restores this clip's ai_video.id; material selects ordinary local footage.
choicestringyesExact candidate choice; local .mp4/.mov/.jpg/.png path; public URL (free upload); or local-material id with apply_from.
client_action_idstring–MCP App: reuse for the same click. Models omit.
clipintegeryesWhich clip, counting from 1
expected_revisioninteger–Reject if the clip has changed since this revision.
fromstring–The same candidate source used when listing, default agent
pidinteger–Video id (15 digits); default: this machine's current video.
ui_langstring–MCP App language. Models omit.
wait_sinteger–Seconds to wait for the replacement to land, up to 30; default 0

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_save_preference ~128

Creates a reusable creative preference when id is omitted, or updates that preference when id is given. Creating requires name and content. Editing changes only fields supplied. This does not rewrite a project already in progress.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
contentstring–Preference instructions; required when creating
idinteger–Preference id to update; omit to create
namestring–Preference name; required when creating
ui_langstring–MCP App language. Models omit.

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_set_animation_visibility ~215

Shows, hides or deletes one of the animated overlays (listed by huasheng_list_clips detail="full"). Add or change one via huasheng_ask_agent. Hiding is reversible; remove=true deletes (a version restore undoes it) — only if asked or failed. To change what an animation says, ask Huasheng itself with huasheng_ask_agent. A successful show/hide response completes that request: do not inspect other animations or export the video unless the user also asked for it.

NameTypeReqDescription
animationintegeryesIts id, from the animations list in huasheng_list_clips
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidinteger–Video id (15 digits); default: this machine's current video.
removeboolean–Delete it
ui_langstring–MCP App language. Models omit.
visibleboolean–true shows it, false hides it

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_set_project_version ~133

Changes the project to another editing state. undo and redo move one fine-grained step; goto atomically restores a saved s-version returned by huasheng_list_project_versions. Every successful change returns the authoritative current version.

NameTypeReqDescription
actionstringyesVersion change
client_action_idstring–MCP App: reuse for the same click. Models omit.
pidinteger–Video id (15 digits); default: this machine's current video.
ui_langstring–MCP App language. Models omit.
versioninteger–Required s-version when action=goto

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_set_style ~295

Changes the project title and presentation: aspect ratio, narrator voice, speaking pace, subtitles and their size and colour, background music and volume. Both setting and value are required. If you need the current value or accepted choices, call huasheng_get_style first. Calling this twice with the same arguments is safe. **Exception — setting=voice after production has started re-records every clip, re-renders the video and spends credits (not refundable).** Call it with cost_only:true first to get the price, show it to the user, and only then change it; the result then has pending:true and the receipt carries action.operation.id for huasheng_wait_for_action.

NameTypeReqDescription
client_action_idstring–MCP App: reuse for the same click. Models omit.
cost_onlyboolean–Only for setting=voice: quote what the change would cost and change nothing. Free while production has not started; after that, credits per billed character
pidintegeryesThe 15-digit video id; no default.
previewboolean–setting=speed only: preview_url of one clip at that pace; no change
preview_clipinteger–Clip (default 1)
settingstringyesWhich setting to change
ui_langstring–MCP App language. Models omit.
valuestringyesWhat to change it to

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_video_generation_options ~91

Read-only: models; price a form or explicit clip+video_generation with pid; status recovers/tracks the latest hs generation by pid. Generate with generate_clip_video; forms use answer_question.

NameTypeReqDescription
actionstringyes–
clipinteger–Price target; requires settings.
pidinteger–Required for price or status.
video_generationobject––

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_wait_for_action ~98

Waits for one submitted MCP App action to reach an authoritative result. Pass operation.id from the action receipt. If phase remains PROCESSING, call again with the same operation_id. If next_call is present, perform that continuation instead; do not repeat the original write.

NameTypeReqDescription
operation_idstringyesoperation.id from an action receipt
timeout_sinteger–Seconds, up to 35; default 30

Structured output declared, but exposes no named fields.

No examples provided.

huasheng_wait_for_project ~170

Blocks until the video reaches an attention or terminal state (a question is waiting / the storyboard needs approval / the video is ready / it failed), or until the time runs out. Use it after anything that sets Huasheng working. **timed_out=true is not a failure**, only "not this time round" — read eta_s to decide whether to call again or to tell the user roughly how long is left. If the state needs user input, show the question or the plan in text and stop; the state alone is not permission to answer for the user.

NameTypeReqDescription
pidinteger–Video id (15 digits); default: this machine's current video.
timeout_sinteger–Seconds to wait, up to 35 (default); then timed_out=true

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the io.github.superlcr/bilibili-huasheng-video MCP server?

io.github.superlcr/bilibili-huasheng-video runs locally as an npm package, launched with npx -y @superlcr/hs. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @superlcr/hs

# add to Claude Code
claude mcp add superlcr-bilibili-huasheng-video -- npx -y @superlcr/hs
Common questions

What is the io.github.superlcr/bilibili-huasheng-video MCP server?

io.github.superlcr/bilibili-huasheng-video is an MCP server listed in the public MCP registry as io.github.superlcr/bilibili-huasheng-video. Script to finished Bilibili video with Huasheng: storyboard, narration, footage, export, publish. This page covers its npm package (@superlcr/hs).

Is the io.github.superlcr/bilibili-huasheng-video MCP server safe to use?

io.github.superlcr/bilibili-huasheng-video scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.superlcr/bilibili-huasheng-video MCP server expose?

io.github.superlcr/bilibili-huasheng-video exposes 33 tools: huasheng_login, huasheng_get_account, huasheng_create_project, huasheng_video_generation_options, huasheng_generate_clip_video, and 28 more. Their descriptions and schemas cost roughly 6,006 tokens of context every time the server is loaded.

Is the io.github.superlcr/bilibili-huasheng-video MCP server still maintained?

io.github.superlcr/bilibili-huasheng-video is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.