@hybridlabor-api/aos 4.4.0 → 4.4.2-beta.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 (306) 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/hooks/memb-inject.mjs +6 -0
  20. package/CLAUDE.md +573 -0
  21. package/README.de.md +0 -8
  22. package/README.md +0 -8
  23. package/README.pt.md +0 -8
  24. package/assets/brand/ao-ant-mark.svg +91 -0
  25. package/assets/brand/bdb-core-mark.svg +34 -0
  26. package/assets/brand/heimdall-guardian-mark.svg +16 -0
  27. package/assets/brand/memb-crystal-mark.svg +18 -0
  28. package/bin/aos-config.mjs +89 -0
  29. package/bin/aos-dashboard.mjs +608 -0
  30. package/bin/aos-uninstall.mjs +227 -0
  31. package/docs/sessions/audit-2026-09-14-silent-failures.md +114 -0
  32. package/docs/skills_table.md +0 -3
  33. package/installer.js +428 -237
  34. package/mcps/RhinoMCP/cc-plugin/.claude/settings.json +10 -0
  35. package/mcps/after-effects-mcp/build/index.js +840 -0
  36. package/mcps/after-effects-mcp/build/scripts/applyEffect.jsx +153 -0
  37. package/mcps/after-effects-mcp/build/scripts/applyEffectTemplate.jsx +218 -0
  38. package/mcps/after-effects-mcp/build/scripts/createComposition.jsx +71 -0
  39. package/mcps/after-effects-mcp/build/scripts/createShapeLayer.jsx +147 -0
  40. package/mcps/after-effects-mcp/build/scripts/createSolidLayer.jsx +114 -0
  41. package/mcps/after-effects-mcp/build/scripts/createTextLayer.jsx +115 -0
  42. package/mcps/after-effects-mcp/build/scripts/getLayerInfo.jsx +192 -0
  43. package/mcps/after-effects-mcp/build/scripts/getProjectInfo.jsx +90 -0
  44. package/mcps/after-effects-mcp/build/scripts/listCompositions.jsx +50 -0
  45. package/mcps/after-effects-mcp/build/scripts/mcp-bridge-auto.jsx +1773 -0
  46. package/mcps/after-effects-mcp/build/scripts/setLayerProperties.jsx +160 -0
  47. package/mcps/computer-use-mcp/dist/client.d.ts +150 -0
  48. package/mcps/computer-use-mcp/dist/client.js +136 -0
  49. package/mcps/computer-use-mcp/dist/entrypoint.d.ts +16 -0
  50. package/mcps/computer-use-mcp/dist/entrypoint.js +26 -0
  51. package/mcps/computer-use-mcp/dist/native.d.ts +212 -0
  52. package/mcps/computer-use-mcp/dist/native.js +50 -0
  53. package/mcps/computer-use-mcp/dist/server.d.ts +32 -0
  54. package/mcps/computer-use-mcp/dist/server.js +342 -0
  55. package/mcps/computer-use-mcp/dist/session.d.ts +101 -0
  56. package/mcps/computer-use-mcp/dist/session.js +2372 -0
  57. package/package.json +13 -4
  58. package/skills/global_config/aos-project-init/SKILL.md +97 -130
  59. package/skills/global_config/aos-project-init/assets/openwikiignore.template +62 -0
  60. package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +38 -1
  61. package/skills/global_config/aos-setup/SKILL.md +110 -11
  62. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +48 -4
  63. package/skills/global_config/ask-tim/SKILL.md +2 -7
  64. package/skills/global_config/openwiki-skill/scripts/openwiki_daemon.py +65 -12
  65. package/bin/setup-saas.mjs +0 -792
  66. package/mcps/blender-mcp-server/.dockerignore +0 -19
  67. package/mcps/blender-mcp-server/.github/workflows/ci.yml +0 -67
  68. package/mcps/blender-mcp-server/.github/workflows/publish-pypi.yml +0 -54
  69. package/mcps/blender-mcp-server/CHANGELOG.md +0 -64
  70. package/mcps/blender-mcp-server/CONTRIBUTING.md +0 -107
  71. package/mcps/blender-mcp-server/Dockerfile +0 -19
  72. package/mcps/blender-mcp-server/LICENSE +0 -21
  73. package/mcps/blender-mcp-server/README.md +0 -409
  74. package/mcps/blender-mcp-server/addon/__init__.py +0 -1440
  75. package/mcps/blender-mcp-server/addon/models.py +0 -223
  76. package/mcps/blender-mcp-server/pyproject.toml +0 -120
  77. package/mcps/blender-mcp-server/scripts/blender_bridge_request.py +0 -71
  78. package/mcps/blender-mcp-server/scripts/blender_create_test_cube.py +0 -49
  79. package/mcps/blender-mcp-server/scripts/blender_scene_info.py +0 -38
  80. package/mcps/blender-mcp-server/scripts/build_addon_zip.sh +0 -29
  81. package/mcps/blender-mcp-server/scripts/demos/README.md +0 -186
  82. package/mcps/blender-mcp-server/scripts/demos/dam_break_scene.py +0 -276
  83. package/mcps/blender-mcp-server/scripts/demos/open_dam_break_gui.py +0 -33
  84. package/mcps/blender-mcp-server/scripts/demos/pipe_movement_study.py +0 -518
  85. package/mcps/blender-mcp-server/scripts/demos/pipe_pressure_failure_scene.py +0 -806
  86. package/mcps/blender-mcp-server/scripts/demos/procedural_dam_break_scene.py +0 -600
  87. package/mcps/blender-mcp-server/scripts/demos/run_dam_break.py +0 -510
  88. package/mcps/blender-mcp-server/scripts/launch_blender_gui.py +0 -41
  89. package/mcps/blender-mcp-server/scripts/library/README.md +0 -64
  90. package/mcps/blender-mcp-server/scripts/library/apply_transforms.py +0 -46
  91. package/mcps/blender-mcp-server/scripts/library/camera.py +0 -51
  92. package/mcps/blender-mcp-server/scripts/library/collections.py +0 -65
  93. package/mcps/blender-mcp-server/scripts/library/create_mesh.py +0 -41
  94. package/mcps/blender-mcp-server/scripts/library/effector.py +0 -48
  95. package/mcps/blender-mcp-server/scripts/library/fluid_domain.py +0 -80
  96. package/mcps/blender-mcp-server/scripts/library/fluid_inflow.py +0 -98
  97. package/mcps/blender-mcp-server/scripts/library/frame_range.py +0 -35
  98. package/mcps/blender-mcp-server/scripts/library/keyframes.py +0 -59
  99. package/mcps/blender-mcp-server/scripts/library/rigid_body.py +0 -52
  100. package/mcps/blender-mcp-server/scripts/library/save_blend.py +0 -40
  101. package/mcps/blender-mcp-server/scripts/server_start.sh +0 -26
  102. package/mcps/blender-mcp-server/src/blender_mcp_server/__init__.py +0 -3
  103. package/mcps/blender-mcp-server/src/blender_mcp_server/headless.py +0 -330
  104. package/mcps/blender-mcp-server/src/blender_mcp_server/server.py +0 -606
  105. package/mcps/davinci-mcp-professional/.bandit +0 -35
  106. package/mcps/davinci-mcp-professional/.claude/commands/security-review.md +0 -191
  107. package/mcps/davinci-mcp-professional/.claude/settings.json +0 -1
  108. package/mcps/davinci-mcp-professional/.editorconfig +0 -27
  109. package/mcps/davinci-mcp-professional/.gitattributes +0 -207
  110. package/mcps/davinci-mcp-professional/.github/CODEOWNERS +0 -2
  111. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
  112. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  113. package/mcps/davinci-mcp-professional/.github/PULL_REQUEST_TEMPLATE.md +0 -20
  114. package/mcps/davinci-mcp-professional/.github/SECURITY.md +0 -97
  115. package/mcps/davinci-mcp-professional/.github/dependabot.yml +0 -27
  116. package/mcps/davinci-mcp-professional/.github/workflows/ci.yml +0 -39
  117. package/mcps/davinci-mcp-professional/ATTRIBUTION.md +0 -4
  118. package/mcps/davinci-mcp-professional/AUTHORS.md +0 -9
  119. package/mcps/davinci-mcp-professional/BUGS.md +0 -55
  120. package/mcps/davinci-mcp-professional/CLAUDE.md +0 -229
  121. package/mcps/davinci-mcp-professional/CONTRIBUTING.md +0 -51
  122. package/mcps/davinci-mcp-professional/COPYING.md +0 -228
  123. package/mcps/davinci-mcp-professional/Doxyfile +0 -379
  124. package/mcps/davinci-mcp-professional/README.md +0 -143
  125. package/mcps/davinci-mcp-professional/SECURITY.md +0 -40
  126. package/mcps/davinci-mcp-professional/USING.md +0 -301
  127. package/mcps/davinci-mcp-professional/VERSION.md +0 -13
  128. package/mcps/davinci-mcp-professional/build.py +0 -169
  129. package/mcps/davinci-mcp-professional/claude_desktop_config_template.json +0 -11
  130. package/mcps/davinci-mcp-professional/hooks/ci-check.sh +0 -29
  131. package/mcps/davinci-mcp-professional/hooks/pre-push +0 -46
  132. package/mcps/davinci-mcp-professional/main.py +0 -40
  133. package/mcps/davinci-mcp-professional/mcp_server.py +0 -30
  134. package/mcps/davinci-mcp-professional/pyproject.toml +0 -115
  135. package/mcps/davinci-mcp-professional/security_audit.py +0 -379
  136. package/mcps/davinci-mcp-professional/src/davinci_mcp/__init__.py +0 -19
  137. package/mcps/davinci-mcp-professional/src/davinci_mcp/cli.py +0 -138
  138. package/mcps/davinci-mcp-professional/src/davinci_mcp/resolve_client.py +0 -342
  139. package/mcps/davinci-mcp-professional/src/davinci_mcp/resources/__init__.py +0 -60
  140. package/mcps/davinci-mcp-professional/src/davinci_mcp/server.py +0 -185
  141. package/mcps/davinci-mcp-professional/src/davinci_mcp/tools/__init__.py +0 -146
  142. package/mcps/davinci-mcp-professional/src/davinci_mcp/types.py +0 -125
  143. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/__init__.py +0 -19
  144. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/platform.py +0 -239
  145. package/mcps/davinci-mcp-professional/test.py +0 -186
  146. package/mcps/davinci-mcp-professional/uv.lock +0 -2073
  147. package/mcps/davinci-resolve-mcp/.claude/skills/media-analysis.md +0 -44
  148. package/mcps/davinci-resolve-mcp/.clinerules +0 -17
  149. package/mcps/davinci-resolve-mcp/.cursorrules +0 -17
  150. package/mcps/davinci-resolve-mcp/.github/copilot-instructions.md +0 -17
  151. package/mcps/davinci-resolve-mcp/.github/workflows/npm-publish.yml +0 -109
  152. package/mcps/davinci-resolve-mcp/.windsurfrules +0 -17
  153. package/mcps/davinci-resolve-mcp/AGENTS.md +0 -114
  154. package/mcps/davinci-resolve-mcp/CHANGELOG.md +0 -2648
  155. package/mcps/davinci-resolve-mcp/CLAUDE.md +0 -15
  156. package/mcps/davinci-resolve-mcp/LICENSE +0 -21
  157. package/mcps/davinci-resolve-mcp/README.md +0 -173
  158. package/mcps/davinci-resolve-mcp/SECURITY.md +0 -53
  159. package/mcps/davinci-resolve-mcp/bin/davinci-resolve-mcp.mjs +0 -450
  160. package/mcps/davinci-resolve-mcp/examples/README.md +0 -53
  161. package/mcps/davinci-resolve-mcp/examples/markers/README.md +0 -81
  162. package/mcps/davinci-resolve-mcp/examples/media/README.md +0 -94
  163. package/mcps/davinci-resolve-mcp/examples/timeline/README.md +0 -98
  164. package/mcps/davinci-resolve-mcp/install.py +0 -1687
  165. package/mcps/davinci-resolve-mcp/package.json +0 -52
  166. package/mcps/davinci-resolve-mcp/release-notes/v2.22.0.md +0 -51
  167. package/mcps/davinci-resolve-mcp/release-notes/v2.23.0.md +0 -51
  168. package/mcps/davinci-resolve-mcp/release-notes/v2.23.1.md +0 -35
  169. package/mcps/davinci-resolve-mcp/release-notes/v2.24.1.md +0 -32
  170. package/mcps/davinci-resolve-mcp/scripts/audit_api_parity.py +0 -275
  171. package/mcps/davinci-resolve-mcp/scripts/audit_readwrite_symmetry.py +0 -80
  172. package/mcps/davinci-resolve-mcp/scripts/doctor.py +0 -227
  173. package/mcps/davinci-resolve-mcp/scripts/gen_api_limitations.py +0 -144
  174. package/mcps/davinci-resolve-mcp/scripts/live_media_analysis_polish_probe.py +0 -65
  175. package/mcps/davinci-resolve-mcp/scripts/measure_bridge_cost.py +0 -65
  176. package/mcps/davinci-resolve-mcp/scripts/regen_panel_screenshots.py +0 -76
  177. package/mcps/davinci-resolve-mcp/src/__init__.py +0 -3
  178. package/mcps/davinci-resolve-mcp/src/analysis_dashboard.py +0 -15505
  179. package/mcps/davinci-resolve-mcp/src/batch_cli.py +0 -540
  180. package/mcps/davinci-resolve-mcp/src/control_panel.py +0 -13
  181. package/mcps/davinci-resolve-mcp/src/granular/__init__.py +0 -17
  182. package/mcps/davinci-resolve-mcp/src/granular/common.py +0 -741
  183. package/mcps/davinci-resolve-mcp/src/granular/folder.py +0 -420
  184. package/mcps/davinci-resolve-mcp/src/granular/gallery.py +0 -306
  185. package/mcps/davinci-resolve-mcp/src/granular/graph.py +0 -309
  186. package/mcps/davinci-resolve-mcp/src/granular/media_pool.py +0 -679
  187. package/mcps/davinci-resolve-mcp/src/granular/media_pool_item.py +0 -1020
  188. package/mcps/davinci-resolve-mcp/src/granular/media_storage.py +0 -179
  189. package/mcps/davinci-resolve-mcp/src/granular/project.py +0 -1654
  190. package/mcps/davinci-resolve-mcp/src/granular/resolve_control.py +0 -538
  191. package/mcps/davinci-resolve-mcp/src/granular/timeline.py +0 -1075
  192. package/mcps/davinci-resolve-mcp/src/granular/timeline_item.py +0 -2251
  193. package/mcps/davinci-resolve-mcp/src/resolve_mcp_server.py +0 -43
  194. package/mcps/davinci-resolve-mcp/src/server.py +0 -24116
  195. package/mcps/davinci-resolve-mcp/src/utils/__init__.py +0 -3
  196. package/mcps/davinci-resolve-mcp/src/utils/actor_identity.py +0 -46
  197. package/mcps/davinci-resolve-mcp/src/utils/analysis_caps.py +0 -678
  198. package/mcps/davinci-resolve-mcp/src/utils/analysis_memory.py +0 -755
  199. package/mcps/davinci-resolve-mcp/src/utils/analysis_runs.py +0 -307
  200. package/mcps/davinci-resolve-mcp/src/utils/analysis_store.py +0 -945
  201. package/mcps/davinci-resolve-mcp/src/utils/api_truth.py +0 -525
  202. package/mcps/davinci-resolve-mcp/src/utils/app_control.py +0 -319
  203. package/mcps/davinci-resolve-mcp/src/utils/audio_fairlight_live_probe.py +0 -263
  204. package/mcps/davinci-resolve-mcp/src/utils/brain_edits.py +0 -387
  205. package/mcps/davinci-resolve-mcp/src/utils/bridge_metrics.py +0 -76
  206. package/mcps/davinci-resolve-mcp/src/utils/cdl.py +0 -20
  207. package/mcps/davinci-resolve-mcp/src/utils/clip_query.py +0 -85
  208. package/mcps/davinci-resolve-mcp/src/utils/cloud_operations.py +0 -192
  209. package/mcps/davinci-resolve-mcp/src/utils/color_grade_live_probe.py +0 -444
  210. package/mcps/davinci-resolve-mcp/src/utils/contracts.py +0 -102
  211. package/mcps/davinci-resolve-mcp/src/utils/cut_ir.py +0 -115
  212. package/mcps/davinci-resolve-mcp/src/utils/dctl_templates.py +0 -368
  213. package/mcps/davinci-resolve-mcp/src/utils/deep_vision.py +0 -643
  214. package/mcps/davinci-resolve-mcp/src/utils/destructive_hook.py +0 -606
  215. package/mcps/davinci-resolve-mcp/src/utils/edit_engine.py +0 -737
  216. package/mcps/davinci-resolve-mcp/src/utils/embeddings.py +0 -922
  217. package/mcps/davinci-resolve-mcp/src/utils/entities.py +0 -579
  218. package/mcps/davinci-resolve-mcp/src/utils/extension_authoring_live_probe.py +0 -292
  219. package/mcps/davinci-resolve-mcp/src/utils/failure_tracker.py +0 -119
  220. package/mcps/davinci-resolve-mcp/src/utils/fuse_templates.py +0 -1968
  221. package/mcps/davinci-resolve-mcp/src/utils/fusion_composition_live_probe.py +0 -284
  222. package/mcps/davinci-resolve-mcp/src/utils/fusion_group_settings.py +0 -334
  223. package/mcps/davinci-resolve-mcp/src/utils/layout_presets.py +0 -333
  224. package/mcps/davinci-resolve-mcp/src/utils/mcp_stdio.py +0 -32
  225. package/mcps/davinci-resolve-mcp/src/utils/mcp_transport.py +0 -128
  226. package/mcps/davinci-resolve-mcp/src/utils/media_analysis.py +0 -7690
  227. package/mcps/davinci-resolve-mcp/src/utils/media_analysis_jobs.py +0 -805
  228. package/mcps/davinci-resolve-mcp/src/utils/media_pool_changes.py +0 -121
  229. package/mcps/davinci-resolve-mcp/src/utils/media_pool_ingest_live_probe.py +0 -592
  230. package/mcps/davinci-resolve-mcp/src/utils/multicam.py +0 -393
  231. package/mcps/davinci-resolve-mcp/src/utils/object_inspection.py +0 -301
  232. package/mcps/davinci-resolve-mcp/src/utils/page_lock.py +0 -75
  233. package/mcps/davinci-resolve-mcp/src/utils/platform.py +0 -157
  234. package/mcps/davinci-resolve-mcp/src/utils/proc.py +0 -26
  235. package/mcps/davinci-resolve-mcp/src/utils/project_cleanup.py +0 -73
  236. package/mcps/davinci-resolve-mcp/src/utils/project_lifecycle_live_probe.py +0 -376
  237. package/mcps/davinci-resolve-mcp/src/utils/project_lint.py +0 -131
  238. package/mcps/davinci-resolve-mcp/src/utils/project_properties.py +0 -601
  239. package/mcps/davinci-resolve-mcp/src/utils/project_spec.py +0 -459
  240. package/mcps/davinci-resolve-mcp/src/utils/readback.py +0 -91
  241. package/mcps/davinci-resolve-mcp/src/utils/render_deliver_live_probe.py +0 -384
  242. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_governance.py +0 -214
  243. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_ledger.py +0 -244
  244. package/mcps/davinci-resolve-mcp/src/utils/resolve_busy.py +0 -171
  245. package/mcps/davinci-resolve-mcp/src/utils/resolve_connection.py +0 -77
  246. package/mcps/davinci-resolve-mcp/src/utils/review_annotation_live_probe.py +0 -352
  247. package/mcps/davinci-resolve-mcp/src/utils/script_templates.py +0 -1193
  248. package/mcps/davinci-resolve-mcp/src/utils/shot_relationships.py +0 -544
  249. package/mcps/davinci-resolve-mcp/src/utils/structural_diff.py +0 -175
  250. package/mcps/davinci-resolve-mcp/src/utils/sync_detection.py +0 -889
  251. package/mcps/davinci-resolve-mcp/src/utils/timeline_brain_db.py +0 -826
  252. package/mcps/davinci-resolve-mcp/src/utils/timeline_conform_live_probe.py +0 -280
  253. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_live_probe.py +0 -1092
  254. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_probe.py +0 -185
  255. package/mcps/davinci-resolve-mcp/src/utils/timeline_title_text.py +0 -87
  256. package/mcps/davinci-resolve-mcp/src/utils/timeline_versioning.py +0 -730
  257. package/mcps/davinci-resolve-mcp/src/utils/update_check.py +0 -685
  258. package/mcps/vectorworks-mcp/.dockerignore +0 -8
  259. package/mcps/vectorworks-mcp/Dockerfile +0 -28
  260. package/mcps/vectorworks-mcp/README.md +0 -156
  261. package/mcps/vectorworks-mcp/app/__init__.py +0 -2
  262. package/mcps/vectorworks-mcp/app/api.py +0 -52
  263. package/mcps/vectorworks-mcp/app/chunking.py +0 -56
  264. package/mcps/vectorworks-mcp/app/config.py +0 -29
  265. package/mcps/vectorworks-mcp/app/embeddings.py +0 -28
  266. package/mcps/vectorworks-mcp/app/indexer.py +0 -106
  267. package/mcps/vectorworks-mcp/app/main.py +0 -33
  268. package/mcps/vectorworks-mcp/app/mcp_server.py +0 -71
  269. package/mcps/vectorworks-mcp/app/search.py +0 -54
  270. package/mcps/vectorworks-mcp/app/utils.py +0 -14
  271. package/mcps/vectorworks-mcp/data/.gitkeep +0 -1
  272. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_PluginScript.htm +0 -95
  273. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_ScriptEditor.htm +0 -266
  274. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_Scripting.htm +0 -106
  275. package/mcps/vectorworks-mcp/data/vw-app-help/VW2023_CreatingScriptedPlugins.htm +0 -327
  276. package/mcps/vectorworks-mcp/data/vw-app-help/VW2024_RunningScripts.htm +0 -116
  277. package/mcps/vectorworks-mcp/data/vw-devwiki/VS_Function_Reference_category.html +0 -2129
  278. package/mcps/vectorworks-mcp/data/vw-jp-ref/ObjectsSymbols.html +0 -2035
  279. package/mcps/vectorworks-mcp/data/vw-jp-ref/ScriptFunctionReference.html +0 -29
  280. package/mcps/vectorworks-mcp/design.md +0 -57
  281. package/mcps/vectorworks-mcp/docker-compose.yml +0 -18
  282. package/mcps/vectorworks-mcp/index/.gitkeep +0 -1
  283. package/mcps/vectorworks-mcp/index/meta.jsonl +0 -3956
  284. package/mcps/vectorworks-mcp/index/vw.faiss +0 -0
  285. package/mcps/vectorworks-mcp/requirements.txt +0 -10
  286. package/mcps/vectorworks-mcp/scripts/fetch_docs_minimal.sh +0 -84
  287. package/mcps/vectorworks-mcp/scripts/fetch_github_vectorworks.sh +0 -85
  288. package/mcps/vectorworks-mcp/templates/index.html +0 -40
  289. package/scripts/ecosystem-health-audit.js +0 -257
  290. package/skills/bdb-dev-os-skill/SKILL.md +0 -49
  291. package/skills/bdb-dev-os-skill/package.json +0 -11
  292. package/skills/bdbsaastraining/SKILL.md +0 -316
  293. package/skills/bdbsaastraining/references/exam-pool.md +0 -313
  294. package/skills/bdbsaastraining/references/interaction-modes.md +0 -94
  295. package/skills/bdbsaastraining/references/track-a-ai-agent.md +0 -111
  296. package/skills/bdbsaastraining/references/track-b-wordpress.md +0 -111
  297. package/skills/bdbsaastraining/references/track-c-mailserver.md +0 -107
  298. package/skills/bdbsaastraining/references/track-d-debian.md +0 -109
  299. package/skills/bdbsaastraining/references/track-e-custom.md +0 -83
  300. package/skills/bdbsaastraining/scripts/build_profile.py +0 -529
  301. package/skills/bdbsaastraining/scripts/generate_certificate.py +0 -161
  302. package/skills/bdbsaastraining/scripts/preflight_check.sh +0 -150
  303. package/skills/bdbsaastraining/templates/certificate_template.html +0 -508
  304. package/skills/global_config/bdb-ecosystem-health/SKILL.md +0 -68
  305. package/skills/global_config/bdbsaas-ops/SKILL.md +0 -16
  306. 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