@synergy-design-system/mcp 0.1.0 → 1.1.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 (450) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +539 -3
  3. package/dist/bin/create-checksum.d.ts +2 -0
  4. package/dist/bin/create-checksum.js +23 -0
  5. package/dist/bin/start.d.ts +2 -0
  6. package/dist/bin/start.js +8 -0
  7. package/dist/build/assets.d.ts +4 -0
  8. package/dist/build/assets.js +57 -0
  9. package/dist/build/build.d.ts +1 -0
  10. package/dist/build/build.js +33 -0
  11. package/dist/build/components.d.ts +4 -0
  12. package/dist/build/components.js +132 -0
  13. package/dist/build/frameworks.d.ts +4 -0
  14. package/dist/build/frameworks.js +61 -0
  15. package/dist/build/static.d.ts +4 -0
  16. package/dist/build/static.js +57 -0
  17. package/dist/build/styles.d.ts +4 -0
  18. package/dist/build/styles.js +58 -0
  19. package/dist/build/tokens.d.ts +4 -0
  20. package/dist/build/tokens.js +59 -0
  21. package/dist/server.d.ts +6 -0
  22. package/dist/server.js +20 -0
  23. package/dist/tools/asset-info.d.ts +8 -0
  24. package/dist/tools/asset-info.js +140 -0
  25. package/dist/tools/asset-list.d.ts +6 -0
  26. package/dist/tools/asset-list.js +40 -0
  27. package/dist/tools/component-info.d.ts +6 -0
  28. package/dist/tools/component-info.js +35 -0
  29. package/dist/tools/component-list.d.ts +7 -0
  30. package/dist/tools/component-list.js +42 -0
  31. package/dist/tools/davinci-migration.d.ts +3 -0
  32. package/dist/tools/davinci-migration.js +66 -0
  33. package/dist/tools/framework-info.d.ts +7 -0
  34. package/dist/tools/framework-info.js +59 -0
  35. package/dist/tools/index.d.ts +13 -0
  36. package/dist/tools/index.js +13 -0
  37. package/dist/tools/migration-info.d.ts +6 -0
  38. package/dist/tools/migration-info.js +27 -0
  39. package/dist/tools/styles-info.d.ts +7 -0
  40. package/dist/tools/styles-info.js +28 -0
  41. package/dist/tools/styles-list.d.ts +7 -0
  42. package/dist/tools/styles-list.js +42 -0
  43. package/dist/tools/template-info.d.ts +6 -0
  44. package/dist/tools/template-info.js +34 -0
  45. package/dist/tools/template-list.d.ts +7 -0
  46. package/dist/tools/template-list.js +42 -0
  47. package/dist/tools/tokens.d.ts +7 -0
  48. package/dist/tools/tokens.js +24 -0
  49. package/dist/tools/version.d.ts +7 -0
  50. package/dist/tools/version.js +51 -0
  51. package/dist/utilities/assets.d.ts +2 -0
  52. package/dist/utilities/assets.js +3 -0
  53. package/dist/utilities/checksum.d.ts +36 -0
  54. package/dist/utilities/checksum.js +93 -0
  55. package/dist/utilities/components.d.ts +25 -0
  56. package/dist/utilities/components.js +86 -0
  57. package/dist/utilities/config.d.ts +76 -0
  58. package/dist/utilities/config.js +77 -0
  59. package/dist/utilities/file.d.ts +12 -0
  60. package/dist/utilities/file.js +31 -0
  61. package/dist/utilities/index.d.ts +12 -0
  62. package/dist/utilities/index.js +12 -0
  63. package/dist/utilities/metadata.d.ts +28 -0
  64. package/dist/utilities/metadata.js +57 -0
  65. package/dist/utilities/migration.d.ts +1 -0
  66. package/dist/utilities/migration.js +10 -0
  67. package/dist/utilities/stdio.d.ts +14 -0
  68. package/dist/utilities/stdio.js +60 -0
  69. package/dist/utilities/storybook/build-docs.d.ts +2 -0
  70. package/dist/utilities/storybook/build-docs.js +42 -0
  71. package/dist/utilities/storybook/configs.d.ts +13 -0
  72. package/dist/utilities/storybook/configs.js +85 -0
  73. package/dist/utilities/storybook/docs-scraper.d.ts +26 -0
  74. package/dist/utilities/storybook/docs-scraper.js +97 -0
  75. package/dist/utilities/storybook/index.d.ts +5 -0
  76. package/dist/utilities/storybook/index.js +4 -0
  77. package/dist/utilities/storybook/scraper.d.ts +14 -0
  78. package/dist/utilities/storybook/scraper.js +196 -0
  79. package/dist/utilities/storybook/storybook-manager.d.ts +29 -0
  80. package/dist/utilities/storybook/storybook-manager.js +139 -0
  81. package/dist/utilities/storybook/types.d.ts +22 -0
  82. package/dist/utilities/storybook/types.js +1 -0
  83. package/dist/utilities/styles.d.ts +6 -0
  84. package/dist/utilities/styles.js +24 -0
  85. package/dist/utilities/templates.d.ts +12 -0
  86. package/dist/utilities/templates.js +28 -0
  87. package/dist/utilities/tokens.d.ts +1 -0
  88. package/dist/utilities/tokens.js +21 -0
  89. package/dist/utilities/version.d.ts +10 -0
  90. package/dist/utilities/version.js +21 -0
  91. package/metadata/checksum.txt +1 -0
  92. package/metadata/davinci-migration/migration-guide.md +1859 -0
  93. package/metadata/packages/angular/LIMITATIONS.md +32 -0
  94. package/metadata/packages/angular/README.md +393 -0
  95. package/metadata/packages/assets/CHANGELOG.md +196 -0
  96. package/metadata/packages/assets/README.md +79 -0
  97. package/metadata/packages/components/components/syn-accordion/component.angular.ts +80 -0
  98. package/metadata/packages/components/components/syn-accordion/component.react.ts +30 -0
  99. package/metadata/packages/components/components/syn-accordion/component.styles.ts +15 -0
  100. package/metadata/packages/components/components/syn-accordion/component.ts +111 -0
  101. package/metadata/packages/components/components/syn-accordion/component.vue +64 -0
  102. package/metadata/packages/components/components/syn-alert/component.angular.ts +158 -0
  103. package/metadata/packages/components/components/syn-alert/component.custom.styles.ts +90 -0
  104. package/metadata/packages/components/components/syn-alert/component.react.ts +60 -0
  105. package/metadata/packages/components/components/syn-alert/component.styles.ts +110 -0
  106. package/metadata/packages/components/components/syn-alert/component.ts +324 -0
  107. package/metadata/packages/components/components/syn-alert/component.vue +130 -0
  108. package/metadata/packages/components/components/syn-badge/component.angular.ts +53 -0
  109. package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +61 -0
  110. package/metadata/packages/components/components/syn-badge/component.react.ts +29 -0
  111. package/metadata/packages/components/components/syn-badge/component.styles.ts +59 -0
  112. package/metadata/packages/components/components/syn-badge/component.ts +65 -0
  113. package/metadata/packages/components/components/syn-badge/component.vue +53 -0
  114. package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +58 -0
  115. package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +5 -0
  116. package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +32 -0
  117. package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +18 -0
  118. package/metadata/packages/components/components/syn-breadcrumb/component.ts +110 -0
  119. package/metadata/packages/components/components/syn-breadcrumb/component.vue +58 -0
  120. package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +88 -0
  121. package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +74 -0
  122. package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +37 -0
  123. package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +95 -0
  124. package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +139 -0
  125. package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +76 -0
  126. package/metadata/packages/components/components/syn-button/component.angular.ts +318 -0
  127. package/metadata/packages/components/components/syn-button/component.custom.styles.ts +206 -0
  128. package/metadata/packages/components/components/syn-button/component.react.ts +56 -0
  129. package/metadata/packages/components/components/syn-button/component.styles.ts +368 -0
  130. package/metadata/packages/components/components/syn-button/component.ts +322 -0
  131. package/metadata/packages/components/components/syn-button/component.vue +204 -0
  132. package/metadata/packages/components/components/syn-button-group/component.angular.ts +55 -0
  133. package/metadata/packages/components/components/syn-button-group/component.react.ts +29 -0
  134. package/metadata/packages/components/components/syn-button-group/component.styles.ts +21 -0
  135. package/metadata/packages/components/components/syn-button-group/component.ts +103 -0
  136. package/metadata/packages/components/components/syn-button-group/component.vue +55 -0
  137. package/metadata/packages/components/components/syn-card/component.angular.ts +69 -0
  138. package/metadata/packages/components/components/syn-card/component.custom.styles.ts +55 -0
  139. package/metadata/packages/components/components/syn-card/component.react.ts +41 -0
  140. package/metadata/packages/components/components/syn-card/component.styles.ts +77 -0
  141. package/metadata/packages/components/components/syn-card/component.ts +68 -0
  142. package/metadata/packages/components/components/syn-card/component.vue +67 -0
  143. package/metadata/packages/components/components/syn-checkbox/component.angular.ts +260 -0
  144. package/metadata/packages/components/components/syn-checkbox/component.custom.styles.ts +53 -0
  145. package/metadata/packages/components/components/syn-checkbox/component.react.ts +64 -0
  146. package/metadata/packages/components/components/syn-checkbox/component.styles.ts +130 -0
  147. package/metadata/packages/components/components/syn-checkbox/component.ts +291 -0
  148. package/metadata/packages/components/components/syn-checkbox/component.vue +186 -0
  149. package/metadata/packages/components/components/syn-combobox/component.angular.ts +436 -0
  150. package/metadata/packages/components/components/syn-combobox/component.custom.styles.ts +35 -0
  151. package/metadata/packages/components/components/syn-combobox/component.react.ts +109 -0
  152. package/metadata/packages/components/components/syn-combobox/component.styles.ts +406 -0
  153. package/metadata/packages/components/components/syn-combobox/component.ts +1139 -0
  154. package/metadata/packages/components/components/syn-combobox/component.vue +304 -0
  155. package/metadata/packages/components/components/syn-details/component.angular.ts +184 -0
  156. package/metadata/packages/components/components/syn-details/component.custom.styles.ts +140 -0
  157. package/metadata/packages/components/components/syn-details/component.react.ts +63 -0
  158. package/metadata/packages/components/components/syn-details/component.styles.ts +90 -0
  159. package/metadata/packages/components/components/syn-details/component.ts +266 -0
  160. package/metadata/packages/components/components/syn-details/component.vue +134 -0
  161. package/metadata/packages/components/components/syn-dialog/component.angular.ts +201 -0
  162. package/metadata/packages/components/components/syn-dialog/component.custom.styles.ts +54 -0
  163. package/metadata/packages/components/components/syn-dialog/component.react.ts +91 -0
  164. package/metadata/packages/components/components/syn-dialog/component.styles.ts +129 -0
  165. package/metadata/packages/components/components/syn-dialog/component.ts +366 -0
  166. package/metadata/packages/components/components/syn-dialog/component.vue +169 -0
  167. package/metadata/packages/components/components/syn-divider/component.angular.ts +55 -0
  168. package/metadata/packages/components/components/syn-divider/component.custom.styles.ts +8 -0
  169. package/metadata/packages/components/components/syn-divider/component.react.ts +29 -0
  170. package/metadata/packages/components/components/syn-divider/component.styles.ts +31 -0
  171. package/metadata/packages/components/components/syn-divider/component.ts +42 -0
  172. package/metadata/packages/components/components/syn-divider/component.vue +51 -0
  173. package/metadata/packages/components/components/syn-drawer/component.angular.ts +234 -0
  174. package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +78 -0
  175. package/metadata/packages/components/components/syn-drawer/component.react.ts +98 -0
  176. package/metadata/packages/components/components/syn-drawer/component.styles.ts +165 -0
  177. package/metadata/packages/components/components/syn-drawer/component.ts +496 -0
  178. package/metadata/packages/components/components/syn-drawer/component.vue +188 -0
  179. package/metadata/packages/components/components/syn-dropdown/component.angular.ts +223 -0
  180. package/metadata/packages/components/components/syn-dropdown/component.custom.styles.ts +5 -0
  181. package/metadata/packages/components/components/syn-dropdown/component.react.ts +59 -0
  182. package/metadata/packages/components/components/syn-dropdown/component.styles.ts +60 -0
  183. package/metadata/packages/components/components/syn-dropdown/component.ts +484 -0
  184. package/metadata/packages/components/components/syn-dropdown/component.vue +159 -0
  185. package/metadata/packages/components/components/syn-file/component.angular.ts +359 -0
  186. package/metadata/packages/components/components/syn-file/component.react.ts +85 -0
  187. package/metadata/packages/components/components/syn-file/component.styles.ts +179 -0
  188. package/metadata/packages/components/components/syn-file/component.ts +631 -0
  189. package/metadata/packages/components/components/syn-file/component.vue +251 -0
  190. package/metadata/packages/components/components/syn-header/component.angular.ts +132 -0
  191. package/metadata/packages/components/components/syn-header/component.react.ts +65 -0
  192. package/metadata/packages/components/components/syn-header/component.styles.ts +128 -0
  193. package/metadata/packages/components/components/syn-header/component.ts +260 -0
  194. package/metadata/packages/components/components/syn-header/component.vue +117 -0
  195. package/metadata/packages/components/components/syn-icon/component.angular.ts +115 -0
  196. package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +5 -0
  197. package/metadata/packages/components/components/syn-icon/component.react.ts +41 -0
  198. package/metadata/packages/components/components/syn-icon/component.styles.ts +25 -0
  199. package/metadata/packages/components/components/syn-icon/component.ts +234 -0
  200. package/metadata/packages/components/components/syn-icon/component.vue +100 -0
  201. package/metadata/packages/components/components/syn-icon-button/component.angular.ts +185 -0
  202. package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +68 -0
  203. package/metadata/packages/components/components/syn-icon-button/component.react.ts +42 -0
  204. package/metadata/packages/components/components/syn-icon-button/component.styles.ts +59 -0
  205. package/metadata/packages/components/components/syn-icon-button/component.ts +154 -0
  206. package/metadata/packages/components/components/syn-icon-button/component.vue +132 -0
  207. package/metadata/packages/components/components/syn-input/component.angular.ts +606 -0
  208. package/metadata/packages/components/components/syn-input/component.custom.styles.ts +278 -0
  209. package/metadata/packages/components/components/syn-input/component.react.ts +91 -0
  210. package/metadata/packages/components/components/syn-input/component.styles.ts +287 -0
  211. package/metadata/packages/components/components/syn-input/component.ts +942 -0
  212. package/metadata/packages/components/components/syn-input/component.vue +370 -0
  213. package/metadata/packages/components/components/syn-menu/component.angular.ts +52 -0
  214. package/metadata/packages/components/components/syn-menu/component.custom.styles.ts +29 -0
  215. package/metadata/packages/components/components/syn-menu/component.react.ts +36 -0
  216. package/metadata/packages/components/components/syn-menu/component.styles.ts +27 -0
  217. package/metadata/packages/components/components/syn-menu/component.ts +199 -0
  218. package/metadata/packages/components/components/syn-menu/component.vue +48 -0
  219. package/metadata/packages/components/components/syn-menu-item/component.angular.ts +121 -0
  220. package/metadata/packages/components/components/syn-menu-item/component.custom.styles.ts +128 -0
  221. package/metadata/packages/components/components/syn-menu-item/component.react.ts +45 -0
  222. package/metadata/packages/components/components/syn-menu-item/component.styles.ts +164 -0
  223. package/metadata/packages/components/components/syn-menu-item/component.ts +209 -0
  224. package/metadata/packages/components/components/syn-menu-item/component.vue +91 -0
  225. package/metadata/packages/components/components/syn-menu-label/component.angular.ts +48 -0
  226. package/metadata/packages/components/components/syn-menu-label/component.custom.styles.ts +24 -0
  227. package/metadata/packages/components/components/syn-menu-label/component.react.ts +35 -0
  228. package/metadata/packages/components/components/syn-menu-label/component.styles.ts +28 -0
  229. package/metadata/packages/components/components/syn-menu-label/component.ts +54 -0
  230. package/metadata/packages/components/components/syn-menu-label/component.vue +41 -0
  231. package/metadata/packages/components/components/syn-nav-item/component.angular.ts +242 -0
  232. package/metadata/packages/components/components/syn-nav-item/component.react.ts +82 -0
  233. package/metadata/packages/components/components/syn-nav-item/component.styles.ts +337 -0
  234. package/metadata/packages/components/components/syn-nav-item/component.ts +492 -0
  235. package/metadata/packages/components/components/syn-nav-item/component.vue +182 -0
  236. package/metadata/packages/components/components/syn-optgroup/component.angular.ts +79 -0
  237. package/metadata/packages/components/components/syn-optgroup/component.react.ts +41 -0
  238. package/metadata/packages/components/components/syn-optgroup/component.styles.ts +59 -0
  239. package/metadata/packages/components/components/syn-optgroup/component.ts +176 -0
  240. package/metadata/packages/components/components/syn-optgroup/component.vue +71 -0
  241. package/metadata/packages/components/components/syn-option/component.angular.ts +79 -0
  242. package/metadata/packages/components/components/syn-option/component.custom.styles.ts +81 -0
  243. package/metadata/packages/components/components/syn-option/component.react.ts +37 -0
  244. package/metadata/packages/components/components/syn-option/component.styles.ts +96 -0
  245. package/metadata/packages/components/components/syn-option/component.ts +174 -0
  246. package/metadata/packages/components/components/syn-option/component.vue +71 -0
  247. package/metadata/packages/components/components/syn-popup/component.angular.ts +385 -0
  248. package/metadata/packages/components/components/syn-popup/component.react.ts +55 -0
  249. package/metadata/packages/components/components/syn-popup/component.styles.ts +70 -0
  250. package/metadata/packages/components/components/syn-popup/component.ts +583 -0
  251. package/metadata/packages/components/components/syn-popup/component.vue +240 -0
  252. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +67 -0
  253. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +54 -0
  254. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +48 -0
  255. package/metadata/packages/components/components/syn-prio-nav/component.ts +287 -0
  256. package/metadata/packages/components/components/syn-prio-nav/component.vue +60 -0
  257. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +85 -0
  258. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +22 -0
  259. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +37 -0
  260. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +94 -0
  261. package/metadata/packages/components/components/syn-progress-bar/component.ts +74 -0
  262. package/metadata/packages/components/components/syn-progress-bar/component.vue +71 -0
  263. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +72 -0
  264. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +17 -0
  265. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +37 -0
  266. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +77 -0
  267. package/metadata/packages/components/components/syn-progress-ring/component.ts +90 -0
  268. package/metadata/packages/components/components/syn-progress-ring/component.vue +66 -0
  269. package/metadata/packages/components/components/syn-radio/component.angular.ts +109 -0
  270. package/metadata/packages/components/components/syn-radio/component.custom.styles.ts +73 -0
  271. package/metadata/packages/components/components/syn-radio/component.react.ts +48 -0
  272. package/metadata/packages/components/components/syn-radio/component.styles.ts +124 -0
  273. package/metadata/packages/components/components/syn-radio/component.ts +129 -0
  274. package/metadata/packages/components/components/syn-radio/component.vue +99 -0
  275. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +123 -0
  276. package/metadata/packages/components/components/syn-radio-button/component.react.ts +49 -0
  277. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +37 -0
  278. package/metadata/packages/components/components/syn-radio-button/component.ts +149 -0
  279. package/metadata/packages/components/components/syn-radio-button/component.vue +105 -0
  280. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +204 -0
  281. package/metadata/packages/components/components/syn-radio-group/component.custom.styles.ts +22 -0
  282. package/metadata/packages/components/components/syn-radio-group/component.react.ts +56 -0
  283. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +44 -0
  284. package/metadata/packages/components/components/syn-radio-group/component.ts +418 -0
  285. package/metadata/packages/components/components/syn-radio-group/component.vue +158 -0
  286. package/metadata/packages/components/components/syn-range/component.angular.ts +334 -0
  287. package/metadata/packages/components/components/syn-range/component.react.ts +92 -0
  288. package/metadata/packages/components/components/syn-range/component.styles.ts +284 -0
  289. package/metadata/packages/components/components/syn-range/component.ts +878 -0
  290. package/metadata/packages/components/components/syn-range/component.vue +240 -0
  291. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +59 -0
  292. package/metadata/packages/components/components/syn-range-tick/component.react.ts +33 -0
  293. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +34 -0
  294. package/metadata/packages/components/components/syn-range-tick/component.ts +50 -0
  295. package/metadata/packages/components/components/syn-range-tick/component.vue +57 -0
  296. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +16 -0
  297. package/metadata/packages/components/components/syn-resize-observer/component.ts +98 -0
  298. package/metadata/packages/components/components/syn-select/component.angular.ts +441 -0
  299. package/metadata/packages/components/components/syn-select/component.custom.styles.ts +176 -0
  300. package/metadata/packages/components/components/syn-select/component.react.ts +101 -0
  301. package/metadata/packages/components/components/syn-select/component.styles.ts +316 -0
  302. package/metadata/packages/components/components/syn-select/component.ts +1054 -0
  303. package/metadata/packages/components/components/syn-select/component.vue +303 -0
  304. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +231 -0
  305. package/metadata/packages/components/components/syn-side-nav/component.react.ts +95 -0
  306. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +160 -0
  307. package/metadata/packages/components/components/syn-side-nav/component.ts +492 -0
  308. package/metadata/packages/components/components/syn-side-nav/component.vue +201 -0
  309. package/metadata/packages/components/components/syn-spinner/component.angular.ts +44 -0
  310. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +31 -0
  311. package/metadata/packages/components/components/syn-spinner/component.react.ts +31 -0
  312. package/metadata/packages/components/components/syn-spinner/component.styles.ts +55 -0
  313. package/metadata/packages/components/components/syn-spinner/component.ts +42 -0
  314. package/metadata/packages/components/components/syn-spinner/component.vue +35 -0
  315. package/metadata/packages/components/components/syn-switch/component.angular.ts +244 -0
  316. package/metadata/packages/components/components/syn-switch/component.custom.styles.ts +112 -0
  317. package/metadata/packages/components/components/syn-switch/component.react.ts +63 -0
  318. package/metadata/packages/components/components/syn-switch/component.styles.ts +177 -0
  319. package/metadata/packages/components/components/syn-switch/component.ts +274 -0
  320. package/metadata/packages/components/components/syn-switch/component.vue +178 -0
  321. package/metadata/packages/components/components/syn-tab/component.angular.ts +109 -0
  322. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +92 -0
  323. package/metadata/packages/components/components/syn-tab/component.react.ts +42 -0
  324. package/metadata/packages/components/components/syn-tab/component.styles.ts +77 -0
  325. package/metadata/packages/components/components/syn-tab/component.ts +132 -0
  326. package/metadata/packages/components/components/syn-tab/component.vue +91 -0
  327. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +166 -0
  328. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +248 -0
  329. package/metadata/packages/components/components/syn-tab-group/component.react.ts +58 -0
  330. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +200 -0
  331. package/metadata/packages/components/components/syn-tab-group/component.ts +557 -0
  332. package/metadata/packages/components/components/syn-tab-group/component.vue +126 -0
  333. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +68 -0
  334. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +8 -0
  335. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +31 -0
  336. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +27 -0
  337. package/metadata/packages/components/components/syn-tab-panel/component.ts +67 -0
  338. package/metadata/packages/components/components/syn-tab-panel/component.vue +60 -0
  339. package/metadata/packages/components/components/syn-tag/component.angular.ts +83 -0
  340. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +120 -0
  341. package/metadata/packages/components/components/syn-tag/component.react.ts +43 -0
  342. package/metadata/packages/components/components/syn-tag/component.styles.ts +65 -0
  343. package/metadata/packages/components/components/syn-tag/component.ts +90 -0
  344. package/metadata/packages/components/components/syn-tag/component.vue +81 -0
  345. package/metadata/packages/components/components/syn-textarea/component.angular.ts +394 -0
  346. package/metadata/packages/components/components/syn-textarea/component.custom.styles.ts +18 -0
  347. package/metadata/packages/components/components/syn-textarea/component.react.ts +60 -0
  348. package/metadata/packages/components/components/syn-textarea/component.styles.ts +187 -0
  349. package/metadata/packages/components/components/syn-textarea/component.ts +401 -0
  350. package/metadata/packages/components/components/syn-textarea/component.vue +244 -0
  351. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +212 -0
  352. package/metadata/packages/components/components/syn-tooltip/component.custom.styles.ts +13 -0
  353. package/metadata/packages/components/components/syn-tooltip/component.react.ts +63 -0
  354. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +64 -0
  355. package/metadata/packages/components/components/syn-tooltip/component.ts +319 -0
  356. package/metadata/packages/components/components/syn-tooltip/component.vue +158 -0
  357. package/metadata/packages/components/components/syn-validate/component.angular.ts +128 -0
  358. package/metadata/packages/components/components/syn-validate/component.react.ts +36 -0
  359. package/metadata/packages/components/components/syn-validate/component.styles.ts +9 -0
  360. package/metadata/packages/components/components/syn-validate/component.ts +437 -0
  361. package/metadata/packages/components/components/syn-validate/component.vue +98 -0
  362. package/metadata/packages/components/migration/BREAKING_CHANGES.md +489 -0
  363. package/metadata/packages/components/migration/migration-synergy-v3.md +50 -0
  364. package/metadata/packages/components/static/CHANGELOG.md +1107 -0
  365. package/metadata/packages/components/static/LIMITATIONS.md +269 -0
  366. package/metadata/packages/components/static/README.md +248 -0
  367. package/metadata/packages/react/LIMITATIONS.md +31 -0
  368. package/metadata/packages/react/README.md +262 -0
  369. package/metadata/packages/styles/CHANGELOG.md +76 -0
  370. package/metadata/packages/styles/README.md +132 -0
  371. package/metadata/packages/styles/index.css +309 -0
  372. package/metadata/packages/styles/link-list.css +47 -0
  373. package/metadata/packages/styles/link.css +79 -0
  374. package/metadata/packages/styles/tables.css +143 -0
  375. package/metadata/packages/styles/typography.css +52 -0
  376. package/metadata/packages/tokens/CHANGELOG.md +431 -0
  377. package/metadata/packages/tokens/README.md +408 -0
  378. package/metadata/packages/tokens/dark.css +268 -0
  379. package/metadata/packages/tokens/index.js +1294 -0
  380. package/metadata/packages/tokens/light.css +268 -0
  381. package/metadata/packages/vue/LIMITATIONS.md +53 -0
  382. package/metadata/packages/vue/README.md +252 -0
  383. package/metadata/static/angular/index.md +6 -0
  384. package/metadata/static/assets/index.md +10 -0
  385. package/metadata/static/component-info/index.md +24 -0
  386. package/metadata/static/component-list/index.md +34 -0
  387. package/metadata/static/components/index.md +10 -0
  388. package/metadata/static/components/syn-accordion/docs.md +428 -0
  389. package/metadata/static/components/syn-alert/docs.md +231 -0
  390. package/metadata/static/components/syn-badge/docs.md +128 -0
  391. package/metadata/static/components/syn-breadcrumb/docs.md +265 -0
  392. package/metadata/static/components/syn-breadcrumb-item/docs.md +49 -0
  393. package/metadata/static/components/syn-button/docs.md +402 -0
  394. package/metadata/static/components/syn-card/docs.md +273 -0
  395. package/metadata/static/components/syn-checkbox/docs.md +77 -0
  396. package/metadata/static/components/syn-combobox/docs.md +2402 -0
  397. package/metadata/static/components/syn-details/docs.md +220 -0
  398. package/metadata/static/components/syn-dialog/docs.md +222 -0
  399. package/metadata/static/components/syn-divider/docs.md +77 -0
  400. package/metadata/static/components/syn-drawer/docs.md +271 -0
  401. package/metadata/static/components/syn-dropdown/docs.md +316 -0
  402. package/metadata/static/components/syn-file/docs.md +215 -0
  403. package/metadata/static/components/syn-header/docs.md +134 -0
  404. package/metadata/static/components/syn-icon/docs.md +177 -0
  405. package/metadata/static/components/syn-icon-button/docs.md +142 -0
  406. package/metadata/static/components/syn-input/docs.md +460 -0
  407. package/metadata/static/components/syn-menu/docs.md +162 -0
  408. package/metadata/static/components/syn-menu-item/docs.md +196 -0
  409. package/metadata/static/components/syn-menu-label/docs.md +29 -0
  410. package/metadata/static/components/syn-nav-item/docs.md +161 -0
  411. package/metadata/static/components/syn-optgroup/docs.md +167 -0
  412. package/metadata/static/components/syn-option/docs.md +137 -0
  413. package/metadata/static/components/syn-prio-nav/docs.md +54 -0
  414. package/metadata/static/components/syn-progress-bar/docs.md +77 -0
  415. package/metadata/static/components/syn-progress-ring/docs.md +89 -0
  416. package/metadata/static/components/syn-radio/docs.md +123 -0
  417. package/metadata/static/components/syn-radio-group/docs.md +363 -0
  418. package/metadata/static/components/syn-range/docs.md +419 -0
  419. package/metadata/static/components/syn-range-tick/docs.md +110 -0
  420. package/metadata/static/components/syn-select/docs.md +730 -0
  421. package/metadata/static/components/syn-side-nav/docs.md +593 -0
  422. package/metadata/static/components/syn-spinner/docs.md +45 -0
  423. package/metadata/static/components/syn-switch/docs.md +74 -0
  424. package/metadata/static/components/syn-tab/docs.md +47 -0
  425. package/metadata/static/components/syn-tab-group/docs.md +1094 -0
  426. package/metadata/static/components/syn-tab-panel/docs.md +91 -0
  427. package/metadata/static/components/syn-tag/docs.md +50 -0
  428. package/metadata/static/components/syn-textarea/docs.md +215 -0
  429. package/metadata/static/components/syn-tooltip/docs.md +144 -0
  430. package/metadata/static/components/syn-validate/docs.md +225 -0
  431. package/metadata/static/migration/index.md +16 -0
  432. package/metadata/static/react/index.md +8 -0
  433. package/metadata/static/setup/icon-usage.md +276 -0
  434. package/metadata/static/setup/prerequisites.md +171 -0
  435. package/metadata/static/styles/index.md +11 -0
  436. package/metadata/static/styles/syn-body.md +5 -0
  437. package/metadata/static/styles/syn-heading.md +5 -0
  438. package/metadata/static/styles/syn-link-list.md +325 -0
  439. package/metadata/static/styles/syn-link.md +156 -0
  440. package/metadata/static/styles/syn-table-cell.md +125 -0
  441. package/metadata/static/styles/syn-table.md +201 -0
  442. package/metadata/static/styles/syn-weight.md +5 -0
  443. package/metadata/static/templates/appshell.md +2061 -0
  444. package/metadata/static/templates/breadcrumb.md +375 -0
  445. package/metadata/static/templates/footer.md +342 -0
  446. package/metadata/static/templates/forms.md +369 -0
  447. package/metadata/static/templates/index.md +9 -0
  448. package/metadata/static/templates/table.md +1426 -0
  449. package/metadata/static/vue/index.md +6 -0
  450. package/package.json +109 -4
