Oh My CassetteSAFE
你的随身 AI 剪辑搭档 | Pocket AI co-editor for video montage — AI video editing plugin & MCP server for Claude Code, Codex, Hermes & OpenCode
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Oh My Cassette: Chat Your Raw Clips Into a Finished Cut
fd3b08beca41OBSERVED · 2026-10-07Exposed tools (6)
6 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
cassette_cancel_job | read | request = CancelJobInput(job_id=job_id) |
cassette_list_assets | read | request = ListAssetsInput(session_id=session_id, chat_id=chat_id) |
cassette_make_prompt | read | request = MakePromptInput.model_validate( |
cassette_match_bgm | read | request = MatchBgmInput( |
cassette_match_exact_bgm | read | request = MatchExactBgmInput( |
jamendo_music_matcher | read | request = JamendoMatcherInput.model_validate( |
Trust audit
SAFEgrade B · trust 87/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (6 observation(s))
- Network
- declared (5 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- found
Findings (23)
password = "protocol-emailed-password"
.codexignore
.plugin-scanner.toml
.release-please-manifest.json
digest = hashlib.sha1(json.dumps(beats, sort_keys=True).encode("utf-8")).hexdigest()[:10]jobs.load_job("../../credentials")monkeypatch.setenv("CASSETTE_API_URL", f"http://127.0.0.1:{port}")monkeypatch.setenv("CASSETTE_API_URL", f"http://127.0.0.1:{port}")monkeypatch.setenv("CASSETTE_API_URL", f"http://127.0.0.1:{port}")monkeypatch.setenv("CASSETTE_API_URL", f"http://127.0.0.1:{port}")monkeypatch.setenv("CASSETTE_WEB_URL", "http://127.0.0.1:8080")decoded = base64.b64decode(hermes_aes_key_for_api, validate=True).decode("ascii")return base64.b64encode(bytes.fromhex(decoded)).decode("ascii")poster.write_bytes(base64.b64decode(b64 or "", validate=False))
The Hermes installer prompts for your Cassette account email and password and saves them to `~/.hermes/.env`. Then run the setup finisher — it configures the same stdio MCP server and canonical editin
| `auth_not_authorized` | the address has no Cassette access | not about the password at all — relay that Cassette access has to be granted for the address first |
- `.env`, credentials, access/refresh tokens, API keys, or passwords;
Anyone who can read the credential file can use the account. Use a dedicated account where you can,
| `auth_not_authorized` | the address has no Cassette access | not about the password at all — relay that Cassette access has to be granted for the address first |
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
curl -LsSf https://astral.sh/uv/install.sh | sh
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
curl -LsSf https://astral.sh/uv/install.sh | sh
Gates applied: no_behavioural_pass.
fd3b08beca41full audit observations/trust-audit/mcp-server/cassette-editor__oh-my-cassette.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | fd3b08beca41 | SAFE | B | 87 | first audit |
Questions
What is the Oh My Cassette MCP server?
你的随身 AI 剪辑搭档 | Pocket AI co-editor for video montage — AI video editing plugin & MCP server for Claude Code, Codex, Hermes & OpenCode
What tools does Oh My Cassette expose?
6 in total: 6 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Oh My Cassette safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (87/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does Oh My Cassette need?
It reads CASSETTE_AUTH_ACCOUNT, CASSETTE_AUTH_EMAIL, CASSETTE_AUTH_PASSWORD, CASSETTE_AUTH_TOKEN, CASSETTE_E2E_ACCEPTANCE_HOOK_TOKEN, CASSETTE_PASSWORD and QQ_ACCESS_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Oh My Cassette run?
It speaks stdio, so it runs as a local process your client starts.
How current is this page?
The grade is for one exact copy of the source (fd3b08beca41), read on 2026-10-07. The repository is watched and re-audited when it changes.