creative-pipeline-mcp 0.2.14-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/LICENSE +18 -0
  2. package/NOTICE +9 -0
  3. package/README.md +205 -0
  4. package/SECURITY.md +19 -0
  5. package/docs/API_TOOLS.md +74 -0
  6. package/docs/ARCHITECTURE.md +28 -0
  7. package/docs/ARTIFACT_SCHEMA.md +43 -0
  8. package/docs/BLENDER_BRIDGE_STATUS_SCHEMA.md +42 -0
  9. package/docs/CEP_STATUS_SCHEMA.md +35 -0
  10. package/docs/COMPATIBILITY_MATRIX.md +36 -0
  11. package/docs/GPL_ADAPTERS.md +19 -0
  12. package/docs/INSTALL_BLENDER.md +39 -0
  13. package/docs/INSTALL_DASHBOARD.md +47 -0
  14. package/docs/INSTALL_PREMIERE.md +62 -0
  15. package/docs/LICENSING.md +19 -0
  16. package/docs/PREMIERE_E2E_TEST.md +55 -0
  17. package/docs/RELEASE_PROCESS.md +74 -0
  18. package/docs/ROADMAP.md +53 -0
  19. package/docs/SAFETY.md +21 -0
  20. package/docs/SECURITY.md +14 -0
  21. package/docs/TROUBLESHOOTING.md +46 -0
  22. package/docs/examples/adapter_check_report.sample.json +60 -0
  23. package/docs/examples/delivery_qc_report.sample.json +30 -0
  24. package/examples/blender-bridge-queue.mjs +42 -0
  25. package/examples/blender-e2e.mjs +53 -0
  26. package/examples/brief.txt +2 -0
  27. package/examples/minimal.gltf +23 -0
  28. package/examples/premiere-project-delivery.mjs +72 -0
  29. package/examples/premiere-qc-e2e.mjs +77 -0
  30. package/examples/sample-tool-call.json +2 -0
  31. package/package.json +77 -0
  32. package/packages/blender-gpl-adapters/LICENSE +6 -0
  33. package/packages/blender-gpl-adapters/dist/index.d.ts +10 -0
  34. package/packages/blender-gpl-adapters/dist/index.js +28 -0
  35. package/packages/blender-gpl-adapters/dist/index.js.map +1 -0
  36. package/packages/blender-gpl-adapters/package.json +15 -0
  37. package/packages/blender-gpl-adapters/src/index.ts +38 -0
  38. package/packages/blender-pro-mcp/dist/adapters/blenderBridge.d.ts +34 -0
  39. package/packages/blender-pro-mcp/dist/adapters/blenderBridge.js +79 -0
  40. package/packages/blender-pro-mcp/dist/adapters/blenderBridge.js.map +1 -0
  41. package/packages/blender-pro-mcp/dist/adapters/cli.d.ts +11 -0
  42. package/packages/blender-pro-mcp/dist/adapters/cli.js +121 -0
  43. package/packages/blender-pro-mcp/dist/adapters/cli.js.map +1 -0
  44. package/packages/blender-pro-mcp/dist/adapters/gltf.d.ts +21 -0
  45. package/packages/blender-pro-mcp/dist/adapters/gltf.js +99 -0
  46. package/packages/blender-pro-mcp/dist/adapters/gltf.js.map +1 -0
  47. package/packages/blender-pro-mcp/dist/adapters/preview.d.ts +1 -0
  48. package/packages/blender-pro-mcp/dist/adapters/preview.js +11 -0
  49. package/packages/blender-pro-mcp/dist/adapters/preview.js.map +1 -0
  50. package/packages/blender-pro-mcp/dist/index.d.ts +3 -0
  51. package/packages/blender-pro-mcp/dist/index.js +4 -0
  52. package/packages/blender-pro-mcp/dist/index.js.map +1 -0
  53. package/packages/blender-pro-mcp/dist/server.d.ts +1 -0
  54. package/packages/blender-pro-mcp/dist/server.js +4 -0
  55. package/packages/blender-pro-mcp/dist/server.js.map +1 -0
  56. package/packages/blender-pro-mcp/dist/tools/assetTools.d.ts +2 -0
  57. package/packages/blender-pro-mcp/dist/tools/assetTools.js +646 -0
  58. package/packages/blender-pro-mcp/dist/tools/assetTools.js.map +1 -0
  59. package/packages/blender-pro-mcp/dist/tools/shared.d.ts +3 -0
  60. package/packages/blender-pro-mcp/dist/tools/shared.js +94 -0
  61. package/packages/blender-pro-mcp/dist/tools/shared.js.map +1 -0
  62. package/packages/blender-pro-mcp/package.json +18 -0
  63. package/packages/blender-pro-mcp/src/adapters/blenderBridge.ts +106 -0
  64. package/packages/blender-pro-mcp/src/adapters/cli.ts +130 -0
  65. package/packages/blender-pro-mcp/src/adapters/gltf.ts +132 -0
  66. package/packages/blender-pro-mcp/src/adapters/preview.ts +11 -0
  67. package/packages/blender-pro-mcp/src/index.ts +3 -0
  68. package/packages/blender-pro-mcp/src/server.ts +4 -0
  69. package/packages/blender-pro-mcp/src/tools/assetTools.ts +663 -0
  70. package/packages/blender-pro-mcp/src/tools/shared.ts +99 -0
  71. package/packages/core/dist/approvalPolicy.d.ts +13 -0
  72. package/packages/core/dist/approvalPolicy.js +48 -0
  73. package/packages/core/dist/approvalPolicy.js.map +1 -0
  74. package/packages/core/dist/artifactStore.d.ts +14 -0
  75. package/packages/core/dist/artifactStore.js +77 -0
  76. package/packages/core/dist/artifactStore.js.map +1 -0
  77. package/packages/core/dist/coreTools.d.ts +2 -0
  78. package/packages/core/dist/coreTools.js +34 -0
  79. package/packages/core/dist/coreTools.js.map +1 -0
  80. package/packages/core/dist/index.d.ts +11 -0
  81. package/packages/core/dist/index.js +12 -0
  82. package/packages/core/dist/index.js.map +1 -0
  83. package/packages/core/dist/jobQueue.d.ts +11 -0
  84. package/packages/core/dist/jobQueue.js +14 -0
  85. package/packages/core/dist/jobQueue.js.map +1 -0
  86. package/packages/core/dist/licenseManifest.d.ts +7 -0
  87. package/packages/core/dist/licenseManifest.js +42 -0
  88. package/packages/core/dist/licenseManifest.js.map +1 -0
  89. package/packages/core/dist/mcpServer.d.ts +19 -0
  90. package/packages/core/dist/mcpServer.js +120 -0
  91. package/packages/core/dist/mcpServer.js.map +1 -0
  92. package/packages/core/dist/qcReport.d.ts +21 -0
  93. package/packages/core/dist/qcReport.js +25 -0
  94. package/packages/core/dist/qcReport.js.map +1 -0
  95. package/packages/core/dist/router.d.ts +7 -0
  96. package/packages/core/dist/router.js +55 -0
  97. package/packages/core/dist/router.js.map +1 -0
  98. package/packages/core/dist/schemaValidator.d.ts +8 -0
  99. package/packages/core/dist/schemaValidator.js +21 -0
  100. package/packages/core/dist/schemaValidator.js.map +1 -0
  101. package/packages/core/dist/server.d.ts +1 -0
  102. package/packages/core/dist/server.js +3 -0
  103. package/packages/core/dist/server.js.map +1 -0
  104. package/packages/core/dist/toolRegistry.d.ts +8 -0
  105. package/packages/core/dist/toolRegistry.js +25 -0
  106. package/packages/core/dist/toolRegistry.js.map +1 -0
  107. package/packages/core/dist/types.d.ts +58 -0
  108. package/packages/core/dist/types.js +2 -0
  109. package/packages/core/dist/types.js.map +1 -0
  110. package/packages/core/package.json +18 -0
  111. package/packages/core/src/approvalPolicy.ts +51 -0
  112. package/packages/core/src/artifactStore.ts +93 -0
  113. package/packages/core/src/coreTools.ts +36 -0
  114. package/packages/core/src/index.ts +11 -0
  115. package/packages/core/src/jobQueue.ts +22 -0
  116. package/packages/core/src/licenseManifest.ts +47 -0
  117. package/packages/core/src/mcpServer.ts +131 -0
  118. package/packages/core/src/qcReport.ts +53 -0
  119. package/packages/core/src/router.ts +61 -0
  120. package/packages/core/src/schemaValidator.ts +26 -0
  121. package/packages/core/src/server.ts +3 -0
  122. package/packages/core/src/toolRegistry.ts +31 -0
  123. package/packages/core/src/types.ts +78 -0
  124. package/packages/dashboard/dist/server.d.ts +1 -0
  125. package/packages/dashboard/dist/server.js +486 -0
  126. package/packages/dashboard/dist/server.js.map +1 -0
  127. package/packages/dashboard/package.json +18 -0
  128. package/packages/dashboard/src/server.ts +539 -0
  129. package/packages/director-agent/dist/index.d.ts +1 -0
  130. package/packages/director-agent/dist/index.js +2 -0
  131. package/packages/director-agent/dist/index.js.map +1 -0
  132. package/packages/director-agent/dist/server.d.ts +1 -0
  133. package/packages/director-agent/dist/server.js +4 -0
  134. package/packages/director-agent/dist/server.js.map +1 -0
  135. package/packages/director-agent/dist/tools.d.ts +2 -0
  136. package/packages/director-agent/dist/tools.js +115 -0
  137. package/packages/director-agent/dist/tools.js.map +1 -0
  138. package/packages/director-agent/package.json +18 -0
  139. package/packages/director-agent/src/index.ts +2 -0
  140. package/packages/director-agent/src/server.ts +4 -0
  141. package/packages/director-agent/src/tools.ts +116 -0
  142. package/packages/premiere-cep-panel/CSXS/manifest.xml +43 -0
  143. package/packages/premiere-cep-panel/README.md +21 -0
  144. package/packages/premiere-cep-panel/index.html +26 -0
  145. package/packages/premiere-cep-panel/js/main.js +107 -0
  146. package/packages/premiere-cep-panel/jsx/host.jsx +208 -0
  147. package/packages/premiere-cep-panel/package.json +8 -0
  148. package/packages/premiere-pro-mcp/dist/adapters/ffmpegQc.d.ts +21 -0
  149. package/packages/premiere-pro-mcp/dist/adapters/ffmpegQc.js +78 -0
  150. package/packages/premiere-pro-mcp/dist/adapters/ffmpegQc.js.map +1 -0
  151. package/packages/premiere-pro-mcp/dist/adapters/ffprobe.d.ts +25 -0
  152. package/packages/premiere-pro-mcp/dist/adapters/ffprobe.js +73 -0
  153. package/packages/premiere-pro-mcp/dist/adapters/ffprobe.js.map +1 -0
  154. package/packages/premiere-pro-mcp/dist/adapters/optionalTools.d.ts +11 -0
  155. package/packages/premiere-pro-mcp/dist/adapters/optionalTools.js +82 -0
  156. package/packages/premiere-pro-mcp/dist/adapters/optionalTools.js.map +1 -0
  157. package/packages/premiere-pro-mcp/dist/adapters/premiereCep.d.ts +34 -0
  158. package/packages/premiere-pro-mcp/dist/adapters/premiereCep.js +79 -0
  159. package/packages/premiere-pro-mcp/dist/adapters/premiereCep.js.map +1 -0
  160. package/packages/premiere-pro-mcp/dist/adapters/srt.d.ts +8 -0
  161. package/packages/premiere-pro-mcp/dist/adapters/srt.js +37 -0
  162. package/packages/premiere-pro-mcp/dist/adapters/srt.js.map +1 -0
  163. package/packages/premiere-pro-mcp/dist/index.d.ts +2 -0
  164. package/packages/premiere-pro-mcp/dist/index.js +3 -0
  165. package/packages/premiere-pro-mcp/dist/index.js.map +1 -0
  166. package/packages/premiere-pro-mcp/dist/server.d.ts +1 -0
  167. package/packages/premiere-pro-mcp/dist/server.js +4 -0
  168. package/packages/premiere-pro-mcp/dist/server.js.map +1 -0
  169. package/packages/premiere-pro-mcp/dist/tools/mediaTools.d.ts +2 -0
  170. package/packages/premiere-pro-mcp/dist/tools/mediaTools.js +935 -0
  171. package/packages/premiere-pro-mcp/dist/tools/mediaTools.js.map +1 -0
  172. package/packages/premiere-pro-mcp/dist/tools/shared.d.ts +3 -0
  173. package/packages/premiere-pro-mcp/dist/tools/shared.js +136 -0
  174. package/packages/premiere-pro-mcp/dist/tools/shared.js.map +1 -0
  175. package/packages/premiere-pro-mcp/package.json +18 -0
  176. package/packages/premiere-pro-mcp/src/adapters/ffmpegQc.ts +106 -0
  177. package/packages/premiere-pro-mcp/src/adapters/ffprobe.ts +105 -0
  178. package/packages/premiere-pro-mcp/src/adapters/optionalTools.ts +94 -0
  179. package/packages/premiere-pro-mcp/src/adapters/premiereCep.ts +106 -0
  180. package/packages/premiere-pro-mcp/src/adapters/srt.ts +46 -0
  181. package/packages/premiere-pro-mcp/src/index.ts +3 -0
  182. package/packages/premiere-pro-mcp/src/server.ts +4 -0
  183. package/packages/premiere-pro-mcp/src/tools/mediaTools.ts +961 -0
  184. package/packages/premiere-pro-mcp/src/tools/shared.ts +147 -0
  185. package/packages/premiere-windows-adapter/dist/index.d.ts +12 -0
  186. package/packages/premiere-windows-adapter/dist/index.js +17 -0
  187. package/packages/premiere-windows-adapter/dist/index.js.map +1 -0
  188. package/packages/premiere-windows-adapter/package.json +12 -0
  189. package/packages/premiere-windows-adapter/src/index.ts +25 -0
  190. package/scripts/blender-bridge-worker.mjs +311 -0
  191. package/scripts/check-adapters.mjs +57 -0
  192. package/scripts/install-premiere-cep.mjs +43 -0
  193. package/scripts/package-premiere-cep.mjs +236 -0
  194. package/scripts/release-assets.mjs +146 -0
  195. package/scripts/simulate-premiere-cep.mjs +194 -0
  196. package/third_party_licenses/README.md +19 -0
