@hybridlabor-api/aos 4.4.1 → 4.4.2-beta.1

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 (305) hide show
  1. package/.agents/skills/firecrawl/SKILL.md +149 -0
  2. package/.agents/skills/firecrawl/rules/install.md +82 -0
  3. package/.agents/skills/firecrawl/rules/security.md +26 -0
  4. package/.agents/skills/firecrawl-agent/SKILL.md +58 -0
  5. package/.agents/skills/firecrawl-build/SKILL.md +39 -0
  6. package/.agents/skills/firecrawl-build-interact/SKILL.md +68 -0
  7. package/.agents/skills/firecrawl-build-onboarding/SKILL.md +103 -0
  8. package/.agents/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
  9. package/.agents/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
  10. package/.agents/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
  11. package/.agents/skills/firecrawl-build-scrape/SKILL.md +69 -0
  12. package/.agents/skills/firecrawl-build-search/SKILL.md +69 -0
  13. package/.agents/skills/firecrawl-crawl/SKILL.md +59 -0
  14. package/.agents/skills/firecrawl-download/SKILL.md +70 -0
  15. package/.agents/skills/firecrawl-interact/SKILL.md +84 -0
  16. package/.agents/skills/firecrawl-map/SKILL.md +51 -0
  17. package/.agents/skills/firecrawl-scrape/SKILL.md +69 -0
  18. package/.agents/skills/firecrawl-search/SKILL.md +60 -0
  19. package/CLAUDE.md +573 -0
  20. package/README.de.md +0 -8
  21. package/README.md +0 -8
  22. package/README.pt.md +0 -8
  23. package/assets/brand/ao-ant-mark.svg +91 -0
  24. package/assets/brand/bdb-core-mark.svg +34 -0
  25. package/assets/brand/heimdall-guardian-mark.svg +16 -0
  26. package/assets/brand/memb-crystal-mark.svg +18 -0
  27. package/bin/aos-config.mjs +89 -0
  28. package/bin/aos-dashboard.mjs +608 -0
  29. package/bin/aos-uninstall.mjs +227 -0
  30. package/docs/sessions/audit-2026-09-14-silent-failures.md +114 -0
  31. package/docs/skills_table.md +0 -3
  32. package/installer.js +471 -237
  33. package/mcps/RhinoMCP/cc-plugin/.claude/settings.json +10 -0
  34. package/mcps/after-effects-mcp/build/index.js +840 -0
  35. package/mcps/after-effects-mcp/build/scripts/applyEffect.jsx +153 -0
  36. package/mcps/after-effects-mcp/build/scripts/applyEffectTemplate.jsx +218 -0
  37. package/mcps/after-effects-mcp/build/scripts/createComposition.jsx +71 -0
  38. package/mcps/after-effects-mcp/build/scripts/createShapeLayer.jsx +147 -0
  39. package/mcps/after-effects-mcp/build/scripts/createSolidLayer.jsx +114 -0
  40. package/mcps/after-effects-mcp/build/scripts/createTextLayer.jsx +115 -0
  41. package/mcps/after-effects-mcp/build/scripts/getLayerInfo.jsx +192 -0
  42. package/mcps/after-effects-mcp/build/scripts/getProjectInfo.jsx +90 -0
  43. package/mcps/after-effects-mcp/build/scripts/listCompositions.jsx +50 -0
  44. package/mcps/after-effects-mcp/build/scripts/mcp-bridge-auto.jsx +1773 -0
  45. package/mcps/after-effects-mcp/build/scripts/setLayerProperties.jsx +160 -0
  46. package/mcps/computer-use-mcp/dist/client.d.ts +150 -0
  47. package/mcps/computer-use-mcp/dist/client.js +136 -0
  48. package/mcps/computer-use-mcp/dist/entrypoint.d.ts +16 -0
  49. package/mcps/computer-use-mcp/dist/entrypoint.js +26 -0
  50. package/mcps/computer-use-mcp/dist/native.d.ts +212 -0
  51. package/mcps/computer-use-mcp/dist/native.js +50 -0
  52. package/mcps/computer-use-mcp/dist/server.d.ts +32 -0
  53. package/mcps/computer-use-mcp/dist/server.js +342 -0
  54. package/mcps/computer-use-mcp/dist/session.d.ts +101 -0
  55. package/mcps/computer-use-mcp/dist/session.js +2372 -0
  56. package/package.json +13 -4
  57. package/skills/global_config/aos-project-init/SKILL.md +97 -130
  58. package/skills/global_config/aos-project-init/assets/openwikiignore.template +62 -0
  59. package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +38 -1
  60. package/skills/global_config/aos-setup/SKILL.md +98 -8
  61. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +21 -2
  62. package/skills/global_config/ask-tim/SKILL.md +2 -7
  63. package/skills/global_config/openwiki-skill/scripts/openwiki_daemon.py +65 -12
  64. package/bin/setup-saas.mjs +0 -792
  65. package/mcps/blender-mcp-server/.dockerignore +0 -19
  66. package/mcps/blender-mcp-server/.github/workflows/ci.yml +0 -67
  67. package/mcps/blender-mcp-server/.github/workflows/publish-pypi.yml +0 -54
  68. package/mcps/blender-mcp-server/CHANGELOG.md +0 -64
  69. package/mcps/blender-mcp-server/CONTRIBUTING.md +0 -107
  70. package/mcps/blender-mcp-server/Dockerfile +0 -19
  71. package/mcps/blender-mcp-server/LICENSE +0 -21
  72. package/mcps/blender-mcp-server/README.md +0 -409
  73. package/mcps/blender-mcp-server/addon/__init__.py +0 -1440
  74. package/mcps/blender-mcp-server/addon/models.py +0 -223
  75. package/mcps/blender-mcp-server/pyproject.toml +0 -120
  76. package/mcps/blender-mcp-server/scripts/blender_bridge_request.py +0 -71
  77. package/mcps/blender-mcp-server/scripts/blender_create_test_cube.py +0 -49
  78. package/mcps/blender-mcp-server/scripts/blender_scene_info.py +0 -38
  79. package/mcps/blender-mcp-server/scripts/build_addon_zip.sh +0 -29
  80. package/mcps/blender-mcp-server/scripts/demos/README.md +0 -186
  81. package/mcps/blender-mcp-server/scripts/demos/dam_break_scene.py +0 -276
  82. package/mcps/blender-mcp-server/scripts/demos/open_dam_break_gui.py +0 -33
  83. package/mcps/blender-mcp-server/scripts/demos/pipe_movement_study.py +0 -518
  84. package/mcps/blender-mcp-server/scripts/demos/pipe_pressure_failure_scene.py +0 -806
  85. package/mcps/blender-mcp-server/scripts/demos/procedural_dam_break_scene.py +0 -600
  86. package/mcps/blender-mcp-server/scripts/demos/run_dam_break.py +0 -510
  87. package/mcps/blender-mcp-server/scripts/launch_blender_gui.py +0 -41
  88. package/mcps/blender-mcp-server/scripts/library/README.md +0 -64
  89. package/mcps/blender-mcp-server/scripts/library/apply_transforms.py +0 -46
  90. package/mcps/blender-mcp-server/scripts/library/camera.py +0 -51
  91. package/mcps/blender-mcp-server/scripts/library/collections.py +0 -65
  92. package/mcps/blender-mcp-server/scripts/library/create_mesh.py +0 -41
  93. package/mcps/blender-mcp-server/scripts/library/effector.py +0 -48
  94. package/mcps/blender-mcp-server/scripts/library/fluid_domain.py +0 -80
  95. package/mcps/blender-mcp-server/scripts/library/fluid_inflow.py +0 -98
  96. package/mcps/blender-mcp-server/scripts/library/frame_range.py +0 -35
  97. package/mcps/blender-mcp-server/scripts/library/keyframes.py +0 -59
  98. package/mcps/blender-mcp-server/scripts/library/rigid_body.py +0 -52
  99. package/mcps/blender-mcp-server/scripts/library/save_blend.py +0 -40
  100. package/mcps/blender-mcp-server/scripts/server_start.sh +0 -26
  101. package/mcps/blender-mcp-server/src/blender_mcp_server/__init__.py +0 -3
  102. package/mcps/blender-mcp-server/src/blender_mcp_server/headless.py +0 -330
  103. package/mcps/blender-mcp-server/src/blender_mcp_server/server.py +0 -606
  104. package/mcps/davinci-mcp-professional/.bandit +0 -35
  105. package/mcps/davinci-mcp-professional/.claude/commands/security-review.md +0 -191
  106. package/mcps/davinci-mcp-professional/.claude/settings.json +0 -1
  107. package/mcps/davinci-mcp-professional/.editorconfig +0 -27
  108. package/mcps/davinci-mcp-professional/.gitattributes +0 -207
  109. package/mcps/davinci-mcp-professional/.github/CODEOWNERS +0 -2
  110. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
  111. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  112. package/mcps/davinci-mcp-professional/.github/PULL_REQUEST_TEMPLATE.md +0 -20
  113. package/mcps/davinci-mcp-professional/.github/SECURITY.md +0 -97
  114. package/mcps/davinci-mcp-professional/.github/dependabot.yml +0 -27
  115. package/mcps/davinci-mcp-professional/.github/workflows/ci.yml +0 -39
  116. package/mcps/davinci-mcp-professional/ATTRIBUTION.md +0 -4
  117. package/mcps/davinci-mcp-professional/AUTHORS.md +0 -9
  118. package/mcps/davinci-mcp-professional/BUGS.md +0 -55
  119. package/mcps/davinci-mcp-professional/CLAUDE.md +0 -229
  120. package/mcps/davinci-mcp-professional/CONTRIBUTING.md +0 -51
  121. package/mcps/davinci-mcp-professional/COPYING.md +0 -228
  122. package/mcps/davinci-mcp-professional/Doxyfile +0 -379
  123. package/mcps/davinci-mcp-professional/README.md +0 -143
  124. package/mcps/davinci-mcp-professional/SECURITY.md +0 -40
  125. package/mcps/davinci-mcp-professional/USING.md +0 -301
  126. package/mcps/davinci-mcp-professional/VERSION.md +0 -13
  127. package/mcps/davinci-mcp-professional/build.py +0 -169
  128. package/mcps/davinci-mcp-professional/claude_desktop_config_template.json +0 -11
  129. package/mcps/davinci-mcp-professional/hooks/ci-check.sh +0 -29
  130. package/mcps/davinci-mcp-professional/hooks/pre-push +0 -46
  131. package/mcps/davinci-mcp-professional/main.py +0 -40
  132. package/mcps/davinci-mcp-professional/mcp_server.py +0 -30
  133. package/mcps/davinci-mcp-professional/pyproject.toml +0 -115
  134. package/mcps/davinci-mcp-professional/security_audit.py +0 -379
  135. package/mcps/davinci-mcp-professional/src/davinci_mcp/__init__.py +0 -19
  136. package/mcps/davinci-mcp-professional/src/davinci_mcp/cli.py +0 -138
  137. package/mcps/davinci-mcp-professional/src/davinci_mcp/resolve_client.py +0 -342
  138. package/mcps/davinci-mcp-professional/src/davinci_mcp/resources/__init__.py +0 -60
  139. package/mcps/davinci-mcp-professional/src/davinci_mcp/server.py +0 -185
  140. package/mcps/davinci-mcp-professional/src/davinci_mcp/tools/__init__.py +0 -146
  141. package/mcps/davinci-mcp-professional/src/davinci_mcp/types.py +0 -125
  142. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/__init__.py +0 -19
  143. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/platform.py +0 -239
  144. package/mcps/davinci-mcp-professional/test.py +0 -186
  145. package/mcps/davinci-mcp-professional/uv.lock +0 -2073
  146. package/mcps/davinci-resolve-mcp/.claude/skills/media-analysis.md +0 -44
  147. package/mcps/davinci-resolve-mcp/.clinerules +0 -17
  148. package/mcps/davinci-resolve-mcp/.cursorrules +0 -17
  149. package/mcps/davinci-resolve-mcp/.github/copilot-instructions.md +0 -17
  150. package/mcps/davinci-resolve-mcp/.github/workflows/npm-publish.yml +0 -109
  151. package/mcps/davinci-resolve-mcp/.windsurfrules +0 -17
  152. package/mcps/davinci-resolve-mcp/AGENTS.md +0 -114
  153. package/mcps/davinci-resolve-mcp/CHANGELOG.md +0 -2648
  154. package/mcps/davinci-resolve-mcp/CLAUDE.md +0 -15
  155. package/mcps/davinci-resolve-mcp/LICENSE +0 -21
  156. package/mcps/davinci-resolve-mcp/README.md +0 -173
  157. package/mcps/davinci-resolve-mcp/SECURITY.md +0 -53
  158. package/mcps/davinci-resolve-mcp/bin/davinci-resolve-mcp.mjs +0 -450
  159. package/mcps/davinci-resolve-mcp/examples/README.md +0 -53
  160. package/mcps/davinci-resolve-mcp/examples/markers/README.md +0 -81
  161. package/mcps/davinci-resolve-mcp/examples/media/README.md +0 -94
  162. package/mcps/davinci-resolve-mcp/examples/timeline/README.md +0 -98
  163. package/mcps/davinci-resolve-mcp/install.py +0 -1687
  164. package/mcps/davinci-resolve-mcp/package.json +0 -52
  165. package/mcps/davinci-resolve-mcp/release-notes/v2.22.0.md +0 -51
  166. package/mcps/davinci-resolve-mcp/release-notes/v2.23.0.md +0 -51
  167. package/mcps/davinci-resolve-mcp/release-notes/v2.23.1.md +0 -35
  168. package/mcps/davinci-resolve-mcp/release-notes/v2.24.1.md +0 -32
  169. package/mcps/davinci-resolve-mcp/scripts/audit_api_parity.py +0 -275
  170. package/mcps/davinci-resolve-mcp/scripts/audit_readwrite_symmetry.py +0 -80
  171. package/mcps/davinci-resolve-mcp/scripts/doctor.py +0 -227
  172. package/mcps/davinci-resolve-mcp/scripts/gen_api_limitations.py +0 -144
  173. package/mcps/davinci-resolve-mcp/scripts/live_media_analysis_polish_probe.py +0 -65
  174. package/mcps/davinci-resolve-mcp/scripts/measure_bridge_cost.py +0 -65
  175. package/mcps/davinci-resolve-mcp/scripts/regen_panel_screenshots.py +0 -76
  176. package/mcps/davinci-resolve-mcp/src/__init__.py +0 -3
  177. package/mcps/davinci-resolve-mcp/src/analysis_dashboard.py +0 -15505
  178. package/mcps/davinci-resolve-mcp/src/batch_cli.py +0 -540
  179. package/mcps/davinci-resolve-mcp/src/control_panel.py +0 -13
  180. package/mcps/davinci-resolve-mcp/src/granular/__init__.py +0 -17
  181. package/mcps/davinci-resolve-mcp/src/granular/common.py +0 -741
  182. package/mcps/davinci-resolve-mcp/src/granular/folder.py +0 -420
  183. package/mcps/davinci-resolve-mcp/src/granular/gallery.py +0 -306
  184. package/mcps/davinci-resolve-mcp/src/granular/graph.py +0 -309
  185. package/mcps/davinci-resolve-mcp/src/granular/media_pool.py +0 -679
  186. package/mcps/davinci-resolve-mcp/src/granular/media_pool_item.py +0 -1020
  187. package/mcps/davinci-resolve-mcp/src/granular/media_storage.py +0 -179
  188. package/mcps/davinci-resolve-mcp/src/granular/project.py +0 -1654
  189. package/mcps/davinci-resolve-mcp/src/granular/resolve_control.py +0 -538
  190. package/mcps/davinci-resolve-mcp/src/granular/timeline.py +0 -1075
  191. package/mcps/davinci-resolve-mcp/src/granular/timeline_item.py +0 -2251
  192. package/mcps/davinci-resolve-mcp/src/resolve_mcp_server.py +0 -43
  193. package/mcps/davinci-resolve-mcp/src/server.py +0 -24116
  194. package/mcps/davinci-resolve-mcp/src/utils/__init__.py +0 -3
  195. package/mcps/davinci-resolve-mcp/src/utils/actor_identity.py +0 -46
  196. package/mcps/davinci-resolve-mcp/src/utils/analysis_caps.py +0 -678
  197. package/mcps/davinci-resolve-mcp/src/utils/analysis_memory.py +0 -755
  198. package/mcps/davinci-resolve-mcp/src/utils/analysis_runs.py +0 -307
  199. package/mcps/davinci-resolve-mcp/src/utils/analysis_store.py +0 -945
  200. package/mcps/davinci-resolve-mcp/src/utils/api_truth.py +0 -525
  201. package/mcps/davinci-resolve-mcp/src/utils/app_control.py +0 -319
  202. package/mcps/davinci-resolve-mcp/src/utils/audio_fairlight_live_probe.py +0 -263
  203. package/mcps/davinci-resolve-mcp/src/utils/brain_edits.py +0 -387
  204. package/mcps/davinci-resolve-mcp/src/utils/bridge_metrics.py +0 -76
  205. package/mcps/davinci-resolve-mcp/src/utils/cdl.py +0 -20
  206. package/mcps/davinci-resolve-mcp/src/utils/clip_query.py +0 -85
  207. package/mcps/davinci-resolve-mcp/src/utils/cloud_operations.py +0 -192
  208. package/mcps/davinci-resolve-mcp/src/utils/color_grade_live_probe.py +0 -444
  209. package/mcps/davinci-resolve-mcp/src/utils/contracts.py +0 -102
  210. package/mcps/davinci-resolve-mcp/src/utils/cut_ir.py +0 -115
  211. package/mcps/davinci-resolve-mcp/src/utils/dctl_templates.py +0 -368
  212. package/mcps/davinci-resolve-mcp/src/utils/deep_vision.py +0 -643
  213. package/mcps/davinci-resolve-mcp/src/utils/destructive_hook.py +0 -606
  214. package/mcps/davinci-resolve-mcp/src/utils/edit_engine.py +0 -737
  215. package/mcps/davinci-resolve-mcp/src/utils/embeddings.py +0 -922
  216. package/mcps/davinci-resolve-mcp/src/utils/entities.py +0 -579
  217. package/mcps/davinci-resolve-mcp/src/utils/extension_authoring_live_probe.py +0 -292
  218. package/mcps/davinci-resolve-mcp/src/utils/failure_tracker.py +0 -119
  219. package/mcps/davinci-resolve-mcp/src/utils/fuse_templates.py +0 -1968
  220. package/mcps/davinci-resolve-mcp/src/utils/fusion_composition_live_probe.py +0 -284
  221. package/mcps/davinci-resolve-mcp/src/utils/fusion_group_settings.py +0 -334
  222. package/mcps/davinci-resolve-mcp/src/utils/layout_presets.py +0 -333
  223. package/mcps/davinci-resolve-mcp/src/utils/mcp_stdio.py +0 -32
  224. package/mcps/davinci-resolve-mcp/src/utils/mcp_transport.py +0 -128
  225. package/mcps/davinci-resolve-mcp/src/utils/media_analysis.py +0 -7690
  226. package/mcps/davinci-resolve-mcp/src/utils/media_analysis_jobs.py +0 -805
  227. package/mcps/davinci-resolve-mcp/src/utils/media_pool_changes.py +0 -121
  228. package/mcps/davinci-resolve-mcp/src/utils/media_pool_ingest_live_probe.py +0 -592
  229. package/mcps/davinci-resolve-mcp/src/utils/multicam.py +0 -393
  230. package/mcps/davinci-resolve-mcp/src/utils/object_inspection.py +0 -301
  231. package/mcps/davinci-resolve-mcp/src/utils/page_lock.py +0 -75
  232. package/mcps/davinci-resolve-mcp/src/utils/platform.py +0 -157
  233. package/mcps/davinci-resolve-mcp/src/utils/proc.py +0 -26
  234. package/mcps/davinci-resolve-mcp/src/utils/project_cleanup.py +0 -73
  235. package/mcps/davinci-resolve-mcp/src/utils/project_lifecycle_live_probe.py +0 -376
  236. package/mcps/davinci-resolve-mcp/src/utils/project_lint.py +0 -131
  237. package/mcps/davinci-resolve-mcp/src/utils/project_properties.py +0 -601
  238. package/mcps/davinci-resolve-mcp/src/utils/project_spec.py +0 -459
  239. package/mcps/davinci-resolve-mcp/src/utils/readback.py +0 -91
  240. package/mcps/davinci-resolve-mcp/src/utils/render_deliver_live_probe.py +0 -384
  241. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_governance.py +0 -214
  242. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_ledger.py +0 -244
  243. package/mcps/davinci-resolve-mcp/src/utils/resolve_busy.py +0 -171
  244. package/mcps/davinci-resolve-mcp/src/utils/resolve_connection.py +0 -77
  245. package/mcps/davinci-resolve-mcp/src/utils/review_annotation_live_probe.py +0 -352
  246. package/mcps/davinci-resolve-mcp/src/utils/script_templates.py +0 -1193
  247. package/mcps/davinci-resolve-mcp/src/utils/shot_relationships.py +0 -544
  248. package/mcps/davinci-resolve-mcp/src/utils/structural_diff.py +0 -175
  249. package/mcps/davinci-resolve-mcp/src/utils/sync_detection.py +0 -889
  250. package/mcps/davinci-resolve-mcp/src/utils/timeline_brain_db.py +0 -826
  251. package/mcps/davinci-resolve-mcp/src/utils/timeline_conform_live_probe.py +0 -280
  252. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_live_probe.py +0 -1092
  253. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_probe.py +0 -185
  254. package/mcps/davinci-resolve-mcp/src/utils/timeline_title_text.py +0 -87
  255. package/mcps/davinci-resolve-mcp/src/utils/timeline_versioning.py +0 -730
  256. package/mcps/davinci-resolve-mcp/src/utils/update_check.py +0 -685
  257. package/mcps/vectorworks-mcp/.dockerignore +0 -8
  258. package/mcps/vectorworks-mcp/Dockerfile +0 -28
  259. package/mcps/vectorworks-mcp/README.md +0 -156
  260. package/mcps/vectorworks-mcp/app/__init__.py +0 -2
  261. package/mcps/vectorworks-mcp/app/api.py +0 -52
  262. package/mcps/vectorworks-mcp/app/chunking.py +0 -56
  263. package/mcps/vectorworks-mcp/app/config.py +0 -29
  264. package/mcps/vectorworks-mcp/app/embeddings.py +0 -28
  265. package/mcps/vectorworks-mcp/app/indexer.py +0 -106
  266. package/mcps/vectorworks-mcp/app/main.py +0 -33
  267. package/mcps/vectorworks-mcp/app/mcp_server.py +0 -71
  268. package/mcps/vectorworks-mcp/app/search.py +0 -54
  269. package/mcps/vectorworks-mcp/app/utils.py +0 -14
  270. package/mcps/vectorworks-mcp/data/.gitkeep +0 -1
  271. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_PluginScript.htm +0 -95
  272. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_ScriptEditor.htm +0 -266
  273. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_Scripting.htm +0 -106
  274. package/mcps/vectorworks-mcp/data/vw-app-help/VW2023_CreatingScriptedPlugins.htm +0 -327
  275. package/mcps/vectorworks-mcp/data/vw-app-help/VW2024_RunningScripts.htm +0 -116
  276. package/mcps/vectorworks-mcp/data/vw-devwiki/VS_Function_Reference_category.html +0 -2129
  277. package/mcps/vectorworks-mcp/data/vw-jp-ref/ObjectsSymbols.html +0 -2035
  278. package/mcps/vectorworks-mcp/data/vw-jp-ref/ScriptFunctionReference.html +0 -29
  279. package/mcps/vectorworks-mcp/design.md +0 -57
  280. package/mcps/vectorworks-mcp/docker-compose.yml +0 -18
  281. package/mcps/vectorworks-mcp/index/.gitkeep +0 -1
  282. package/mcps/vectorworks-mcp/index/meta.jsonl +0 -3956
  283. package/mcps/vectorworks-mcp/index/vw.faiss +0 -0
  284. package/mcps/vectorworks-mcp/requirements.txt +0 -10
  285. package/mcps/vectorworks-mcp/scripts/fetch_docs_minimal.sh +0 -84
  286. package/mcps/vectorworks-mcp/scripts/fetch_github_vectorworks.sh +0 -85
  287. package/mcps/vectorworks-mcp/templates/index.html +0 -40
  288. package/scripts/ecosystem-health-audit.js +0 -257
  289. package/skills/bdb-dev-os-skill/SKILL.md +0 -49
  290. package/skills/bdb-dev-os-skill/package.json +0 -11
  291. package/skills/bdbsaastraining/SKILL.md +0 -316
  292. package/skills/bdbsaastraining/references/exam-pool.md +0 -313
  293. package/skills/bdbsaastraining/references/interaction-modes.md +0 -94
  294. package/skills/bdbsaastraining/references/track-a-ai-agent.md +0 -111
  295. package/skills/bdbsaastraining/references/track-b-wordpress.md +0 -111
  296. package/skills/bdbsaastraining/references/track-c-mailserver.md +0 -107
  297. package/skills/bdbsaastraining/references/track-d-debian.md +0 -109
  298. package/skills/bdbsaastraining/references/track-e-custom.md +0 -83
  299. package/skills/bdbsaastraining/scripts/build_profile.py +0 -529
  300. package/skills/bdbsaastraining/scripts/generate_certificate.py +0 -161
  301. package/skills/bdbsaastraining/scripts/preflight_check.sh +0 -150
  302. package/skills/bdbsaastraining/templates/certificate_template.html +0 -508
  303. package/skills/global_config/bdb-ecosystem-health/SKILL.md +0 -68
  304. package/skills/global_config/bdbsaas-ops/SKILL.md +0 -16
  305. package/skills/global_config/bdbsaashost/SKILL.md +0 -125
