@yoryoboy/bi-mcp 1.11.0 → 1.13.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 (237) hide show
  1. package/README.md +4 -5
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/index.js +398 -8
  4. package/dist/index.js.map +2 -2
  5. package/dist/mcp-use.json +2 -2
  6. package/dist/src/config/__tests__/meta.test.js +35 -0
  7. package/dist/src/config/__tests__/meta.test.js.map +7 -0
  8. package/dist/src/config/meta-store.js +109 -0
  9. package/dist/src/config/meta-store.js.map +7 -0
  10. package/dist/src/config/meta.js +0 -2
  11. package/dist/src/config/meta.js.map +2 -2
  12. package/dist/src/meta/__tests__/meta-utils.test.js +155 -0
  13. package/dist/src/meta/__tests__/meta-utils.test.js.map +7 -0
  14. package/dist/src/services/mercadolibre/__tests__/mercadolibre-api.test.js +265 -0
  15. package/dist/src/services/mercadolibre/__tests__/mercadolibre-api.test.js.map +7 -0
  16. package/dist/src/services/mercadolibre/__tests__/mercadolibre-items.test.js +311 -0
  17. package/dist/src/services/mercadolibre/__tests__/mercadolibre-items.test.js.map +7 -0
  18. package/dist/src/services/mercadolibre/__tests__/mercadolibre-orders.test.js +220 -0
  19. package/dist/src/services/mercadolibre/__tests__/mercadolibre-orders.test.js.map +7 -0
  20. package/dist/src/services/meta/__tests__/meta-ads.test.js +126 -0
  21. package/dist/src/services/meta/__tests__/meta-ads.test.js.map +7 -0
  22. package/dist/src/services/meta/__tests__/meta-api.test.js +70 -0
  23. package/dist/src/services/meta/__tests__/meta-api.test.js.map +7 -0
  24. package/dist/src/services/meta/meta-ads.js +94 -40
  25. package/dist/src/services/meta/meta-ads.js.map +2 -2
  26. package/dist/src/services/meta/meta-api.js +8 -6
  27. package/dist/src/services/meta/meta-api.js.map +2 -2
  28. package/dist/src/services/vtex/__tests__/vtex-catalog-write-batch.test.js +165 -0
  29. package/dist/src/services/vtex/__tests__/vtex-catalog-write-batch.test.js.map +7 -0
  30. package/dist/src/services/vtex/__tests__/vtex-catalog-write-eans.test.js +92 -0
  31. package/dist/src/services/vtex/__tests__/vtex-catalog-write-eans.test.js.map +7 -0
  32. package/dist/src/services/vtex/__tests__/vtex-catalog-write-products.test.js +41 -0
  33. package/dist/src/services/vtex/__tests__/vtex-catalog-write-products.test.js.map +7 -0
  34. package/dist/src/services/vtex/__tests__/vtex-catalog.test.js +80 -0
  35. package/dist/src/services/vtex/__tests__/vtex-catalog.test.js.map +7 -0
  36. package/dist/src/services/vtex/__tests__/vtex-orders-write-http.test.js +85 -0
  37. package/dist/src/services/vtex/__tests__/vtex-orders-write-http.test.js.map +7 -0
  38. package/dist/src/services/vtex/__tests__/vtex-orders-write-state-validation.test.js +251 -0
  39. package/dist/src/services/vtex/__tests__/vtex-orders-write-state-validation.test.js.map +7 -0
  40. package/dist/src/services/vtex/__tests__/vtex-write.test.js +111 -0
  41. package/dist/src/services/vtex/__tests__/vtex-write.test.js.map +7 -0
  42. package/dist/src/services/vtex/vtex-catalog-write.js +194 -1
  43. package/dist/src/services/vtex/vtex-catalog-write.js.map +2 -2
  44. package/dist/src/services/vtex/vtex-catalog.js +118 -1
  45. package/dist/src/services/vtex/vtex-catalog.js.map +2 -2
  46. package/dist/src/services/vtex/vtex-pricing-write.js +5 -0
  47. package/dist/src/services/vtex/vtex-pricing-write.js.map +2 -2
  48. package/dist/src/services/vtex/vtex-write.js +67 -1
  49. package/dist/src/services/vtex/vtex-write.js.map +2 -2
  50. package/dist/src/tools/config/list-profiles.js +37 -6
  51. package/dist/src/tools/config/list-profiles.js.map +2 -2
  52. package/dist/src/tools/index.js.map +2 -2
  53. package/dist/src/tools/mercadolibre/__tests__/helpers.test.js +37 -0
  54. package/dist/src/tools/mercadolibre/__tests__/helpers.test.js.map +7 -0
  55. package/dist/src/tools/mercadolibre/__tests__/profile-resolution.test.js +30 -0
  56. package/dist/src/tools/mercadolibre/__tests__/profile-resolution.test.js.map +7 -0
  57. package/dist/src/tools/mercadolibre/profile-resolution.js +4 -50
  58. package/dist/src/tools/mercadolibre/profile-resolution.js.map +2 -2
  59. package/dist/src/tools/meta/__tests__/pagination.test.js +133 -0
  60. package/dist/src/tools/meta/__tests__/pagination.test.js.map +7 -0
  61. package/dist/src/tools/meta/__tests__/profile-access.test.js +262 -0
  62. package/dist/src/tools/meta/__tests__/profile-access.test.js.map +7 -0
  63. package/dist/src/tools/meta/__tests__/read-tools.test.js +722 -0
  64. package/dist/src/tools/meta/__tests__/read-tools.test.js.map +7 -0
  65. package/dist/src/tools/meta/__tests__/schemas.test.js +103 -0
  66. package/dist/src/tools/meta/__tests__/schemas.test.js.map +7 -0
  67. package/dist/src/tools/meta/account-overview.js +37 -19
  68. package/dist/src/tools/meta/account-overview.js.map +2 -2
  69. package/dist/src/tools/meta/ad-account-info.js +31 -6
  70. package/dist/src/tools/meta/ad-account-info.js.map +2 -2
  71. package/dist/src/tools/meta/ads-performance.js +35 -21
  72. package/dist/src/tools/meta/ads-performance.js.map +2 -2
  73. package/dist/src/tools/meta/campaign-performance.js +35 -18
  74. package/dist/src/tools/meta/campaign-performance.js.map +2 -2
  75. package/dist/src/tools/meta/list-accessible-ad-accounts.js +39 -10
  76. package/dist/src/tools/meta/list-accessible-ad-accounts.js.map +2 -2
  77. package/dist/src/tools/meta/list-accessible-businesses.js +37 -13
  78. package/dist/src/tools/meta/list-accessible-businesses.js.map +2 -2
  79. package/dist/src/tools/meta/placement-mix.js +37 -22
  80. package/dist/src/tools/meta/placement-mix.js.map +2 -2
  81. package/dist/src/tools/meta/profile-access.js +215 -0
  82. package/dist/src/tools/meta/profile-access.js.map +7 -0
  83. package/dist/src/tools/meta/schema-helpers.js +19 -0
  84. package/dist/src/tools/meta/schema-helpers.js.map +7 -0
  85. package/dist/src/tools/meta/time-series.js +40 -23
  86. package/dist/src/tools/meta/time-series.js.map +2 -2
  87. package/dist/src/tools/vtex/__tests__/catalog-admin-batch.test.js +233 -0
  88. package/dist/src/tools/vtex/__tests__/catalog-admin-batch.test.js.map +7 -0
  89. package/dist/src/tools/vtex/__tests__/catalog-admin-categories.test.js +649 -0
  90. package/dist/src/tools/vtex/__tests__/catalog-admin-categories.test.js.map +7 -0
  91. package/dist/src/tools/vtex/__tests__/catalog-admin-product-specifications.test.js +339 -0
  92. package/dist/src/tools/vtex/__tests__/catalog-admin-product-specifications.test.js.map +7 -0
  93. package/dist/src/tools/vtex/__tests__/catalog-admin-products-skus.test.js +235 -0
  94. package/dist/src/tools/vtex/__tests__/catalog-admin-products-skus.test.js.map +7 -0
  95. package/dist/src/tools/vtex/__tests__/catalog-navigation-reads.test.js +372 -0
  96. package/dist/src/tools/vtex/__tests__/catalog-navigation-reads.test.js.map +7 -0
  97. package/dist/src/tools/vtex/__tests__/catalog-navigation-surface.test.js +57 -0
  98. package/dist/src/tools/vtex/__tests__/catalog-navigation-surface.test.js.map +7 -0
  99. package/dist/src/tools/vtex/__tests__/write-helpers.test.js +97 -0
  100. package/dist/src/tools/vtex/__tests__/write-helpers.test.js.map +7 -0
  101. package/dist/src/tools/vtex/activate-sku.js +1 -48
  102. package/dist/src/tools/vtex/activate-sku.js.map +2 -2
  103. package/dist/src/tools/vtex/associate-specification.js +3 -54
  104. package/dist/src/tools/vtex/associate-specification.js.map +2 -2
  105. package/dist/src/tools/vtex/attach-catalog-image.js +3 -57
  106. package/dist/src/tools/vtex/attach-catalog-image.js.map +2 -2
  107. package/dist/src/tools/vtex/catalog-admin-batch.js +298 -0
  108. package/dist/src/tools/vtex/catalog-admin-batch.js.map +7 -0
  109. package/dist/src/tools/vtex/catalog-admin-categories.js +542 -0
  110. package/dist/src/tools/vtex/catalog-admin-categories.js.map +7 -0
  111. package/dist/src/tools/vtex/catalog-admin-product-specifications.js +275 -0
  112. package/dist/src/tools/vtex/catalog-admin-product-specifications.js.map +7 -0
  113. package/dist/src/tools/vtex/catalog-admin-products-skus.js +475 -0
  114. package/dist/src/tools/vtex/catalog-admin-products-skus.js.map +7 -0
  115. package/dist/src/tools/vtex/catalog-navigation-reads.js +430 -0
  116. package/dist/src/tools/vtex/catalog-navigation-reads.js.map +7 -0
  117. package/dist/src/tools/vtex/create-brand.js +1 -64
  118. package/dist/src/tools/vtex/create-brand.js.map +2 -2
  119. package/dist/src/tools/vtex/create-category.js +1 -76
  120. package/dist/src/tools/vtex/create-category.js.map +2 -2
  121. package/dist/src/tools/vtex/create-product-with-sku.js +3 -114
  122. package/dist/src/tools/vtex/create-product-with-sku.js.map +2 -2
  123. package/dist/src/tools/vtex/create-specification-value.js +3 -47
  124. package/dist/src/tools/vtex/create-specification-value.js.map +2 -2
  125. package/dist/src/tools/vtex/create-specification.js +1 -80
  126. package/dist/src/tools/vtex/create-specification.js.map +2 -2
  127. package/dist/src/tools/vtex/deactivate-sku.js +1 -48
  128. package/dist/src/tools/vtex/deactivate-sku.js.map +2 -2
  129. package/dist/src/tools/vtex/delete-all-product-specifications.js +9 -0
  130. package/dist/src/tools/vtex/delete-all-product-specifications.js.map +7 -0
  131. package/dist/src/tools/vtex/delete-all-sku-specifications.js +9 -0
  132. package/dist/src/tools/vtex/delete-all-sku-specifications.js.map +7 -0
  133. package/dist/src/tools/vtex/delete-brand.js +9 -0
  134. package/dist/src/tools/vtex/delete-brand.js.map +7 -0
  135. package/dist/src/tools/vtex/delete-catalog-image.js +9 -0
  136. package/dist/src/tools/vtex/delete-catalog-image.js.map +7 -0
  137. package/dist/src/tools/vtex/delete-product-specification.js +9 -0
  138. package/dist/src/tools/vtex/delete-product-specification.js.map +7 -0
  139. package/dist/src/tools/vtex/delete-sku-price.js +55 -0
  140. package/dist/src/tools/vtex/delete-sku-price.js.map +7 -0
  141. package/dist/src/tools/vtex/delete-sku-specification.js +9 -0
  142. package/dist/src/tools/vtex/delete-sku-specification.js.map +7 -0
  143. package/dist/src/tools/vtex/get-brand.js +6 -0
  144. package/dist/src/tools/vtex/get-brand.js.map +7 -0
  145. package/dist/src/tools/vtex/get-category-tree.js +6 -0
  146. package/dist/src/tools/vtex/get-category-tree.js.map +7 -0
  147. package/dist/src/tools/vtex/get-category.js +6 -0
  148. package/dist/src/tools/vtex/get-category.js.map +7 -0
  149. package/dist/src/tools/vtex/get-product-specifications.js +9 -0
  150. package/dist/src/tools/vtex/get-product-specifications.js.map +7 -0
  151. package/dist/src/tools/vtex/get-product.js +6 -0
  152. package/dist/src/tools/vtex/get-product.js.map +7 -0
  153. package/dist/src/tools/vtex/get-sku.js +6 -0
  154. package/dist/src/tools/vtex/get-sku.js.map +7 -0
  155. package/dist/src/tools/vtex/index.js +23 -1
  156. package/dist/src/tools/vtex/index.js.map +2 -2
  157. package/dist/src/tools/vtex/list-brands.js +6 -0
  158. package/dist/src/tools/vtex/list-brands.js.map +7 -0
  159. package/dist/src/tools/vtex/list-categories.js +6 -0
  160. package/dist/src/tools/vtex/list-categories.js.map +7 -0
  161. package/dist/src/tools/vtex/list-products-by-category.js +6 -0
  162. package/dist/src/tools/vtex/list-products-by-category.js.map +7 -0
  163. package/dist/src/tools/vtex/list-products.js +6 -0
  164. package/dist/src/tools/vtex/list-products.js.map +7 -0
  165. package/dist/src/tools/vtex/list-skus-by-product.js +6 -0
  166. package/dist/src/tools/vtex/list-skus-by-product.js.map +7 -0
  167. package/dist/src/tools/vtex/list-specification-groups.js +9 -0
  168. package/dist/src/tools/vtex/list-specification-groups.js.map +7 -0
  169. package/dist/src/tools/vtex/move-category.js +6 -0
  170. package/dist/src/tools/vtex/move-category.js.map +7 -0
  171. package/dist/src/tools/vtex/profile-resolution.js +4 -51
  172. package/dist/src/tools/vtex/profile-resolution.js.map +2 -2
  173. package/dist/src/tools/vtex/update-brand.js +6 -0
  174. package/dist/src/tools/vtex/update-brand.js.map +7 -0
  175. package/dist/src/tools/vtex/update-category.js +6 -0
  176. package/dist/src/tools/vtex/update-category.js.map +7 -0
  177. package/dist/src/tools/vtex/update-product-basic-fields.js +3 -65
  178. package/dist/src/tools/vtex/update-product-basic-fields.js.map +2 -2
  179. package/dist/src/tools/vtex/update-sku-basic-fields.js +1 -87
  180. package/dist/src/tools/vtex/update-sku-basic-fields.js.map +2 -2
  181. package/dist/src/tools/vtex/update-sku-price.js +21 -1
  182. package/dist/src/tools/vtex/update-sku-price.js.map +2 -2
  183. package/dist/src/tools/vtex/write-helpers.js +104 -14
  184. package/dist/src/tools/vtex/write-helpers.js.map +2 -2
  185. package/dist/src/utils/provider-profile-selection.js +117 -0
  186. package/dist/src/utils/provider-profile-selection.js.map +7 -0
  187. package/dist/tests/meli/mercadolibre-tool-handlers-medium-batch4.test.js +678 -0
  188. package/dist/tests/meli/mercadolibre-tool-handlers-medium-batch4.test.js.map +7 -0
  189. package/dist/tests/meli/mercadolibre-tool-handlers-monster-batch5.test.js +564 -0
  190. package/dist/tests/meli/mercadolibre-tool-handlers-monster-batch5.test.js.map +7 -0
  191. package/dist/tests/meli/mercadolibre-tool-handlers-monster-batch6.test.js +387 -0
  192. package/dist/tests/meli/mercadolibre-tool-handlers-monster-batch6.test.js.map +7 -0
  193. package/dist/tests/meli/mercadolibre-tool-handlers-monster-batch7.test.js +368 -0
  194. package/dist/tests/meli/mercadolibre-tool-handlers-monster-batch7.test.js.map +7 -0
  195. package/dist/tests/meli/mercadolibre-tool-handlers-small.test.js +626 -0
  196. package/dist/tests/meli/mercadolibre-tool-handlers-small.test.js.map +7 -0
  197. package/dist/tests/meli/mercadolibre-tool-handlers-write-batch8.test.js +480 -0
  198. package/dist/tests/meli/mercadolibre-tool-handlers-write-batch8.test.js.map +7 -0
  199. package/dist/tests/setup.js +2 -0
  200. package/dist/tests/setup.js.map +7 -0
  201. package/dist/tests/smoke/test-harness.test.js +7 -0
  202. package/dist/tests/smoke/test-harness.test.js.map +7 -0
  203. package/dist/tests/vtex/read-only-utils.test.js +161 -0
  204. package/dist/tests/vtex/read-only-utils.test.js.map +7 -0
  205. package/dist/tests/vtex/vtex-catalog-admin-docs.test.js +24 -0
  206. package/dist/tests/vtex/vtex-catalog-admin-docs.test.js.map +7 -0
  207. package/dist/tests/vtex/vtex-catalog-admin-surface.test.js +30 -0
  208. package/dist/tests/vtex/vtex-catalog-admin-surface.test.js.map +7 -0
  209. package/dist/tests/vtex/vtex-catalog-write-tools.test.js +712 -0
  210. package/dist/tests/vtex/vtex-catalog-write-tools.test.js.map +7 -0
  211. package/dist/tests/vtex/vtex-catalog.service.test.js +51 -0
  212. package/dist/tests/vtex/vtex-catalog.service.test.js.map +7 -0
  213. package/dist/tests/vtex/vtex-inventory-tools.test.js +201 -0
  214. package/dist/tests/vtex/vtex-inventory-tools.test.js.map +7 -0
  215. package/dist/tests/vtex/vtex-logistics.service.test.js +134 -0
  216. package/dist/tests/vtex/vtex-logistics.service.test.js.map +7 -0
  217. package/dist/tests/vtex/vtex-order-details.tool.test.js +141 -0
  218. package/dist/tests/vtex/vtex-order-details.tool.test.js.map +7 -0
  219. package/dist/tests/vtex/vtex-order-write-tools.test.js +483 -0
  220. package/dist/tests/vtex/vtex-order-write-tools.test.js.map +7 -0
  221. package/dist/tests/vtex/vtex-orders-summary.tool.test.js +185 -0
  222. package/dist/tests/vtex/vtex-orders-summary.tool.test.js.map +7 -0
  223. package/dist/tests/vtex/vtex-orders.service.test.js +120 -0
  224. package/dist/tests/vtex/vtex-orders.service.test.js.map +7 -0
  225. package/dist/tests/vtex/vtex-pricing-write-tools.test.js +202 -0
  226. package/dist/tests/vtex/vtex-pricing-write-tools.test.js.map +7 -0
  227. package/dist/tests/vtex/vtex-pricing-write.service.test.js +106 -0
  228. package/dist/tests/vtex/vtex-pricing-write.service.test.js.map +7 -0
  229. package/dist/tests/vtex/vtex-pricing.service.test.js +88 -0
  230. package/dist/tests/vtex/vtex-pricing.service.test.js.map +7 -0
  231. package/dist/tests/vtex/vtex-small-tools.test.js +190 -0
  232. package/dist/tests/vtex/vtex-small-tools.test.js.map +7 -0
  233. package/dist/tests/vtex/vtex-write-simple-tools.test.js +647 -0
  234. package/dist/tests/vtex/vtex-write-simple-tools.test.js.map +7 -0
  235. package/dist/vitest.config.js +15 -0
  236. package/dist/vitest.config.js.map +7 -0
  237. package/package.json +6 -2