package/CHANGELOG.md ADDED
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+
3
+ # [@synergy-design-system/mcp-v1.1.0](https://github.com/synergy-design-system/synergy-design-system/compare/mcp/1.0.0...mcp/1.1.0) (2025-08-08)
4
+
5
+
6
+ ### Features
7
+
8
+ * ✨ syn-icon: Provide a function to switch the icon set to brand2025 ([#974](https://github.com/synergy-design-system/synergy-design-system/issues/974)) ([1482e34](https://github.com/synergy-design-system/synergy-design-system/commit/1482e34f21ce80b9ad6f25e760f87de13d5f70db))
9
+
10
+ # @synergy-design-system/mcp-v1.0.0 (2025-08-07)
11
+
12
+
13
+ ### Features
14
+
15
+ * ✨ MCP: Initial release ([#931](https://github.com/synergy-design-system/synergy-design-system/pull/931)) ([5f511ca](https://github.com/synergy-design-system/synergy-design-system/commit/5f511ca4305981f90e589a5f634e58d0e4e834ee))
package/README.md CHANGED
@@ -2,7 +2,543 @@
2
2
 
3
3
  Synergy MCP Server – Multi-Framework Component Metadata & Tooling
4
4
 
5
- This package is currently in alpha stadium.
6
- There will be **no** releases on the `stable` channel until we reach basic stability.
5
+ ---
7
6
 
8
- If you want to try it out, please use `npm install -g @synergy-design-system/mcp@alpha`.
7
+ The `@synergy-design-system/mcp` package provides a Model Context Protocol (MCP) server for the Synergy Design System. It enables AI assistants and development tools to access structured information about Synergy components, design tokens, icons, and migration guides across multiple frameworks (Angular, React, Vue, and vanilla Web Components).
8
+
9
+ ## Quick Start
10
+
11
+ ### Installation
12
+
13
+ ```bash
14
+ npm install --save-dev @synergy-design-system/mcp
15
+ ```
16
+
17
+ ### Running the Server
18
+
19
+ The MCP server can be started using the `syn-mcp` binary:
20
+
21
+ ```bash
22
+ # Run directly
23
+ npx @synergy-design-system/mcp
24
+
25
+ # Or if installed globally
26
+ syn-mcp
27
+ ```
28
+
29
+ ### VS Code Integration
30
+
31
+ To integrate with VS Code and AI assistants, add this configuration to your VS Code `settings.json` under the `mcp.servers` section:
32
+
33
+ ```jsonc
34
+ {
35
+ "mcp": {
36
+ "servers": {
37
+ "synergy": {
38
+ "type": "stdio",
39
+ "command": "npx",
40
+ "args": ["@synergy-design-system/mcp"],
41
+ },
42
+ },
43
+ },
44
+ }
45
+ ```
46
+
47
+ ### Claude Desktop Integration
48
+
49
+ For Claude Desktop, add this to your `claude_desktop_config.json`:
50
+
51
+ ```json
52
+ {
53
+ "mcpServers": {
54
+ "synergy": {
55
+ "command": "npx",
56
+ "args": ["@synergy-design-system/mcp"]
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ ## Features
63
+
64
+ - **Component Information**: Get detailed usage information for Synergy components across frameworks
65
+ - **Icon Assets**: Search and discover available icons from multiple icon sets
66
+ - **Design Tokens**: Access CSS and JavaScript design tokens
67
+ - **Style Utilities**: Information about available CSS utility classes
68
+ - **Templates**: Access static templates built with the Synergy Design System
69
+ - **Migration Guides**: DaVinci to Synergy component migration assistance and Synergy version migrations
70
+ - **Framework Support**: Specific documentation for Angular, React, Vue, and vanilla Web Components
71
+ - **Version Information**: Get version and metadata about the MCP server
72
+ - **MCP Protocol**: Standard Model Context Protocol interface for AI assistant integration
73
+
74
+ ## Available Tools
75
+
76
+ The MCP server provides the following tools that can be invoked by AI assistants:
77
+
78
+ ### 1. `component-list`
79
+
80
+ **Description:** Outputs a list of all available components in the Synergy Design System.
81
+
82
+ **Parameters:** None
83
+
84
+ **Example prompts:**
85
+
86
+ - "Show me all available Synergy components"
87
+ - "What components are available in the Synergy Design System?"
88
+ - "List all syn-\* components"
89
+
90
+ ### 2. `component-info`
91
+
92
+ **Description:** Get detailed information about the usage of a specific component in the Synergy Design System.
93
+
94
+ **Parameters:**
95
+
96
+ - `component` (string, required): The name of the component (must start with `syn-`, e.g., `syn-button`)
97
+ - `framework` (string, optional): The framework (`react`, `vue`, `angular`, `vanilla`). Defaults to `vanilla`
98
+
99
+ **Example prompts:**
100
+
101
+ - "How do I use the syn-button component in React?"
102
+ - "Show me the syn-input component documentation"
103
+ - "What props does syn-dialog support in Vue?"
104
+ - "Give me an example of syn-card in Angular"
105
+
106
+ ### 3. `asset-list`
107
+
108
+ **Description:** Get the available iconsets in the Synergy Design System.
109
+
110
+ **Parameters:** None
111
+
112
+ **Example prompts:**
113
+
114
+ - "What iconsets are available?"
115
+ - "Show me all available icon libraries"
116
+ - "List all iconsets in Synergy"
117
+
118
+ ### 4. `asset-info`
119
+
120
+ **Description:** Get information about available icons in the Synergy Design System.
121
+
122
+ **Parameters:**
123
+
124
+ - `filter` (string, optional): Filter icon names by substring match
125
+ - `iconset` (string, optional): Icon set to search (`current`, `legacy`, `v2`, `synergy2018`, `brand2018`, `brand2025`, `synergy2025`, `new`, `next`). Defaults to `current`
126
+ - `limit` (number, optional): Maximum number of icons to return. Defaults to 5
127
+
128
+ **Example prompts:**
129
+
130
+ - "Show me icons with 'add' in the name"
131
+ - "What icons are available for cancel actions?"
132
+ - "List 10 icons from the new iconset"
133
+ - "Find icons related to 'close' in the current iconset"
134
+
135
+ ### 5. `token-info`
136
+
137
+ **Description:** Get information about design tokens available in the Synergy Design System.
138
+
139
+ **Parameters:**
140
+
141
+ - `type` (string, optional): Token type (`javascript` or `css`). Defaults to `css`
142
+
143
+ **Example prompts:**
144
+
145
+ - "Show me the available CSS design tokens"
146
+ - "What JavaScript design tokens are available?"
147
+ - "List all design tokens for styling"
148
+
149
+ ### 6. `styles-list`
150
+
151
+ **Description:** Outputs a list of available styles in the Synergy Design System.
152
+
153
+ **Parameters:** None
154
+
155
+ **Example prompts:**
156
+
157
+ - "What styles are available in Synergy?"
158
+ - "Show me all available CSS utility classes"
159
+ - "List all style modules"
160
+
161
+ ### 7. `styles-info`
162
+
163
+ **Description:** Get information about CSS utilities available in the Synergy Design System.
164
+
165
+ **Parameters:** None
166
+
167
+ **Example prompts:**
168
+
169
+ - "Show me information about Synergy CSS utilities"
170
+ - "What CSS utilities does Synergy provide?"
171
+ - "Tell me about the styles package"
172
+
173
+ ### 8. `template-list`
174
+
175
+ **Description:** Outputs a list of available static templates built with the Synergy Design System.
176
+
177
+ **Parameters:** None
178
+
179
+ **Example prompts:**
180
+
181
+ - "What templates are available in Synergy?"
182
+ - "Show me all available static templates"
183
+ - "List all templates"
184
+
185
+ ### 9. `template-info`
186
+
187
+ **Description:** Get a specific template in the Synergy Design System.
188
+
189
+ **Parameters:**
190
+
191
+ - `template` (string, required): The name of the template to get information about.
192
+
193
+ **Example prompts:**
194
+
195
+ - "Show me the form template"
196
+ - "Give me information about the dashboard template"
197
+ - "How do I use the form template?"
198
+
199
+ ### 10. `davinci-migrate-list`
200
+
201
+ **Description:** Get a list of all components that have migration information from DaVinci to Synergy.
202
+
203
+ **Parameters:** None
204
+
205
+ **Example prompts:**
206
+
207
+ - "What DaVinci components can be migrated to Synergy?"
208
+ - "Show me all available migration guides"
209
+ - "List components with migration information"
210
+
211
+ ### 11. `davinci-migrate-component`
212
+
213
+ **Description:** Get information about the migration of a specific component from DaVinci to Synergy.
214
+
215
+ **Parameters:**
216
+
217
+ - `component` (string, required): Name of the DaVinci component (must start with `davinci-`, e.g., `davinci-button`)
218
+
219
+ **Example prompts:**
220
+
221
+ - "How do I migrate from davinci-button to Synergy?"
222
+ - "Show me the migration guide for davinci-input"
223
+ - "What's the Synergy equivalent of davinci-auto-suggest?"
224
+
225
+ ### 12. `framework-info`
226
+
227
+ **Description:** Get information about a specific framework package that the Synergy Design System supports.
228
+
229
+ **Parameters:**
230
+
231
+ - `framework` (string, optional): Framework name (`react`, `vue`, `angular`, `vanilla`). Defaults to `vanilla`
232
+ - `setupInstructions` (boolean, optional): Adds additional context to include setup instructions for all synergy applications. Defaults to `false`
233
+
234
+ **Example prompts:**
235
+
236
+ - "How do I set up Synergy with React?"
237
+ - "Show me the Angular integration guide"
238
+ - "What's needed to use Synergy with Vue?"
239
+ - "How do I install Synergy for vanilla JavaScript?"
240
+
241
+ ### 13. `migration-info`
242
+
243
+ **Description:** Get information about migrations available in the Synergy Design System, including breaking changes between major versions.
244
+
245
+ **Parameters:** None
246
+
247
+ **Example prompts:**
248
+
249
+ - "What migrations are available in Synergy?"
250
+ - "How do I migrate from Synergy v1 to v2?"
251
+ - "Show me breaking changes between versions"
252
+ - "What changed in the latest Synergy version?"
253
+
254
+ ### 14. `version`
255
+
256
+ **Description:** Get version and basic information about the Synergy Design System MCP Server.
257
+
258
+ **Parameters:** None
259
+
260
+ **Example prompts:**
261
+
262
+ - "What version of the MCP server is running?"
263
+ - "Show me information about this Synergy MCP server"
264
+ - "What's the current version?"
265
+
266
+ ## Developer Documentation
267
+
268
+ ### Project Structure
269
+
270
+ ```
271
+ src/
272
+ ├── bin/
273
+ │ └── start.ts # CLI entry point (syn-mcp command)
274
+ ├── build/ # Build scripts for metadata generation
275
+ │ ├── assets.ts # Asset metadata builder
276
+ │ ├── build.ts # Main build orchestrator
277
+ │ ├── components.ts # Component metadata builder
278
+ │ ├── frameworks.ts # Framework info builder
279
+ │ ├── static.ts # Static content builder
280
+ │ ├── styles.ts # Styles metadata builder
281
+ │ └── tokens.ts # Token metadata builder
282
+ ├── scripts/ # Build and utility scripts
283
+ │ └── generate-checksum.ts # TypeScript checksum generator (replaces shell scripts)
284
+ ├── server.ts # MCP server setup and tool registration
285
+ ├── tools/ # MCP tool implementations
286
+ │ ├── asset-info.ts # Icon search and information
287
+ │ ├── asset-list.ts # Available iconsets
288
+ │ ├── component-info.ts # Individual component details
289
+ │ ├── component-list.ts # List all components
290
+ │ ├── davinci-migration.ts # Migration guides
291
+ │ ├── framework-info.ts # Framework-specific information
292
+ │ ├── styles-info.ts # CSS utilities information
293
+ │ ├── styles-list.ts # List all styles
294
+ │ ├── template-info.ts # Template details
295
+ │ ├── template-list.ts # List all templates
296
+ │ ├── tokens.ts # Design tokens
297
+ │ ├── version.ts # MCP server version info
298
+ │ └── index.ts # Tool exports
299
+ └── utilities/ # Helper functions and metadata loaders
300
+ ├── assets.ts # Asset utilities
301
+ ├── checksum.ts # Folder checksum utilities (replaces shell scripts)
302
+ ├── components.ts # Component utilities
303
+ ├── config.ts # Configuration management
304
+ ├── file.ts # File system utilities
305
+ ├── metadata.ts # Metadata loading utilities
306
+ ├── stdio.ts # Standard I/O utilities
307
+ ├── styles.ts # Style utilities
308
+ ├── templates.ts # Template utilities
309
+ ├── tokens.ts # Token utilities
310
+ ├── version.ts # Version utilities
311
+ ├── storybook/ # Storybook documentation utilities
312
+ └── index.ts # Utility exports
313
+ metadata/ # Generated and static metadata files
314
+ ├── checksum.txt # Metadata integrity checksum
315
+ ├── davinci-migration/ # DaVinci to Synergy migration guides
316
+ ├── packages/ # Synergy package specific information
317
+ └── static/ # Static metadata for tools
318
+ ```
319
+
320
+ ### Available Scripts
321
+
322
+ The following npm scripts are available for development:
323
+
324
+ ```bash
325
+ # Build the entire project (TypeScript + metadata + Storybook docs)
326
+ pnpm build
327
+
328
+ # Build only TypeScript files
329
+ pnpm build:ts
330
+
331
+ # Build metadata from source packages
332
+ pnpm build:metadata
333
+
334
+ # Generate metadata integrity checksum (uses TypeScript instead of shell script)
335
+ pnpm build:hash
336
+
337
+ # Build Storybook documentation
338
+ pnpm build:storybook
339
+
340
+ # Run linting
341
+ pnpm lint
342
+ pnpm lint:js
343
+
344
+ # Run tests with coverage
345
+ pnpm test
346
+
347
+ # Create a release (dry run)
348
+ pnpm release.dry
349
+
350
+ # Create a release
351
+ pnpm release
352
+ ```
353
+
354
+ ### Development Workflow
355
+
356
+ 1. **Setup**: Install dependencies with `pnpm install`
357
+ 2. **Build**: Run `pnpm build` to compile TypeScript and generate metadata
358
+ - `pnpm build:ts` compiles TypeScript files
359
+ - `pnpm build:metadata` generates metadata from source packages
360
+ - `pnpm build:hash` creates integrity checksum for metadata using TypeScript utilities
361
+ 3. **Test**: Use `pnpm test` to run the test suite with coverage
362
+ 4. **Lint**: Run `pnpm lint` to check code quality
363
+ 5. **Run**: Start the server with `npx syn-mcp` or `node dist/bin/start.js`
364
+
365
+ The metadata build process runs multiple specialized builders in sequence:
366
+
367
+ 1. Assets (icons and iconsets)
368
+ 2. Components (from package manifests)
369
+ 3. Framework information (setup guides)
370
+ 4. Design tokens (CSS and JS tokens)
371
+ 5. Styles (utility classes)
372
+ 6. Static files (hand-written documentation)
373
+
374
+ ### Adding New Tools
375
+
376
+ To add a new tool:
377
+
378
+ 1. Create a new file in `src/tools/` (e.g., `my-tool.ts`)
379
+ 2. Implement the tool following the MCP SDK patterns
380
+ 3. Export the tool from `src/tools/index.ts`
381
+ 4. Your tool will automatically be registered into the server.
382
+
383
+ Example tool structure:
384
+
385
+ ```typescript
386
+ import { z } from "zod";
387
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
388
+
389
+ export const myTool = (server: McpServer) => {
390
+ server.registerTool(
391
+ "my-tool",
392
+ {
393
+ description: "Description of what the tool does",
394
+ inputSchema: {
395
+ param: z.string().describe("Parameter description"),
396
+ },
397
+ title: "My Tool",
398
+ },
399
+ async ({ param }) => {
400
+ // Tool implementation
401
+ return {
402
+ content: [
403
+ {
404
+ text: `Result for ${param}`,
405
+ type: "text",
406
+ },
407
+ ],
408
+ };
409
+ },
410
+ );
411
+ };
412
+ ```
413
+
414
+ ### Metadata Management
415
+
416
+ Metadata is stored in the `metadata/` directory and is built during the build process:
417
+
418
+ - **Static metadata**: Hand-written files in `metadata/static/`
419
+ - **Component metadata**: Generated from Synergy packages in `metadata/packages/`
420
+ - **Migration guides**: DaVinci migration information in `metadata/davinci-migration/`
421
+ - **Checksum validation**: `metadata/checksum.txt` ensures metadata integrity
422
+
423
+ The `pnpm build:metadata` script processes source packages and generates structured metadata files using specialized builders:
424
+
425
+ - `build/assets.ts` - Processes icon and asset information
426
+ - `build/components.ts` - Extracts component metadata from packages
427
+ - `build/frameworks.ts` - Generates framework-specific documentation
428
+ - `build/static.ts` - Processes static content files
429
+ - `build/styles.ts` - Extracts CSS utility information
430
+ - `build/tokens.ts` - Processes design token data
431
+ - `build/build.ts` - Orchestrates the entire build process
432
+
433
+ ### Checksum Utilities
434
+
435
+ The project includes TypeScript utilities for generating and verifying folder checksums, replacing shell scripts for cross-platform compatibility:
436
+
437
+ **Key Features:**
438
+
439
+ - **Cross-platform**: Works on Windows, macOS, and Linux
440
+ - **Configurable**: Support for custom exclude patterns and hash algorithms (MD5, SHA1, SHA256)
441
+ - **TypeScript native**: Full type safety and IDE support
442
+ - **Shell script replacement**: Replaces `find | sort | xargs | md5` commands
443
+
444
+ **Available Functions:**
445
+
446
+ - `createFolderChecksum(path, options?)` - Generate checksum and optionally write to file
447
+ - `verifyFolderChecksum(path, options?)` - Verify current contents match stored checksum
448
+ - `getFolderChecksum(path, options?)` - Get checksum without writing to file
449
+
450
+ **Usage Example:**
451
+
452
+ ```typescript
453
+ import {
454
+ createFolderChecksum,
455
+ verifyFolderChecksum,
456
+ } from "./utilities/checksum.js";
457
+
458
+ // Generate checksum (equivalent to shell script)
459
+ await createFolderChecksum("./metadata", {
460
+ excludePatterns: [".*", "checksum.txt"],
461
+ algorithm: "md5",
462
+ outputFile: "checksum.txt",
463
+ });
464
+
465
+ // Verify integrity
466
+ const isValid = await verifyFolderChecksum("./metadata");
467
+ ```
468
+
469
+ The build process uses `scripts/generate-checksum.ts` instead of shell commands for better cross-platform support and maintainability.
470
+
471
+ ### Binary Distribution
472
+
473
+ The package includes a `syn-mcp` binary that starts the MCP server via stdio transport. This is defined in `package.json`:
474
+
475
+ ```json
476
+ {
477
+ "bin": {
478
+ "syn-mcp": "./dist/bin/start.js"
479
+ }
480
+ }
481
+ ```
482
+
483
+ ## Usage Examples
484
+
485
+ ### Command Line Interface
486
+
487
+ ```bash
488
+ # Start the MCP server
489
+ syn-mcp
490
+
491
+ # The server will communicate via stdio and wait for MCP protocol messages
492
+ ```
493
+
494
+ ### Programmatic Usage
495
+
496
+ ```typescript
497
+ import { createServer } from "@synergy-design-system/mcp";
498
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
499
+
500
+ // Create and start the server
501
+ const server = createServer();
502
+ const transport = new StdioServerTransport();
503
+ await server.connect(transport);
504
+ ```
505
+
506
+ ### AI Assistant Integration
507
+
508
+ Once configured with an AI assistant, you can use natural language prompts like:
509
+
510
+ ```
511
+ "Show me how to use syn-button in React"
512
+ "What icons are available for navigation?"
513
+ "How do I migrate from davinci-textarea to Synergy?"
514
+ "How do I migrate from Synergy v1 to v2?"
515
+ "List all available Synergy components"
516
+ "What CSS utilities does Synergy provide?"
517
+ ```
518
+
519
+ The MCP server will interpret these prompts and call the appropriate tools to provide structured responses.
520
+
521
+ ## Architecture
522
+
523
+ The MCP server is built using the Model Context Protocol SDK and provides a standardized interface for AI assistants to access Synergy Design System information.
524
+
525
+ ### Core Components
526
+
527
+ - **Server**: MCP server instance that manages tool registration and request handling
528
+ - **Tools**: Individual tool implementations that provide specific functionality
529
+ - **Utilities**: Helper functions for metadata loading and processing
530
+ - **Metadata**: Static and generated metadata files containing component and framework information
531
+
532
+ ### Data Flow
533
+
534
+ 1. AI assistant sends MCP request to the server
535
+ 2. Server routes request to appropriate tool
536
+ 3. Tool processes request and loads relevant metadata
537
+ 4. Tool returns structured response to AI assistant
538
+ 5. AI assistant processes response and provides user-friendly output
539
+
540
+ ## License
541
+
542
+ MIT
543
+
544
+ ---
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ /* eslint-disable import/no-extraneous-dependencies */
3
+ /* eslint-disable @typescript-eslint/no-unused-vars */
4
+ import ora from 'ora';
5
+ import { createFolderChecksum, metaDataPath, } from '../utilities/index.js';
6
+ async function run() {
7
+ const spinner = ora('Generating checksum for metadata folder...').start();
8
+ try {
9
+ spinner.text = 'Cleaning up old checksum...';
10
+ const checksum = await createFolderChecksum(metaDataPath, {
11
+ algorithm: 'md5',
12
+ excludePatterns: ['.*', 'checksum.txt'],
13
+ outputFile: 'checksum.txt',
14
+ });
15
+ spinner.info(`Checksum generated: ${checksum}`);
16
+ spinner.succeed(`Written to: ${metaDataPath}/checksum.txt`);
17
+ }
18
+ catch (error) {
19
+ spinner.fail(`Failed to generate checksum: ${error}`);
20
+ process.exit(1);
21
+ }
22
+ }
23
+ run();
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { createServer } from '../server.js';
4
+ import { handleCommandLineArgs } from '../utilities/index.js';
5
+ handleCommandLineArgs();
6
+ const server = createServer();
7
+ const transport = new StdioServerTransport();
8
+ await server.connect(transport);
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Sets up all wanted data from the assets package and adds it to the static metadata.
3
+ */
4
+ export declare const buildAssets: () => Promise<void>;
@@ -0,0 +1,57 @@
1
+ import fs from 'node:fs/promises';
2
+ import { fileURLToPath } from 'url';
3
+ import path from 'path';
4
+ import { globby } from 'globby';
5
+ import { rimraf } from 'rimraf';
6
+ import ora from 'ora';
7
+ import { assetsPath, createPath, } from '../utilities/index.js';
8
+ /**
9
+ * List of relative paths to files that should be copied to the static metadata directory.
10
+ */
11
+ const filesToCopy = [
12
+ 'README.md',
13
+ 'CHANGELOG.md',
14
+ ];
15
+ /**
16
+ * Sets up all wanted data from the assets package and adds it to the static metadata.
17
+ */
18
+ export const buildAssets = async () => {
19
+ const spinner = ora({
20
+ prefixText: 'Assets:',
21
+ text: 'Generating static metadata...',
22
+ }).start();
23
+ try {
24
+ spinner.text = 'Cleaning up old metadata...';
25
+ await rimraf(assetsPath);
26
+ spinner.succeed('Old metadata cleaned up.');
27
+ spinner.text = 'Creating new metadata directory...';
28
+ // Create the assets directory if it doesn't exist
29
+ await createPath(assetsPath);
30
+ spinner.succeed('New metadata directory created.');
31
+ spinner.text = 'Copying files to metadata directory...';
32
+ // Get the module's root directory
33
+ // Note that the default export resolves to dist/index.js,
34
+ // so we need to go up one level to get to the root of the package!
35
+ const moduleUrl = import.meta.resolve('@synergy-design-system/assets');
36
+ const modulePath = fileURLToPath(moduleUrl);
37
+ const moduleDir = path.join(path.dirname(modulePath), '../');
38
+ // Process the files (placeholder for actual logic)
39
+ // eslint-disable-next-line no-console
40
+ const contents = await globby(filesToCopy, {
41
+ cwd: moduleDir,
42
+ onlyFiles: true,
43
+ });
44
+ // Write the files to the tokens directory into a flat structure
45
+ const copies = contents.map(file => {
46
+ const sourcePath = path.join(moduleDir, file);
47
+ const destPath = path.join(assetsPath, path.basename(file));
48
+ return fs.copyFile(sourcePath, destPath);
49
+ });
50
+ await Promise.all(copies);
51
+ spinner.succeed('Assets metadata generated successfully.');
52
+ }
53
+ catch (error) {
54
+ spinner.fail(`Failed to generate assets metadata. Error: ${error}`);
55
+ throw error; // Re-throw to handle it in the calling function
56
+ }
57
+ };
@@ -0,0 +1 @@
1
+ export {};