{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T17:51:07.015Z","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack","markdownUrl":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack.md","server":{"slug":"dawnwood-ai-dramapack","name":"dramapack","registryName":"io.github.dawnwood-ai/dramapack","description":"Short-drama delivery packs, -14 LUFS mastering, subtitle safe areas, clean masters, rights checks.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"dramapack","type":"pypi","identifier":"dramapack","withdrawn":false,"url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack","version":"0.3.1","transport":"stdio","scoredAt":"2026-11-05T10:31:04.248Z"},"score":{"total":78,"tier":"medium","status":"scored","weekDelta":4,"history":[{"date":"2026-11-05","total":78},{"date":"2026-11-04","total":77},{"date":"2026-11-03","total":62},{"date":"2026-11-02","total":76},{"date":"2026-11-01","total":76},{"date":"2026-10-31","total":60},{"date":"2026-10-30","total":74},{"date":"2026-10-29","total":74},{"date":"2026-10-28","total":59}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"partial","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 29 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"29","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to dawnwood-ai/dramapack).","Clear OSI-approved license (Apache-2.0).","Actively maintained (last published 2 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"dawnwood-ai/dramapack"}},{"code":"license.osi","args":{"spdx":"Apache-2.0"}},{"code":"maintenance.recent","args":{"age_days":"2"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":48,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1453 tokens (~290/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"290","items":"5","tools":"5","tokens":"1453","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":27,"verdict":"partial","reasons":["Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"8"}}]},{"name":"Tool Coverage","score":71,"verdict":"fail","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","0% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"0"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 5 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 6 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"5"}},{"code":"toolsafety.manipulation_clean","args":{"units":"6","judged":"6"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"dramapack","type":"pypi","identifier":"dramapack","withdrawn":false,"score":78,"current":true,"url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack","markdownUrl":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"dramapack"},{"label":"Version","value":"0.3.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"inspect","title":null,"description":"Measure a video/audio file: duration_s, width/height, fps, codecs, file size, integrated loudness (LUFS), true peak (dBTP), loudness range, and the constant gain needed to reach the -14 LUFS short-drama target. Read-only. Use it to check an episode before or after mastering.","inputs":[{"name":"path","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":83},{"name":"master","title":null,"description":"Master ONE short-drama episode into a platform-ready file: burns `srt` subtitles inside the safe area (18% bottom margin clear of the player bar, text box <= 70% of frame width for TikTok Drama Center), normalises loudness to -14 LUFS with a constant gain + peak limiter (no dynamic loudnorm), optionally lays a procedural music bed (`bed`: one of tension, warm, suspense, dread, hope) that ducks under dialogue, trims `head_trim` seconds (subtitles shift with it) and appends an end card. Set burn=false for a clean master without subtitles. Writes `output`; returns its measured spec. For a whole series use `package` instead.","inputs":[{"name":"bed","type":null,"required":false,"description":null},{"name":"burn","type":"boolean","required":false,"description":null},{"name":"card_secs","type":"number","required":false,"description":null},{"name":"cover_band","type":"number","required":false,"description":null},{"name":"end_card_lines","type":null,"required":false,"description":null},{"name":"end_card_site","type":null,"required":false,"description":null},{"name":"end_card_title","type":null,"required":false,"description":null},{"name":"head_trim","type":"number","required":false,"description":null},{"name":"input","type":"string","required":true,"description":null},{"name":"music","type":null,"required":false,"description":null},{"name":"output","type":"string","required":true,"description":null},{"name":"srt","type":null,"required":false,"description":null},{"name":"subtitle_font","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":242},{"name":"package","title":null,"description":"Build a complete short-drama delivery package (platform submission pack) from `input_dir`, which holds episodes 01.mp4, 02.mp4, ... (un-subtitled cuts by default; set masters_ready=true if they are finished subtitled masters) plus optional 01.srt subtitles, 01.jpg covers, 01.timeline.json edit timelines, show.json and rights.json. Writes to `output_dir`: episodes/NN.mp4 + same-name NN.srt, clean/NN.mp4 clean masters (no subtitles), covers/NN.jpg (3:4, >=350x500), timeline renders + EDL CSV, docs/CHAIN-OF-TITLE.md (blank, to be signed by a person), docs/AI-DISCLOSURE.md, manifest.json with measured specs and a rights check. Returns status (red = do not ship), gaps, notes and file paths. target='tiktok-dc' also finishes every video for TikTok Drama Center: lifts dark frame edges (its 'black bars' rejection) and prepends a 1 s still of the episode cover so frame 0, its default episode cover, is the cover (SRTs shifted to match); edge_lift / cover_head turn either off. Slow: two encodes per episode (one more each with tiktok-dc).","inputs":[{"name":"bed","type":null,"required":false,"description":null},{"name":"clean","type":"boolean","required":false,"description":null},{"name":"cover_head","type":"boolean","required":false,"description":null},{"name":"covers","type":"boolean","required":false,"description":null},{"name":"edge_lift","type":"boolean","required":false,"description":null},{"name":"episodes","type":null,"required":false,"description":null},{"name":"input_dir","type":"string","required":true,"description":null},{"name":"language","type":null,"required":false,"description":null},{"name":"masters_ready","type":"boolean","required":false,"description":null},{"name":"music","type":null,"required":false,"description":null},{"name":"output_dir","type":"string","required":true,"description":null},{"name":"platform_pairs","type":"boolean","required":false,"description":null},{"name":"rights","type":null,"required":false,"description":null},{"name":"show","type":null,"required":false,"description":null},{"name":"studio","type":null,"required":false,"description":null},{"name":"target","type":null,"required":false,"description":null},{"name":"timeline","type":"boolean","required":false,"description":null},{"name":"title","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":393},{"name":"audit","title":null,"description":"Acceptance QC: grade finished short-drama episodes green/yellow/red against market benchmarks - duration (TikTok Creator Rewards needs > 60 s), average shot length, long-shot share, mean volume, seam level jumps (give splice points in `bounds`), frozen tail / end-card length, black frames (mid-episode black >= 0.5 s is red), and with faster-whisper installed: dialogue density (`speech`) and subtitle-to-speech alignment (`align`: cue offsets, cues with no speech, speech with no cue, likely typos when subtitles are in the spoken language; uses `srt` or the same-name .srt next to the file; speech=false disables both). Pass exactly one master in `files` plus its raw `cut` to grade the cut on pacing/speech/seams and the master on duration/first line/tail/subtitles. `vlm=true` adds vision-model checks on sampled frames (visual defects, platform-policy flags, first-frame hook) ONLY if the server's environment sets DRAMAPACK_VLM_BASE_URL / DRAMAPACK_VLM_API_KEY / DRAMAPACK_VLM_MODEL; frames then go to that endpoint (it may be a local model). Otherwise no network access. Lip-sync is not checked. Does not modify files.","inputs":[{"name":"align","type":"boolean","required":false,"description":null},{"name":"bounds","type":null,"required":false,"description":null},{"name":"cut","type":null,"required":false,"description":null},{"name":"files","type":"array","required":true,"description":null},{"name":"speech","type":"boolean","required":false,"description":null},{"name":"srt","type":null,"required":false,"description":null},{"name":"srt_lang","type":null,"required":false,"description":null},{"name":"vlm","type":"boolean","required":false,"description":null},{"name":"vlm_max_frames","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":335},{"name":"check_rights","title":null,"description":"Rights hygiene check for overseas short-drama distribution. Grades every music cue declared in rights.json (source: generated | procedural | public_domain | licensed | unknown) and every font burned into the picture. Red: undeclared/unknown music, major-label publishers (Sony / Universal / Warner and imprints), public domain published <= 50 years ago, fonts not free for commercial use. Yellow: licensed without proof, font not installed (substitute is checked too). Give `rights` (path to rights.json) and/or `input_dir` (uses its rights.json, scans *.ass). Not legal advice. Read-only.","inputs":[{"name":"allow_fonts","type":null,"required":false,"description":null},{"name":"bed","type":null,"required":false,"description":null},{"name":"end_card","type":"boolean","required":false,"description":null},{"name":"input_dir","type":null,"required":false,"description":null},{"name":"music","type":null,"required":false,"description":null},{"name":"rights","type":null,"required":false,"description":null},{"name":"subtitle_font","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":176}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T10:31:04.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":29,"partial":false,"deprecated":null,"stale":null,"noRepo":1}},"mismatches":[],"changelog":{"trackingSince":"2026-10-28","recent":[{"id":"chg_01a1ab43-1b71-72f8-80ca-ca005962ab50","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a1ab43-1b71-72f8-80ca-ca005962ab50"},{"id":"chg_01a1ab43-1b71-7b77-9540-5f2fb3492755","kind":"score.total_changed","summary":"Trust score (77 → 78)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a1ab43-1b71-7b77-9540-5f2fb3492755"},{"id":"chg_01a1a619-ffd0-7390-87a6-82fc7a089aa9","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a1a619-ffd0-7390-87a6-82fc7a089aa9"},{"id":"chg_01a1a619-ffd1-705f-95b9-d8eb09ae6450","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a1a619-ffd1-705f-95b9-d8eb09ae6450"},{"id":"chg_01a1a619-ffd1-78c0-a473-71d4aa649db1","kind":"score.total_changed","summary":"Trust score (62 → 77)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a1a619-ffd1-78c0-a473-71d4aa649db1"},{"id":"chg_01a19f18-eaca-7160-991b-6a6117c34641","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a19f18-eaca-7160-991b-6a6117c34641"},{"id":"chg_01a19f18-eacb-7574-bf77-c4ad0fc2a477","kind":"package.version_changed","summary":"Package version (0.3.0 → 0.3.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a19f18-eacb-7574-bf77-c4ad0fc2a477"},{"id":"chg_01a19f18-eacb-7b5d-a0f4-fcc5f4c4bc76","kind":"score.total_changed","summary":"Trust score (76 → 62)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a19f18-eacb-7b5d-a0f4-fcc5f4c4bc76"},{"id":"chg_01a196d0-75fc-7a07-bef7-0c1a2324ef1a","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a196d0-75fc-7a07-bef7-0c1a2324ef1a"},{"id":"chg_01a196d0-75fd-78b5-8206-f3982db6878a","kind":"score.total_changed","summary":"Trust score (60 → 76)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a196d0-75fd-78b5-8206-f3982db6878a"},{"id":"chg_01a192d3-65f3-751a-b39c-e713c8e3ce6f","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a192d3-65f3-751a-b39c-e713c8e3ce6f"},{"id":"chg_01a192d3-65f4-7ca5-8067-44cd4757ce19","kind":"check.reverified","summary":"Stability (unverified → 0.10)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a192d3-65f4-7ca5-8067-44cd4757ce19"},{"id":"chg_01a192d3-65f6-7005-beb5-86a416fe9b6c","kind":"package.version_changed","summary":"Package version (0.2.1 → 0.3.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a192d3-65f6-7005-beb5-86a416fe9b6c"},{"id":"chg_01a192d3-65f6-75e4-9c79-3acf9bfd0058","kind":"score.total_changed","summary":"Trust score (74 → 60)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a192d3-65f6-75e4-9c79-3acf9bfd0058"},{"id":"chg_01a1878c-158a-74b4-b7ea-dfbbd815dd80","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a1878c-158a-74b4-b7ea-dfbbd815dd80"},{"id":"chg_01a1878c-158b-7b2b-949d-96762329bdfb","kind":"score.total_changed","summary":"Trust score (59 → 74)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a1878c-158b-7b2b-949d-96762329bdfb"},{"id":"chg_01a180a3-aabd-7d02-b3da-5692783f20d7","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack#chg-chg_01a180a3-aabd-7d02-b3da-5692783f20d7"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack/changelog.json"},"links":{"html":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack","markdown":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack.md","changelogJson":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack/changelog.json","changelogRss":"https://verifymcp.io/servers/dawnwood-ai-dramapack/dramapack.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/dramapack/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/dramapack"},{"label":"Repository","href":"https://github.com/dawnwood-ai/dramapack"},{"label":"Website","href":"https://dawnwood.ai/open-source/"}]}}