@adyen/bento-mcp 0.1.4 → 0.2.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 (184) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +50 -5
  3. package/SKILL.md +138 -0
  4. package/bin/add-skill.js +46 -0
  5. package/dist/assets/components/accordion/accordion.types.ts +1 -0
  6. package/dist/assets/components/action-bar/action-bar.types.ts +1 -0
  7. package/dist/assets/components/ai-tag/ai-tag.types.ts +1 -0
  8. package/dist/assets/components/alert/alert.types.ts +1 -0
  9. package/dist/assets/components/anchor-scroller/anchor-scroller.types.ts +1 -0
  10. package/dist/assets/components/anchor-scroller/components/anchor-scroller-list/anchor-scroller-list.types.ts +1 -0
  11. package/dist/assets/components/avatar/components/avatar-image/avatar-image.types.ts +1 -0
  12. package/dist/assets/components/button/button.types.ts +1 -0
  13. package/dist/assets/components/button/components/ai-button/ai-button.types.ts +1 -0
  14. package/dist/assets/components/button/components/button-actions/button-actions.types.ts +1 -0
  15. package/dist/assets/components/button/components/loading-button/loading-button.types.ts +1 -0
  16. package/dist/assets/components/button/components/toggle-button/toggle.types.ts +1 -0
  17. package/dist/assets/components/card/card.types.ts +1 -0
  18. package/dist/assets/components/checkbox/checkbox.types.ts +1 -0
  19. package/dist/assets/components/checkbox/components/checkbox-group/checkbox-group.types.ts +1 -0
  20. package/dist/assets/components/chip/chip.types.ts +1 -0
  21. package/dist/assets/components/code-snippet/code-snippet.types.ts +1 -0
  22. package/dist/assets/components/country/country.types.ts +1 -0
  23. package/dist/assets/components/currency/currency.types.ts +1 -0
  24. package/dist/assets/components/dashed-underline/dashed-underline.types.ts +1 -0
  25. package/dist/assets/components/data-grid/components/data-grid-cell/data-grid-cell.types.ts +1 -0
  26. package/dist/assets/components/data-grid/components/data-grid-cell-actions/data-grid-cell-actions.types.ts +1 -0
  27. package/dist/assets/components/data-grid/components/data-grid-columns/data-grid-columns.types.ts +1 -0
  28. package/dist/assets/components/data-grid/components/data-grid-config-settings/data-grid-config-settings.types.ts +1 -0
  29. package/dist/assets/components/data-grid/components/data-grid-row/data-grid-row.types.ts +1 -0
  30. package/dist/assets/components/data-grid/components/data-grid-static-icon/data-grid-static-icon.types.ts +1 -0
  31. package/dist/assets/components/data-grid/components/data-grid-summary-cell/data-grid-summary-cell.types.ts +1 -0
  32. package/dist/assets/components/data-grid/components/data-grid-tag-with-text-cell/data-grid-tag-with-text-cell.types.ts +1 -0
  33. package/dist/assets/components/data-grid/components/data-grid-trend-cell/data-grid-trend-cell.types.ts +1 -0
  34. package/dist/assets/components/data-grid/composables/use-calculate-column-width/use-calculate-column-width.types.ts +1 -0
  35. package/dist/assets/components/data-grid/composables/use-column-hovering/use-column-hovering.types.ts +1 -0
  36. package/dist/assets/components/data-grid/composables/use-config-settings/use-config.settings.types.ts +1 -0
  37. package/dist/assets/components/data-grid/composables/use-keyboard-navigator/use-keyboard-navigator.types.ts +1 -0
  38. package/dist/assets/components/data-grid/data-grid.types.ts +1 -0
  39. package/dist/assets/components/date/date.types.ts +1 -0
  40. package/dist/assets/components/date-picker/composables/use-date-picker-single-calendar-text.types.ts +1 -0
  41. package/dist/assets/components/date-picker/date-picker.types.ts +1 -0
  42. package/dist/assets/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.types.ts +1 -0
  43. package/dist/assets/components/date-range-picker/composables/use-date-range-picker-calendar-text.types.ts +1 -0
  44. package/dist/assets/components/date-range-picker/composables/use-granularity-memory.types.ts +1 -0
  45. package/dist/assets/components/date-range-picker/date-range-picker.types.ts +1 -0
  46. package/dist/assets/components/divider/divider.types.ts +1 -0
  47. package/dist/assets/components/draggable-handle/draggable-handle.types.ts +1 -0
  48. package/dist/assets/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.types.ts +1 -0
  49. package/dist/assets/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.types.ts +1 -0
  50. package/dist/assets/components/dropdown/components/variants/dropdown-country/dropdown-country.types.ts +1 -0
  51. package/dist/assets/components/dropdown/components/variants/dropdown-currency/dropdown-currency.types.ts +1 -0
  52. package/dist/assets/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.types.ts +1 -0
  53. package/dist/assets/components/dropdown/components/variants/dropdown-tag/dropdown-tag.types.ts +1 -0
  54. package/dist/assets/components/dropdown/composables/use-display-value.types.ts +1 -0
  55. package/dist/assets/components/dropdown/composables/use-keyboard-navigation.types.ts +1 -0
  56. package/dist/assets/components/dropdown/dropdown.types.ts +1 -0
  57. package/dist/assets/components/empty-state/empty-state.types.ts +1 -0
  58. package/dist/assets/components/file-uploader/components/file-uploader-file-card/file-uploader-file-card.types.ts +1 -0
  59. package/dist/assets/components/file-uploader/components/file-uploader-restrictions/file-uploader-restrictions.types.ts +1 -0
  60. package/dist/assets/components/file-uploader/composables/use-drag-drop-state/use-drag-drop-state.types.ts +1 -0
  61. package/dist/assets/components/file-uploader/file-uploader.types.ts +1 -0
  62. package/dist/assets/components/filter-bar/components/all-filters-modal/all-filters-modal.types.ts +1 -0
  63. package/dist/assets/components/filter-bar/components/all-filters-modal/all-filters-modal.vue +1 -1
  64. package/dist/assets/components/filter-bar/components/base-filter/base-filter.types.ts +1 -0
  65. package/dist/assets/components/filter-bar/components/checkbox-group-filter/checkbox-group-filter.types.ts +1 -0
  66. package/dist/assets/components/filter-bar/components/filter-bar-button-group/filter-bar-button-group.types.ts +1 -0
  67. package/dist/assets/components/filter-bar/components/input-filter/input-filter.types.ts +1 -0
  68. package/dist/assets/components/filter-bar/components/radio-group-filter/radio-group-filter.types.ts +1 -0
  69. package/dist/assets/components/filter-bar/components/toggle-filter/toggle-filter.types.ts +1 -0
  70. package/dist/assets/components/filter-bar/filter-bar.types.ts +1 -0
  71. package/dist/assets/components/focus-trap/focus-trap.types.ts +1 -0
  72. package/dist/assets/components/form-layout/components/form-layout-field-tip/form-layout-tip.types.ts +1 -0
  73. package/dist/assets/components/form-layout/components/form-layout-group/form-layout-group.types.ts +1 -0
  74. package/dist/assets/components/form-layout/form-layout.types.ts +1 -0
  75. package/dist/assets/components/header/header.types.ts +1 -0
  76. package/dist/assets/components/header-with-views/components/header-with-views-all-views/header-with-views-all-views.types.ts +1 -0
  77. package/dist/assets/components/header-with-views/components/header-with-views-item-edit-form/header-with-views-edit-form.types.ts +1 -0
  78. package/dist/assets/components/header-with-views/header-with-views.types.ts +1 -0
  79. package/dist/assets/components/image/image.types.ts +1 -0
  80. package/dist/assets/components/info-icon/info-icon.types.ts +1 -0
  81. package/dist/assets/components/input-field/input-field.types.ts +1 -0
  82. package/dist/assets/components/input-field-password/input-field-password.types.ts +1 -0
  83. package/dist/assets/components/input-field-phone-number/input-field-phone-number.types.ts +1 -0
  84. package/dist/assets/components/inspector/inspector.types.ts +1 -0
  85. package/dist/assets/components/internal/base-button/base-button.types.ts +1 -0
  86. package/dist/assets/components/internal/button-actions-with-menu/button-actions-with-menu.types.ts +1 -0
  87. package/dist/assets/components/internal/calendar/calendar.types.ts +1 -0
  88. package/dist/assets/components/internal/calendar/components/calendar-month/calendar-month.types.ts +1 -0
  89. package/dist/assets/components/internal/calendar/components/calendar-month/components/calendar-month-day/calendar-month-day.types.ts +1 -0
  90. package/dist/assets/components/internal/calendar/components/calendar-month/composables/granular-min-max-date.types.ts +1 -0
  91. package/dist/assets/components/internal/calendar/components/calendar-year/calendar-year.types.ts +1 -0
  92. package/dist/assets/components/internal/calendar/components/calendar-year/components/calendar-year-month/calendar-year-month.types.ts +1 -0
  93. package/dist/assets/components/internal/calendar/composables/use-granularity-adjustments.types.ts +1 -0
  94. package/dist/assets/components/internal/checkbox-input/checkbox-input.types.ts +1 -0
  95. package/dist/assets/components/internal/copy/copy.types.ts +1 -0
  96. package/dist/assets/components/internal/dialog-page/dialog-page.types.ts +1 -0
  97. package/dist/assets/components/internal/grid-layout/grid-layout.types.ts +1 -0
  98. package/dist/assets/components/internal/header-meta/header-meta.types.ts +1 -0
  99. package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/components/listbox-multi-select-category/listbox-multi-select-category.types.ts +1 -0
  100. package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/listbox-multi-select-options.types.ts +1 -0
  101. package/dist/assets/components/internal/listbox/components/listbox-multi-select/listbox-multi-select.types.ts +1 -0
  102. package/dist/assets/components/internal/listbox/listbox.types.ts +1 -0
  103. package/dist/assets/components/internal/radio-input/radio-input.types.ts +1 -0
  104. package/dist/assets/components/internal/teleport/teleport.types.ts +1 -0
  105. package/dist/assets/components/internal/tooltip/tooltip.types.ts +1 -0
  106. package/dist/assets/components/layout/layout.types.ts +1 -0
  107. package/dist/assets/components/link/link.types.ts +1 -0
  108. package/dist/assets/components/list/components/list-item/list-item.stories.ts +1 -0
  109. package/dist/assets/components/list/components/list-item/list-item.types.ts +1 -0
  110. package/dist/assets/components/list/components/list-item/list-item.vue +1 -0
  111. package/dist/assets/components/list/list.docs.mdx +97 -0
  112. package/dist/assets/components/list/list.stories.ts +1 -0
  113. package/dist/assets/components/list/list.types.ts +1 -0
  114. package/dist/assets/components/list/list.vue +1 -0
  115. package/dist/assets/components/loading-indicator/loading-indicator.types.ts +1 -0
  116. package/dist/assets/components/menu/components/menu-item/menu-item.types.ts +1 -0
  117. package/dist/assets/components/menu/menu.types.ts +1 -0
  118. package/dist/assets/components/modal/components/modal-page/modal-page.types.ts +1 -0
  119. package/dist/assets/components/modal/modal.types.ts +1 -0
  120. package/dist/assets/components/pagination/pagination.types.ts +1 -0
  121. package/dist/assets/components/payment-method/payment-method.types.ts +1 -0
  122. package/dist/assets/components/popover/popover.types.ts +1 -0
  123. package/dist/assets/components/popper-container/popper-container.types.ts +1 -0
  124. package/dist/assets/components/promo-banner/promo-banner.types.ts +1 -0
  125. package/dist/assets/components/radio-group/components/radio-button/radio-button.types.ts +1 -0
  126. package/dist/assets/components/radio-group/radio-group.types.ts +1 -0
  127. package/dist/assets/components/rich-text-editor/components/rich-text-editor-content-area/rich-text-editor-content-area.types.ts +1 -0
  128. package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-code-block/rich-text-editor-code-block.types.ts +1 -0
  129. package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-inline-code/rich-text-editor-inline-code.types.ts +1 -0
  130. package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-link/rich-text-editor-link.types.ts +1 -0
  131. package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/components/rich-text-editor-list-item/rich-text-editor-list-item.types.ts +1 -0
  132. package/dist/assets/components/rich-text-editor/components/rich-text-editor-renderer/rich-text-editor-renderer.types.ts +1 -0
  133. package/dist/assets/components/rich-text-editor/rich-text-editor.types.ts +1 -0
  134. package/dist/assets/components/search-bar/search-bar.types.ts +1 -0
  135. package/dist/assets/components/secondary-nav/secondary-nav.types.ts +1 -0
  136. package/dist/assets/components/segmented-control/segmented-control.types.ts +1 -0
  137. package/dist/assets/components/selection-card/components/selection-card-group/selection-card-group.types.ts +1 -0
  138. package/dist/assets/components/selection-card/selection-card.types.ts +1 -0
  139. package/dist/assets/components/sidepanel/sidepanel.types.ts +1 -0
  140. package/dist/assets/components/status/status.types.ts +1 -0
  141. package/dist/assets/components/stepper/stepper.types.ts +1 -0
  142. package/dist/assets/components/structured-list/structured-list.types.ts +1 -0
  143. package/dist/assets/components/summary-grid/components/summary-grid-item/summary-grid-item.types.ts +1 -0
  144. package/dist/assets/components/summary-grid/components/summary-grid-item-amount/summary-grid-item-amount.types.ts +1 -0
  145. package/dist/assets/components/summary-grid/components/summary-grid-item-custom/summary-grid-item-custom.types.ts +1 -0
  146. package/dist/assets/components/summary-grid/components/summary-grid-item-numeric/summary-grid-item-numeric.types.ts +1 -0
  147. package/dist/assets/components/summary-grid/components/summary-grid-item-percentage/summary-grid-item-percentage.types.ts +1 -0
  148. package/dist/assets/components/summary-grid/components/summary-grid-item-text/summary-grid-item-text.types.ts +1 -0
  149. package/dist/assets/components/summary-grid/summary-grid.types.ts +1 -0
  150. package/dist/assets/components/tabs/components/tab.types.ts +1 -0
  151. package/dist/assets/components/tabs/tabs.types.ts +1 -0
  152. package/dist/assets/components/tag/tag.types.ts +1 -0
  153. package/dist/assets/components/textarea/textarea.types.ts +1 -0
  154. package/dist/assets/components/timeline/components/timeline-item/timeline-item.vue +1 -1
  155. package/dist/assets/components/timeline/timeline.stories.ts +1 -1
  156. package/dist/assets/components/timeline/timeline.types.ts +1 -0
  157. package/dist/assets/components/toast/components/toast-shadow-stack/toast-shadow-stack.types.ts +1 -0
  158. package/dist/assets/components/toggle/toggle.types.ts +1 -0
  159. package/dist/assets/components/tutorial/tutorial.types.ts +1 -0
  160. package/dist/assets/components/typography/typography.types.ts +1 -0
  161. package/dist/assets/components.json +101 -0
  162. package/dist/assets/composables/use-bento-theme/install.ts +1 -0
  163. package/dist/assets/composables/use-bento-theme/install.types.ts +1 -0
  164. package/dist/assets/composables/use-bento-theme/use-bento-theme.types.ts +1 -0
  165. package/dist/assets/composables/use-bento-toast-controller/install.ts +1 -0
  166. package/dist/assets/composables/use-bento-toast-controller/use-bento-toast-controller.types.ts +1 -0
  167. package/dist/assets/composables/use-form-validate/use-form.types.ts +1 -0
  168. package/dist/assets/composables/use-form-validate-zod-4/use-form.types.ts +1 -0
  169. package/dist/assets/composables/use-virtual-list/use-virtual-list.types.ts +1 -0
  170. package/dist/assets/deprecations.md +330 -0
  171. package/dist/assets/directives/keyboard-navigation/keyboard-navigation.types.ts +1 -0
  172. package/dist/assets/directives/tooltip/tooltip.types.ts +1 -0
  173. package/dist/assets/icons.json +415 -0
  174. package/dist/assets/index.ts +1 -1
  175. package/dist/assets/install.ts +1 -0
  176. package/dist/assets/tailwind/README.md +89 -0
  177. package/dist/assets/templates/dashboard-template/dashboard-template.types.ts +1 -0
  178. package/dist/assets/templates/data-grid-template/data-grid-template.stories.ts +1 -1
  179. package/dist/assets/templates/data-grid-template/data-grid-template.types.ts +1 -0
  180. package/dist/assets/utility-classes.md +92 -0
  181. package/dist/assets/utils/ts/currency/currency.types.ts +1 -0
  182. package/dist/assets/variables.css +309 -0
  183. package/dist/main.js +395 -29
  184. package/package.json +15 -6
