@myriadcodelabs/design-canvas-mcp 0.0.0-stage → 0.1.3-alpha.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 (173) hide show
  1. package/LICENSE +23 -0
  2. package/LICENSING.md +29 -0
  3. package/README.md +156 -2
  4. package/app/apps/web/.next/BUILD_ID +1 -0
  5. package/app/apps/web/.next/app-path-routes-manifest.json +13 -0
  6. package/app/apps/web/.next/build-manifest.json +24 -0
  7. package/app/apps/web/.next/package.json +1 -0
  8. package/app/apps/web/.next/prerender-manifest.json +97 -0
  9. package/app/apps/web/.next/required-server-files.json +352 -0
  10. package/app/apps/web/.next/routes-manifest.json +124 -0
  11. package/app/apps/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  12. package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +20 -0
  13. package/app/apps/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  14. package/app/apps/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  15. package/app/apps/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  16. package/app/apps/web/.next/server/app/_global-error/page.js +1 -0
  17. package/app/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -0
  18. package/app/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  19. package/app/apps/web/.next/server/app/_global-error.html +1 -0
  20. package/app/apps/web/.next/server/app/_global-error.meta +30 -0
  21. package/app/apps/web/.next/server/app/_global-error.rsc +14 -0
  22. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +19 -0
  23. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  24. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  25. package/app/apps/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  26. package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +20 -0
  27. package/app/apps/web/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
  28. package/app/apps/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  29. package/app/apps/web/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  30. package/app/apps/web/.next/server/app/_not-found/page.js +1 -0
  31. package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  32. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  33. package/app/apps/web/.next/server/app/_not-found.html +1 -0
  34. package/app/apps/web/.next/server/app/_not-found.meta +35 -0
  35. package/app/apps/web/.next/server/app/_not-found.rsc +15 -0
  36. package/app/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +15 -0
  37. package/app/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +21 -0
  38. package/app/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  39. package/app/apps/web/.next/server/app/api/mcp/route/app-paths-manifest.json +3 -0
  40. package/app/apps/web/.next/server/app/api/mcp/route/build-manifest.json +12 -0
  41. package/app/apps/web/.next/server/app/api/mcp/route/server-reference-manifest.json +4 -0
  42. package/app/apps/web/.next/server/app/api/mcp/route.js +1 -0
  43. package/app/apps/web/.next/server/app/api/mcp/route.js.nft.json +1 -0
  44. package/app/apps/web/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
  45. package/app/apps/web/.next/server/app/api/projects/[projectId]/design/route/app-paths-manifest.json +3 -0
  46. package/app/apps/web/.next/server/app/api/projects/[projectId]/design/route/build-manifest.json +12 -0
  47. package/app/apps/web/.next/server/app/api/projects/[projectId]/design/route/server-reference-manifest.json +4 -0
  48. package/app/apps/web/.next/server/app/api/projects/[projectId]/design/route.js +1 -0
  49. package/app/apps/web/.next/server/app/api/projects/[projectId]/design/route.js.nft.json +1 -0
  50. package/app/apps/web/.next/server/app/api/projects/[projectId]/design/route_client-reference-manifest.js +1 -0
  51. package/app/apps/web/.next/server/app/api/projects/[projectId]/events/route/app-paths-manifest.json +3 -0
  52. package/app/apps/web/.next/server/app/api/projects/[projectId]/events/route/build-manifest.json +12 -0
  53. package/app/apps/web/.next/server/app/api/projects/[projectId]/events/route/server-reference-manifest.json +4 -0
  54. package/app/apps/web/.next/server/app/api/projects/[projectId]/events/route.js +1 -0
  55. package/app/apps/web/.next/server/app/api/projects/[projectId]/events/route.js.nft.json +1 -0
  56. package/app/apps/web/.next/server/app/api/projects/[projectId]/events/route_client-reference-manifest.js +1 -0
  57. package/app/apps/web/.next/server/app/api/projects/[projectId]/files/route/app-paths-manifest.json +3 -0
  58. package/app/apps/web/.next/server/app/api/projects/[projectId]/files/route/build-manifest.json +12 -0
  59. package/app/apps/web/.next/server/app/api/projects/[projectId]/files/route/server-reference-manifest.json +4 -0
  60. package/app/apps/web/.next/server/app/api/projects/[projectId]/files/route.js +1 -0
  61. package/app/apps/web/.next/server/app/api/projects/[projectId]/files/route.js.nft.json +1 -0
  62. package/app/apps/web/.next/server/app/api/projects/[projectId]/files/route_client-reference-manifest.js +1 -0
  63. package/app/apps/web/.next/server/app/api/projects/[projectId]/route/app-paths-manifest.json +3 -0
  64. package/app/apps/web/.next/server/app/api/projects/[projectId]/route/build-manifest.json +12 -0
  65. package/app/apps/web/.next/server/app/api/projects/[projectId]/route/server-reference-manifest.json +4 -0
  66. package/app/apps/web/.next/server/app/api/projects/[projectId]/route.js +1 -0
  67. package/app/apps/web/.next/server/app/api/projects/[projectId]/route.js.nft.json +1 -0
  68. package/app/apps/web/.next/server/app/api/projects/[projectId]/route_client-reference-manifest.js +1 -0
  69. package/app/apps/web/.next/server/app/api/projects/[projectId]/runtime/route/app-paths-manifest.json +3 -0
  70. package/app/apps/web/.next/server/app/api/projects/[projectId]/runtime/route/build-manifest.json +12 -0
  71. package/app/apps/web/.next/server/app/api/projects/[projectId]/runtime/route/server-reference-manifest.json +4 -0
  72. package/app/apps/web/.next/server/app/api/projects/[projectId]/runtime/route.js +1 -0
  73. package/app/apps/web/.next/server/app/api/projects/[projectId]/runtime/route.js.nft.json +1 -0
  74. package/app/apps/web/.next/server/app/api/projects/[projectId]/runtime/route_client-reference-manifest.js +1 -0
  75. package/app/apps/web/.next/server/app/api/projects/route/app-paths-manifest.json +3 -0
  76. package/app/apps/web/.next/server/app/api/projects/route/build-manifest.json +12 -0
  77. package/app/apps/web/.next/server/app/api/projects/route/server-reference-manifest.json +4 -0
  78. package/app/apps/web/.next/server/app/api/projects/route.js +1 -0
  79. package/app/apps/web/.next/server/app/api/projects/route.js.nft.json +1 -0
  80. package/app/apps/web/.next/server/app/api/projects/route_client-reference-manifest.js +1 -0
  81. package/app/apps/web/.next/server/app/index.html +1 -0
  82. package/app/apps/web/.next/server/app/index.meta +29 -0
  83. package/app/apps/web/.next/server/app/index.rsc +14 -0
  84. package/app/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +19 -0
  85. package/app/apps/web/.next/server/app/index.segments/_full.segment.rsc +14 -0
  86. package/app/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -0
  87. package/app/apps/web/.next/server/app/page/app-paths-manifest.json +3 -0
  88. package/app/apps/web/.next/server/app/page/build-manifest.json +20 -0
  89. package/app/apps/web/.next/server/app/page/next-font-manifest.json +6 -0
  90. package/app/apps/web/.next/server/app/page/react-loadable-manifest.json +1 -0
  91. package/app/apps/web/.next/server/app/page/server-reference-manifest.json +4 -0
  92. package/app/apps/web/.next/server/app/page.js +1 -0
  93. package/app/apps/web/.next/server/app/page.js.nft.json +1 -0
  94. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -0
  95. package/app/apps/web/.next/server/app/projects/[projectId]/page/app-paths-manifest.json +3 -0
  96. package/app/apps/web/.next/server/app/projects/[projectId]/page/build-manifest.json +20 -0
  97. package/app/apps/web/.next/server/app/projects/[projectId]/page/next-font-manifest.json +6 -0
  98. package/app/apps/web/.next/server/app/projects/[projectId]/page/react-loadable-manifest.json +1 -0
  99. package/app/apps/web/.next/server/app/projects/[projectId]/page/server-reference-manifest.json +4 -0
  100. package/app/apps/web/.next/server/app/projects/[projectId]/page.js +1 -0
  101. package/app/apps/web/.next/server/app/projects/[projectId]/page.js.nft.json +1 -0
  102. package/app/apps/web/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -0
  103. package/app/apps/web/.next/server/app-paths-manifest.json +13 -0
  104. package/app/apps/web/.next/server/chunks/044u_web__next-internal_server_app_api_projects_[projectId]_route_actions_07a86wr.js +1 -0
  105. package/app/apps/web/.next/server/chunks/0gy1__next-internal_server_app_api_projects_[projectId]_design_route_actions_1-sobyz.js +1 -0
  106. package/app/apps/web/.next/server/chunks/0gy1__next-internal_server_app_api_projects_[projectId]_events_route_actions_0-n4ax4.js +1 -0
  107. package/app/apps/web/.next/server/chunks/0gy1__next-internal_server_app_api_projects_[projectId]_files_route_actions_1c-m8qk.js +1 -0
  108. package/app/apps/web/.next/server/chunks/0oo4_zod_v3_00l7tkv._.js +1 -0
  109. package/app/apps/web/.next/server/chunks/0oo4_zod_v3_0uhb2vr._.js +1 -0
  110. package/app/apps/web/.next/server/chunks/133t_next-internal_server_app_api_projects_[projectId]_runtime_route_actions_1j6xz6n.js +1 -0
  111. package/app/apps/web/.next/server/chunks/[externals]__0bwf06g._.js +1 -0
  112. package/app/apps/web/.next/server/chunks/[root-of-the-server]__01gfx00._.js +1 -0
  113. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0eui-p0._.js +1 -0
  114. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0o43l2k._.js +1 -0
  115. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0tsbimb._.js +1 -0
  116. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0yzm_yf._.js +1 -0
  117. package/app/apps/web/.next/server/chunks/[root-of-the-server]__1hhbvru._.js +1 -0
  118. package/app/apps/web/.next/server/chunks/[root-of-the-server]__1s4d3sp._.js +1 -0
  119. package/app/apps/web/.next/server/chunks/[turbopack]_runtime.js +1 -0
  120. package/app/apps/web/.next/server/chunks/_0pv_7o4._.js +7 -0
  121. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_mcp_route_actions_1lo_1wv.js +1 -0
  122. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_projects_route_actions_0icg4ta.js +1 -0
  123. package/app/apps/web/.next/server/chunks/ssr/1ev3_next_dist_0-mlnjh._.js +1 -0
  124. package/app/apps/web/.next/server/chunks/ssr/1ev3_next_dist_0qnucu0._.js +1 -0
  125. package/app/apps/web/.next/server/chunks/ssr/1ev3_next_dist_client_components_0t4-50h._.js +1 -0
  126. package/app/apps/web/.next/server/chunks/ssr/1ev3_next_dist_client_components_builtin_forbidden_06rwd--.js +1 -0
  127. package/app/apps/web/.next/server/chunks/ssr/1ev3_next_dist_client_components_builtin_global-error_1_jg82j.js +1 -0
  128. package/app/apps/web/.next/server/chunks/ssr/1ev3_next_dist_client_components_builtin_unauthorized_1ekcs-o.js +1 -0
  129. package/app/apps/web/.next/server/chunks/ssr/1ev3_next_dist_client_components_server-async-storage_1yddvjk.js +1 -0
  130. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0m765zl._.js +1 -0
  131. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0o95w26._.js +1 -0
  132. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0qerqcv._.js +1 -0
  133. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wv65cd._.js +1 -0
  134. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10db2en._.js +1 -0
  135. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13hr9v5._.js +1 -0
  136. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__1eowkb7._.js +1 -0
  137. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__1obfo18._.js +1 -0
  138. package/app/apps/web/.next/server/chunks/ssr/[turbopack]_runtime.js +1 -0
  139. package/app/apps/web/.next/server/chunks/ssr/_0xh91nu._.js +1 -0
  140. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__global-error_page_actions_1vxuwj7.js +1 -0
  141. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__not-found_page_actions_0iqyci7.js +1 -0
  142. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_page_actions_1agtzgh.js +1 -0
  143. package/app/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_projects_[projectId]_page_actions_0g8csz0.js +1 -0
  144. package/app/apps/web/.next/server/chunks/ssr/apps_web_src_app_layout_tsx_1yx9ufn._.js +1 -0
  145. package/app/apps/web/.next/server/chunks/ssr/node_modules__pnpm_0k7nzxi._.js +1 -0
  146. package/app/apps/web/.next/server/functions-config-manifest.json +12 -0
  147. package/app/apps/web/.next/server/middleware-build-manifest.js +1 -0
  148. package/app/apps/web/.next/server/middleware-manifest.json +6 -0
  149. package/app/apps/web/.next/server/next-font-manifest.js +1 -0
  150. package/app/apps/web/.next/server/next-font-manifest.json +6 -0
  151. package/app/apps/web/.next/server/pages/404.html +1 -0
  152. package/app/apps/web/.next/server/pages/500.html +1 -0
  153. package/app/apps/web/.next/server/pages-manifest.json +4 -0
  154. package/app/apps/web/.next/server/prefetch-hints.json +34 -0
  155. package/app/apps/web/.next/server/server-reference-manifest.js +1 -0
  156. package/app/apps/web/.next/server/server-reference-manifest.json +5 -0
  157. package/app/apps/web/.next/static/7RgON_D47WE7YuQtrx8tq/_buildManifest.js +1 -0
  158. package/app/apps/web/.next/static/7RgON_D47WE7YuQtrx8tq/_clientMiddlewareManifest.js +1 -0
  159. package/app/apps/web/.next/static/7RgON_D47WE7YuQtrx8tq/_ssgManifest.js +1 -0
  160. package/app/apps/web/.next/static/chunks/05jnod8ocrwe7.js +1 -0
  161. package/app/apps/web/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  162. package/app/apps/web/.next/static/chunks/0vozrnahdfgbf.js +1 -0
  163. package/app/apps/web/.next/static/chunks/1ri7izgydwlw_.css +1 -0
  164. package/app/apps/web/.next/static/chunks/2-aahqpvgdov9.js +1 -0
  165. package/app/apps/web/.next/static/chunks/2c_9_q6zm1b71.js +1 -0
  166. package/app/apps/web/.next/static/chunks/31zxjy4pob2oc.js +1 -0
  167. package/app/apps/web/.next/static/chunks/3wdasmih99953.js +1 -0
  168. package/app/apps/web/.next/static/chunks/turbopack-14atkd0jptfjs.js +1 -0
  169. package/app/apps/web/package.json +34 -0
  170. package/app/apps/web/server.js +1 -0
  171. package/bin/design-canvas-mcp.mjs +2 -0
  172. package/myriadcodelabs-design-canvas-mcp-0.1.3-alpha.1.tgz +0 -0
  173. package/package.json +27 -4