@@ -1,409 +0,0 @@
1
- # Blender MCP Server
2
-
3
- Control Blender from any AI assistant using the [Model Context Protocol (MCP)](https://modelcontextprotocol.io).
4
-
5
- 27 tools across 7 namespaces — create objects, assign materials, render images, export scenes, execute Python scripts, manage async jobs, and more.
6
-
7
- ![Demo render — scene built entirely through MCP tools](docs/images/demo_render.png)
8
-
9
- ## How It Works
10
-
11
- ```
12
- ┌─────────────┐ stdio ┌──────────────────┐ JSON/TCP ┌─────────────────┐
13
- │ MCP Client │ ◄──────────────► │ MCP Server │ ◄─────────────► │ Blender Add-on │
14
- │ (any host) │ │ (Python) │ localhost:9876 │ (runs in bpy) │
15
- └─────────────┘ └──────────────────┘ └─────────────────┘
16
- ```
17
-
18
- 1. The **Blender add-on** runs inside Blender and listens on `localhost:9876`.
19
- 2. The **MCP server** connects to your AI client via stdio and forwards tool calls to Blender over TCP.
20
- 3. You ask the AI → it calls MCP tools → Blender executes commands → results flow back.
21
-
22
- ## Quick Start
23
-
24
- ### 1. Install the MCP Server
25
-
26
- ```bash
27
- git clone https://github.com/djeada/blender-mcp-server.git
28
- cd blender-mcp-server
29
- python3 -m venv .venv
30
- source .venv/bin/activate
31
- pip install -e .
32
- ```
33
-
34
- This creates the executable `.venv/bin/blender-mcp-server`.
35
-
36
- ### 2. Install the Blender Add-on
37
-
38
- Build the add-on zip:
39
-
40
- ```bash
41
- ./scripts/build_addon_zip.sh
42
- ```
43
-
44
- Then in Blender:
45
-
46
- 1. Go to **Edit → Preferences → Add-ons → Install**.
47
- 2. Select `dist/blender_mcp_bridge.zip` and enable **Blender MCP Bridge**.
48
- 3. In the 3D Viewport, press **N** → open the **MCP** tab.
49
- 4. Confirm it shows **Listening on 127.0.0.1:9876**.
50
-
51
- ### 3. Connect Your MCP Client
52
-
53
- <details>
54
- <summary><strong>Claude Desktop</strong></summary>
55
-
56
- Add to your config file:
57
-
58
- | OS | Path |
59
- |---|---|
60
- | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
61
- | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
62
- | Linux | `~/.config/Claude/claude_desktop_config.json` |
63
-
64
- ```json
65
- {
66
- "mcpServers": {
67
- "blender": {
68
- "command": "/absolute/path/to/blender-mcp-server/.venv/bin/blender-mcp-server"
69
- }
70
- }
71
- }
72
- ```
73
-
74
- Replace the path with the actual location of your clone.
75
-
76
- </details>
77
-
78
- <details>
79
- <summary><strong>Codex CLI</strong></summary>
80
-
81
- Register the server once:
82
-
83
- ```bash
84
- codex mcp add blender -- /absolute/path/to/blender-mcp-server/.venv/bin/blender-mcp-server
85
- ```
86
-
87
- Verify with `codex mcp list`. Then start Codex from any directory — it launches the server automatically.
88
-
89
- </details>
90
-
91
- <details>
92
- <summary><strong>Other MCP clients</strong></summary>
93
-
94
- Point any MCP-compatible client at the server executable:
95
-
96
- ```
97
- /absolute/path/to/blender-mcp-server/.venv/bin/blender-mcp-server
98
- ```
99
-
100
- The server uses **stdio** transport. No additional flags are needed.
101
-
102
- </details>
103
-
104
- ### 4. Start Using It
105
-
106
- Make sure Blender is open with the add-on listening, then ask your AI assistant:
107
-
108
- - *"What objects are in my Blender scene?"*
109
- - *"Create a cube named TestCube at [0, 0, 1]"*
110
- - *"Render the scene to /tmp/render.png"*
111
-
112
- The AI calls MCP tools like `blender_scene_list_objects` and `blender_object_create`, which the server forwards to Blender.
113
-
114
- ## Example Prompts
115
-
116
- <details>
117
- <summary><strong>🔍 Inspecting your scene</strong></summary>
118
-
119
- - *"What objects are in my scene?"*
120
- - *"Show me the transform of the Camera object"*
121
- - *"List all materials in the file"*
122
-
123
- </details>
124
-
125
- <details>
126
- <summary><strong>🔨 Creating objects</strong></summary>
127
-
128
- - *"Create a sphere named 'Earth' at position [0, 0, 2] with size 3"*
129
- - *"Add a cylinder at the origin, then scale it to [0.5, 0.5, 4] to make a tall pillar"*
130
- - *"Create 5 cubes in a row spaced 3 units apart"*
131
-
132
- </details>
133
-
134
- <details>
135
- <summary><strong>🎨 Materials & colors</strong></summary>
136
-
137
- - *"Create a red material and assign it to the Cube"*
138
- - *"Make a material called 'Ocean' with color [0.0, 0.3, 0.8] and assign it to the Sphere"*
139
- - *"Change the color of 'RedMaterial' to orange"*
140
-
141
- </details>
142
-
143
- <details>
144
- <summary><strong>📐 Transforming objects</strong></summary>
145
-
146
- - *"Move the Cube up 2 units on the Z axis"*
147
- - *"Rotate the Cylinder 45 degrees on the Z axis"*
148
- - *"Scale the Sphere to [2, 2, 2]"*
149
-
150
- </details>
151
-
152
- <details>
153
- <summary><strong>📸 Rendering & exporting</strong></summary>
154
-
155
- - *"Render the scene at 1920×1080 and save it to /tmp/render.png"*
156
- - *"Export the scene as a GLB file to /tmp/scene.glb"*
157
-
158
- </details>
159
-
160
- <details>
161
- <summary><strong>🐍 Python execution</strong></summary>
162
-
163
- - *"Run this Blender Python: `bpy.ops.mesh.primitive_monkey_add(location=(0,0,2))`"*
164
- - *"Execute the fluid_domain.py script from the library with resolution 128"*
165
- - *"Start an async bake job for the fluid simulation and tell me the job ID"*
166
-
167
- </details>
168
-
169
- <details>
170
- <summary><strong>⏪ Undo / Redo</strong></summary>
171
-
172
- - *"Undo the last change"*
173
- - *"Redo what was just undone"*
174
-
175
- </details>
176
-
177
- ## Tool Reference
178
-
179
- ### Scene Inspection
180
-
181
- | Tool | Description |
182
- |---|---|
183
- | `blender_scene_get_info` | Scene metadata — name, frame range, render engine, resolution, object count |
184
- | `blender_scene_list_objects` | List all objects, optionally filter by type (`MESH`, `CAMERA`, `LIGHT`, …) |
185
- | `blender_object_get_transform` | Get position, rotation, and scale of an object by name |
186
- | `blender_object_get_hierarchy` | Parent/child hierarchy tree (full scene or subtree) |
187
-
188
- ### Object Manipulation
189
-
190
- | Tool | Description |
191
- |---|---|
192
- | `blender_object_create` | Create primitives: `cube`, `sphere`, `cylinder`, `plane`, `cone`, `torus` |
193
- | `blender_object_delete` | Delete an object by name |
194
- | `blender_object_translate` | Move — absolute `location` or relative `offset` |
195
- | `blender_object_rotate` | Set rotation `[x, y, z]` in degrees (default) or radians |
196
- | `blender_object_scale` | Set scale `[x, y, z]` |
197
- | `blender_object_duplicate` | Duplicate with optional new name |
198
-
199
- ### Materials
200
-
201
- | Tool | Description |
202
- |---|---|
203
- | `blender_material_list` | List all materials in the file |
204
- | `blender_material_create` | Create a material with optional base color `[r, g, b]` (0–1) |
205
- | `blender_material_assign` | Assign a material to an object |
206
- | `blender_material_set_color` | Set the Principled BSDF base color |
207
- | `blender_material_set_texture` | Set an image texture as base color |
208
-
209
- ### Rendering & Export
210
-
211
- | Tool | Description |
212
- |---|---|
213
- | `blender_render_still` | Render still image — output path, resolution, engine |
214
- | `blender_render_animation` | Render animation — frame range, output path, engine |
215
- | `blender_export_gltf` | Export as glTF/GLB |
216
- | `blender_export_obj` | Export as OBJ |
217
- | `blender_export_fbx` | Export as FBX |
218
-
219
- ### History
220
-
221
- | Tool | Description |
222
- |---|---|
223
- | `blender_history_undo` | Undo the last operation |
224
- | `blender_history_redo` | Redo the last undone operation |
225
-
226
- ### Python Execution
227
-
228
- | Tool | Description |
229
- |---|---|
230
- | `blender_python_exec` | Run a Python script synchronously. Accepts `code` or `script_path`, optional `args`, `timeout_seconds`, and `transport` (`bridge` or `headless`). |
231
- | `blender_python_exec_async` | Start a long-running script asynchronously. Returns a `job_id`. |
232
- | `blender_job_status` | Poll an async job's status, result, stdout, stderr, and error. |
233
- | `blender_job_cancel` | Cancel a running or queued async job. |
234
- | `blender_job_list` | List known async jobs with IDs, status, and creation time. |
235
-
236
- ## Script Library
237
-
238
- Pre-built scripts in `scripts/library/` for use with `blender_python_exec` via `script_path`:
239
-
240
- | Script | Description |
241
- |---|---|
242
- | `create_mesh.py` | Create primitive meshes through the data API (no `bpy.ops`) |
243
- | `fluid_domain.py` | Create a Mantaflow fluid domain |
244
- | `fluid_inflow.py` | Create an inflow source |
245
- | `effector.py` | Set objects as collision effectors |
246
- | `rigid_body.py` | Add rigid body physics |
247
- | `frame_range.py` | Set scene frame range |
248
- | `camera.py` | Create and configure a camera |
249
- | `keyframes.py` | Insert transform keyframes |
250
- | `collections.py` | Organize objects into collections |
251
- | `apply_transforms.py` | Apply transforms to objects |
252
- | `save_blend.py` | Save the `.blend` file |
253
-
254
- See [`scripts/library/README.md`](scripts/library/README.md) for full argument docs and a dam-break walkthrough.
255
-
256
- > **Tips for physics workflows:**
257
- > - Prefer `create_mesh.py` (data API) over `bpy.ops.mesh.primitive_*_add` in live sessions — the operator path can destabilize view-layer updates around fluid setup.
258
- > - Keep Mantaflow liquid modifiers hidden in the viewport to avoid crashes in Blender 4.x.
259
- > - Use `transport="headless"` for heavy physics bakes — this runs scripts in a separate `blender -b` process.
260
-
261
- ## Safety & Security
262
-
263
- | Feature | Description |
264
- |---|---|
265
- | **Automatic undo push** | Mutation tools push an undo step before executing (Python exec excluded for stability). |
266
- | **Safe Mode** | Restricts file I/O to the project directory only. |
267
- | **Tool whitelist** | Limits which commands the bridge accepts. |
268
- | **Script path restrictions** | `script_path` must be under configured approved roots. |
269
- | **Inline code toggle** | Disable inline code execution via add-on preferences. |
270
- | **Module blocklist** | `subprocess`, `shutil`, `socket`, `webbrowser`, `ctypes`, `multiprocessing` are blocked by default. |
271
-
272
- ## Add-on Preferences
273
-
274
- In Blender → **Edit → Preferences → Add-ons → Blender MCP Bridge**:
275
-
276
- | Setting | Default | Description |
277
- |---|---|---|
278
- | Safe Mode | Off | Restrict file I/O to the project directory |
279
- | Port | 9876 | TCP port for the MCP bridge |
280
- | Allow Inline Code | On | Allow `python.execute` to run inline code strings |
281
- | Approved Script Roots | *(blend file dir)* | Semicolon-separated directories for script file access |
282
-
283
- ## Advanced Usage
284
-
285
- <details>
286
- <summary><strong>Direct bridge testing (no MCP client)</strong></summary>
287
-
288
- The helper scripts in `scripts/` connect directly to the Blender add-on on `127.0.0.1:9876`, bypassing the MCP server entirely. Useful for verifying the add-on works:
289
-
290
- ```bash
291
- python3 scripts/blender_scene_info.py
292
- python3 scripts/blender_create_test_cube.py --name TestCube --x 0 --y 0 --z 1 --size 2
293
- python3 scripts/blender_bridge_request.py scene.get_info
294
- python3 scripts/blender_bridge_request.py object.translate --params '{"name":"TestCube","offset":[0,0,2]}'
295
- ```
296
-
297
- All scripts accept `--host`, `--port`, and `--timeout` flags.
298
-
299
- </details>
300
-
301
- <details>
302
- <summary><strong>Headless / background mode</strong></summary>
303
-
304
- Run Blender without a GUI for automation:
305
-
306
- ```bash
307
- blender -b --python your_script.py
308
- ```
309
-
310
- Where `your_script.py` starts the MCP bridge:
311
-
312
- ```python
313
- import sys
314
- sys.path.insert(0, "/path/to/blender-mcp-server")
315
- from addon import CommandHandler, BlenderMCPServer
316
-
317
- server = BlenderMCPServer()
318
- server.start()
319
-
320
- import socket
321
- s = socket.socket()
322
- s.bind(("127.0.0.1", 9877))
323
- s.listen(1)
324
- s.accept() # Blocks until shutdown signal
325
- ```
326
-
327
- </details>
328
-
329
- <details>
330
- <summary><strong>Programmatic tool call examples</strong></summary>
331
-
332
- **Inline code — create a fluid domain:**
333
-
334
- ```json
335
- {
336
- "tool": "blender_python_exec",
337
- "args": {
338
- "code": "import bpy\nbpy.ops.mesh.primitive_cube_add(size=4, location=(0,0,2))\ndomain = bpy.context.active_object\ndomain.name = 'FluidDomain'\nbpy.ops.object.modifier_add(type='FLUID')\ndomain.modifiers['Fluid'].fluid_type = 'DOMAIN'\nsettings = domain.modifiers['Fluid'].domain_settings\nsettings.domain_type = 'LIQUID'\nsettings.resolution_max = 64\n__result__ = {'domain': domain.name, 'resolution': 64}",
339
- "args": {"resolution": 64}
340
- }
341
- }
342
- ```
343
-
344
- **Script file — set up colliders:**
345
-
346
- ```json
347
- {
348
- "tool": "blender_python_exec",
349
- "args": {
350
- "script_path": "scripts/library/effector.py",
351
- "args": {
352
- "objects": ["Ground", "Building_01", "Building_02"],
353
- "effector_type": "COLLISION"
354
- }
355
- }
356
- }
357
- ```
358
-
359
- **Async bake and poll:**
360
-
361
- ```json
362
- {"tool": "blender_python_exec_async", "args": {"code": "import bpy\nbpy.ops.fluid.bake_all()\n__result__ = {'baked': True}", "timeout_seconds": 1800}}
363
- ```
364
-
365
- → `{"job_id": "job-f8e2a1b3"}`
366
-
367
- ```json
368
- {"tool": "blender_job_status", "args": {"job_id": "job-f8e2a1b3"}}
369
- ```
370
-
371
- </details>
372
-
373
- ## Development
374
-
375
- ```bash
376
- git clone https://github.com/djeada/blender-mcp-server.git
377
- cd blender-mcp-server
378
- pip install -e ".[dev]"
379
-
380
- pytest tests/ -v
381
- ```
382
-
383
- ### Project Structure
384
-
385
- ```
386
- blender-mcp-server/
387
- ├── addon/ # Blender add-on (TCP server + command handlers + job manager)
388
- ├── src/blender_mcp_server/ # MCP server (stdio transport + tool definitions)
389
- ├── scripts/
390
- │ ├── library/ # Reusable Blender scripts for common tasks
391
- │ ├── demos/ # End-to-end demo scenes
392
- │ └── blender_bridge_request.py # Direct bridge test helpers
393
- ├── tests/ # Unit tests (mocked bpy, no Blender required)
394
- ├── docs/ # Architecture & design docs
395
- ├── pyproject.toml
396
- └── README.md
397
- ```
398
-
399
- ## Contributing
400
-
401
- 1. Fork the repository.
402
- 2. Create a feature branch.
403
- 3. Add tests for your changes.
404
- 4. Run `pytest tests/ -v` to verify all tests pass.
405
- 5. Submit a pull request.
406
-
407
- ## License
408
-
409
- MIT