package/dist/main.js CHANGED
@@ -22340,7 +22340,7 @@ function object(shape, params) {
22340
22340
  return new ZodMiniObject(def);
22341
22341
  }
22342
22342
 
22343
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22343
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22344
22344
  function isZ4Schema(s) {
22345
22345
  const schema = s;
22346
22346
  return !!schema._zod;
@@ -24630,7 +24630,7 @@ function date4(params) {
24630
24630
  // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
24631
24631
  config(en_default2());
24632
24632
 
24633
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
24633
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
24634
24634
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
24635
24635
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
24636
24636
  var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
@@ -26148,7 +26148,7 @@ var UrlElicitationRequiredError = class extends McpError {
26148
26148
  }
26149
26149
  };
26150
26150
 
26151
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
26151
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
26152
26152
  function isTerminal(status) {
26153
26153
  return status === "completed" || status === "failed" || status === "cancelled";
26154
26154
  }
@@ -27437,7 +27437,7 @@ var zodToJsonSchema = (schema, options) => {
27437
27437
  return combined;
27438
27438
  };
27439
27439
 
27440
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
27440
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
27441
27441
  function mapMiniTarget(t) {
27442
27442
  if (!t)
27443
27443
  return "draft-7";
@@ -27479,7 +27479,7 @@ function parseWithCompat(schema, data) {
27479
27479
  return result.data;
27480
27480
  }
27481
27481
 
27482
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
27482
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
27483
27483
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
27484
27484
  var Protocol = class {
27485
27485
  constructor(_options) {
@@ -28427,7 +28427,7 @@ function mergeCapabilities(base, additional) {
28427
28427
  return result;
28428
28428
  }
28429
28429
 
28430
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
28430
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
28431
28431
  var import_ajv = __toESM(require_ajv(), 1);
28432
28432
  var import_ajv_formats = __toESM(require_dist(), 1);
28433
28433
  function createDefaultAjvInstance() {
@@ -28495,7 +28495,7 @@ var AjvJsonSchemaValidator = class {
28495
28495
  }
28496
28496
  };
28497
28497
 
28498
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
28498
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
28499
28499
  var ExperimentalServerTasks = class {
28500
28500
  constructor(_server) {
28501
28501
  this._server = _server;
@@ -28517,6 +28517,147 @@ var ExperimentalServerTasks = class {
28517
28517
  requestStream(request, resultSchema, options) {
28518
28518
  return this._server.requestStream(request, resultSchema, options);
28519
28519
  }
28520
+ /**
28521
+ * Sends a sampling request and returns an AsyncGenerator that yields response messages.
28522
+ * The generator is guaranteed to end with either a 'result' or 'error' message.
28523
+ *
28524
+ * For task-augmented requests, yields 'taskCreated' and 'taskStatus' messages
28525
+ * before the final result.
28526
+ *
28527
+ * @example
28528
+ * ```typescript
28529
+ * const stream = server.experimental.tasks.createMessageStream({
28530
+ * messages: [{ role: 'user', content: { type: 'text', text: 'Hello' } }],
28531
+ * maxTokens: 100
28532
+ * }, {
28533
+ * onprogress: (progress) => {
28534
+ * // Handle streaming tokens via progress notifications
28535
+ * console.log('Progress:', progress.message);
28536
+ * }
28537
+ * });
28538
+ *
28539
+ * for await (const message of stream) {
28540
+ * switch (message.type) {
28541
+ * case 'taskCreated':
28542
+ * console.log('Task created:', message.task.taskId);
28543
+ * break;
28544
+ * case 'taskStatus':
28545
+ * console.log('Task status:', message.task.status);
28546
+ * break;
28547
+ * case 'result':
28548
+ * console.log('Final result:', message.result);
28549
+ * break;
28550
+ * case 'error':
28551
+ * console.error('Error:', message.error);
28552
+ * break;
28553
+ * }
28554
+ * }
28555
+ * ```
28556
+ *
28557
+ * @param params - The sampling request parameters
28558
+ * @param options - Optional request options (timeout, signal, task creation params, onprogress, etc.)
28559
+ * @returns AsyncGenerator that yields ResponseMessage objects
28560
+ *
28561
+ * @experimental
28562
+ */
28563
+ createMessageStream(params, options) {
28564
+ const clientCapabilities = this._server.getClientCapabilities();
28565
+ if ((params.tools || params.toolChoice) && !clientCapabilities?.sampling?.tools) {
28566
+ throw new Error("Client does not support sampling tools capability.");
28567
+ }
28568
+ if (params.messages.length > 0) {
28569
+ const lastMessage = params.messages[params.messages.length - 1];
28570
+ const lastContent = Array.isArray(lastMessage.content) ? lastMessage.content : [lastMessage.content];
28571
+ const hasToolResults = lastContent.some((c) => c.type === "tool_result");
28572
+ const previousMessage = params.messages.length > 1 ? params.messages[params.messages.length - 2] : void 0;
28573
+ const previousContent = previousMessage ? Array.isArray(previousMessage.content) ? previousMessage.content : [previousMessage.content] : [];
28574
+ const hasPreviousToolUse = previousContent.some((c) => c.type === "tool_use");
28575
+ if (hasToolResults) {
28576
+ if (lastContent.some((c) => c.type !== "tool_result")) {
28577
+ throw new Error("The last message must contain only tool_result content if any is present");
28578
+ }
28579
+ if (!hasPreviousToolUse) {
28580
+ throw new Error("tool_result blocks are not matching any tool_use from the previous message");
28581
+ }
28582
+ }
28583
+ if (hasPreviousToolUse) {
28584
+ const toolUseIds = new Set(previousContent.filter((c) => c.type === "tool_use").map((c) => c.id));
28585
+ const toolResultIds = new Set(lastContent.filter((c) => c.type === "tool_result").map((c) => c.toolUseId));
28586
+ if (toolUseIds.size !== toolResultIds.size || ![...toolUseIds].every((id) => toolResultIds.has(id))) {
28587
+ throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match");
28588
+ }
28589
+ }
28590
+ }
28591
+ return this.requestStream({
28592
+ method: "sampling/createMessage",
28593
+ params
28594
+ }, CreateMessageResultSchema, options);
28595
+ }
28596
+ /**
28597
+ * Sends an elicitation request and returns an AsyncGenerator that yields response messages.
28598
+ * The generator is guaranteed to end with either a 'result' or 'error' message.
28599
+ *
28600
+ * For task-augmented requests (especially URL-based elicitation), yields 'taskCreated'
28601
+ * and 'taskStatus' messages before the final result.
28602
+ *
28603
+ * @example
28604
+ * ```typescript
28605
+ * const stream = server.experimental.tasks.elicitInputStream({
28606
+ * mode: 'url',
28607
+ * message: 'Please authenticate',
28608
+ * elicitationId: 'auth-123',
28609
+ * url: 'https://example.com/auth'
28610
+ * }, {
28611
+ * task: { ttl: 300000 } // Task-augmented for long-running auth flow
28612
+ * });
28613
+ *
28614
+ * for await (const message of stream) {
28615
+ * switch (message.type) {
28616
+ * case 'taskCreated':
28617
+ * console.log('Task created:', message.task.taskId);
28618
+ * break;
28619
+ * case 'taskStatus':
28620
+ * console.log('Task status:', message.task.status);
28621
+ * break;
28622
+ * case 'result':
28623
+ * console.log('User action:', message.result.action);
28624
+ * break;
28625
+ * case 'error':
28626
+ * console.error('Error:', message.error);
28627
+ * break;
28628
+ * }
28629
+ * }
28630
+ * ```
28631
+ *
28632
+ * @param params - The elicitation request parameters
28633
+ * @param options - Optional request options (timeout, signal, task creation params, etc.)
28634
+ * @returns AsyncGenerator that yields ResponseMessage objects
28635
+ *
28636
+ * @experimental
28637
+ */
28638
+ elicitInputStream(params, options) {
28639
+ const clientCapabilities = this._server.getClientCapabilities();
28640
+ const mode = params.mode ?? "form";
28641
+ switch (mode) {
28642
+ case "url": {
28643
+ if (!clientCapabilities?.elicitation?.url) {
28644
+ throw new Error("Client does not support url elicitation.");
28645
+ }
28646
+ break;
28647
+ }
28648
+ case "form": {
28649
+ if (!clientCapabilities?.elicitation?.form) {
28650
+ throw new Error("Client does not support form elicitation.");
28651
+ }
28652
+ break;
28653
+ }
28654
+ }
28655
+ const normalizedParams = mode === "form" && params.mode === void 0 ? { ...params, mode: "form" } : params;
28656
+ return this.requestStream({
28657
+ method: "elicitation/create",
28658
+ params: normalizedParams
28659
+ }, ElicitResultSchema, options);
28660
+ }
28520
28661
  /**
28521
28662
  * Gets the current status of a task.
28522
28663
  *
@@ -28567,7 +28708,7 @@ var ExperimentalServerTasks = class {
28567
28708
  }
28568
28709
  };
28569
28710
 
28570
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
28711
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
28571
28712
  function assertToolsCallTaskCapability(requests, method, entityName) {
28572
28713
  if (!requests) {
28573
28714
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -28602,7 +28743,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
28602
28743
  }
28603
28744
  }
28604
28745
 
28605
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
28746
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
28606
28747
  var Server = class extends Protocol {
28607
28748
  /**
28608
28749
  * Initializes this server with the given name and version information.
@@ -28982,7 +29123,7 @@ var Server = class extends Protocol {
28982
29123
  }
28983
29124
  };
28984
29125
 
28985
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
29126
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
28986
29127
  var COMPLETABLE_SYMBOL = /* @__PURE__ */ Symbol.for("mcp.completable");
28987
29128
  function isCompletable(schema) {
28988
29129
  return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
@@ -28996,7 +29137,7 @@ var McpZodTypeKind;
28996
29137
  McpZodTypeKind2["Completable"] = "McpCompletable";
28997
29138
  })(McpZodTypeKind || (McpZodTypeKind = {}));
28998
29139
 
28999
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
29140
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
29000
29141
  var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
29001
29142
  function validateToolName(name) {
29002
29143
  const warnings = [];
@@ -29054,7 +29195,7 @@ function validateAndWarnToolName(name) {
29054
29195
  return result.isValid;
29055
29196
  }
29056
29197
 
29057
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
29198
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
29058
29199
  var ExperimentalMcpServerTasks = class {
29059
29200
  constructor(_mcpServer) {
29060
29201
  this._mcpServer = _mcpServer;
@@ -29072,7 +29213,7 @@ var ExperimentalMcpServerTasks = class {
29072
29213
  // node_modules/.pnpm/zod@4.3.6/node_modules/zod/index.js
29073
29214
  var zod_default = external_exports3;
29074
29215
 
29075
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
29216
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
29076
29217
  var McpServer = class {
29077
29218
  constructor(serverInfo, options) {
29078
29219
  this._registeredResources = {};
@@ -29858,10 +29999,10 @@ var EMPTY_COMPLETION_RESULT = {
29858
29999
  }
29859
30000
  };
29860
30001
 
29861
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30002
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
29862
30003
  import process3 from "node:process";
29863
30004
 
29864
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
30005
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
29865
30006
  var ReadBuffer = class {
29866
30007
  append(chunk) {
29867
30008
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
@@ -29889,7 +30030,7 @@ function serializeMessage(message) {
29889
30030
  return JSON.stringify(message) + "\n";
29890
30031
  }
29891
30032
 
29892
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30033
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
29893
30034
  var StdioServerTransport = class {
29894
30035
  constructor(_stdin = process3.stdin, _stdout = process3.stdout) {
29895
30036
  this._stdin = _stdin;
@@ -29969,14 +30110,14 @@ function addGetAllComponents(server) {
29969
30110
  "get_all_components",
29970
30111
  {
29971
30112
  description: `
29972
- Retrieves the main index file that exports all available Bento components.
29973
- Use this to understand which components are available in the library.
30113
+ Retrieves the global component type definitions file that lists all available Bento components.
30114
+ Use this to understand which components are available in the library and their names.
29974
30115
  Returns:
29975
- str: The raw content of the packages/vue2/src/index.ts file.
30116
+ str: The list of components available in Bento
29976
30117
  `
29977
30118
  },
29978
30119
  () => {
29979
- const filePath = "index.ts";
30120
+ const filePath = "components.json";
29980
30121
  return {
29981
30122
  content: [{ type: "text", text: getFile(filePath) }]
29982
30123
  };
@@ -29990,13 +30131,13 @@ function addGetComponent(server) {
29990
30131
  "get_component",
29991
30132
  {
29992
30133
  description: `
29993
- Retrieves the documentation, stories, and Vue implementation for a list of components from the private repo.
30134
+ Retrieves the documentation, stories, Vue implementation, and type definitions for a list of components from the private repo.
29994
30135
 
29995
30136
  Args:
29996
30137
  componentNames (Array<string>): A list of component names (e.g., ["button", "modal"]).
29997
30138
 
29998
30139
  Returns:
29999
- str: A Markdown formatted string containing the contents of the .docs.mdx, .stories.ts, and .vue files.
30140
+ str: A Markdown formatted string containing the contents of the .docs.mdx, .stories.ts, .vue, and .types.ts files.
30000
30141
  `,
30001
30142
  inputSchema: {
30002
30143
  componentNames: zod_default.array(zod_default.string()).describe("A list of component names")
@@ -30004,10 +30145,11 @@ function addGetComponent(server) {
30004
30145
  },
30005
30146
  async ({ componentNames }) => {
30006
30147
  const output = [
30007
- "I have retrieved the requested component context. For each component, I have provided three sections:",
30148
+ "I have retrieved the requested component context. For each component, I have provided four sections:",
30008
30149
  "1. **Documentation (.docs.mdx)**: Explains how to use the component, props, and design guidelines.",
30009
30150
  "2. **Stories (.stories.ts)**: Shows code examples of how to implement the component (emits, props usage).",
30010
30151
  "3. **Implementation (.vue)**: The internal logic, properties, emits, and slots of the component.",
30152
+ "4. **Types (.types.ts)**: Explicit type definitions for props, emits, and slots. CRITICAL for understanding the component contract.",
30011
30153
  "---"
30012
30154
  ];
30013
30155
  const basePath = "components";
@@ -30015,6 +30157,7 @@ function addGetComponent(server) {
30015
30157
  const docsContent = getFile(`${basePath}/${component}/${component}.docs.mdx`);
30016
30158
  const storiesContent = getFile(`${basePath}/${component}/${component}.stories.ts`);
30017
30159
  const vueContent = getFile(`${basePath}/${component}/${component}.vue`);
30160
+ const typesContent = getFile(`${basePath}/${component}/${component}.types.ts`);
30018
30161
  const componentSection = [
30019
30162
  `# Component: ${component}`,
30020
30163
  `## 1. Documentation (${component}.docs.mdx)`,
@@ -30028,6 +30171,10 @@ function addGetComponent(server) {
30028
30171
  `## 3. Implementation (${component}.vue)`,
30029
30172
  "```vue",
30030
30173
  vueContent,
30174
+ "```",
30175
+ `## 4. Types (${component}.types.ts)`,
30176
+ "```typescript",
30177
+ typesContent,
30031
30178
  "```"
30032
30179
  ].join("\n\n");
30033
30180
  output.push(componentSection);
@@ -30044,19 +30191,229 @@ function addGetComponent(server) {
30044
30191
  );
30045
30192
  }
30046
30193
 
30194
+ // packages/mcp/src/tools/get-deprecations.ts
30195
+ function addGetDeprecations(server) {
30196
+ server.registerTool(
30197
+ "get_deprecations",
30198
+ {
30199
+ description: `
30200
+ Retrieves the Bento Deprecations Registry.
30201
+ Use this tool to find out which components, properties, or features are deprecated and what are the recommended alternatives.
30202
+ Returns:
30203
+ str: A Markdown formatted string containing the deprecations list.
30204
+ `
30205
+ },
30206
+ () => {
30207
+ const filePath = "deprecations.md";
30208
+ return {
30209
+ content: [{ type: "text", text: getFile(filePath) }]
30210
+ };
30211
+ }
30212
+ );
30213
+ }
30214
+
30215
+ // packages/mcp/src/tools/get-docs.ts
30216
+ function addGetDocs(server) {
30217
+ server.registerTool(
30218
+ "get_docs",
30219
+ {
30220
+ description: `
30221
+ Retrieves specific documentation files for Bento.
30222
+ Supported doc types:
30223
+ - 'getting-started': General guide for installing and configuring Bento.
30224
+ - 'tailwind': Tailwind preset documentation and setup.
30225
+ Returns:
30226
+ str: The content of the requested documentation file.
30227
+ `,
30228
+ inputSchema: {
30229
+ docType: zod_default.enum(["tailwind", "getting-started"]).describe("The type of documentation to retrieve")
30230
+ }
30231
+ },
30232
+ async ({ docType }) => {
30233
+ let filePath = "";
30234
+ if (docType === "tailwind") {
30235
+ filePath = "tailwind/README.md";
30236
+ } else if (docType === "getting-started") {
30237
+ filePath = "install.ts";
30238
+ }
30239
+ return {
30240
+ content: [{ type: "text", text: getFile(filePath) }]
30241
+ };
30242
+ }
30243
+ );
30244
+ }
30245
+
30246
+ // packages/mcp/src/tools/get-design-tokens.ts
30247
+ function addGetDesignTokens(server) {
30248
+ server.registerTool(
30249
+ "get_design_tokens",
30250
+ {
30251
+ description: `
30252
+ Retrieves Bento Design Tokens (CSS variables).
30253
+ Tokens are grouped by semantic categories (color, spacing, border, shadow, etc.).
30254
+ Use this to find the correct CSS variables for styling.
30255
+ `,
30256
+ inputSchema: {
30257
+ searchQuery: zod_default.string().optional().describe('Optional search term to filter tokens (e.g., "critical", "spacer", "background")')
30258
+ }
30259
+ },
30260
+ async ({ searchQuery }) => {
30261
+ const cssContent = getFile("variables.css");
30262
+ if (cssContent.startsWith("Error:")) {
30263
+ return { content: [{ type: "text", text: cssContent }] };
30264
+ }
30265
+ const lines = cssContent.split("\n");
30266
+ const tokens = [];
30267
+ for (const line of lines) {
30268
+ const match = line.match(/^\s*(--b-[\w-]+):\s*([^;]+);/);
30269
+ if (match) {
30270
+ const name = match[1];
30271
+ const value = match[2].trim();
30272
+ let category = "other";
30273
+ if (name.includes("-color-")) {
30274
+ category = "color";
30275
+ } else if (name.includes("-spacer-")) {
30276
+ category = "spacing";
30277
+ } else if (name.includes("-border-")) {
30278
+ category = "border";
30279
+ } else if (name.includes("-shadow-")) {
30280
+ category = "shadow";
30281
+ } else if (name.includes("-animation-")) {
30282
+ category = "animation";
30283
+ } else if (name.includes("-font-")) {
30284
+ category = "typography";
30285
+ } else if (name.includes("-media-query-")) {
30286
+ category = "layout";
30287
+ }
30288
+ tokens.push({ name, value, category });
30289
+ }
30290
+ }
30291
+ const filteredTokens = searchQuery ? tokens.filter((t) => t.name.includes(searchQuery) || t.category.includes(searchQuery)) : tokens;
30292
+ const grouped = {};
30293
+ for (const t of filteredTokens) {
30294
+ if (!grouped[t.category]) {
30295
+ grouped[t.category] = [];
30296
+ }
30297
+ grouped[t.category].push(t);
30298
+ }
30299
+ let output = "# Bento Design Tokens\n\n";
30300
+ if (searchQuery) {
30301
+ output += `Filtering by: "${searchQuery}"
30302
+
30303
+ `;
30304
+ }
30305
+ for (const [category, catTokens] of Object.entries(grouped)) {
30306
+ output += `## ${category.charAt(0).toUpperCase() + category.slice(1)}
30307
+ `;
30308
+ for (const t of catTokens) {
30309
+ output += `- \`${t.name}\`: \`${t.value}\`
30310
+ `;
30311
+ }
30312
+ output += "\n";
30313
+ }
30314
+ if (filteredTokens.length === 0) {
30315
+ output += "No tokens found matching your search.";
30316
+ }
30317
+ return {
30318
+ content: [{ type: "text", text: output }]
30319
+ };
30320
+ }
30321
+ );
30322
+ }
30323
+
30324
+ // packages/mcp/src/tools/get-utility-classes.ts
30325
+ function addGetUtilityClasses(server) {
30326
+ server.registerTool(
30327
+ "get_utility_classes",
30328
+ {
30329
+ description: `
30330
+ Retrieves the reference guide for legacy Bento utility classes (b- prefix).
30331
+ Includes spacing, color, and display utilities.
30332
+ Also provides guidance on the transition to Tailwind CSS.
30333
+ `
30334
+ },
30335
+ () => {
30336
+ const filePath = "utility-classes.md";
30337
+ return {
30338
+ content: [{ type: "text", text: getFile(filePath) }]
30339
+ };
30340
+ }
30341
+ );
30342
+ }
30343
+
30344
+ // packages/mcp/src/tools/get-icons.ts
30345
+ function addGetIcons(server) {
30346
+ server.registerTool(
30347
+ "get_icons",
30348
+ {
30349
+ description: `
30350
+ Retrieves the registry of available Bento icons from @adyen/ui-assets-icons-16.
30351
+ Use this to find the correct icon name for imports.
30352
+ `,
30353
+ inputSchema: {
30354
+ searchQuery: zod_default.string().optional().describe('Optional search term to filter icons (e.g., "arrow", "check", "edit")')
30355
+ }
30356
+ },
30357
+ async ({ searchQuery }) => {
30358
+ const iconsContent = getFile("icons.json");
30359
+ if (iconsContent.startsWith("Error:")) {
30360
+ return { content: [{ type: "text", text: iconsContent }] };
30361
+ }
30362
+ try {
30363
+ const icons = JSON.parse(iconsContent);
30364
+ const filteredIcons = searchQuery ? icons.filter((icon) => icon.toLowerCase().includes(searchQuery.toLowerCase())) : icons;
30365
+ let output = "# Bento Icon Registry (@adyen/ui-assets-icons-16)\n\n";
30366
+ if (searchQuery) {
30367
+ output += `Filtering by: "${searchQuery}" (${filteredIcons.length} icons found)
30368
+
30369
+ `;
30370
+ } else {
30371
+ output += `Total icons available: ${icons.length}
30372
+
30373
+ `;
30374
+ }
30375
+ if (filteredIcons.length > 0) {
30376
+ output += "### Icon Names\n";
30377
+ output += filteredIcons.map((name) => `- \`${name}\``).join("\n");
30378
+ output += "\n\n**Note**: Import these from `@adyen/ui-assets-icons-16`. For example: `import { " + filteredIcons[0].split("-").map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("") + ' } from "@adyen/ui-assets-icons-16";`';
30379
+ } else {
30380
+ output += "No icons found matching your search.";
30381
+ }
30382
+ return {
30383
+ content: [{ type: "text", text: output }]
30384
+ };
30385
+ } catch (error48) {
30386
+ return {
30387
+ content: [
30388
+ {
30389
+ type: "text",
30390
+ text: `Error parsing icon registry: ${error48 instanceof Error ? error48.message : String(error48)}`
30391
+ }
30392
+ ]
30393
+ };
30394
+ }
30395
+ }
30396
+ );
30397
+ }
30398
+
30047
30399
  // packages/mcp/package.json
30048
30400
  var package_default = {
30049
30401
  name: "@adyen/bento-mcp",
30050
30402
  mcpName: "io.github.adyen/bento-mcp",
30051
- version: "0.1.4",
30403
+ version: "0.2.1",
30052
30404
  type: "module",
30053
30405
  description: "A Model Context Protocol server implementation for Bento",
30054
30406
  license: "MIT",
30055
30407
  packageManager: "pnpm@10.26.2",
30056
30408
  main: "dist/main.js",
30057
- bin: "dist/main.js",
30409
+ bin: {
30410
+ "bento-mcp": "dist/main.js",
30411
+ "bento-add-skill": "bin/add-skill.js"
30412
+ },
30058
30413
  files: [
30059
30414
  "dist/",
30415
+ "bin/",
30416
+ "SKILL.md",
30060
30417
  "README.md",
30061
30418
  "CHANGELOG.md"
30062
30419
  ],
@@ -30071,9 +30428,13 @@ var package_default = {
30071
30428
  url: "https://github.com/adyen/bento.git"
30072
30429
  },
30073
30430
  scripts: {
30431
+ "add-skill": "node bin/add-skill.js",
30074
30432
  server: "node dist/main.js",
30075
30433
  "serve:inspector": "CLIENT_PORT=3000 SERVER_PORT=9001 mcp-inspector node dist/main.js"
30076
30434
  },
30435
+ skills: {
30436
+ "writing-bento-components": "./SKILL.md"
30437
+ },
30077
30438
  keywords: [
30078
30439
  "ai",
30079
30440
  "mcp",
@@ -30083,15 +30444,15 @@ var package_default = {
30083
30444
  "bento"
30084
30445
  ],
30085
30446
  dependencies: {
30086
- "@modelcontextprotocol/sdk": "1.26.0",
30447
+ "@modelcontextprotocol/sdk": "1.27.1",
30087
30448
  zod: "4.3.6"
30088
30449
  },
30089
30450
  devDependencies: {
30090
- "@modelcontextprotocol/inspector": "0.19.0",
30451
+ "@modelcontextprotocol/inspector": "0.21.1",
30091
30452
  "@playwright/test": "catalog:",
30092
30453
  "@nx/playwright": "catalog:nx",
30093
- "@swc/cli": "0.7.10",
30094
- "@swc/core": "1.15.10"
30454
+ "@swc/cli": "0.8.0",
30455
+ "@swc/core": "^1.15.0"
30095
30456
  }
30096
30457
  };
30097
30458
 
@@ -30104,6 +30465,11 @@ async function main() {
30104
30465
  });
30105
30466
  addGetAllComponents(server);
30106
30467
  addGetComponent(server);
30468
+ addGetDeprecations(server);
30469
+ addGetDocs(server);
30470
+ addGetDesignTokens(server);
30471
+ addGetUtilityClasses(server);
30472
+ addGetIcons(server);
30107
30473
  const transport = new StdioServerTransport();
30108
30474
  await server.connect(transport);
30109
30475
  console.error("Bento MCP Server running on stdio");
package/package.json CHANGED
@@ -1,14 +1,19 @@
1
1
  {
2
2
  "name": "@adyen/bento-mcp",
3
3
  "mcpName": "io.github.adyen/bento-mcp",
4
- "version": "0.1.4",
4
+ "version": "0.2.1",
5
5
  "type": "module",
6
6
  "description": "A Model Context Protocol server implementation for Bento",
7
7
  "license": "MIT",
8
8
  "main": "dist/main.js",
9
- "bin": "dist/main.js",
9
+ "bin": {
10
+ "bento-mcp": "dist/main.js",
11
+ "bento-add-skill": "bin/add-skill.js"
12
+ },
10
13
  "files": [
11
14
  "dist/",
15
+ "bin/",
16
+ "SKILL.md",
12
17
  "README.md",
13
18
  "CHANGELOG.md"
14
19
  ],
@@ -22,6 +27,9 @@
22
27
  "type": "git",
23
28
  "url": "https://github.com/adyen/bento.git"
24
29
  },
30
+ "skills": {
31
+ "writing-bento-components": "./SKILL.md"
32
+ },
25
33
  "keywords": [
26
34
  "ai",
27
35
  "mcp",
@@ -31,17 +39,18 @@
31
39
  "bento"
32
40
  ],
33
41
  "dependencies": {
34
- "@modelcontextprotocol/sdk": "1.26.0",
42
+ "@modelcontextprotocol/sdk": "1.27.1",
35
43
  "zod": "4.3.6"
36
44
  },
37
45
  "devDependencies": {
38
- "@modelcontextprotocol/inspector": "0.19.0",
46
+ "@modelcontextprotocol/inspector": "0.21.1",
39
47
  "@playwright/test": "1.42.1",
40
48
  "@nx/playwright": "22.4.0",
41
- "@swc/cli": "0.7.10",
42
- "@swc/core": "1.15.10"
49
+ "@swc/cli": "0.8.0",
50
+ "@swc/core": "^1.15.0"
43
51
  },
44
52
  "scripts": {
53
+ "add-skill": "node bin/add-skill.js",
45
54
  "server": "node dist/main.js",
46
55
  "serve:inspector": "CLIENT_PORT=3000 SERVER_PORT=9001 mcp-inspector node dist/main.js"
47
56
  }