io.github.superlcr/bilibili-huasheng-video
NPM · @SUPERLCR/HS
Script to finished Bilibili video with Huasheng: storyboard, narration, footage, export, publish.
Available components
Last scanned (8 hours ago)
Scores higher than 72% of npm servers
Category Design and Media
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
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
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 →
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 →
huasheng_answer_question Answer Huasheng’s question (may spend credits) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | – | Answers in question order. |
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | yes | The 15-digit video id; no default. |
| ui_lang | string | – | MCP App language. Models omit. |
| video_generation | object | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_ask_agent Ask Huasheng for a change ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| animation | integer | – | Optional animation id from huasheng_list_clips; cannot be combined with clip |
| attachments | array | – | 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… |
| clip | integer | – | Optional 1-based clip position from huasheng_list_clips; cannot be combined with animation |
| pid | integer | yes | The 15-digit video id; no default. |
| request | string | yes | What to change, in the user's own words |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_confirm_plan Approve the storyboard · spends credits, not refundable ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | yes | The 15-digit video id; no default. |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_control_run Cancel or re-queue Huasheng's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| pid | integer | yes | The 15-digit video id; no default. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_create_project Start a new video ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect | string | – | Landscape or portrait. Omit for the default |
| audio | string | – | 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 |
| fast | boolean | – | Priority for this project only; default false. Costs extra at execution and may still queue. |
| locale | string | – | Content language of the video. en-US makes an English video; omit for Chinese. |
| material | array | – | 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_id | integer | – | Saved preference id; wins over style_note |
| script | string | – | 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_note | string | – | A style note for this video only, such as "plain-spoken, slightly fast". It does not affect other videos |
| transcript | string | – | Audio mode only, optional: the word-for-word transcript of the recording. Omit it and Huasheng transcribes the recording itself |
| voice | string | – | 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 Permanently delete Huasheng footage ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| folder_id | integer | – | Folder id when kind=folder |
| ids | array | – | Material ids when kind=files |
| kind | string | yes | What to delete |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_delete_preference Permanently delete a Huasheng 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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| id | integer | yes | Saved preference id |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_delete_project Permanently delete a Huasheng video ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | yes | The 15-digit id of the video to delete |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_disable_fast_mode Use standard queue processing ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_edit_clip Edit the storyboard ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The reversible storyboard operation to perform |
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| clip | integer | – | The main clip, counting from 1. Omit for add; use target for insertion |
| expected_revision | integer | – | Reject if the clip has changed since this revision. |
| operation_id | string | – | For redub only: continue the existing recording, without generating it again. Omit clip, text and expected_revision. |
| pid | integer | yes | The 15-digit video id; no default. |
| target | object | – | 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… |
| text | string | – | Narration for edit/add, or optional pronunciation text for redub. For edit it may be omitted when only target.readings change |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_enable_fast_mode Enable priority processing · may spend credits and be irreversible ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | yes | The 15-digit video id; no default. |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_export_video Export the finished 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.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_mark | boolean | – | Carry the small 'AI generated' mark; omit for the account default. Not the Huasheng watermark |
| cancel | boolean | – | Stop the task_id export |
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| save_to | string | – | Local path to save to, e.g. ./out.mp4; omit for a link only |
| task_id | string | – | Existing export task to resume instead of exporting again |
| timeout_s | integer | – | Seconds to wait, up to 35 (default) |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_generate_clip_video Generate a clip video (spends credits) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| clip | integer | yes | Clip position or stable id. |
| pid | integer | yes | The 15-digit video id; no default. |
| video_generation | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_get_account Check credits and sign-in status ~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 Check on a video ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | concise (default) gives state and any required next action; full adds running detail and what the last run cost |
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_get_style View the video title, look, and sound ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| setting | string | – | One setting to inspect. Omit to list all settings |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_list_clips List the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | full (default) adds length, footage and opaque media references for the visual timeline; concise gives only positions and narration |
| pid | integer | – | 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 View alternative footage for one clip ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| captions | boolean | – | Also fetch what each piece of footage shows (caption and recognised brands / place / era); one extra request |
| clip | integer | yes | Which clip, counting from 1 |
| from | string | – | Where to look. agent (default) is the set Huasheng originally found; similar widens the search around the footage in use |
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_list_materials View the footage library ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| folder_id | integer | – | Folder to list; omit for top level |
| list | string | – | "library" (default) is footage Huasheng has read and can pick. "uploads" is what the user sent while editing — unread, and not in folders |
| sort | string | – | Order by when added (default) or last changed, newest first |
| status | string | – | Only files in this state; omit for all |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_list_preferences View saved creative 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | – | One preference id; omit to list all |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_list_project_versions View editing history ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| version | integer | – | s-version to preview |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_list_projects Find Huasheng videos ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | next_cursor from the previous call; it already carries query and since_days |
| limit | integer | – | How many videos to return, up to 50; default 20 |
| query | string | – | Optional title or script text to search across every project |
| since_days | integer | – | 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 Sign in to Huasheng ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | 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 Add or organise footage ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Library operation. price = what add would cost, without adding anything |
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| folder_id | integer | – | Folder to list, rename, or move into; 0 is top level |
| ids | array | – | Material ids for move |
| material | array | – | 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) |
| name | string | – | File or folder name |
| ui_lang | string | – | MCP App language. Models omit. |
| url | string | – | 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 Publish to Bilibili · public and permanent ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_label | boolean | – | Bilibili's AI-generated content label; omit to keep the project's setting |
| archive | object | – | – |
| cover | string | – | Thumbnail URL; default from the export |
| pid | integer | yes | The 15-digit video id; no default. |
| tags | array | – | A few tags |
| task_id | string | – | From a previous call; skips re-exporting |
| title | string | yes | The title to publish under |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_replace_clip_footage Replace the footage on one clip ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| apply_from | string | – | With numeric choice: ai restores this clip's ai_video.id; material selects ordinary local footage. |
| choice | string | yes | Exact candidate choice; local .mp4/.mov/.jpg/.png path; public URL (free upload); or local-material id with apply_from. |
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| clip | integer | yes | Which clip, counting from 1 |
| expected_revision | integer | – | Reject if the clip has changed since this revision. |
| from | string | – | The same candidate source used when listing, default agent |
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| ui_lang | string | – | MCP App language. Models omit. |
| wait_s | integer | – | 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 Create or update a creative 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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| content | string | – | Preference instructions; required when creating |
| id | integer | – | Preference id to update; omit to create |
| name | string | – | Preference name; required when creating |
| ui_lang | string | – | MCP App language. Models omit. |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_set_animation_visibility Show, hide or delete a motion-graphics overlay ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| animation | integer | yes | Its id, from the animations list in huasheng_list_clips |
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| remove | boolean | – | Delete it |
| ui_lang | string | – | MCP App language. Models omit. |
| visible | boolean | – | true shows it, false hides it |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_set_project_version Undo, redo, or restore a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Version change |
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| ui_lang | string | – | MCP App language. Models omit. |
| version | integer | – | Required s-version when action=goto |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_set_style Change the video title, look, and sound ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_action_id | string | – | MCP App: reuse for the same click. Models omit. |
| cost_only | boolean | – | 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 |
| pid | integer | yes | The 15-digit video id; no default. |
| preview | boolean | – | setting=speed only: preview_url of one clip at that pace; no change |
| preview_clip | integer | – | Clip (default 1) |
| setting | string | yes | Which setting to change |
| ui_lang | string | – | MCP App language. Models omit. |
| value | string | yes | What to change it to |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_video_generation_options Video models and credit estimates ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| clip | integer | – | Price target; requires settings. |
| pid | integer | – | Required for price or status. |
| video_generation | object | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_wait_for_action Track a change made in a Huasheng card ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| operation_id | string | yes | operation.id from an action receipt |
| timeout_s | integer | – | Seconds, up to 35; default 30 |
Structured output declared, but exposes no named fields.
No examples provided.
huasheng_wait_for_project Wait for project attention ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pid | integer | – | Video id (15 digits); default: this machine's current video. |
| timeout_s | integer | – | Seconds to wait, up to 35 (default); then timed_out=true |
Structured output declared, but exposes no named fields.
No examples provided.
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
claude mcp add superlcr-bilibili-huasheng-video -- npx -y @superlcr/hs
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.