package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ Design Canvas Proprietary License
2
+
3
+ Copyright (c) 2026 Muhammad Ismail Khan / MyriadCodeLabs. All rights reserved.
4
+
5
+ Design Canvas MCP and its core application, runtime, orchestration, workspace implementation, and other proprietary components (the "Software") are proprietary software.
6
+
7
+ Subject to any separate written agreement with the copyright holder, you are granted a limited, non-exclusive, non-transferable, revocable license to install and run official distributions of the Software solely for evaluation, beta testing, internal development, or other use expressly authorized by the copyright holder or an applicable subscription, entitlement, or commercial plan.
8
+
9
+ You may not, except to the extent a restriction is prohibited by applicable law: (a) copy or redistribute the Software other than as necessary for authorized installation or backup; (b) modify, adapt, translate, create derivative works from, decompile, disassemble, reverse engineer, or otherwise attempt to derive the source code or internal implementation of the Software; (c) bypass, disable, tamper with, or circumvent licensing, entitlement, access-control, usage-limit, or technical-protection mechanisms; (d) sublicense, sell, rent, lease, host, or provide the Software to third parties as a competing or substitute product; or (e) remove proprietary notices.
10
+
11
+ All title, ownership, intellectual-property rights, and rights not expressly granted remain with the copyright holder.
12
+
13
+ Generated project output and separately licensed integration packages may be governed by additional permissions or separate licenses described in LICENSING.md and the LICENSES directory. Third-party software, libraries, assets, fonts, models, and other materials remain subject to their respective licenses.
14
+
15
+ Beta, preview, and evaluation releases may be changed, limited, suspended, or discontinued at any time and may require a valid entitlement to continue operating. No license is granted to obtain source code merely because an executable or npm package is publicly downloadable.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, TO THE MAXIMUM EXTENT PERMITTED BY LAW.
18
+
19
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE COPYRIGHT HOLDER SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR LOSS OF DATA, PROFITS, REVENUE, BUSINESS, OR GOODWILL, ARISING FROM OR RELATED TO THE SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
20
+
21
+ Any rights granted under this license terminate automatically upon material breach. Upon termination, you must cease use of the Software, except that user-owned project data and generated output remain subject to their applicable rights and licenses.
22
+
23
+ Separate commercial or enterprise terms may supersede this license where expressly agreed in writing.
package/LICENSING.md ADDED
@@ -0,0 +1,29 @@
1
+ # Licensing
2
+
3
+ Design Canvas MCP uses a proprietary core with permissive boundaries for interoperability and generated output.
4
+
5
+ ## Proprietary core
6
+
7
+ Except where a package or file says otherwise, the Design Canvas application, runtime, orchestration, workspace implementation, and other core code are proprietary and governed by the root `LICENSE`.
8
+
9
+ Public npm distributions are executable/product distributions, not source-code grants. Beta, preview, commercial, and enterprise access may additionally depend on an entitlement, subscription, or separate written agreement.
10
+
11
+ ## Permissive integration boundary
12
+
13
+ `packages/design-contract` remains licensed under **Apache-2.0**.
14
+
15
+ Future packages whose primary purpose is third-party interoperability—such as public SDKs, protocol/contract packages, client libraries, and plugin API contracts—should default to Apache-2.0 unless there is a specific reason not to.
16
+
17
+ Independent software may communicate with Design Canvas over MCP, HTTP/SSE, or another documented network or data boundary without acquiring rights in the proprietary core. See `LICENSES/Integration-Permission.txt`.
18
+
19
+ ## Generated project output
20
+
21
+ Generated applications are intentionally usable in proprietary, commercial, open-source, and internal projects.
22
+
23
+ To the extent the Design Canvas copyright holder owns copyright in Design Canvas-authored material included in generated project output, recipients may use that material under **MIT or Apache-2.0, at their option**, as described in `LICENSES/Generated-Output-Permission.txt`.
24
+
25
+ Third-party code, dependencies, assets, fonts, models, libraries, and other materials remain governed by their own licenses.
26
+
27
+ ## Scope
28
+
29
+ The integration and generated-output grants do not license, disclose, or permit copying, modification, redistribution, reverse engineering, or circumvention of the proprietary Design Canvas core except as expressly allowed by the root `LICENSE`, a separate package license, a written agreement, or applicable law.
package/README.md CHANGED
@@ -1,3 +1,157 @@
1
- # Temporary Holding Version
1
+ # Design Canvas MCP
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ **An MCP-native visual workspace for AI-generated application design.**
4
+
5
+ Design Canvas lets coding agents generate and modify real frontend source code while you inspect, compare, and interact with the result on an infinite canvas.
6
+
7
+ There is no traditional drag-and-drop editor. The **agent edits the source**; the canvas is the visual reasoning and evaluation surface.
8
+
9
+ ## What it does
10
+
11
+ - Creates a framework-neutral project workspace with stable `src/ports` and `src/adapters/mock` integration seams.
12
+ - Lets agents replace that source and configure a framework-neutral preview runtime.
13
+ - Exposes project, design, and runtime-configuration operations through MCP.
14
+ - Renders the real application in interactive browser frames.
15
+ - Lets you organize screens as Pages.
16
+ - Lets you explore project-wide alternative UI approaches as Design Directions.
17
+ - Lets you inspect the same page at different viewports and mock scenarios.
18
+ - Keeps the generated application source as the canonical source of truth.
19
+
20
+ ## The basic loop
21
+
22
+ ```text
23
+ Coding agent
24
+ ↓ MCP
25
+ Design Canvas
26
+ ↓
27
+ real application source
28
+ ↓
29
+ configured local preview runtime
30
+ ↓
31
+ you compare, interact, and give feedback
32
+ ↓
33
+ agent updates the source
34
+ ```
35
+
36
+ ## Current capabilities
37
+
38
+ - Infinite canvas with pan, zoom, frame movement, and fit controls.
39
+ - Real interactive iframe previews backed by a per-project command runtime configured in `.design/runtime.json`.
40
+ - Pages with real application routes.
41
+ - Project-wide Design Directions for alternative UI/UX implementations.
42
+ - Responsive inspection through multiple viewports.
43
+ - Mock scenarios for alternate data/UI states.
44
+ - Interact mode for testing the generated application's real controls and navigation.
45
+ - Undo/redo for canvas design mutations.
46
+ - Persistent local project registry and `.design/project.json` state.
47
+ - Project file read/write/delete operations through MCP.
48
+
49
+ ## Quick start
50
+
51
+ Run the published package directly:
52
+
53
+ ```bash
54
+ npx @myriadcodelabs/design-canvas-mcp
55
+ ```
56
+
57
+ Or run from source. Requirements: Node.js 24+ and pnpm.
58
+
59
+ ```bash
60
+ pnpm install
61
+ pnpm dev
62
+ ```
63
+
64
+ Open:
65
+
66
+ ```text
67
+ http://127.0.0.1:3000
68
+ ```
69
+
70
+ The built-in MCP endpoint is:
71
+
72
+ ```text
73
+ http://127.0.0.1:3000/api/mcp
74
+ ```
75
+
76
+ ## Use it with a coding agent
77
+
78
+ 1. Keep Design Canvas running with the `npx` command above.
79
+ 2. Open `http://127.0.0.1:3000` in your browser.
80
+ 3. Add this MCP server to your coding agent/client as an HTTP MCP endpoint:
81
+
82
+ ```text
83
+ http://127.0.0.1:3000/api/mcp
84
+ ```
85
+
86
+ 4. Ask the agent to build the UI through the Design Canvas MCP tools. You do not need to create the project structure manually; tell the agent what you want and which framework or runtime you prefer, if any.
87
+ 5. In Design Canvas, open the project created by the agent and press **Start preview** when you want to run the generated application.
88
+
89
+ For example, after the MCP server is connected, you can tell your agent:
90
+
91
+ > Use the Design Canvas MCP tools to create a modern SaaS dashboard in Svelte with a sidebar, analytics overview, customers page, and settings page. Configure the runtime so I can preview it in Design Canvas. Create useful mock data and the main application flows as well.
92
+
93
+ The agent can create the project, write and modify its files, choose or follow the requested framework, configure the local preview runtime, and define the Design Canvas pages, views, directions, scenarios, and flows. The quality of the generated application depends primarily on how clearly you describe the product, UI, behavior, and constraints to the coding agent.
94
+
95
+ You can continue iterating in the same way: describe the change you want and ask the agent to make it through the Design Canvas MCP tools, then inspect the result on the canvas.
96
+
97
+ ## MCP tools
98
+
99
+ The built-in MCP is standalone for Design Canvas projects: agents can create projects, edit project-scoped source files, configure preview runtimes, and manage design metadata without a separate filesystem MCP.
100
+
101
+ **Projects and runtime**
102
+ - `create_project`, `list_projects`, `get_project`
103
+ - `get_project_runtime_config`, `configure_project_runtime`
104
+
105
+ **Project files**
106
+ - `list_project_files`, `read_project_file`
107
+ - `write_project_file`, `write_project_binary_file`, `delete_project_file`
108
+
109
+ **Design model**
110
+ - `get_design`
111
+ - `create_design_page`, `update_design_page`
112
+ - `create_design_direction`, `rename_design_direction`, `remove_design_direction`
113
+ - `list_design_views`, `get_design_view`, `create_design_view`, `update_design_view`, `duplicate_design_view`, `remove_design_view`
114
+ - `upsert_design_scenario`, `remove_design_scenario`
115
+ - `upsert_design_port`, `remove_design_port`
116
+
117
+ Runtime configuration is agent-accessible, but process start/stop is intentionally controlled by the canvas **Start preview** lifecycle rather than MCP tools.
118
+
119
+ ## Frameworks and preview runtime
120
+
121
+ Design Canvas does not choose the frontend framework. New projects contain only the portable source seams declared by `sourceTopology` (`src/ports` and `src/adapters/mock` by default). The coding agent builds the framework-native UI around those seams and configures `.design/runtime.json` with `prepare` and `start` commands, using `{{host}}` and `{{port}}` supplied by Design Canvas. The runtime is only started when the user presses **Start preview** in the canvas.
122
+
123
+ ## How projects are modeled
124
+
125
+ - **Page** — a real application destination/route.
126
+ - **Design Direction** — a coherent alternative UI/UX approach across the project.
127
+ - **Scenario** — a mock/data state.
128
+ - **View** — one Page + Design Direction + Scenario + Viewport shown on the canvas.
129
+
130
+ Design Directions are not themes. A direction may change layout, hierarchy, navigation presentation, component structure, responsive strategy, and interaction presentation while preserving the same product meaning and routes.
131
+
132
+ ## Repository structure
133
+
134
+ ```text
135
+ apps/web Next.js UI, HTTP, SSE, and MCP
136
+ packages/design-contract portable framework-neutral contracts
137
+ packages/project-system project/design orchestration, source-architecture scaffolding, and preview runtime
138
+ packages/project-workspace project-scoped filesystem implementation
139
+ ```
140
+
141
+ ## Licensing
142
+
143
+ Design Canvas MCP uses a proprietary-core licensing model:
144
+
145
+ - Core application/runtime/orchestration code: **proprietary** under the root `LICENSE`.
146
+ - Public npm packages are product distributions and do **not** grant access to the source code.
147
+ - `packages/design-contract`: **Apache-2.0**.
148
+ - Independent MCP/HTTP clients remain independently licensable.
149
+ - Design Canvas-authored generated output may be used under **MIT or Apache-2.0**, at the recipient's option.
150
+
151
+ Generated applications can therefore remain proprietary, commercial, internal, or open source. Third-party dependencies and assets keep their own licenses.
152
+
153
+ See [`LICENSING.md`](./LICENSING.md) for the exact boundaries.
154
+
155
+ ## Contributing
156
+
157
+ Issues, UX feedback, architecture proposals, performance findings, and integration ideas are welcome. Core source-code contributions are not currently being accepted; see [`CONTRIBUTING.md`](./CONTRIBUTING.md).
@@ -0,0 +1 @@
1
+ 7RgON_D47WE7YuQtrx8tq
@@ -0,0 +1,13 @@
1
+ {
2
+ "/_global-error/page": "/_global-error",
3
+ "/_not-found/page": "/_not-found",
4
+ "/api/mcp/route": "/api/mcp",
5
+ "/api/projects/[projectId]/design/route": "/api/projects/[projectId]/design",
6
+ "/api/projects/[projectId]/events/route": "/api/projects/[projectId]/events",
7
+ "/api/projects/[projectId]/files/route": "/api/projects/[projectId]/files",
8
+ "/api/projects/[projectId]/route": "/api/projects/[projectId]",
9
+ "/api/projects/[projectId]/runtime/route": "/api/projects/[projectId]/runtime",
10
+ "/api/projects/route": "/api/projects",
11
+ "/page": "/",
12
+ "/projects/[projectId]/page": "/projects/[projectId]"
13
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "pages": {
3
+ "/_app": []
4
+ },
5
+ "devFiles": [],
6
+ "polyfillFiles": [
7
+ "static/chunks/0cz1d0mv5g_q7.js"
8
+ ],
9
+ "lowPriorityFiles": [
10
+ "static/7RgON_D47WE7YuQtrx8tq/_buildManifest.js",
11
+ "static/7RgON_D47WE7YuQtrx8tq/_ssgManifest.js",
12
+ "static/7RgON_D47WE7YuQtrx8tq/_clientMiddlewareManifest.js"
13
+ ],
14
+ "rootMainFiles": [
15
+ "static/chunks/05jnod8ocrwe7.js",
16
+ "static/chunks/2-aahqpvgdov9.js",
17
+ "static/chunks/0vozrnahdfgbf.js",
18
+ "static/chunks/31zxjy4pob2oc.js",
19
+ "static/chunks/turbopack-14atkd0jptfjs.js"
20
+ ],
21
+ "rootMainFilesTree": {},
22
+ "pagesChunkGroupBootstrapParams": {},
23
+ "chunkLoadingGlobal": "TURBOPACK"
24
+ }
@@ -0,0 +1 @@
1
+ {"type": "commonjs"}
@@ -0,0 +1,97 @@
1
+ {
2
+ "version": 4,
3
+ "routes": {
4
+ "/": {
5
+ "routeType": "page",
6
+ "response": "complete",
7
+ "compute": "static",
8
+ "htmlSize": 5814,
9
+ "experimentalBypassFor": [
10
+ {
11
+ "type": "header",
12
+ "key": "next-action"
13
+ },
14
+ {
15
+ "type": "header",
16
+ "key": "content-type",
17
+ "value": "multipart/form-data;.*"
18
+ }
19
+ ],
20
+ "initialRevalidateSeconds": false,
21
+ "srcRoute": "/",
22
+ "dataRoute": "/index.rsc",
23
+ "allowHeader": [
24
+ "host",
25
+ "x-matched-path",
26
+ "x-prerender-revalidate",
27
+ "x-prerender-revalidate-if-generated",
28
+ "x-next-revalidated-tags",
29
+ "x-next-revalidate-tag-token"
30
+ ]
31
+ },
32
+ "/_global-error": {
33
+ "routeType": "page",
34
+ "response": "complete",
35
+ "compute": "static",
36
+ "htmlSize": 8745,
37
+ "experimentalBypassFor": [
38
+ {
39
+ "type": "header",
40
+ "key": "next-action"
41
+ },
42
+ {
43
+ "type": "header",
44
+ "key": "content-type",
45
+ "value": "multipart/form-data;.*"
46
+ }
47
+ ],
48
+ "initialRevalidateSeconds": false,
49
+ "srcRoute": "/_global-error",
50
+ "dataRoute": "/_global-error.rsc",
51
+ "allowHeader": [
52
+ "host",
53
+ "x-matched-path",
54
+ "x-prerender-revalidate",
55
+ "x-prerender-revalidate-if-generated",
56
+ "x-next-revalidated-tags",
57
+ "x-next-revalidate-tag-token"
58
+ ]
59
+ },
60
+ "/_not-found": {
61
+ "initialStatus": 404,
62
+ "routeType": "page",
63
+ "response": "complete",
64
+ "compute": "static",
65
+ "htmlSize": 7667,
66
+ "experimentalBypassFor": [
67
+ {
68
+ "type": "header",
69
+ "key": "next-action"
70
+ },
71
+ {
72
+ "type": "header",
73
+ "key": "content-type",
74
+ "value": "multipart/form-data;.*"
75
+ }
76
+ ],
77
+ "initialRevalidateSeconds": false,
78
+ "srcRoute": "/_not-found",
79
+ "dataRoute": "/_not-found.rsc",
80
+ "allowHeader": [
81
+ "host",
82
+ "x-matched-path",
83
+ "x-prerender-revalidate",
84
+ "x-prerender-revalidate-if-generated",
85
+ "x-next-revalidated-tags",
86
+ "x-next-revalidate-tag-token"
87
+ ]
88
+ }
89
+ },
90
+ "dynamicRoutes": {},
91
+ "notFoundRoutes": [],
92
+ "preview": {
93
+ "previewModeId": "68b23e1e60b78a201b9f335f6a5d0a4d",
94
+ "previewModeSigningKey": "508758035c25c43ca45b0afe95a679dffeb257f5f97208a84b2c7a5c8f1f5b48",
95
+ "previewModeEncryptionKey": "c36ffd0d5d7bad2c41b1822c73cff6d74b64c7ee72da5d9ddbb806b5d57016c1"
96
+ }
97
+ }