package/LICENSE ADDED
@@ -0,0 +1,18 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ https://www.apache.org/licenses/
4
+
5
+ Copyright 2026 Creative Pipeline MCP contributors
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at:
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+
package/NOTICE ADDED
@@ -0,0 +1,9 @@
1
+ Creative Pipeline MCP
2
+ Copyright 2026 Creative Pipeline MCP contributors
3
+
4
+ This repository is an unofficial integration scaffold and QC pipeline.
5
+ It is not affiliated with Blender, Adobe, Premiere Pro, or 3D-Agent.
6
+
7
+ Optional external tools referenced by adapter manifests keep their own licenses.
8
+ See docs/LICENSING.md and third_party_licenses/README.md.
9
+
package/README.md ADDED
@@ -0,0 +1,205 @@
1
+ # Creative Pipeline MCP
2
+
3
+ [![CI](https://github.com/taiyuhiga/creative-pipeline-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/taiyuhiga/creative-pipeline-mcp/actions/workflows/ci.yml)
4
+
5
+ QC-first MCP pipeline for Blender asset workflows and Adobe Premiere media workflows.
6
+
7
+ This repository implements a split creative pipeline architecture:
8
+
9
+ - `creative-mcp-core`: tool registry, router, approval policy, artifact store, QC reports, license manifest
10
+ - `blender-pro-mcp`: Blender/glTF asset inspection, preview artifacts, validation, optimization/export fallbacks
11
+ - `premiere-pro-mcp`: media ingest, ffprobe indexing, delivery QC, rough-cut OTIO plans, captions, audio/export plans
12
+ - `blender-gpl-adapters`: optional GPL adapter manifests kept separate from the core packages
13
+ - `premiere-windows-adapter`: Windows CEP/WebSocket reference guardrails
14
+ - `premiere-cep-panel`: minimal CEP panel scaffold for consuming Premiere IPC commands
15
+ - `director-agent`: production planning, Blender to Premiere handoff, full production reports, multi-agent review
16
+ - `dashboard`: local artifact/QC report viewer
17
+
18
+ ## Status
19
+
20
+ Current version: `0.2.14-alpha.0`
21
+
22
+ This is an alpha. The QC-first path runs without Blender or Premiere installed:
23
+
24
+ - GLB/glTF metadata inspection and asset QC
25
+ - Media metadata QC through `ffprobe` when FFmpeg is installed
26
+ - Artifact writing, logs, license manifest, and approval policy
27
+ - server-side JSON Schema validation
28
+ - workspace input allowlists for local file reads
29
+ - pending approval artifacts for elevated tools
30
+ - real CLI adapters when optional tools are installed: headless Blender preview, bundled `gltf-transform`, optional `gltfpack`, FFmpeg black/silence/loudness checks, thumbnail extraction, FFmpeg `libvmaf` scoring
31
+ - Blender bridge queue/status IPC and a headless worker for trusted external scene and asset adapters
32
+ - Blender asset QC for triangle budget, origin, scale, normals, primary UVs, material count, and texture slots
33
+ - Blender optimization size comparison metrics and safe generated Blender script artifacts for game asset jobs
34
+ - template-based basic Blender repair for GLB/glTF assets when Blender is installed
35
+ - optional WhisperX, PySceneDetect, pyloudnorm, and VMAF adapter tools
36
+ - Dashboard approval queue UI, artifact previews, and job history
37
+ - Premiere CEP bridge for OTIO media import, duplicate import avoidance, sequence creation attempts, timeline-positioned clip insertion attempts, export command queueing, brand package command queueing, and standardized status JSON
38
+ - Premiere project-specific delivery builder for timeline, brand package, export plan, and CEP queue generation
39
+ - Premiere CEP host simulator for queue/status validation without a live Premiere runtime
40
+ - Premiere CEP unsigned package generation and optional ZXP signing hook
41
+ - approval-to-rerun flow in the dashboard for approved elevated tool requests
42
+ - Premiere CEP status reader
43
+ - Blender and generated-MP4 Premiere e2e examples
44
+ - v2.0+ manifests for USD, MaterialX, engine profiles, brand packages, social variants, subtitles, thumbnails, and Director Agent handoff
45
+ - MCP-style stdio JSON-RPC methods: `initialize`, `tools/list`, `tools/call`, `ping`
46
+ - CI runs unit tests on Node.js 20, 22, and 24, with separate package, adapter, Blender e2e, and Premiere QC e2e jobs
47
+ - guarded npm trusted-publishing workflow for release tags when npmjs.com trusted publisher settings are configured
48
+
49
+ Premiere timeline mutation and export/brand-package requests are queued through a trusted CEP file-based IPC adapter, with a minimal CEP panel scaffold included. WhisperX, PySceneDetect, pyloudnorm, VMAF, and GPL tools remain optional external adapters.
50
+
51
+ ## Capability Status
52
+
53
+ | Feature | Status |
54
+ | --- | --- |
55
+ | GLB/glTF metadata QC | Working |
56
+ | Headless Blender preview | Working when Blender is installed |
57
+ | Blender bridge queue/status | Alpha worker process |
58
+ | glTF optimization | Working with `gltf-transform`; optional `gltfpack` |
59
+ | Basic Blender repair | Working when Blender is installed |
60
+ | Premiere media QC | Working when FFmpeg is installed |
61
+ | Premiere VMAF scoring | Working when FFmpeg includes `libvmaf` |
62
+ | Adapter availability report | Working with text and JSON output |
63
+ | Dashboard approvals/previews | Localhost-only, token-protected alpha |
64
+ | Premiere timeline creation | Project delivery builder + CEP scaffold |
65
+ | Premiere final export | Project export plan + CEP queue command |
66
+ | Full professional editing | Not v1 complete |
67
+
68
+ ## Install
69
+
70
+ ```bash
71
+ npm install
72
+ npm run build
73
+ npm test
74
+ npm run check:adapters
75
+ npm run check:adapters -- --json
76
+ ```
77
+
78
+ Blender e2e sample:
79
+
80
+ ```bash
81
+ npm run build
82
+ node examples/blender-e2e.mjs
83
+ ```
84
+
85
+ Blender bridge queue sample:
86
+
87
+ ```bash
88
+ npm run build
89
+ node examples/blender-bridge-queue.mjs
90
+ ```
91
+
92
+ Blender bridge worker dry-run:
93
+
94
+ ```bash
95
+ npm run blender:bridge-worker -- --once --dry-run
96
+ ```
97
+
98
+ Premiere media QC / CEP queue sample:
99
+
100
+ ```bash
101
+ npm run build
102
+ node examples/premiere-qc-e2e.mjs
103
+ node examples/premiere-project-delivery.mjs
104
+ npm run simulate:premiere-cep -- --queue artifacts/examples/premiere-project-delivery/cep_queue --status artifacts/examples/premiere-project-delivery/cep_status
105
+ ```
106
+
107
+ Typical artifacts:
108
+
109
+ ```text
110
+ artifacts/
111
+ adapter_check_report.json
112
+ blender/
113
+ cube_preview.png
114
+ cube_asset_qc_report.json
115
+ cube_optimized.glb
116
+ premiere/
117
+ source_rough_cut.otio
118
+ source_delivery_qc_report.json
119
+ source_thumbnail_1.png
120
+ cep_queue/
121
+ ```
122
+
123
+ ## Run MCP Servers
124
+
125
+ ```bash
126
+ npm run start:core
127
+ npm run start:blender
128
+ npm run start:premiere
129
+ ```
130
+
131
+ Dashboard:
132
+
133
+ ```bash
134
+ CREATIVE_MCP_DASHBOARD_TOKEN=change-me npm run start:dashboard
135
+ open "http://127.0.0.1:4173/?token=change-me"
136
+ ```
137
+
138
+ Premiere CEP panel scaffold:
139
+
140
+ ```bash
141
+ npm run install:premiere-cep
142
+ npm run package:premiere-cep -- --verify
143
+ ```
144
+
145
+ Release assets:
146
+
147
+ ```bash
148
+ npm run release:assets
149
+ ```
150
+
151
+ npm publishing:
152
+
153
+ ```bash
154
+ npm publish --dry-run --provenance
155
+ ```
156
+
157
+ For GitHub Actions publishing, configure npm trusted publishing for `.github/workflows/npm-publish.yml`, then set `NPM_TRUSTED_PUBLISHING_ENABLED=true` in repository variables.
158
+
159
+ Detailed docs:
160
+
161
+ - `docs/INSTALL_DASHBOARD.md`
162
+ - `docs/PREMIERE_E2E_TEST.md`
163
+ - `docs/API_TOOLS.md`
164
+ - `docs/COMPATIBILITY_MATRIX.md`
165
+ - `docs/CEP_STATUS_SCHEMA.md`
166
+ - `docs/ARTIFACT_SCHEMA.md`
167
+ - `docs/RELEASE_PROCESS.md`
168
+ - `docs/TROUBLESHOOTING.md`
169
+
170
+ Example `tools/list` request:
171
+
172
+ ```json
173
+ {"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}
174
+ ```
175
+
176
+ Example Blender QC call:
177
+
178
+ ```json
179
+ {"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"blender.validate_asset","arguments":{"path":"examples/minimal.glb","maxTriangles":50000}}}
180
+ ```
181
+
182
+ Example Premiere QC call:
183
+
184
+ ```json
185
+ {"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"premiere.run_delivery_qc","arguments":{"path":"source.mp4","targetWidth":1080,"targetHeight":1920,"maxDuration":60}}}
186
+ ```
187
+
188
+ Artifacts are written to `artifacts/` unless `CREATIVE_MCP_ARTIFACTS` is set.
189
+ Input files must be under `CREATIVE_MCP_WORKSPACE_ROOTS`; by default that is the current working directory.
190
+
191
+ ## Safety
192
+
193
+ Default permission is `safe_write`. Tools marked `project_write`, `destructive`, or `admin` write a pending approval artifact unless a higher permission level is configured:
194
+
195
+ ```bash
196
+ CREATIVE_MCP_PERMISSION=project_write npm run start:premiere
197
+ ```
198
+
199
+ Use copies for production projects. Direct destructive operations, raw `bpy`, raw ExtendScript, deletion, publishing, external upload, cloud sync, and GPL adapter activation are not enabled by default.
200
+
201
+ ## Licensing And Trademarks
202
+
203
+ This is an unofficial tool. It is not affiliated with or endorsed by Blender, Adobe, Premiere Pro, or 3D-Agent. Blender, Adobe, and Premiere Pro trademarks belong to their owners.
204
+
205
+ 3D-Agent is not included. GPL tools are separated into optional external adapters so the Apache-2.0 core packages do not directly import GPL code.
package/SECURITY.md ADDED
@@ -0,0 +1,19 @@
1
+ # Security Policy
2
+
3
+ ## Supported Branch
4
+
5
+ Security fixes target `main`.
6
+
7
+ ## Model
8
+
9
+ The default runtime permission is `safe_write`. Destructive actions, raw script execution, final delivery export, publishing, external upload, cloud sync, shell operations, and GPL adapter activation require explicit elevated configuration or external approval.
10
+
11
+ Do not connect these servers to untrusted MCP clients. Premiere and Blender bridge adapters can control local creative applications once enabled.
12
+
13
+ Input paths are restricted to `CREATIVE_MCP_WORKSPACE_ROOTS`. Symlinks that resolve outside those roots are rejected by default; set `CREATIVE_MCP_ALLOW_SYMLINKS=true` only for trusted workspaces.
14
+
15
+ The dashboard binds to `127.0.0.1` and requires `CREATIVE_MCP_DASHBOARD_TOKEN`. Do not expose it through a proxy or public interface.
16
+
17
+ ## Reporting
18
+
19
+ Open a private security advisory or contact the repository owner. Do not include private media, project files, credentials, or unpublished client work in public reports.
@@ -0,0 +1,74 @@
1
+ # API Tools
2
+
3
+ The public alpha tool schemas are intentionally strict. Unknown top-level input properties are rejected before execution.
4
+
5
+ ## Core
6
+
7
+ - `core.list_capabilities`
8
+ - `core.read_license_manifest`
9
+ - `core.write_run_log`
10
+
11
+ ## Blender
12
+
13
+ - `blender.read_bridge_status`
14
+ - `blender.await_bridge_status`
15
+ - `blender.create_scene`
16
+ - `blender.apply_material`
17
+ - `blender.modify_asset`
18
+ - `blender.create_asset`
19
+ - `blender.inspect_scene`
20
+ - `blender.configure_engine_profile`
21
+ - `blender.create_usd_pipeline`
22
+ - `blender.create_materialx_workflow`
23
+ - `blender.plan_rig_animation`
24
+ - `blender.validate_asset`
25
+ - `blender.render_preview`
26
+ - `blender.optimize_asset`
27
+ - `blender.export_game_ready`
28
+ - `blender.create_game_asset`
29
+ - `blender.create_material_pack`
30
+ - `blender.fix_asset_issues`
31
+ - `blender.repair_basic_asset`
32
+
33
+ ## Premiere
34
+
35
+ - `premiere.read_cep_status`
36
+ - `premiere.await_cep_status`
37
+ - `premiere.transcribe_media`
38
+ - `premiere.detect_scenes`
39
+ - `premiere.measure_loudness`
40
+ - `premiere.measure_vmaf`
41
+ - `premiere.build_timeline_from_otio`
42
+ - `premiere.ingest_media`
43
+ - `premiere.index_media`
44
+ - `premiere.run_delivery_qc`
45
+ - `premiere.make_rough_cut`
46
+ - `premiere.build_project_delivery`
47
+ - `premiere.auto_caption`
48
+ - `premiere.mix_audio`
49
+ - `premiere.export_video`
50
+ - `premiere.finalize_export_qc`
51
+ - `premiere.export_social_variants`
52
+ - `premiere.apply_brand_package`
53
+ - `premiere.create_multilanguage_subtitles`
54
+ - `premiere.generate_thumbnail_plan`
55
+ - `premiere.repurpose_podcast`
56
+ - `premiere.fix_qc_issues`
57
+
58
+ ## Director
59
+
60
+ - `director.plan_production`
61
+ - `director.handoff_blender_asset`
62
+ - `director.full_production_report`
63
+ - `director.multi_agent_review`
64
+
65
+ ## Stability
66
+
67
+ Alpha schemas may still change. The intended v1 freeze covers:
68
+
69
+ - tool names
70
+ - required fields
71
+ - output `structuredContent`
72
+ - QC report schema
73
+ - CEP status schema
74
+ - artifact layout
@@ -0,0 +1,28 @@
1
+ # Architecture
2
+
3
+ Creative Pipeline MCP is split into small packages:
4
+
5
+ - `core`: registry, router, job queue, approval policy, artifact store, QC report schema, license manifest
6
+ - `blender-pro-mcp`: glTF/GLB inspection, asset QC, preview/export/optimization artifact flow
7
+ - `premiere-pro-mcp`: media ingest, metadata indexing, rough cut plans, captions, audio/export plans, delivery QC
8
+ - `premiere-cep-panel`: minimal CEP panel scaffold for file-based Premiere IPC commands
9
+ - `blender-gpl-adapters`: optional GPL process-boundary manifests
10
+ - `premiere-windows-adapter`: CEP/WebSocket reference checks for Windows
11
+ - `dashboard`: artifact, QC report, and approval queue viewer
12
+
13
+ The dashboard reads `artifacts/approvals/pending`, resolves approve/reject decisions into `artifacts/approvals/resolved`, and reruns approved elevated tool requests with the approved risk level.
14
+
15
+ The public tool surface stays small. Low-level OSS integrations are adapter capabilities selected behind macro tools.
16
+
17
+ ## MCP Methods
18
+
19
+ The servers implement a stdio JSON-RPC subset:
20
+
21
+ - `initialize`
22
+ - `ping`
23
+ - `tools/list`
24
+ - `tools/call`
25
+
26
+ ## Artifact Flow
27
+
28
+ All generated reports, previews, manifests, logs, captions, and OTIO plans are written under `artifacts/` by default.
@@ -0,0 +1,43 @@
1
+ # Artifact Schema
2
+
3
+ Artifacts are written under `CREATIVE_MCP_ARTIFACTS`, defaulting to `artifacts/`.
4
+
5
+ ## Common Layout
6
+
7
+ ```text
8
+ artifacts/
9
+ adapter_check_report.json
10
+ approvals/
11
+ pending/
12
+ resolved/
13
+ blender/
14
+ examples/
15
+ logs/
16
+ premiere/
17
+ cep_queue/
18
+ cep_status/
19
+ ```
20
+
21
+ ## Approval Request
22
+
23
+ ```json
24
+ {
25
+ "action": "blender.export_game_ready",
26
+ "risk": "project_write",
27
+ "currentPermission": "safe_write",
28
+ "requestedAt": "2026-01-01T00:00:00.000Z",
29
+ "expiresAt": "2026-01-02T00:00:00.000Z",
30
+ "approvalToken": "00000000-0000-4000-8000-000000000000",
31
+ "artifactRoot": "/workspace/artifacts",
32
+ "workspaceRoots": ["/workspace"],
33
+ "expectedOutputs": {
34
+ "artifacts": "tool-dependent",
35
+ "sideEffects": "project_write"
36
+ },
37
+ "input": {}
38
+ }
39
+ ```
40
+
41
+ ## Adapter Check Report
42
+
43
+ See `docs/examples/adapter_check_report.sample.json`.
@@ -0,0 +1,42 @@
1
+ # Blender Bridge Status Schema
2
+
3
+ Trusted Blender bridge adapters can write status files under `artifacts/blender/bridge_status` or `CREATIVE_MCP_BLENDER_STATUS_DIR`.
4
+
5
+ ```json
6
+ {
7
+ "schema": "creative.pipeline.blender.status.v1",
8
+ "commandId": "1780000000000-abc",
9
+ "commandType": "create_asset",
10
+ "status": "success",
11
+ "message": "asset created",
12
+ "details": {
13
+ "outputPath": "artifacts/blender/asset.glb",
14
+ "previewPath": "artifacts/blender/asset_preview.png"
15
+ },
16
+ "finishedAt": "2026-01-01T00:00:00.000Z"
17
+ }
18
+ ```
19
+
20
+ Supported `commandType` values:
21
+
22
+ - `create_scene`
23
+ - `create_asset`
24
+ - `modify_asset`
25
+ - `apply_material`
26
+ - `run_safe_script`
27
+
28
+ Supported `status` values:
29
+
30
+ - `success`
31
+ - `accepted`
32
+ - `error`
33
+
34
+ `blender.read_bridge_status` reads normalized status records. `blender.await_bridge_status` polls by `commandId` and/or `commandType`.
35
+
36
+ The bundled worker can consume queued commands and write this schema:
37
+
38
+ ```bash
39
+ npm run blender:bridge-worker -- --once --dry-run
40
+ ```
41
+
42
+ When not in dry-run mode, set `BLENDER_BIN` or make `blender` available on `PATH`. Processed command files are archived under `bridge_queue/processed` by default.
@@ -0,0 +1,35 @@
1
+ # CEP Status Schema
2
+
3
+ Premiere CEP status files use:
4
+
5
+ ```json
6
+ {
7
+ "schema": "creative.pipeline.premiere.status.v1",
8
+ "commandId": "1780000000000-abc",
9
+ "commandType": "build_timeline_from_otio",
10
+ "status": "success",
11
+ "message": "timeline build completed",
12
+ "details": {
13
+ "imported": 1,
14
+ "media": 1,
15
+ "inserted": 1,
16
+ "sequenceName": "Creative Pipeline Rough Cut"
17
+ },
18
+ "finishedAt": "2026-01-01T00:00:00.000Z",
19
+ "processedAt": "2026-01-01T00:00:01.000Z"
20
+ }
21
+ ```
22
+
23
+ Supported `commandType` values:
24
+
25
+ - `build_timeline_from_otio`
26
+ - `export_sequence`
27
+ - `apply_brand_package`
28
+
29
+ Supported `status` values:
30
+
31
+ - `success`
32
+ - `accepted`
33
+ - `error`
34
+
35
+ The MCP status reader normalizes legacy status files to this schema. `premiere.await_cep_status` can poll by `commandId` and/or `commandType`, and `premiere.finalize_export_qc` uses `export_sequence` status details to locate the exported file before writing delivery QC.
@@ -0,0 +1,36 @@
1
+ # Compatibility Matrix
2
+
3
+ This matrix tracks what must be verified before v1.
4
+
5
+ | Area | Status | Evidence |
6
+ | --- | --- | --- |
7
+ | Node 20 | CI covered | `unit-test (20)` |
8
+ | Node 22 | CI covered | `unit-test (22)` |
9
+ | Node 24 | CI covered | `unit-test (24)` |
10
+ | npm pack | CI covered | `package-test` |
11
+ | FFmpeg installed | CI covered | `premiere-qc-e2e` installs FFmpeg |
12
+ | FFmpeg missing | Partial | adapter check reports missing tools without failing |
13
+ | FFmpeg libvmaf installed/missing | Adapter check | `ffmpeg-libvmaf` availability report |
14
+ | Blender installed | Local/optional CI | `blender-e2e-optional` runs when available |
15
+ | Blender missing | Partial | renderer/optimizer fallbacks are tested through unit paths |
16
+ | macOS + Blender | Local covered | local e2e evidence |
17
+ | macOS + Premiere | Manual required | see `docs/PREMIERE_E2E_TEST.md` |
18
+ | Windows + Blender | Manual required | no current hosted verification |
19
+ | Windows + Premiere | Manual required | no current hosted verification |
20
+ | WhisperX installed/missing | Adapter check | availability report |
21
+ | PySceneDetect installed/missing | Adapter check | availability report |
22
+ | pyloudnorm installed/missing | Adapter check | availability report |
23
+
24
+ Manual results should be recorded with:
25
+
26
+ ```text
27
+ OS:
28
+ Node:
29
+ Blender:
30
+ Premiere:
31
+ FFmpeg:
32
+ Command:
33
+ Result:
34
+ Artifacts:
35
+ Notes:
36
+ ```
@@ -0,0 +1,19 @@
1
+ # GPL Adapters
2
+
3
+ The GPL adapter package is separate by design.
4
+
5
+ Use process boundaries:
6
+
7
+ - command-line calls
8
+ - sockets
9
+ - temporary JSON files
10
+ - Blender addon execution outside the Apache-2.0 core
11
+
12
+ Optional adapter targets:
13
+
14
+ - BlenderProc
15
+ - BlenderGIS
16
+ - Sverchok
17
+
18
+ Do not directly import GPL implementation code into `packages/core`, `packages/blender-pro-mcp`, or `packages/premiere-pro-mcp`.
19
+
@@ -0,0 +1,39 @@
1
+ # Blender Install Notes
2
+
3
+ The alpha QC path does not require Blender for `.glb` and `.gltf` inspection.
4
+
5
+ For rendered previews, set `BLENDER_BIN` or make `blender` available on `PATH`. `blender.render_preview` will use headless Blender when available and falls back to a placeholder preview when it is not.
6
+
7
+ For `.blend` inspection, procedural generation, or scene mutation, install Blender separately and connect a trusted external bridge adapter. `blender.create_scene`, `blender.create_asset`, `blender.modify_asset`, `blender.apply_material`, and `blender.create_game_asset` queue bridge commands under `CREATIVE_MCP_BLENDER_IPC_DIR` for that adapter to consume. Keep raw `bpy` execution disabled unless the client and project are trusted.
8
+
9
+ Default bridge paths:
10
+
11
+ ```text
12
+ artifacts/blender/bridge_queue
13
+ artifacts/blender/bridge_status
14
+ ```
15
+
16
+ Use `blender.read_bridge_status` or `blender.await_bridge_status` to read status JSON written by the bridge adapter. For status records, see `docs/BLENDER_BRIDGE_STATUS_SCHEMA.md`.
17
+
18
+ Generated bridge queue sample:
19
+
20
+ ```bash
21
+ npm run build
22
+ node examples/blender-bridge-queue.mjs
23
+ ```
24
+
25
+ Worker process:
26
+
27
+ ```bash
28
+ npm run blender:bridge-worker -- --once --dry-run
29
+ BLENDER_BIN=/Applications/Blender.app/Contents/MacOS/Blender npm run blender:bridge-worker -- --once
30
+ ```
31
+
32
+ The worker drains command JSON from the queue, writes normalized status JSON, archives processed commands under `bridge_queue/processed`, and runs generated safe Blender scripts through `BLENDER_BIN` when not in dry-run mode. Use `--queue`, `--status`, `--output`, `--archive`, `--poll-ms`, and `--max-commands` to point it at project-specific paths. Without `--once`, it keeps polling.
33
+
34
+ Suggested external adapter roles:
35
+
36
+ - glTF-Transform or gltfpack optimization through `GLTF_TRANSFORM_BIN`, `GLTFPACK_BIN`, or `PATH`
37
+ - meshoptimizer and xatlas
38
+ - OpenImageIO/OpenColorIO preview and color checks
39
+ - optional GPL adapters for BlenderProc, BlenderGIS, and Sverchok
@@ -0,0 +1,47 @@
1
+ # Dashboard
2
+
3
+ The dashboard is a local-only artifact, preview, job-history, and approval viewer. It can approve elevated tool requests and rerun the approved tool, so it must not be exposed to a network.
4
+
5
+ ## Start
6
+
7
+ ```bash
8
+ CREATIVE_MCP_DASHBOARD_TOKEN=change-me npm run start:dashboard
9
+ ```
10
+
11
+ Open:
12
+
13
+ ```text
14
+ http://127.0.0.1:4173/?token=change-me
15
+ ```
16
+
17
+ The server binds to `127.0.0.1` only. `CREATIVE_MCP_DASHBOARD_TOKEN` is required. API requests must send the token as `x-creative-mcp-dashboard-token` or as the `token` query parameter.
18
+
19
+ ## APIs
20
+
21
+ - `GET /api/reports`
22
+ - `GET /api/artifacts`
23
+ - `GET /api/artifacts/file?path=<artifact-relative-path>`
24
+ - `GET /api/jobs`
25
+ - `GET /api/approvals`
26
+ - `POST /api/approvals/resolve`
27
+
28
+ ## Approval Risk
29
+
30
+ Approving a pending request can rerun a `project_write`, `destructive`, or `admin` tool with the stored input. Review the request JSON before approving.
31
+
32
+ Reject requests that:
33
+
34
+ - reference unexpected source paths
35
+ - request broad workspace access
36
+ - target production project files directly
37
+ - request raw script, shell, publishing, upload, or sync behavior
38
+
39
+ ## Environment
40
+
41
+ ```text
42
+ PORT=4173
43
+ CREATIVE_MCP_ARTIFACTS=artifacts
44
+ CREATIVE_MCP_DASHBOARD_TOKEN=change-me
45
+ ```
46
+
47
+ Do not proxy this dashboard or bind it to public interfaces.