package/dist/index.js CHANGED
@@ -45,7 +45,17 @@ import {
45
45
  associateSpecificationSchema,
46
46
  attachCatalogImageHandler,
47
47
  attachCatalogImageSchema,
48
+ addSkuEanHandler,
49
+ addSkuEanSchema,
48
50
  cancelOrderHandler,
51
+ getSkuImagesHandler,
52
+ getSkuImagesSchema,
53
+ replaceSkuEansHandler,
54
+ replaceSkuEansSchema,
55
+ updateCatalogImageHandler,
56
+ updateCatalogImageSchema,
57
+ updateProductBrandHandler,
58
+ updateProductBrandSchema,
49
59
  cancelOrderSchema,
50
60
  channelMixHandler,
51
61
  channelMixSchema,
@@ -55,20 +65,48 @@ import {
55
65
  createBrandSchema,
56
66
  createCategoryHandler,
57
67
  createCategorySchema,
68
+ deleteAllProductSpecificationsHandler,
69
+ deleteAllProductSpecificationsSchema,
70
+ deleteAllSkuSpecificationsHandler,
71
+ deleteAllSkuSpecificationsSchema,
72
+ deleteBrandHandler,
73
+ deleteBrandSchema,
74
+ deleteCatalogImageHandler,
75
+ deleteCatalogImageSchema,
76
+ deleteProductSpecificationHandler,
77
+ deleteProductSpecificationSchema,
78
+ deleteSkuSpecificationHandler,
79
+ deleteSkuSpecificationSchema,
80
+ getBrandHandler,
81
+ getBrandSchema,
82
+ listSpecificationGroupsHandler,
83
+ listSpecificationGroupsSchema,
84
+ moveCategoryHandler,
85
+ moveCategorySchema,
58
86
  createProductHandler,
59
87
  createProductSchema,
60
- createProductWithSkuHandler,
61
- createProductWithSkuSchema,
62
88
  createSkuHandler,
63
89
  createSkuSchema,
64
90
  createSpecificationHandler,
65
91
  createSpecificationSchema,
66
92
  createSpecificationValueHandler,
67
93
  createSpecificationValueSchema,
94
+ getCategoryHandler,
95
+ getCategorySchema,
96
+ getCategoryTreeHandler,
97
+ getCategoryTreeSchema,
98
+ getProductHandler,
99
+ getProductSchema,
100
+ getProductSpecificationsHandler,
101
+ getProductSpecificationsSchema,
102
+ getSkuHandler,
103
+ getSkuSchema,
68
104
  deactivateSkuHandler,
69
105
  deactivateSkuSchema,
70
106
  deleteFixedPriceHandler,
71
107
  deleteFixedPriceSchema,
108
+ deleteSkuPriceHandler,
109
+ deleteSkuPriceSchema,
72
110
  ecommerceTrackingHealthHandler,
73
111
  ecommerceTrackingHealthSchema,
74
112
  engagementOverviewHandler,
@@ -79,6 +117,16 @@ import {
79
117
  inventoryCheckSchema,
80
118
  listAccessiblePropertiesHandler,
81
119
  listAccessiblePropertiesSchema,
120
+ listBrandsHandler,
121
+ listBrandsSchema,
122
+ listCategoriesHandler,
123
+ listCategoriesSchema,
124
+ listProductsHandler,
125
+ listProductsByCategoryHandler,
126
+ listProductsByCategorySchema,
127
+ listProductsSchema,
128
+ listSkusByProductHandler,
129
+ listSkusByProductSchema,
82
130
  metaAccountOverviewHandler,
83
131
  metaAccountOverviewSchema,
84
132
  metaAdAccountInfoHandler,
@@ -149,6 +197,10 @@ import {
149
197
  updateInventorySchema,
150
198
  updateLeadTimeHandler,
151
199
  updateLeadTimeSchema,
200
+ updateCategoryHandler,
201
+ updateCategorySchema,
202
+ updateBrandHandler,
203
+ updateBrandSchema,
152
204
  updateProductBasicFieldsHandler,
153
205
  updateProductBasicFieldsSchema,
154
206
  updateSkuBasicFieldsHandler,
@@ -433,6 +485,19 @@ server.tool(
433
485
  },
434
486
  updateSkuPriceHandler
435
487
  );
488
+ server.tool(
489
+ {
490
+ name: "vtex_delete_sku_price",
491
+ description: "Delete all base pricing and fixed prices for one SKU from VTEX Pricing. Before using this tool, the assistant must explain that this removes the SKU price record, mention that all fixed prices under that SKU are removed as well, and obtain explicit confirmation from the user. Only then should the tool be called with confirmed=true.",
492
+ schema: deleteSkuPriceSchema,
493
+ annotations: {
494
+ readOnlyHint: false,
495
+ destructiveHint: true,
496
+ openWorldHint: true
497
+ }
498
+ },
499
+ deleteSkuPriceHandler
500
+ );
436
501
  server.tool(
437
502
  {
438
503
  name: "vtex_upsert_fixed_price",
@@ -539,16 +604,16 @@ server.tool(
539
604
  );
540
605
  server.tool(
541
606
  {
542
- name: "vtex_create_product_with_sku",
543
- description: "Create one VTEX product and one SKU in a single operation. Use this when the product does not exist yet and you want the initial SKU created immediately after the product.",
544
- schema: createProductWithSkuSchema,
607
+ name: "vtex_get_brand",
608
+ description: "Get one VTEX catalog brand by ID.",
609
+ schema: getBrandSchema,
545
610
  annotations: {
546
- readOnlyHint: false,
547
- destructiveHint: true,
611
+ readOnlyHint: true,
612
+ destructiveHint: false,
548
613
  openWorldHint: true
549
614
  }
550
615
  },
551
- createProductWithSkuHandler
616
+ getBrandHandler
552
617
  );
553
618
  server.tool(
554
619
  {
@@ -563,6 +628,45 @@ server.tool(
563
628
  },
564
629
  createBrandHandler
565
630
  );
631
+ server.tool(
632
+ {
633
+ name: "vtex_update_brand",
634
+ description: "Update selected fields on one VTEX catalog brand. Only the provided fields are changed; the tool keeps the current VTEX values for the rest.",
635
+ schema: updateBrandSchema,
636
+ annotations: {
637
+ readOnlyHint: false,
638
+ destructiveHint: true,
639
+ openWorldHint: true
640
+ }
641
+ },
642
+ updateBrandHandler
643
+ );
644
+ server.tool(
645
+ {
646
+ name: "vtex_list_specification_groups",
647
+ description: "List VTEX specification groups available for one category, optionally filtered by group name. Use this to discover a real field group before creating mock-only specifications.",
648
+ schema: listSpecificationGroupsSchema,
649
+ annotations: {
650
+ readOnlyHint: true,
651
+ destructiveHint: false,
652
+ openWorldHint: true
653
+ }
654
+ },
655
+ listSpecificationGroupsHandler
656
+ );
657
+ server.tool(
658
+ {
659
+ name: "vtex_get_product_specifications",
660
+ description: "Get all specifications currently associated with one VTEX catalog product.",
661
+ schema: getProductSpecificationsSchema,
662
+ annotations: {
663
+ readOnlyHint: true,
664
+ destructiveHint: false,
665
+ openWorldHint: true
666
+ }
667
+ },
668
+ getProductSpecificationsHandler
669
+ );
566
670
  server.tool(
567
671
  {
568
672
  name: "vtex_create_category",
@@ -576,6 +680,32 @@ server.tool(
576
680
  },
577
681
  createCategoryHandler
578
682
  );
683
+ server.tool(
684
+ {
685
+ name: "vtex_update_category",
686
+ description: "Update selected visible fields on one VTEX category, including activation through isActive. Use this tool for visible fields only, not hierarchy changes.",
687
+ schema: updateCategorySchema,
688
+ annotations: {
689
+ readOnlyHint: false,
690
+ destructiveHint: true,
691
+ openWorldHint: true
692
+ }
693
+ },
694
+ updateCategoryHandler
695
+ );
696
+ server.tool(
697
+ {
698
+ name: "vtex_move_category",
699
+ description: "Move one VTEX category under a different parent by changing only its hierarchy. Experimental/high-risk: VTEX officially warns that direct category-tree moves can be risky and may leave catalog inconsistencies. Supports preview/apply confirmation guardrails.",
700
+ schema: moveCategorySchema,
701
+ annotations: {
702
+ readOnlyHint: false,
703
+ destructiveHint: true,
704
+ openWorldHint: true
705
+ }
706
+ },
707
+ moveCategoryHandler
708
+ );
579
709
  server.tool(
580
710
  {
581
711
  name: "vtex_create_specification",
@@ -615,6 +745,84 @@ server.tool(
615
745
  },
616
746
  associateSpecificationHandler
617
747
  );
748
+ server.tool(
749
+ {
750
+ name: "vtex_delete_product_specification",
751
+ description: "Delete one specification association from one VTEX catalog product using the productId and the association/spec record ID (`Id` from `vtex_get_product_specifications`), not the field ID.",
752
+ schema: deleteProductSpecificationSchema,
753
+ annotations: {
754
+ readOnlyHint: false,
755
+ destructiveHint: true,
756
+ openWorldHint: true
757
+ }
758
+ },
759
+ deleteProductSpecificationHandler
760
+ );
761
+ server.tool(
762
+ {
763
+ name: "vtex_delete_all_product_specifications",
764
+ description: "Delete all specification associations from one VTEX catalog product. This is high-risk and requires explicit confirmation before execution.",
765
+ schema: deleteAllProductSpecificationsSchema,
766
+ annotations: {
767
+ readOnlyHint: false,
768
+ destructiveHint: true,
769
+ openWorldHint: true
770
+ }
771
+ },
772
+ deleteAllProductSpecificationsHandler
773
+ );
774
+ server.tool(
775
+ {
776
+ name: "vtex_delete_brand",
777
+ description: "Delete one VTEX catalog brand by ID. The caller must already know the brandId because this tool performs no pre-delete lookup or readback.",
778
+ schema: deleteBrandSchema,
779
+ annotations: {
780
+ readOnlyHint: false,
781
+ destructiveHint: true,
782
+ openWorldHint: true
783
+ }
784
+ },
785
+ deleteBrandHandler
786
+ );
787
+ server.tool(
788
+ {
789
+ name: "vtex_delete_catalog_image",
790
+ description: "Delete one catalog image from a VTEX SKU by imageId. The caller must already know the imageId, typically from vtex_get_sku_images, because this tool performs no pre-delete lookup or readback.",
791
+ schema: deleteCatalogImageSchema,
792
+ annotations: {
793
+ readOnlyHint: false,
794
+ destructiveHint: true,
795
+ openWorldHint: true
796
+ }
797
+ },
798
+ deleteCatalogImageHandler
799
+ );
800
+ server.tool(
801
+ {
802
+ name: "vtex_delete_sku_specification",
803
+ description: "Delete one specification association from one VTEX catalog SKU using the skuId and specificationId. This tool performs no pre-delete lookup or readback.",
804
+ schema: deleteSkuSpecificationSchema,
805
+ annotations: {
806
+ readOnlyHint: false,
807
+ destructiveHint: true,
808
+ openWorldHint: true
809
+ }
810
+ },
811
+ deleteSkuSpecificationHandler
812
+ );
813
+ server.tool(
814
+ {
815
+ name: "vtex_delete_all_sku_specifications",
816
+ description: "Delete all specification associations from one VTEX catalog SKU. This is high-risk, requires explicit confirmation, and performs no pre-delete lookup or readback.",
817
+ schema: deleteAllSkuSpecificationsSchema,
818
+ annotations: {
819
+ readOnlyHint: false,
820
+ destructiveHint: true,
821
+ openWorldHint: true
822
+ }
823
+ },
824
+ deleteAllSkuSpecificationsHandler
825
+ );
618
826
  server.tool(
619
827
  {
620
828
  name: "vtex_attach_catalog_image",
@@ -628,6 +836,71 @@ server.tool(
628
836
  },
629
837
  attachCatalogImageHandler
630
838
  );
839
+ server.tool(
840
+ {
841
+ name: "vtex_update_product_brand",
842
+ description: "Update the brand assignment of one VTEX Catalog product. Changes the brand identifier the product is associated with.",
843
+ schema: updateProductBrandSchema,
844
+ annotations: {
845
+ readOnlyHint: false,
846
+ destructiveHint: true,
847
+ openWorldHint: true
848
+ }
849
+ },
850
+ updateProductBrandHandler
851
+ );
852
+ server.tool(
853
+ {
854
+ name: "vtex_add_sku_ean",
855
+ description: "Append one EAN value to a VTEX SKU. This adds a new EAN to the existing set without replacing other EANs already assigned to the SKU.",
856
+ schema: addSkuEanSchema,
857
+ annotations: {
858
+ readOnlyHint: false,
859
+ destructiveHint: true,
860
+ openWorldHint: true
861
+ }
862
+ },
863
+ addSkuEanHandler
864
+ );
865
+ server.tool(
866
+ {
867
+ name: "vtex_replace_sku_eans",
868
+ description: "Replace the entire set of EAN values on a VTEX SKU with a new list. All previously assigned EANs for the SKU are removed and the provided values become the only ones.",
869
+ schema: replaceSkuEansSchema,
870
+ annotations: {
871
+ readOnlyHint: false,
872
+ destructiveHint: true,
873
+ openWorldHint: true
874
+ }
875
+ },
876
+ replaceSkuEansHandler
877
+ );
878
+ server.tool(
879
+ {
880
+ name: "vtex_get_sku_images",
881
+ description: "List all images currently attached to a VTEX SKU. Returns image identifiers, URLs, alt text, labels, and order position for each image.",
882
+ schema: getSkuImagesSchema,
883
+ annotations: {
884
+ readOnlyHint: true,
885
+ destructiveHint: false,
886
+ openWorldHint: true
887
+ }
888
+ },
889
+ getSkuImagesHandler
890
+ );
891
+ server.tool(
892
+ {
893
+ name: "vtex_update_catalog_image",
894
+ description: "Update an existing catalog image on a VTEX SKU identified by the image identifier. Use to change the URL, alt text, label, or display position of an image already attached to the SKU.",
895
+ schema: updateCatalogImageSchema,
896
+ annotations: {
897
+ readOnlyHint: false,
898
+ destructiveHint: true,
899
+ openWorldHint: true
900
+ }
901
+ },
902
+ updateCatalogImageHandler
903
+ );
631
904
  server.tool(
632
905
  {
633
906
  name: "vtex_cancel_order",
@@ -719,6 +992,123 @@ server.tool(
719
992
  },
720
993
  skuOffersHandler
721
994
  );
995
+ server.tool(
996
+ {
997
+ name: "vtex_get_category_tree",
998
+ description: "Get the VTEX catalog category tree for a profile with an optional depth limit.",
999
+ schema: getCategoryTreeSchema,
1000
+ annotations: {
1001
+ readOnlyHint: true,
1002
+ destructiveHint: false,
1003
+ openWorldHint: true
1004
+ }
1005
+ },
1006
+ getCategoryTreeHandler
1007
+ );
1008
+ server.tool(
1009
+ {
1010
+ name: "vtex_list_categories",
1011
+ description: "List VTEX catalog categories using compact rows and pagination metadata.",
1012
+ schema: listCategoriesSchema,
1013
+ annotations: {
1014
+ readOnlyHint: true,
1015
+ destructiveHint: false,
1016
+ openWorldHint: true
1017
+ }
1018
+ },
1019
+ listCategoriesHandler
1020
+ );
1021
+ server.tool(
1022
+ {
1023
+ name: "vtex_get_category",
1024
+ description: "Get one VTEX catalog category by ID.",
1025
+ schema: getCategorySchema,
1026
+ annotations: {
1027
+ readOnlyHint: true,
1028
+ destructiveHint: false,
1029
+ openWorldHint: true
1030
+ }
1031
+ },
1032
+ getCategoryHandler
1033
+ );
1034
+ server.tool(
1035
+ {
1036
+ name: "vtex_list_brands",
1037
+ description: "List VTEX catalog brands using compact rows and pagination metadata.",
1038
+ schema: listBrandsSchema,
1039
+ annotations: {
1040
+ readOnlyHint: true,
1041
+ destructiveHint: false,
1042
+ openWorldHint: true
1043
+ }
1044
+ },
1045
+ listBrandsHandler
1046
+ );
1047
+ server.tool(
1048
+ {
1049
+ name: "vtex_get_product",
1050
+ description: "Get one VTEX catalog product by ID.",
1051
+ schema: getProductSchema,
1052
+ annotations: {
1053
+ readOnlyHint: true,
1054
+ destructiveHint: false,
1055
+ openWorldHint: true
1056
+ }
1057
+ },
1058
+ getProductHandler
1059
+ );
1060
+ server.tool(
1061
+ {
1062
+ name: "vtex_get_sku",
1063
+ description: "Get one VTEX catalog SKU by ID.",
1064
+ schema: getSkuSchema,
1065
+ annotations: {
1066
+ readOnlyHint: true,
1067
+ destructiveHint: false,
1068
+ openWorldHint: true
1069
+ }
1070
+ },
1071
+ getSkuHandler
1072
+ );
1073
+ server.tool(
1074
+ {
1075
+ name: "vtex_list_products",
1076
+ description: "List VTEX catalog product IDs with compact rows, pagination metadata, and optional keyword search.",
1077
+ schema: listProductsSchema,
1078
+ annotations: {
1079
+ readOnlyHint: true,
1080
+ destructiveHint: false,
1081
+ openWorldHint: true
1082
+ }
1083
+ },
1084
+ listProductsHandler
1085
+ );
1086
+ server.tool(
1087
+ {
1088
+ name: "vtex_list_products_by_category",
1089
+ description: "List VTEX catalog products for one category using compact rows and pagination metadata (VTEX caps this endpoint at 50 items per page).",
1090
+ schema: listProductsByCategorySchema,
1091
+ annotations: {
1092
+ readOnlyHint: true,
1093
+ destructiveHint: false,
1094
+ openWorldHint: true
1095
+ }
1096
+ },
1097
+ listProductsByCategoryHandler
1098
+ );
1099
+ server.tool(
1100
+ {
1101
+ name: "vtex_list_skus_by_product",
1102
+ description: "List VTEX SKUs belonging to one product using compact rows.",
1103
+ schema: listSkusByProductSchema,
1104
+ annotations: {
1105
+ readOnlyHint: true,
1106
+ destructiveHint: false,
1107
+ openWorldHint: true
1108
+ }
1109
+ },
1110
+ listSkusByProductHandler
1111
+ );
722
1112
  server.tool(
723
1113
  {
724
1114
  name: "config_check_database_connection",