OpusClip
NPM · @MINDSTONE/MCP-SERVER-OPUS-VIDEO-CLIP · SCANNED AUG 7
OpusClip MCP server — clip long-form videos, manage projects, collections, censor jobs, posts
Available components
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 →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Known CVEs were checked across the 95 of 99 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Dependency health was assessed across the 95 of 99 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
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
- License check failed: the license (FSL-1.1-MIT) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 78 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability69
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2407 tokens (~114/item across 21 items; 21 tools + 0 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 Management37
- Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage81
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 44% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @mindstone/mcp-server-opus-video-clip
claude mcp add mindstone-mcp-server-opus-video-clip -- npx -y @mindstone/mcp-server-opus-video-clip
codex mcp add mindstone-mcp-server-opus-video-clip -- npx -y @mindstone/mcp-server-opus-video-clip
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mindstone-mcp-server-opus-video-clip": {
"type": "local",
"command": [
"npx",
"-y",
"@mindstone/mcp-server-opus-video-clip"
],
"enabled": true
}
}
} openclaw mcp add mindstone-mcp-server-opus-video-clip --command npx --arg -y --arg @mindstone/mcp-server-opus-video-clip
mcp_servers:
mindstone-mcp-server-opus-video-clip:
command: "npx"
args: ["-y", "@mindstone/mcp-server-opus-video-clip"] {
"mcpServers": {
"mindstone-mcp-server-opus-video-clip": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-opus-video-clip"
]
}
}
} 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.
- 7 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 5 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Aug 26 +4
- Stability: unverified → 0.23 ▲ functional
- 2 Aug 26 +27
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- License: unverified → fail ▼ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Licence: FSL-1.1-MIT functional
- 1 Aug 26 0
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- 31 Jul 26 −22
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −18
- Known CVEs: partial → unverified ▼ security
- Provenance: fail → unverified ▼ security
- Install scripts: pass → unverified ▼ security
- License: fail → unverified ▼ functional
- Dependency health: partial → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Licence: FSL-1.1-MIT functional
- 28 Jul 26 +29
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- License: unverified → fail ▼ functional
- Schema quality: unverified → good ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Licence: FSL-1.1-MIT 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 7 Aug 2026 · Analysed npm/@mindstone/[email protected]
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Deprecated | 95 |
| Stale | 29 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
configure_opus_api_key ~100
Configure the OpusClip API key for this session. WHEN TO USE: only call this if you get an error saying "Opus API key not configured" or "AUTH_FAILED". HOW USER GETS THEIR KEY: go to https://app.opus.pro/settings/integration-tokens and create a new token. After configuring, all other opus_* tools will work immediately.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | The OpusClip API token |
No output schema declared.
No examples provided.
opus_add_clip_to_collection ~98
Add a clip to an existing collection. `contentId` is the full clip ID in the form `{projectId}.{curationId}` (e.g. "Q20107035eDq.CU0b92e6") — get it from opus_get_clips.
| Name | Type | Req | Description |
|---|---|---|---|
| collectionId | string | yes | – |
| contentId | string | yes | Full clip id in the form `{projectId}.{curationId}`. |
No output schema declared.
No examples provided.
opus_cancel_scheduled_post ~50
Cancel a scheduled social post BEFORE its publishAt time. After publishAt the post is irrevocably handed to the platform — cancellation is no longer possible.
| Name | Type | Req | Description |
|---|---|---|---|
| scheduleId | string | yes | – |
No output schema declared.
No examples provided.
opus_create_censor_job ~126
Create a censor job that processes a specific clip and bleeps / mutes profanity. Returns a jobId. Poll opus_get_censor_job_status until status is "CONCLUDED" (success) or "FAILED". Set `options.beepSound: true` to substitute a beep for censored words; default is to mute them.
| Name | Type | Req | Description |
|---|---|---|---|
| clipId | string | yes | Clip ID to censor (the curation suffix, e.g. "CU67da38"). |
| options | object | – | – |
| projectId | string | yes | Project ID containing the clip to censor. |
No output schema declared.
No examples provided.
opus_create_collection ~48
Create a new clip collection to organise your clips. Returns the new collectionId. Use opus_add_clip_to_collection to populate it.
| Name | Type | Req | Description |
|---|---|---|---|
| collectionName | string | yes | Display name for the collection. |
No output schema declared.
No examples provided.
opus_create_project ~311
Create a new OpusClip clipping project from a publicly importable long-form video URL. After this returns a projectId, poll opus_get_project to track stage progression (PENDING → QUEUED → IMPORT → CURATE → REFINE → RENDER → UPLOAD → COMPLETE). When complete, call opus_get_clips to retrieve the generated clips. For local files, use opus_upload_video instead — it handles upload-link generation, GCS resumable upload, and project creation in a single tool call.
| Name | Type | Req | Description |
|---|---|---|---|
| brandTemplateId | string | – | Brand template ID from opus_get_brand_templates (e.g. "preset-fancy-Karaoke") |
| conclusionActions | array | – | – |
| curationPref | object | – | Curation preferences. Use `model: "ClipBasic"` for talking-head videos with `topicKeywords`, or `model: "ClipAnything"` with `customPrompt` for any video type. Set `skipCurate: true` to upload withou… |
| importPref | object | – | – |
| renderPref | object | – | – |
| uploadedVideoAttr | object | – | – |
| videoUrl | string | yes | Public URL of the source video (YouTube, Google Drive, Vimeo, Zoom, Rumble, Twitch, Facebook, LinkedIn, X, Dropbox, Riverside, Loom, Frame.io, StreamYard, or a public S3 MP4 link up to 10GB). For loc… |
No output schema declared.
No examples provided.
opus_create_social_copy_job ~137
Create an asynchronous social-copy generation job. Opus produces a platform-specific title, description, and hashtags for a clip + destination account. Returns a jobId — poll opus_get_social_copy_job until status is "COMPLETED" or "FAILED".
| Name | Type | Req | Description |
|---|---|---|---|
| clipId | string | yes | – |
| forceRegenerate | boolean | – | If true, bypass the cached result for this clip/account pair. |
| postAccountId | string | yes | – |
| projectId | string | yes | – |
| prompt | string | – | Optional style or tone instruction (e.g. "playful and witty"). |
| subAccountId | string | yes | – |
No output schema declared.
No examples provided.
opus_delete_collection ~55
Delete a clip collection. IMPORTANT: only the collection container is deleted — the clips themselves are preserved and still accessible via opus_get_clips with `q: "findByProjectId"`.
| Name | Type | Req | Description |
|---|---|---|---|
| collectionId | string | yes | – |
No output schema declared.
No examples provided.
opus_export_collection ~60
Export all clips from a collection. Returns a `contentList` of `{ contentId, uriForExport }` pairs — the uriForExport URLs are Google Cloud Storage download links for the clip MP4s.
| Name | Type | Req | Description |
|---|---|---|---|
| collectionId | string | yes | – |
No output schema declared.
No examples provided.
opus_get_brand_templates ~116
List the OpusClip brand templates available to your organisation. Brand templates control captions, fonts, colours, intro/outro cards, and other styling. Use a brand_template_id from this response with opus_create_project or opus_upload_video. NOTE: The Opus API requires the `q` parameter to equal "mine" — calling the endpoint without it returns an empty body. The schema below makes the only legal value compile-time enforced.
| Name | Type | Req | Description |
|---|---|---|---|
| q | string | – | Required by Opus. Must be the literal string "mine". |
No output schema declared.
No examples provided.
opus_get_censor_job_status ~128
Poll the status of an OpusClip censor job. Status values: "QUEUED" / "PROCESSING" (still running, poll again), "CONCLUDED" (success), "FAILED" (check error), "UNKNOWN" (Opus could not determine the state — surfaced as UPSTREAM_STATUS_UNKNOWN). The response includes `next_poll_after_seconds` honouring Retry-After when present.
| Name | Type | Req | Description |
|---|---|---|---|
| attempt | integer | – | Current attempt number (used for exponential backoff when Retry-After is absent). Starts at 1. |
| jobId | string | yes | – |
No output schema declared.
No examples provided.
opus_get_clips ~109
List the exportable clips for a given project or collection. Each clip has a full-clip id of the form `{projectId}.{curationId}`, plus preview/export URLs (`uriForPreview`, `uriForExport`) on Google Cloud Storage. Choose `q: "findByProjectId"` and pass `projectId`, OR `q: "findByCollectionId"` and pass `collectionId`. Pagination via `pageNum` (starts at 1) and `pageSize`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opus_get_collections ~72
List your OpusClip collections. Use `q: "mine"` to list all collections on your account, or `q: "findByContentId"` (with `contentId` set to a full clip id like "{projectId}.{curationId}") to find which collections contain a specific clip.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opus_get_project ~87
Retrieve the current status and metadata of an OpusClip project. Check the `stage` field — when it reaches "COMPLETE" the clips are ready (use opus_get_clips). If `stage` is "STALLED" or `error` is set, the project has failed.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | The OpusClip projectId returned by opus_create_project |
No output schema declared.
No examples provided.
opus_get_social_accounts ~83
List the social accounts connected to your Opus organisation. Returns `postAccountId`, `subAccountId` (where applicable), `platform`, and the platform-side `extUser*` identifiers. Use these IDs with opus_publish_post, opus_schedule_post, and opus_create_social_copy_job.
| Name | Type | Req | Description |
|---|---|---|---|
| q | string | – | Must be the literal string "mine". |
No output schema declared.
No examples provided.
opus_get_social_copy_job ~78
Poll the status and result of a social-copy generation job. Status values: "RUNNING" (still generating), "COMPLETED" (returns title/description/hashtags), "FAILED". Includes `next_poll_after_seconds` honouring Retry-After.
| Name | Type | Req | Description |
|---|---|---|---|
| attempt | integer | – | – |
| jobId | string | yes | – |
No output schema declared.
No examples provided.
opus_publish_post ~141
Publish a clip immediately to a connected social account. For X (formerly Twitter) each post costs 1 credit. Returns a `postId`. The clip is queued for upload by Opus to the destination platform.
| Name | Type | Req | Description |
|---|---|---|---|
| clipId | string | yes | Curation ID (e.g. "CU67da38"), NOT the full clip id. |
| postAccountId | string | yes | From opus_get_social_accounts.postAccountId |
| postDetail | object | yes | – |
| projectId | string | yes | – |
| subAccountId | string | – | Required for Facebook pages, Instagram business accounts, and LinkedIn — from opus_get_social_accounts.subAccountId. |
No output schema declared.
No examples provided.
opus_remove_clip_from_collection ~75
Remove a clip from a collection. IMPORTANT: Opus exposes this operation as a POST to /api/collection-contents/delete-collection-contents (NOT a DELETE). The clip itself is not deleted — only the collection membership is removed.
| Name | Type | Req | Description |
|---|---|---|---|
| collectionId | string | yes | – |
| contentId | string | yes | – |
No output schema declared.
No examples provided.
opus_schedule_post ~206
Schedule a clip for future publishing. `publishAt` must be a future UTC ISO 8601 timestamp (e.g. "2026-06-01T16:00:00.000Z"). For X (formerly Twitter) each post costs 1 credit. Returns a `scheduleId` you can pass to opus_cancel_scheduled_post.
| Name | Type | Req | Description |
|---|---|---|---|
| clipId | string | yes | Curation ID (e.g. "CU67da38"), NOT the full clip id. |
| postAccountId | string | yes | From opus_get_social_accounts.postAccountId |
| postDetail | object | yes | – |
| projectId | string | yes | – |
| publishAt | string | yes | Future publish time in UTC ISO 8601, e.g. "2026-06-01T16:00:00.000Z". |
| subAccountId | string | – | Required for Facebook pages, Instagram business accounts, and LinkedIn — from opus_get_social_accounts.subAccountId. |
No output schema declared.
No examples provided.
opus_share_project ~67
Update the sharing visibility of an OpusClip project. `DEFAULT`: team members can open / edit / export. `PUBLIC`: anyone with the link can open / edit / export.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | – |
| visibility | string | yes | "DEFAULT" or "PUBLIC" |
No output schema declared.
No examples provided.
opus_upload_video ~260
Upload a local video file to OpusClip and create a clipping project in a single step. Orchestrates the 4-step Opus / Google Cloud Storage resumable upload: (1) request an upload link, (2) start a GCS resumable session, (3) PUT the video bytes (with automatic offset-query recovery on ambiguous failures), (4) create the project. Pass `file_path` as an absolute filesystem path. Optional `brandTemplateId`, `curationPref`, `renderPref`, `importPref`, `uploadedVideoAttr`, and `conclusionActions` are forwarded to `opus_create_project`. On retryable network failures the same `uploadId` is reused, so calling this tool twice in a row will NOT create two billable projects. Per-chunk upload timeout is OPUS_UPLOAD_TIMEOUT_MS (default 600s).
| Name | Type | Req | Description |
|---|---|---|---|
| brandTemplateId | string | – | – |
| conclusionActions | array | – | – |
| curationPref | object | – | – |
| file_path | string | yes | Absolute path to a local video file (MP4 recommended, up to 10GB). |
| importPref | object | – | – |
| renderPref | object | – | – |
| uploadedVideoAttr | object | – | – |
No output schema declared.
No examples provided.