@metronome/mcp 1.0.0 → 2.0.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 (466) hide show
  1. package/README.md +97 -55
  2. package/docs-search-tool.d.mts +44 -0
  3. package/docs-search-tool.d.mts.map +1 -0
  4. package/docs-search-tool.d.ts +44 -0
  5. package/docs-search-tool.d.ts.map +1 -0
  6. package/docs-search-tool.js +43 -0
  7. package/docs-search-tool.js.map +1 -0
  8. package/docs-search-tool.mjs +39 -0
  9. package/docs-search-tool.mjs.map +1 -0
  10. package/options.d.mts +1 -0
  11. package/options.d.mts.map +1 -1
  12. package/options.d.ts +1 -0
  13. package/options.d.ts.map +1 -1
  14. package/options.js +13 -6
  15. package/options.js.map +1 -1
  16. package/options.mjs +13 -6
  17. package/options.mjs.map +1 -1
  18. package/package.json +12 -2
  19. package/server.d.mts.map +1 -1
  20. package/server.d.ts.map +1 -1
  21. package/server.js +8 -4
  22. package/server.js.map +1 -1
  23. package/server.mjs +8 -4
  24. package/server.mjs.map +1 -1
  25. package/src/docs-search-tool.ts +48 -0
  26. package/src/options.ts +17 -7
  27. package/src/server.ts +8 -5
  28. package/src/tools/index.ts +8 -0
  29. package/src/tools/v1/alerts/archive-v1-alerts.ts +3 -3
  30. package/src/tools/v1/alerts/create-v1-alerts.ts +14 -13
  31. package/src/tools/v1/audit-logs/list-v1-audit-logs.ts +1 -1
  32. package/src/tools/v1/billable-metrics/archive-v1-billable-metrics.ts +1 -1
  33. package/src/tools/v1/billable-metrics/create-v1-billable-metrics.ts +1 -1
  34. package/src/tools/v1/billable-metrics/list-v1-billable-metrics.ts +1 -1
  35. package/src/tools/v1/billable-metrics/retrieve-v1-billable-metrics.ts +1 -1
  36. package/src/tools/v1/contracts/amend-v1-contracts.ts +1 -1
  37. package/src/tools/v1/contracts/archive-v1-contracts.ts +1 -1
  38. package/src/tools/v1/contracts/create-v1-contracts.ts +24 -3
  39. package/src/tools/v1/contracts/named-schedules/retrieve-contracts-v1-named-schedules.ts +1 -1
  40. package/src/tools/v1/contracts/products/archive-contracts-v1-products.ts +1 -1
  41. package/src/tools/v1/contracts/products/create-contracts-v1-products.ts +1 -1
  42. package/src/tools/v1/contracts/products/list-contracts-v1-products.ts +1 -1
  43. package/src/tools/v1/contracts/products/retrieve-contracts-v1-products.ts +1 -1
  44. package/src/tools/v1/contracts/products/update-contracts-v1-products.ts +1 -1
  45. package/src/tools/v1/contracts/rate-cards/archive-contracts-v1-rate-cards.ts +1 -1
  46. package/src/tools/v1/contracts/rate-cards/create-contracts-v1-rate-cards.ts +1 -1
  47. package/src/tools/v1/contracts/rate-cards/list-contracts-v1-rate-cards.ts +1 -1
  48. package/src/tools/v1/contracts/rate-cards/named-schedules/retrieve-rate-cards-contracts-v1-named-schedules.ts +1 -1
  49. package/src/tools/v1/contracts/rate-cards/product-orders/set-rate-cards-contracts-v1-product-orders.ts +1 -1
  50. package/src/tools/v1/contracts/rate-cards/product-orders/update-rate-cards-contracts-v1-product-orders.ts +1 -1
  51. package/src/tools/v1/contracts/rate-cards/rates/add-many-rate-cards-contracts-v1-rates.ts +1 -1
  52. package/src/tools/v1/contracts/rate-cards/rates/add-rate-cards-contracts-v1-rates.ts +1 -1
  53. package/src/tools/v1/contracts/rate-cards/rates/list-rate-cards-contracts-v1-rates.ts +1 -1
  54. package/src/tools/v1/contracts/rate-cards/retrieve-contracts-v1-rate-cards.ts +1 -1
  55. package/src/tools/v1/contracts/rate-cards/retrieve-rate-schedule-contracts-v1-rate-cards.ts +1 -1
  56. package/src/tools/v1/contracts/rate-cards/update-contracts-v1-rate-cards.ts +1 -1
  57. package/src/tools/v1/contracts/retrieve-rate-schedule-v1-contracts.ts +1 -1
  58. package/src/tools/v1/contracts/retrieve-subscription-quantity-history-v1-contracts.ts +1 -1
  59. package/src/tools/v1/contracts/update-end-date-v1-contracts.ts +1 -1
  60. package/src/tools/v1/credit-grants/create-v1-credit-grants.ts +1 -1
  61. package/src/tools/v1/credit-grants/edit-v1-credit-grants.ts +1 -1
  62. package/src/tools/v1/credit-grants/list-entries-v1-credit-grants.ts +1 -1
  63. package/src/tools/v1/credit-grants/list-v1-credit-grants.ts +1 -1
  64. package/src/tools/v1/credit-grants/void-v1-credit-grants.ts +1 -1
  65. package/src/tools/v1/custom-fields/list-keys-v1-custom-fields.ts +1 -1
  66. package/src/tools/v1/customers/alerts/list-customers-v1-alerts.ts +3 -2
  67. package/src/tools/v1/customers/alerts/reset-customers-v1-alerts.ts +2 -2
  68. package/src/tools/v1/customers/alerts/retrieve-customers-v1-alerts.ts +7 -14
  69. package/src/tools/v1/customers/archive-v1-customers.ts +1 -1
  70. package/src/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.ts +1 -1
  71. package/src/tools/v1/customers/commits/update-end-date-customers-v1-commits.ts +1 -1
  72. package/src/tools/v1/customers/create-v1-customers.ts +1 -1
  73. package/src/tools/v1/customers/credits/create-customers-v1-credits.ts +1 -1
  74. package/src/tools/v1/customers/credits/update-end-date-customers-v1-credits.ts +1 -1
  75. package/src/tools/v1/customers/invoices/add-charge-customers-v1-invoices.ts +1 -1
  76. package/src/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.ts +43 -0
  77. package/src/tools/v1/customers/list-billable-metrics-v1-customers.ts +1 -1
  78. package/src/tools/v1/customers/list-costs-v1-customers.ts +1 -1
  79. package/src/tools/v1/customers/list-v1-customers.ts +1 -1
  80. package/src/tools/v1/customers/named-schedules/retrieve-customers-v1-named-schedules.ts +1 -1
  81. package/src/tools/v1/customers/plans/add-customers-v1-plans.ts +1 -1
  82. package/src/tools/v1/customers/plans/end-customers-v1-plans.ts +1 -1
  83. package/src/tools/v1/customers/plans/list-customers-v1-plans.ts +1 -1
  84. package/src/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.ts +1 -1
  85. package/src/tools/v1/customers/preview-events-v1-customers.ts +2 -7
  86. package/src/tools/v1/customers/retrieve-billing-configurations-v1-customers.ts +1 -1
  87. package/src/tools/v1/customers/retrieve-v1-customers.ts +1 -1
  88. package/src/tools/v1/customers/set-billing-configurations-v1-customers.ts +1 -1
  89. package/src/tools/v1/customers/set-name-v1-customers.ts +1 -1
  90. package/src/tools/v1/dashboards/get-embeddable-url-v1-dashboards.ts +1 -1
  91. package/src/tools/v1/invoices/regenerate-v1-invoices.ts +1 -1
  92. package/src/tools/v1/invoices/void-v1-invoices.ts +1 -1
  93. package/src/tools/v1/payments/attempt-v1-payments.ts +48 -0
  94. package/src/tools/v1/payments/cancel-v1-payments.ts +48 -0
  95. package/src/tools/v1/payments/list-v1-payments.ts +69 -0
  96. package/src/tools/v1/plans/get-details-v1-plans.ts +1 -1
  97. package/src/tools/v1/plans/list-charges-v1-plans.ts +1 -1
  98. package/src/tools/v1/plans/list-customers-v1-plans.ts +1 -1
  99. package/src/tools/v1/plans/list-v1-plans.ts +1 -1
  100. package/src/tools/v1/pricing-units/list-v1-pricing-units.ts +1 -1
  101. package/src/tools/v1/services/list-v1-services.ts +1 -1
  102. package/src/tools/v1/usage/ingest-v1-usage.ts +1 -1
  103. package/src/tools/v1/usage/list-v1-usage.ts +1 -1
  104. package/src/tools/v1/usage/list-with-groups-v1-usage.ts +1 -1
  105. package/src/tools/v1/usage/search-v1-usage.ts +1 -1
  106. package/src/tools/v2/contracts/edit-commit-v2-contracts.ts +50 -1
  107. package/src/tools/v2/contracts/edit-credit-v2-contracts.ts +50 -1
  108. package/src/tools/v2/contracts/edit-v2-contracts.ts +60 -2
  109. package/tools/index.d.mts.map +1 -1
  110. package/tools/index.d.ts.map +1 -1
  111. package/tools/index.js +8 -0
  112. package/tools/index.js.map +1 -1
  113. package/tools/index.mjs +8 -0
  114. package/tools/index.mjs.map +1 -1
  115. package/tools/v1/alerts/archive-v1-alerts.js +3 -3
  116. package/tools/v1/alerts/archive-v1-alerts.js.map +1 -1
  117. package/tools/v1/alerts/archive-v1-alerts.mjs +3 -3
  118. package/tools/v1/alerts/archive-v1-alerts.mjs.map +1 -1
  119. package/tools/v1/alerts/create-v1-alerts.d.mts.map +1 -1
  120. package/tools/v1/alerts/create-v1-alerts.d.ts.map +1 -1
  121. package/tools/v1/alerts/create-v1-alerts.js +13 -13
  122. package/tools/v1/alerts/create-v1-alerts.js.map +1 -1
  123. package/tools/v1/alerts/create-v1-alerts.mjs +13 -13
  124. package/tools/v1/alerts/create-v1-alerts.mjs.map +1 -1
  125. package/tools/v1/audit-logs/list-v1-audit-logs.js +1 -1
  126. package/tools/v1/audit-logs/list-v1-audit-logs.js.map +1 -1
  127. package/tools/v1/audit-logs/list-v1-audit-logs.mjs +1 -1
  128. package/tools/v1/audit-logs/list-v1-audit-logs.mjs.map +1 -1
  129. package/tools/v1/billable-metrics/archive-v1-billable-metrics.js +1 -1
  130. package/tools/v1/billable-metrics/archive-v1-billable-metrics.js.map +1 -1
  131. package/tools/v1/billable-metrics/archive-v1-billable-metrics.mjs +1 -1
  132. package/tools/v1/billable-metrics/archive-v1-billable-metrics.mjs.map +1 -1
  133. package/tools/v1/billable-metrics/create-v1-billable-metrics.js +1 -1
  134. package/tools/v1/billable-metrics/create-v1-billable-metrics.js.map +1 -1
  135. package/tools/v1/billable-metrics/create-v1-billable-metrics.mjs +1 -1
  136. package/tools/v1/billable-metrics/create-v1-billable-metrics.mjs.map +1 -1
  137. package/tools/v1/billable-metrics/list-v1-billable-metrics.js +1 -1
  138. package/tools/v1/billable-metrics/list-v1-billable-metrics.js.map +1 -1
  139. package/tools/v1/billable-metrics/list-v1-billable-metrics.mjs +1 -1
  140. package/tools/v1/billable-metrics/list-v1-billable-metrics.mjs.map +1 -1
  141. package/tools/v1/billable-metrics/retrieve-v1-billable-metrics.js +1 -1
  142. package/tools/v1/billable-metrics/retrieve-v1-billable-metrics.js.map +1 -1
  143. package/tools/v1/billable-metrics/retrieve-v1-billable-metrics.mjs +1 -1
  144. package/tools/v1/billable-metrics/retrieve-v1-billable-metrics.mjs.map +1 -1
  145. package/tools/v1/contracts/amend-v1-contracts.js +1 -1
  146. package/tools/v1/contracts/amend-v1-contracts.js.map +1 -1
  147. package/tools/v1/contracts/amend-v1-contracts.mjs +1 -1
  148. package/tools/v1/contracts/amend-v1-contracts.mjs.map +1 -1
  149. package/tools/v1/contracts/archive-v1-contracts.js +1 -1
  150. package/tools/v1/contracts/archive-v1-contracts.js.map +1 -1
  151. package/tools/v1/contracts/archive-v1-contracts.mjs +1 -1
  152. package/tools/v1/contracts/archive-v1-contracts.mjs.map +1 -1
  153. package/tools/v1/contracts/create-v1-contracts.d.mts.map +1 -1
  154. package/tools/v1/contracts/create-v1-contracts.d.ts.map +1 -1
  155. package/tools/v1/contracts/create-v1-contracts.js +22 -3
  156. package/tools/v1/contracts/create-v1-contracts.js.map +1 -1
  157. package/tools/v1/contracts/create-v1-contracts.mjs +22 -3
  158. package/tools/v1/contracts/create-v1-contracts.mjs.map +1 -1
  159. package/tools/v1/contracts/named-schedules/retrieve-contracts-v1-named-schedules.js +1 -1
  160. package/tools/v1/contracts/named-schedules/retrieve-contracts-v1-named-schedules.js.map +1 -1
  161. package/tools/v1/contracts/named-schedules/retrieve-contracts-v1-named-schedules.mjs +1 -1
  162. package/tools/v1/contracts/named-schedules/retrieve-contracts-v1-named-schedules.mjs.map +1 -1
  163. package/tools/v1/contracts/products/archive-contracts-v1-products.js +1 -1
  164. package/tools/v1/contracts/products/archive-contracts-v1-products.js.map +1 -1
  165. package/tools/v1/contracts/products/archive-contracts-v1-products.mjs +1 -1
  166. package/tools/v1/contracts/products/archive-contracts-v1-products.mjs.map +1 -1
  167. package/tools/v1/contracts/products/create-contracts-v1-products.js +1 -1
  168. package/tools/v1/contracts/products/create-contracts-v1-products.js.map +1 -1
  169. package/tools/v1/contracts/products/create-contracts-v1-products.mjs +1 -1
  170. package/tools/v1/contracts/products/create-contracts-v1-products.mjs.map +1 -1
  171. package/tools/v1/contracts/products/list-contracts-v1-products.js +1 -1
  172. package/tools/v1/contracts/products/list-contracts-v1-products.js.map +1 -1
  173. package/tools/v1/contracts/products/list-contracts-v1-products.mjs +1 -1
  174. package/tools/v1/contracts/products/list-contracts-v1-products.mjs.map +1 -1
  175. package/tools/v1/contracts/products/retrieve-contracts-v1-products.js +1 -1
  176. package/tools/v1/contracts/products/retrieve-contracts-v1-products.js.map +1 -1
  177. package/tools/v1/contracts/products/retrieve-contracts-v1-products.mjs +1 -1
  178. package/tools/v1/contracts/products/retrieve-contracts-v1-products.mjs.map +1 -1
  179. package/tools/v1/contracts/products/update-contracts-v1-products.js +1 -1
  180. package/tools/v1/contracts/products/update-contracts-v1-products.js.map +1 -1
  181. package/tools/v1/contracts/products/update-contracts-v1-products.mjs +1 -1
  182. package/tools/v1/contracts/products/update-contracts-v1-products.mjs.map +1 -1
  183. package/tools/v1/contracts/rate-cards/archive-contracts-v1-rate-cards.js +1 -1
  184. package/tools/v1/contracts/rate-cards/archive-contracts-v1-rate-cards.js.map +1 -1
  185. package/tools/v1/contracts/rate-cards/archive-contracts-v1-rate-cards.mjs +1 -1
  186. package/tools/v1/contracts/rate-cards/archive-contracts-v1-rate-cards.mjs.map +1 -1
  187. package/tools/v1/contracts/rate-cards/create-contracts-v1-rate-cards.js +1 -1
  188. package/tools/v1/contracts/rate-cards/create-contracts-v1-rate-cards.js.map +1 -1
  189. package/tools/v1/contracts/rate-cards/create-contracts-v1-rate-cards.mjs +1 -1
  190. package/tools/v1/contracts/rate-cards/create-contracts-v1-rate-cards.mjs.map +1 -1
  191. package/tools/v1/contracts/rate-cards/list-contracts-v1-rate-cards.js +1 -1
  192. package/tools/v1/contracts/rate-cards/list-contracts-v1-rate-cards.js.map +1 -1
  193. package/tools/v1/contracts/rate-cards/list-contracts-v1-rate-cards.mjs +1 -1
  194. package/tools/v1/contracts/rate-cards/list-contracts-v1-rate-cards.mjs.map +1 -1
  195. package/tools/v1/contracts/rate-cards/named-schedules/retrieve-rate-cards-contracts-v1-named-schedules.js +1 -1
  196. package/tools/v1/contracts/rate-cards/named-schedules/retrieve-rate-cards-contracts-v1-named-schedules.js.map +1 -1
  197. package/tools/v1/contracts/rate-cards/named-schedules/retrieve-rate-cards-contracts-v1-named-schedules.mjs +1 -1
  198. package/tools/v1/contracts/rate-cards/named-schedules/retrieve-rate-cards-contracts-v1-named-schedules.mjs.map +1 -1
  199. package/tools/v1/contracts/rate-cards/product-orders/set-rate-cards-contracts-v1-product-orders.js +1 -1
  200. package/tools/v1/contracts/rate-cards/product-orders/set-rate-cards-contracts-v1-product-orders.js.map +1 -1
  201. package/tools/v1/contracts/rate-cards/product-orders/set-rate-cards-contracts-v1-product-orders.mjs +1 -1
  202. package/tools/v1/contracts/rate-cards/product-orders/set-rate-cards-contracts-v1-product-orders.mjs.map +1 -1
  203. package/tools/v1/contracts/rate-cards/product-orders/update-rate-cards-contracts-v1-product-orders.js +1 -1
  204. package/tools/v1/contracts/rate-cards/product-orders/update-rate-cards-contracts-v1-product-orders.js.map +1 -1
  205. package/tools/v1/contracts/rate-cards/product-orders/update-rate-cards-contracts-v1-product-orders.mjs +1 -1
  206. package/tools/v1/contracts/rate-cards/product-orders/update-rate-cards-contracts-v1-product-orders.mjs.map +1 -1
  207. package/tools/v1/contracts/rate-cards/rates/add-many-rate-cards-contracts-v1-rates.js +1 -1
  208. package/tools/v1/contracts/rate-cards/rates/add-many-rate-cards-contracts-v1-rates.js.map +1 -1
  209. package/tools/v1/contracts/rate-cards/rates/add-many-rate-cards-contracts-v1-rates.mjs +1 -1
  210. package/tools/v1/contracts/rate-cards/rates/add-many-rate-cards-contracts-v1-rates.mjs.map +1 -1
  211. package/tools/v1/contracts/rate-cards/rates/add-rate-cards-contracts-v1-rates.js +1 -1
  212. package/tools/v1/contracts/rate-cards/rates/add-rate-cards-contracts-v1-rates.js.map +1 -1
  213. package/tools/v1/contracts/rate-cards/rates/add-rate-cards-contracts-v1-rates.mjs +1 -1
  214. package/tools/v1/contracts/rate-cards/rates/add-rate-cards-contracts-v1-rates.mjs.map +1 -1
  215. package/tools/v1/contracts/rate-cards/rates/list-rate-cards-contracts-v1-rates.js +1 -1
  216. package/tools/v1/contracts/rate-cards/rates/list-rate-cards-contracts-v1-rates.js.map +1 -1
  217. package/tools/v1/contracts/rate-cards/rates/list-rate-cards-contracts-v1-rates.mjs +1 -1
  218. package/tools/v1/contracts/rate-cards/rates/list-rate-cards-contracts-v1-rates.mjs.map +1 -1
  219. package/tools/v1/contracts/rate-cards/retrieve-contracts-v1-rate-cards.js +1 -1
  220. package/tools/v1/contracts/rate-cards/retrieve-contracts-v1-rate-cards.js.map +1 -1
  221. package/tools/v1/contracts/rate-cards/retrieve-contracts-v1-rate-cards.mjs +1 -1
  222. package/tools/v1/contracts/rate-cards/retrieve-contracts-v1-rate-cards.mjs.map +1 -1
  223. package/tools/v1/contracts/rate-cards/retrieve-rate-schedule-contracts-v1-rate-cards.js +1 -1
  224. package/tools/v1/contracts/rate-cards/retrieve-rate-schedule-contracts-v1-rate-cards.js.map +1 -1
  225. package/tools/v1/contracts/rate-cards/retrieve-rate-schedule-contracts-v1-rate-cards.mjs +1 -1
  226. package/tools/v1/contracts/rate-cards/retrieve-rate-schedule-contracts-v1-rate-cards.mjs.map +1 -1
  227. package/tools/v1/contracts/rate-cards/update-contracts-v1-rate-cards.js +1 -1
  228. package/tools/v1/contracts/rate-cards/update-contracts-v1-rate-cards.js.map +1 -1
  229. package/tools/v1/contracts/rate-cards/update-contracts-v1-rate-cards.mjs +1 -1
  230. package/tools/v1/contracts/rate-cards/update-contracts-v1-rate-cards.mjs.map +1 -1
  231. package/tools/v1/contracts/retrieve-rate-schedule-v1-contracts.js +1 -1
  232. package/tools/v1/contracts/retrieve-rate-schedule-v1-contracts.js.map +1 -1
  233. package/tools/v1/contracts/retrieve-rate-schedule-v1-contracts.mjs +1 -1
  234. package/tools/v1/contracts/retrieve-rate-schedule-v1-contracts.mjs.map +1 -1
  235. package/tools/v1/contracts/retrieve-subscription-quantity-history-v1-contracts.js +1 -1
  236. package/tools/v1/contracts/retrieve-subscription-quantity-history-v1-contracts.js.map +1 -1
  237. package/tools/v1/contracts/retrieve-subscription-quantity-history-v1-contracts.mjs +1 -1
  238. package/tools/v1/contracts/retrieve-subscription-quantity-history-v1-contracts.mjs.map +1 -1
  239. package/tools/v1/contracts/update-end-date-v1-contracts.js +1 -1
  240. package/tools/v1/contracts/update-end-date-v1-contracts.js.map +1 -1
  241. package/tools/v1/contracts/update-end-date-v1-contracts.mjs +1 -1
  242. package/tools/v1/contracts/update-end-date-v1-contracts.mjs.map +1 -1
  243. package/tools/v1/credit-grants/create-v1-credit-grants.js +1 -1
  244. package/tools/v1/credit-grants/create-v1-credit-grants.js.map +1 -1
  245. package/tools/v1/credit-grants/create-v1-credit-grants.mjs +1 -1
  246. package/tools/v1/credit-grants/create-v1-credit-grants.mjs.map +1 -1
  247. package/tools/v1/credit-grants/edit-v1-credit-grants.js +1 -1
  248. package/tools/v1/credit-grants/edit-v1-credit-grants.js.map +1 -1
  249. package/tools/v1/credit-grants/edit-v1-credit-grants.mjs +1 -1
  250. package/tools/v1/credit-grants/edit-v1-credit-grants.mjs.map +1 -1
  251. package/tools/v1/credit-grants/list-entries-v1-credit-grants.js +1 -1
  252. package/tools/v1/credit-grants/list-entries-v1-credit-grants.js.map +1 -1
  253. package/tools/v1/credit-grants/list-entries-v1-credit-grants.mjs +1 -1
  254. package/tools/v1/credit-grants/list-entries-v1-credit-grants.mjs.map +1 -1
  255. package/tools/v1/credit-grants/list-v1-credit-grants.js +1 -1
  256. package/tools/v1/credit-grants/list-v1-credit-grants.js.map +1 -1
  257. package/tools/v1/credit-grants/list-v1-credit-grants.mjs +1 -1
  258. package/tools/v1/credit-grants/list-v1-credit-grants.mjs.map +1 -1
  259. package/tools/v1/credit-grants/void-v1-credit-grants.js +1 -1
  260. package/tools/v1/credit-grants/void-v1-credit-grants.js.map +1 -1
  261. package/tools/v1/credit-grants/void-v1-credit-grants.mjs +1 -1
  262. package/tools/v1/credit-grants/void-v1-credit-grants.mjs.map +1 -1
  263. package/tools/v1/custom-fields/list-keys-v1-custom-fields.js +1 -1
  264. package/tools/v1/custom-fields/list-keys-v1-custom-fields.js.map +1 -1
  265. package/tools/v1/custom-fields/list-keys-v1-custom-fields.mjs +1 -1
  266. package/tools/v1/custom-fields/list-keys-v1-custom-fields.mjs.map +1 -1
  267. package/tools/v1/customers/alerts/list-customers-v1-alerts.d.mts.map +1 -1
  268. package/tools/v1/customers/alerts/list-customers-v1-alerts.d.ts.map +1 -1
  269. package/tools/v1/customers/alerts/list-customers-v1-alerts.js +2 -2
  270. package/tools/v1/customers/alerts/list-customers-v1-alerts.js.map +1 -1
  271. package/tools/v1/customers/alerts/list-customers-v1-alerts.mjs +2 -2
  272. package/tools/v1/customers/alerts/list-customers-v1-alerts.mjs.map +1 -1
  273. package/tools/v1/customers/alerts/reset-customers-v1-alerts.js +2 -2
  274. package/tools/v1/customers/alerts/reset-customers-v1-alerts.js.map +1 -1
  275. package/tools/v1/customers/alerts/reset-customers-v1-alerts.mjs +2 -2
  276. package/tools/v1/customers/alerts/reset-customers-v1-alerts.mjs.map +1 -1
  277. package/tools/v1/customers/alerts/retrieve-customers-v1-alerts.d.mts.map +1 -1
  278. package/tools/v1/customers/alerts/retrieve-customers-v1-alerts.d.ts.map +1 -1
  279. package/tools/v1/customers/alerts/retrieve-customers-v1-alerts.js +7 -13
  280. package/tools/v1/customers/alerts/retrieve-customers-v1-alerts.js.map +1 -1
  281. package/tools/v1/customers/alerts/retrieve-customers-v1-alerts.mjs +7 -13
  282. package/tools/v1/customers/alerts/retrieve-customers-v1-alerts.mjs.map +1 -1
  283. package/tools/v1/customers/archive-v1-customers.js +1 -1
  284. package/tools/v1/customers/archive-v1-customers.js.map +1 -1
  285. package/tools/v1/customers/archive-v1-customers.mjs +1 -1
  286. package/tools/v1/customers/archive-v1-customers.mjs.map +1 -1
  287. package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.js +1 -1
  288. package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.js.map +1 -1
  289. package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.mjs +1 -1
  290. package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.mjs.map +1 -1
  291. package/tools/v1/customers/commits/update-end-date-customers-v1-commits.js +1 -1
  292. package/tools/v1/customers/commits/update-end-date-customers-v1-commits.js.map +1 -1
  293. package/tools/v1/customers/commits/update-end-date-customers-v1-commits.mjs +1 -1
  294. package/tools/v1/customers/commits/update-end-date-customers-v1-commits.mjs.map +1 -1
  295. package/tools/v1/customers/create-v1-customers.js +1 -1
  296. package/tools/v1/customers/create-v1-customers.js.map +1 -1
  297. package/tools/v1/customers/create-v1-customers.mjs +1 -1
  298. package/tools/v1/customers/create-v1-customers.mjs.map +1 -1
  299. package/tools/v1/customers/credits/create-customers-v1-credits.js +1 -1
  300. package/tools/v1/customers/credits/create-customers-v1-credits.js.map +1 -1
  301. package/tools/v1/customers/credits/create-customers-v1-credits.mjs +1 -1
  302. package/tools/v1/customers/credits/create-customers-v1-credits.mjs.map +1 -1
  303. package/tools/v1/customers/credits/update-end-date-customers-v1-credits.js +1 -1
  304. package/tools/v1/customers/credits/update-end-date-customers-v1-credits.js.map +1 -1
  305. package/tools/v1/customers/credits/update-end-date-customers-v1-credits.mjs +1 -1
  306. package/tools/v1/customers/credits/update-end-date-customers-v1-credits.mjs.map +1 -1
  307. package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.js +1 -1
  308. package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.js.map +1 -1
  309. package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.mjs +1 -1
  310. package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.mjs.map +1 -1
  311. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.d.mts +45 -0
  312. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.d.mts.map +1 -0
  313. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.d.ts +45 -0
  314. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.d.ts.map +1 -0
  315. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.js +39 -0
  316. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.js.map +1 -0
  317. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.mjs +35 -0
  318. package/tools/v1/customers/invoices/retrieve-pdf-customers-v1-invoices.mjs.map +1 -0
  319. package/tools/v1/customers/list-billable-metrics-v1-customers.js +1 -1
  320. package/tools/v1/customers/list-billable-metrics-v1-customers.js.map +1 -1
  321. package/tools/v1/customers/list-billable-metrics-v1-customers.mjs +1 -1
  322. package/tools/v1/customers/list-billable-metrics-v1-customers.mjs.map +1 -1
  323. package/tools/v1/customers/list-costs-v1-customers.js +1 -1
  324. package/tools/v1/customers/list-costs-v1-customers.js.map +1 -1
  325. package/tools/v1/customers/list-costs-v1-customers.mjs +1 -1
  326. package/tools/v1/customers/list-costs-v1-customers.mjs.map +1 -1
  327. package/tools/v1/customers/list-v1-customers.js +1 -1
  328. package/tools/v1/customers/list-v1-customers.js.map +1 -1
  329. package/tools/v1/customers/list-v1-customers.mjs +1 -1
  330. package/tools/v1/customers/list-v1-customers.mjs.map +1 -1
  331. package/tools/v1/customers/named-schedules/retrieve-customers-v1-named-schedules.js +1 -1
  332. package/tools/v1/customers/named-schedules/retrieve-customers-v1-named-schedules.js.map +1 -1
  333. package/tools/v1/customers/named-schedules/retrieve-customers-v1-named-schedules.mjs +1 -1
  334. package/tools/v1/customers/named-schedules/retrieve-customers-v1-named-schedules.mjs.map +1 -1
  335. package/tools/v1/customers/plans/add-customers-v1-plans.js +1 -1
  336. package/tools/v1/customers/plans/add-customers-v1-plans.js.map +1 -1
  337. package/tools/v1/customers/plans/add-customers-v1-plans.mjs +1 -1
  338. package/tools/v1/customers/plans/add-customers-v1-plans.mjs.map +1 -1
  339. package/tools/v1/customers/plans/end-customers-v1-plans.js +1 -1
  340. package/tools/v1/customers/plans/end-customers-v1-plans.js.map +1 -1
  341. package/tools/v1/customers/plans/end-customers-v1-plans.mjs +1 -1
  342. package/tools/v1/customers/plans/end-customers-v1-plans.mjs.map +1 -1
  343. package/tools/v1/customers/plans/list-customers-v1-plans.js +1 -1
  344. package/tools/v1/customers/plans/list-customers-v1-plans.js.map +1 -1
  345. package/tools/v1/customers/plans/list-customers-v1-plans.mjs +1 -1
  346. package/tools/v1/customers/plans/list-customers-v1-plans.mjs.map +1 -1
  347. package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.js +1 -1
  348. package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.js.map +1 -1
  349. package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.mjs +1 -1
  350. package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.mjs.map +1 -1
  351. package/tools/v1/customers/preview-events-v1-customers.d.mts.map +1 -1
  352. package/tools/v1/customers/preview-events-v1-customers.d.ts.map +1 -1
  353. package/tools/v1/customers/preview-events-v1-customers.js +2 -6
  354. package/tools/v1/customers/preview-events-v1-customers.js.map +1 -1
  355. package/tools/v1/customers/preview-events-v1-customers.mjs +2 -6
  356. package/tools/v1/customers/preview-events-v1-customers.mjs.map +1 -1
  357. package/tools/v1/customers/retrieve-billing-configurations-v1-customers.js +1 -1
  358. package/tools/v1/customers/retrieve-billing-configurations-v1-customers.js.map +1 -1
  359. package/tools/v1/customers/retrieve-billing-configurations-v1-customers.mjs +1 -1
  360. package/tools/v1/customers/retrieve-billing-configurations-v1-customers.mjs.map +1 -1
  361. package/tools/v1/customers/retrieve-v1-customers.js +1 -1
  362. package/tools/v1/customers/retrieve-v1-customers.js.map +1 -1
  363. package/tools/v1/customers/retrieve-v1-customers.mjs +1 -1
  364. package/tools/v1/customers/retrieve-v1-customers.mjs.map +1 -1
  365. package/tools/v1/customers/set-billing-configurations-v1-customers.js +1 -1
  366. package/tools/v1/customers/set-billing-configurations-v1-customers.js.map +1 -1
  367. package/tools/v1/customers/set-billing-configurations-v1-customers.mjs +1 -1
  368. package/tools/v1/customers/set-billing-configurations-v1-customers.mjs.map +1 -1
  369. package/tools/v1/customers/set-name-v1-customers.js +1 -1
  370. package/tools/v1/customers/set-name-v1-customers.js.map +1 -1
  371. package/tools/v1/customers/set-name-v1-customers.mjs +1 -1
  372. package/tools/v1/customers/set-name-v1-customers.mjs.map +1 -1
  373. package/tools/v1/dashboards/get-embeddable-url-v1-dashboards.js +1 -1
  374. package/tools/v1/dashboards/get-embeddable-url-v1-dashboards.js.map +1 -1
  375. package/tools/v1/dashboards/get-embeddable-url-v1-dashboards.mjs +1 -1
  376. package/tools/v1/dashboards/get-embeddable-url-v1-dashboards.mjs.map +1 -1
  377. package/tools/v1/invoices/regenerate-v1-invoices.js +1 -1
  378. package/tools/v1/invoices/regenerate-v1-invoices.js.map +1 -1
  379. package/tools/v1/invoices/regenerate-v1-invoices.mjs +1 -1
  380. package/tools/v1/invoices/regenerate-v1-invoices.mjs.map +1 -1
  381. package/tools/v1/invoices/void-v1-invoices.js +1 -1
  382. package/tools/v1/invoices/void-v1-invoices.js.map +1 -1
  383. package/tools/v1/invoices/void-v1-invoices.mjs +1 -1
  384. package/tools/v1/invoices/void-v1-invoices.mjs.map +1 -1
  385. package/tools/v1/payments/attempt-v1-payments.d.mts +45 -0
  386. package/tools/v1/payments/attempt-v1-payments.d.mts.map +1 -0
  387. package/tools/v1/payments/attempt-v1-payments.d.ts +45 -0
  388. package/tools/v1/payments/attempt-v1-payments.d.ts.map +1 -0
  389. package/tools/v1/payments/attempt-v1-payments.js +43 -0
  390. package/tools/v1/payments/attempt-v1-payments.js.map +1 -0
  391. package/tools/v1/payments/attempt-v1-payments.mjs +39 -0
  392. package/tools/v1/payments/attempt-v1-payments.mjs.map +1 -0
  393. package/tools/v1/payments/cancel-v1-payments.d.mts +45 -0
  394. package/tools/v1/payments/cancel-v1-payments.d.mts.map +1 -0
  395. package/tools/v1/payments/cancel-v1-payments.d.ts +45 -0
  396. package/tools/v1/payments/cancel-v1-payments.d.ts.map +1 -0
  397. package/tools/v1/payments/cancel-v1-payments.js +43 -0
  398. package/tools/v1/payments/cancel-v1-payments.js.map +1 -0
  399. package/tools/v1/payments/cancel-v1-payments.mjs +39 -0
  400. package/tools/v1/payments/cancel-v1-payments.mjs.map +1 -0
  401. package/tools/v1/payments/list-v1-payments.d.mts +45 -0
  402. package/tools/v1/payments/list-v1-payments.d.mts.map +1 -0
  403. package/tools/v1/payments/list-v1-payments.d.ts +45 -0
  404. package/tools/v1/payments/list-v1-payments.d.ts.map +1 -0
  405. package/tools/v1/payments/list-v1-payments.js +64 -0
  406. package/tools/v1/payments/list-v1-payments.js.map +1 -0
  407. package/tools/v1/payments/list-v1-payments.mjs +60 -0
  408. package/tools/v1/payments/list-v1-payments.mjs.map +1 -0
  409. package/tools/v1/plans/get-details-v1-plans.js +1 -1
  410. package/tools/v1/plans/get-details-v1-plans.js.map +1 -1
  411. package/tools/v1/plans/get-details-v1-plans.mjs +1 -1
  412. package/tools/v1/plans/get-details-v1-plans.mjs.map +1 -1
  413. package/tools/v1/plans/list-charges-v1-plans.js +1 -1
  414. package/tools/v1/plans/list-charges-v1-plans.js.map +1 -1
  415. package/tools/v1/plans/list-charges-v1-plans.mjs +1 -1
  416. package/tools/v1/plans/list-charges-v1-plans.mjs.map +1 -1
  417. package/tools/v1/plans/list-customers-v1-plans.js +1 -1
  418. package/tools/v1/plans/list-customers-v1-plans.js.map +1 -1
  419. package/tools/v1/plans/list-customers-v1-plans.mjs +1 -1
  420. package/tools/v1/plans/list-customers-v1-plans.mjs.map +1 -1
  421. package/tools/v1/plans/list-v1-plans.js +1 -1
  422. package/tools/v1/plans/list-v1-plans.js.map +1 -1
  423. package/tools/v1/plans/list-v1-plans.mjs +1 -1
  424. package/tools/v1/plans/list-v1-plans.mjs.map +1 -1
  425. package/tools/v1/pricing-units/list-v1-pricing-units.js +1 -1
  426. package/tools/v1/pricing-units/list-v1-pricing-units.js.map +1 -1
  427. package/tools/v1/pricing-units/list-v1-pricing-units.mjs +1 -1
  428. package/tools/v1/pricing-units/list-v1-pricing-units.mjs.map +1 -1
  429. package/tools/v1/services/list-v1-services.js +1 -1
  430. package/tools/v1/services/list-v1-services.js.map +1 -1
  431. package/tools/v1/services/list-v1-services.mjs +1 -1
  432. package/tools/v1/services/list-v1-services.mjs.map +1 -1
  433. package/tools/v1/usage/ingest-v1-usage.js +1 -1
  434. package/tools/v1/usage/ingest-v1-usage.js.map +1 -1
  435. package/tools/v1/usage/ingest-v1-usage.mjs +1 -1
  436. package/tools/v1/usage/ingest-v1-usage.mjs.map +1 -1
  437. package/tools/v1/usage/list-v1-usage.js +1 -1
  438. package/tools/v1/usage/list-v1-usage.js.map +1 -1
  439. package/tools/v1/usage/list-v1-usage.mjs +1 -1
  440. package/tools/v1/usage/list-v1-usage.mjs.map +1 -1
  441. package/tools/v1/usage/list-with-groups-v1-usage.js +1 -1
  442. package/tools/v1/usage/list-with-groups-v1-usage.js.map +1 -1
  443. package/tools/v1/usage/list-with-groups-v1-usage.mjs +1 -1
  444. package/tools/v1/usage/list-with-groups-v1-usage.mjs.map +1 -1
  445. package/tools/v1/usage/search-v1-usage.js +1 -1
  446. package/tools/v1/usage/search-v1-usage.js.map +1 -1
  447. package/tools/v1/usage/search-v1-usage.mjs +1 -1
  448. package/tools/v1/usage/search-v1-usage.mjs.map +1 -1
  449. package/tools/v2/contracts/edit-commit-v2-contracts.d.mts.map +1 -1
  450. package/tools/v2/contracts/edit-commit-v2-contracts.d.ts.map +1 -1
  451. package/tools/v2/contracts/edit-commit-v2-contracts.js +50 -1
  452. package/tools/v2/contracts/edit-commit-v2-contracts.js.map +1 -1
  453. package/tools/v2/contracts/edit-commit-v2-contracts.mjs +50 -1
  454. package/tools/v2/contracts/edit-commit-v2-contracts.mjs.map +1 -1
  455. package/tools/v2/contracts/edit-credit-v2-contracts.d.mts.map +1 -1
  456. package/tools/v2/contracts/edit-credit-v2-contracts.d.ts.map +1 -1
  457. package/tools/v2/contracts/edit-credit-v2-contracts.js +50 -1
  458. package/tools/v2/contracts/edit-credit-v2-contracts.js.map +1 -1
  459. package/tools/v2/contracts/edit-credit-v2-contracts.mjs +50 -1
  460. package/tools/v2/contracts/edit-credit-v2-contracts.mjs.map +1 -1
  461. package/tools/v2/contracts/edit-v2-contracts.d.mts.map +1 -1
  462. package/tools/v2/contracts/edit-v2-contracts.d.ts.map +1 -1
  463. package/tools/v2/contracts/edit-v2-contracts.js +56 -2
  464. package/tools/v2/contracts/edit-v2-contracts.js.map +1 -1
  465. package/tools/v2/contracts/edit-v2-contracts.mjs +56 -2
  466. package/tools/v2/contracts/edit-v2-contracts.mjs.map +1 -1
@@ -18,17 +18,17 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'archive_v1_alerts',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nPermanently disable an alert and remove it from active monitoring across all customers. Archived alerts stop evaluating immediately and can optionally release their uniqueness key for reuse in future alert configurations.\n\n### Use this endpoint to:\n- Decommission alerts that are no longer needed\n- Clean up test or deprecated alert configurations\n- Free up uniqueness keys for reuse with new alerts\n- Stop alert evaluations without losing historical configuration data\n- Disable outdated monitoring rules during pricing model transitions\n\n### Key response fields:\n- data: Object containing the archived alert's ID\n- Alert evaluation stops immediately for all affected customers\n- Historical alert data and configurations remain accessible for audit purposes\n\n### Usage guidelines:\n- Irreversible for evaluation: Archived alerts cannot be re-enabled; create a new alert to resume monitoring\n- Uniqueness key handling: Set `release_uniqueness_key` : `true` to reuse the key in future alerts\n- Immediate effect: Alert evaluation stops instantly across all customers\n- Historical preservation: Archive operation maintains alert history and configuration for compliance and auditing\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nPermanently disable a threshold notification and remove it from active monitoring across all customers. Archived threshold notifications stop evaluating immediately and can optionally release their uniqueness key for reuse in future threshold notification configurations.\n\n### Use this endpoint to:\n- Decommission threshold notifications that are no longer needed\n- Clean up test or deprecated threshold notification configurations\n- Free up uniqueness keys for reuse with new threshold notifications\n- Stop threshold notification evaluations without losing historical configuration data\n- Disable outdated monitoring rules during pricing model transitions\n\n### Key response fields:\n- data: Object containing the archived threshold notification's ID\n\n### Usage guidelines:\n- Irreversible for evaluation: Archived threshold notifications cannot be re-enabled; create a new threshold notification to resume monitoring\n- Uniqueness key handling: Set `release_uniqueness_key` : `true` to reuse the key in future threshold notifications\n- Immediate effect: Threshold notification evaluation stops instantly across all customers\n- Historical preservation: Archive operation maintains threshold notification history and configuration for compliance and auditing\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/alert_archive_response',\n $defs: {\n alert_archive_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
25
  id: {
26
26
  type: 'string',
27
- description: 'The Metronome ID of the alert',
27
+ description: 'The Metronome ID of the threshold notification',
28
28
  },
29
29
  release_uniqueness_key: {
30
30
  type: 'boolean',
31
- description: 'If true, resets the uniqueness key on this alert so it can be re-used',
31
+ description: 'If true, resets the uniqueness key on this threshold notification so it can be re-used',
32
32
  },
33
33
  jq_filter: {
34
34
  type: 'string',
@@ -18,13 +18,13 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'create_v1_alerts',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new alert to monitor customer spending, balances, and billing metrics in real-time. Metronome's alert system provides industry-leading speed with immediate evaluation capabilities, enabling you to proactively manage customer accounts and prevent revenue leakage.\n\nThis endpoint creates configurable alerts that continuously monitor various billing thresholds including spend limits, credit balances, commitment utilization, and invoice totals. Alerts can be configured globally for all customers or targeted to specific customer accounts. Custom fields can be used on certain alert types to further target alerts to groups of customers.\n\n### Use this endpoint to:\n- Proactively monitor customer spending patterns to prevent unexpected overages or credit exhaustion\n- Automate notifications when customers approach commitment limits or credit thresholds\n- Enable real-time intervention for accounts at risk of churn or payment issues\n- Scale billing operations by automating threshold-based workflows and notifications\n\n### Key response fields: \nA successful response returns a CustomerAlert object containing:\n\n- The alert configuration with its unique ID and current status\n- The customer's evaluation status (ok, in_alarm, or evaluating)\n- Alert metadata including type, threshold values, and update timestamps\n\n### Usage guidelines:\n- Immediate evaluation: Set `evaluate_on_create` : `true` (default) for instant evaluation against existing customers\n- Uniqueness constraints: Each alert must have a unique `uniqueness_key` within your organization. Use `release_uniqueness_key` : `true` when archiving to reuse keys\n- Alert type requirements: Different alert types require specific fields (e.g., `billable_metric_id` for usage alerts, `credit_type_id` for credit-based alerts)\n- Webhook delivery: Alerts trigger webhook notifications for real-time integration with your systems. Configure webhook endpoints before creating alerts\n- Performance at scale: Metronome's event-driven architecture processes alert evaluations in real-time as usage events stream in, unlike competitors who rely on periodic polling or batch evaluation cycles\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new threshold notification to monitor customer spending, balances, and billing metrics in real-time. Metronome's notification system provides industry-leading speed with immediate evaluation capabilities, enabling you to proactively manage customer accounts and prevent revenue leakage.\n\nThis endpoint creates configurable threshold notifications that continuously monitor various billing thresholds including spend limits, credit balances, commitment utilization, and invoice totals. Threshold notifications can be configured globally for all customers or targeted to specific customer accounts.\n\n### Use this endpoint to:\n- Proactively monitor customer spending patterns to prevent unexpected overages or credit exhaustion\n- Automate notifications when customers approach commitment limits or credit thresholds\n- Enable real-time intervention for accounts at risk of churn or payment issues\n- Scale billing operations by automating threshold-based workflows and notifications\n\n### Key response fields: \nA successful response returns a CustomerAlert object containing:\n\n- The threshold notification configuration with its unique ID and current status\n- The customer's evaluation status (ok, in_alarm, or evaluating)\n- Threshold notification metadata including type, threshold values, and update timestamps\n\n### Usage guidelines:\n- Immediate evaluation: Set `evaluate_on_create` : `true` (default) for instant evaluation against existing customers\n- Uniqueness constraints: Each threshold notification must have a unique `uniqueness_key` within your organization. Use `release_uniqueness_key` : `true` when archiving to reuse keys\n- Notification type requirements: Different threshold notification types require specific fields (e.g., `billable_metric_id` for usage notifications, `credit_type_id` for credit-based threshold notifications)\n- Webhook delivery: Threshold notifications trigger webhook notifications for real-time integration with your systems. Configure webhook endpoints before creating threshold notifications\n- Performance at scale: Metronome's event-driven architecture processes threshold notification evaluations in real-time as usage events stream in, unlike competitors who rely on periodic polling or batch evaluation cycles\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/alert_create_response',\n $defs: {\n alert_create_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
25
  alert_type: {
26
26
  type: 'string',
27
- description: 'Type of the alert',
27
+ description: 'Type of the threshold notification',
28
28
  enum: [
29
29
  'low_credit_balance_reached',
30
30
  'spend_threshold_reached',
@@ -44,22 +44,22 @@ export const tool: Tool = {
44
44
  },
45
45
  name: {
46
46
  type: 'string',
47
- description: 'Name of the alert',
47
+ description: 'Name of the threshold notification',
48
48
  },
49
49
  threshold: {
50
50
  type: 'number',
51
51
  description:
52
- 'Threshold value of the alert policy. Depending upon the alert type, this number may represent a financial amount, the days remaining, or a percentage reached.',
52
+ 'Threshold value of the notification policy. Depending upon the notification type, this number may represent a financial amount, the days remaining, or a percentage reached.',
53
53
  },
54
54
  billable_metric_id: {
55
55
  type: 'string',
56
56
  description:
57
- 'For alerts of type `usage_threshold_reached`, specifies which billable metric to track the usage for.',
57
+ 'For threshold notifications of type `usage_threshold_reached`, specifies which billable metric to track the usage for.',
58
58
  },
59
59
  credit_grant_type_filters: {
60
60
  type: 'array',
61
61
  description:
62
- 'An array of strings, representing a way to filter the credit grant this alert applies to, by looking at the credit_grant_type field on the credit grant. This field is only defined for CreditPercentage and CreditBalance alerts',
62
+ 'An array of strings, representing a way to filter the credit grant this threshold notification applies to, by looking at the credit_grant_type field on the credit grant. This field is only defined for CreditPercentage and CreditBalance notifications',
63
63
  items: {
64
64
  type: 'string',
65
65
  },
@@ -67,12 +67,12 @@ export const tool: Tool = {
67
67
  credit_type_id: {
68
68
  type: 'string',
69
69
  description:
70
- "ID of the credit's currency, defaults to USD. If the specific alert type requires a pricing unit/currency, find the ID in the [Metronome app](https://app.metronome.com/offering/pricing-units).",
70
+ "ID of the credit's currency, defaults to USD. If the specific notification type requires a pricing unit/currency, find the ID in the [Metronome app](https://app.metronome.com/offering/pricing-units).",
71
71
  },
72
72
  custom_field_filters: {
73
73
  type: 'array',
74
74
  description:
75
- 'A list of custom field filters for alert types that support advanced filtering. Only present for contract invoices.',
75
+ 'A list of custom field filters for threshold notification types that support advanced filtering. Only present for contract invoices.',
76
76
  items: {
77
77
  type: 'object',
78
78
  properties: {
@@ -93,17 +93,17 @@ export const tool: Tool = {
93
93
  customer_id: {
94
94
  type: 'string',
95
95
  description:
96
- 'If provided, will create this alert for this specific customer. To create an alert for all customers, do not specify a `customer_id`.',
96
+ 'If provided, will create this threshold notification for this specific customer. To create a notification for all customers, do not specify a `customer_id`.',
97
97
  },
98
98
  evaluate_on_create: {
99
99
  type: 'boolean',
100
100
  description:
101
- 'If true, the alert will evaluate immediately on customers that already meet the alert threshold. If false, it will only evaluate on future customers that trigger the alert threshold. Defaults to true.',
101
+ 'If true, the threshold notification will evaluate immediately on customers that already meet the notification threshold. If false, it will only evaluate on future customers that trigger the threshold. Defaults to true.',
102
102
  },
103
103
  group_values: {
104
104
  type: 'array',
105
105
  description:
106
- 'Only present for `spend_threshold_reached` alerts. Scope alert to a specific group key on individual line items.',
106
+ 'Only present for `spend_threshold_reached` notifications. Scope notification to a specific group key on individual line items.',
107
107
  items: {
108
108
  type: 'object',
109
109
  properties: {
@@ -119,7 +119,8 @@ export const tool: Tool = {
119
119
  },
120
120
  invoice_types_filter: {
121
121
  type: 'array',
122
- description: 'Only supported for invoice_total_reached alerts. A list of invoice types to evaluate.',
122
+ description:
123
+ 'Only supported for invoice_total_reached threshold notifications. A list of invoice types to evaluate.',
123
124
  items: {
124
125
  type: 'string',
125
126
  },
@@ -127,7 +128,7 @@ export const tool: Tool = {
127
128
  plan_id: {
128
129
  type: 'string',
129
130
  description:
130
- 'If provided, will create this alert for this specific plan. To create an alert for all customers, do not specify a `plan_id`.',
131
+ 'If provided, will create this threshold notification for this specific plan. To create a notification for all customers, do not specify a `plan_id`.',
131
132
  },
132
133
  uniqueness_key: {
133
134
  type: 'string',
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_v1_audit_logs',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a comprehensive audit trail of all operations performed in your Metronome account, whether initiated through the API, web interface, or automated processes. This endpoint provides detailed logs of who did what and when, enabling compliance reporting, security monitoring, and operational troubleshooting across all interaction channels.\n\n### Use this endpoint to:\n- Monitor all account activity for security and compliance purposes\n- Track configuration changes regardless of source (API, UI, or system)\n- Investigate issues by reviewing historical operations\n\n### Key response fields: \nAn array of AuditLog objects containing:\n- id: Unique identifier for the audit log entry\n- timestamp: When the action occurred (RFC 3339 format)\n- actor: Information about who performed the action\n- request: Details including request ID, IP address, and user agent\n- `resource_type`: The type of resource affected (e.g., customer, contract, invoice)\n- `resource_id`: The specific resource identifier\n- `action`: The operation performed\n- `next_page`: Cursor for continuous log retrieval\n\n### Usage guidelines:\n- Continuous retrieval: The next_page token enables uninterrupted log streaming—save it between requests to ensure no logs are missed\n- Empty responses: An empty data array means no new logs yet; continue polling with the same next_page token\n- Date filtering:\n - `starting_on`: Earliest logs to return (inclusive)\n - `ending_before`: Latest logs to return (exclusive)\n - Cannot be used with `next_page`\n- Resource filtering: Must specify both `resource_type` and `resource_id` together\n- Sort order: Default is `date_asc`; use `date_desc` for newest first\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n request: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n ip: {\n type: 'string'\n },\n user_agent: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n },\n timestamp: {\n type: 'string',\n format: 'date-time'\n },\n action: {\n type: 'string'\n },\n actor: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n email: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n description: {\n type: 'string'\n },\n resource_id: {\n type: 'string'\n },\n resource_type: {\n type: 'string'\n },\n status: {\n type: 'string',\n enum: [ 'success',\n 'failure',\n 'pending'\n ]\n }\n },\n required: [ 'id',\n 'request',\n 'timestamp'\n ]\n }\n },\n next_page: {\n type: 'string',\n description: 'The next_page parameter is always returned to support ongoing log retrieval. It enables continuous querying, even when some requests return no new data. Save the next_page token from each response and use it for future requests to ensure no logs are missed. This setup is ideal for regular updates via automated processes, like cron jobs, to fetch logs continuously as they become available. When you receive an empty data array, it indicates a temporary absence of new logs, but subsequent requests might return new data.'\n }\n },\n required: [ 'data',\n 'next_page'\n ]\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a comprehensive audit trail of all operations performed in your Metronome account, whether initiated through the API, web interface, or automated processes. This endpoint provides detailed logs of who did what and when, enabling compliance reporting, security monitoring, and operational troubleshooting across all interaction channels.\n\n### Use this endpoint to:\n- Monitor all account activity for security and compliance purposes\n- Track configuration changes regardless of source (API, UI, or system)\n- Investigate issues by reviewing historical operations\n\n### Key response fields: \nAn array of AuditLog objects containing:\n- id: Unique identifier for the audit log entry\n- timestamp: When the action occurred (RFC 3339 format)\n- actor: Information about who performed the action\n- request: Details including request ID, IP address, and user agent\n- `resource_type`: The type of resource affected (e.g., customer, contract, invoice)\n- `resource_id`: The specific resource identifier\n- `action`: The operation performed\n- `next_page`: Cursor for continuous log retrieval\n\n### Usage guidelines:\n- Continuous retrieval: The next_page token enables uninterrupted log streaming—save it between requests to ensure no logs are missed\n- Empty responses: An empty data array means no new logs yet; continue polling with the same next_page token\n- Date filtering:\n - `starting_on`: Earliest logs to return (inclusive)\n - `ending_before`: Latest logs to return (exclusive)\n - Cannot be used with `next_page`\n- Resource filtering: Must specify both `resource_type` and `resource_id` together\n- Sort order: Default is `date_asc`; use `date_desc` for newest first\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/audit_log_list_response'\n }\n },\n next_page: {\n type: 'string',\n description: 'The next_page parameter is always returned to support ongoing log retrieval. It enables continuous querying, even when some requests return no new data. Save the next_page token from each response and use it for future requests to ensure no logs are missed. This setup is ideal for regular updates via automated processes, like cron jobs, to fetch logs continuously as they become available. When you receive an empty data array, it indicates a temporary absence of new logs, but subsequent requests might return new data.'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n audit_log_list_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n request: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n ip: {\n type: 'string'\n },\n user_agent: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n },\n timestamp: {\n type: 'string',\n format: 'date-time'\n },\n action: {\n type: 'string'\n },\n actor: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n email: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n description: {\n type: 'string'\n },\n resource_id: {\n type: 'string'\n },\n resource_type: {\n type: 'string'\n },\n status: {\n type: 'string',\n enum: [ 'success',\n 'failure',\n 'pending'\n ]\n }\n },\n required: [ 'id',\n 'request',\n 'timestamp'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'archive_v1_billable_metrics',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUse this endpoint to retire billable metrics that are no longer used. After a billable metric is archived, that billable metric can no longer be used in any new Products to define how that product should be metered. If you archive a billable metric that is already associated with a Product, the Product will continue to function as usual, metering based on the definition of the archived billable metric. \n\nArchived billable metrics will be returned on the `getBillableMetric` and `listBillableMetrics` endpoints with a populated `archived_at` field.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUse this endpoint to retire billable metrics that are no longer used. After a billable metric is archived, that billable metric can no longer be used in any new Products to define how that product should be metered. If you archive a billable metric that is already associated with a Product, the Product will continue to function as usual, metering based on the definition of the archived billable metric. \n\nArchived billable metrics will be returned on the `getBillableMetric` and `listBillableMetrics` endpoints with a populated `archived_at` field.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/billable_metric_archive_response',\n $defs: {\n billable_metric_archive_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'create_v1_billable_metrics',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate billable metrics programmatically with this endpoint—an essential step in configuring your pricing and packaging in Metronome.\n\nA billable metric is a customizable query that filters and aggregates events from your event stream. These metrics are continuously tracked as usage data enters Metronome through the ingestion pipeline. The ingestion process transforms raw usage data into actionable pricing metrics, enabling accurate metering and billing for your products.\n\n### Use this endpoint to: \n- Create individual or multiple billable metrics as part of a setup workflow.\n- Automate the entire pricing configuration process, from metric creation to customer contract setup.\n- Define metrics using either standard filtering/aggregation or a custom SQL query.\n\n### Key response fields: \n- The ID of the billable metric that was created\n- The created billable metric will be available to be used in Products, usage endpoints, and alerts. \n\n### Usage guidelines: \n- Metrics defined using standard filtering and aggregation are Streaming billable metrics, which have been optimized for ultra low latency and high throughput workflows. \n- Use SQL billable metrics if you require more flexible aggregation options.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate billable metrics programmatically with this endpoint—an essential step in configuring your pricing and packaging in Metronome.\n\nA billable metric is a customizable query that filters and aggregates events from your event stream. These metrics are continuously tracked as usage data enters Metronome through the ingestion pipeline. The ingestion process transforms raw usage data into actionable pricing metrics, enabling accurate metering and billing for your products.\n\n### Use this endpoint to: \n- Create individual or multiple billable metrics as part of a setup workflow.\n- Automate the entire pricing configuration process, from metric creation to customer contract setup.\n- Define metrics using either standard filtering/aggregation or a custom SQL query.\n\n### Key response fields: \n- The ID of the billable metric that was created\n- The created billable metric will be available to be used in Products, usage endpoints, and alerts. \n\n### Usage guidelines: \n- Metrics defined using standard filtering and aggregation are Streaming billable metrics, which have been optimized for ultra low latency and high throughput workflows. \n- Use SQL billable metrics if you require more flexible aggregation options.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/billable_metric_create_response',\n $defs: {\n billable_metric_create_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_v1_billable_metrics',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieves all billable metrics with their complete configurations. Use this for programmatic discovery and management of billable metrics, such as associating metrics to products and auditing for orphaned or archived metrics. \nImportant: Archived metrics are excluded by default; use `include_archived`=`true` parameter to include them.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'ID of the billable metric'\n },\n name: {\n type: 'string',\n description: 'The display name of the billable metric.'\n },\n aggregation_key: {\n type: 'string',\n description: 'A key that specifies which property of the event is used to aggregate data. This key must be one of the property filter names and is not applicable when the aggregation type is \\'count\\'.'\n },\n aggregation_type: {\n type: 'string',\n description: 'Specifies the type of aggregation performed on matching events.',\n enum: [ 'COUNT',\n 'LATEST',\n 'MAX',\n 'SUM',\n 'UNIQUE'\n ]\n },\n archived_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the billable metric was archived. If not provided, the billable metric is not archived.',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n event_type_filter: {\n $ref: '#/$defs/event_type_filter'\n },\n group_keys: {\n type: 'array',\n description: 'Property names that are used to group usage costs on an invoice. Each entry represents a set of properties used to slice events into distinct buckets.',\n items: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n property_filters: {\n type: 'array',\n description: 'A list of filters to match events to this billable metric. Each filter defines a rule on an event property. All rules must pass for the event to match the billable metric.',\n items: {\n $ref: '#/$defs/property_filter'\n }\n },\n sql: {\n type: 'string',\n description: 'The SQL query associated with the billable metric'\n }\n },\n required: [ 'id',\n 'name'\n ]\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n event_type_filter: {\n type: 'object',\n description: 'An optional filtering rule to match the \\'event_type\\' property of an event.',\n properties: {\n in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly included in the billable metric. If specified, only events of these types will match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly excluded from the billable metric. If specified, events of these types will not match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n }\n },\n property_filter: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n description: 'The name of the event property.'\n },\n exists: {\n type: 'boolean',\n description: 'Determines whether the property must exist in the event. If true, only events with this property will pass the filter. If false, only events without this property will pass the filter. If null or omitted, the existence of the property is optional.'\n },\n in_values: {\n type: 'array',\n description: 'Specifies the allowed values for the property to match an event. An event will pass the filter only if its property value is included in this list. If undefined, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'Specifies the values that prevent an event from matching the filter. An event will not pass the filter if its property value is included in this list. If null or empty, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'name'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieves all billable metrics with their complete configurations. Use this for programmatic discovery and management of billable metrics, such as associating metrics to products and auditing for orphaned or archived metrics. \nImportant: Archived metrics are excluded by default; use `include_archived`=`true` parameter to include them.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/billable_metric_list_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n billable_metric_list_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'ID of the billable metric'\n },\n name: {\n type: 'string',\n description: 'The display name of the billable metric.'\n },\n aggregation_key: {\n type: 'string',\n description: 'A key that specifies which property of the event is used to aggregate data. This key must be one of the property filter names and is not applicable when the aggregation type is \\'count\\'.'\n },\n aggregation_type: {\n type: 'string',\n description: 'Specifies the type of aggregation performed on matching events.',\n enum: [ 'COUNT',\n 'LATEST',\n 'MAX',\n 'SUM',\n 'UNIQUE'\n ]\n },\n archived_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the billable metric was archived. If not provided, the billable metric is not archived.',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n event_type_filter: {\n $ref: '#/$defs/event_type_filter'\n },\n group_keys: {\n type: 'array',\n description: 'Property names that are used to group usage costs on an invoice. Each entry represents a set of properties used to slice events into distinct buckets.',\n items: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n property_filters: {\n type: 'array',\n description: 'A list of filters to match events to this billable metric. Each filter defines a rule on an event property. All rules must pass for the event to match the billable metric.',\n items: {\n $ref: '#/$defs/property_filter'\n }\n },\n sql: {\n type: 'string',\n description: 'The SQL query associated with the billable metric'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n event_type_filter: {\n type: 'object',\n description: 'An optional filtering rule to match the \\'event_type\\' property of an event.',\n properties: {\n in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly included in the billable metric. If specified, only events of these types will match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly excluded from the billable metric. If specified, events of these types will not match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n }\n },\n property_filter: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n description: 'The name of the event property.'\n },\n exists: {\n type: 'boolean',\n description: 'Determines whether the property must exist in the event. If true, only events with this property will pass the filter. If false, only events without this property will pass the filter. If null or omitted, the existence of the property is optional.'\n },\n in_values: {\n type: 'array',\n description: 'Specifies the allowed values for the property to match an event. An event will pass the filter only if its property value is included in this list. If undefined, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'Specifies the values that prevent an event from matching the filter. An event will not pass the filter if its property value is included in this list. If null or empty, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'name'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'retrieve_v1_billable_metrics',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieves the complete configuration for a specific billable metric by its ID. Use this to review billable metric setup before associating it with products. Returns the metric's `name`, `event_type_filter`, `property_filters`, `aggregation_type`, `aggregation_key`, `group_keys`, `custom fields`, and `SQL query` (if it's a SQL billable metric). \n\nImportant: \n- Archived billable metrics will include an `archived_at` timestamp; they no longer process new usage events but remain accessible for historical reference.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'ID of the billable metric'\n },\n name: {\n type: 'string',\n description: 'The display name of the billable metric.'\n },\n aggregation_key: {\n type: 'string',\n description: 'A key that specifies which property of the event is used to aggregate data. This key must be one of the property filter names and is not applicable when the aggregation type is \\'count\\'.'\n },\n aggregation_type: {\n type: 'string',\n description: 'Specifies the type of aggregation performed on matching events.',\n enum: [ 'COUNT',\n 'LATEST',\n 'MAX',\n 'SUM',\n 'UNIQUE'\n ]\n },\n archived_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the billable metric was archived. If not provided, the billable metric is not archived.',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n event_type_filter: {\n $ref: '#/$defs/event_type_filter'\n },\n group_keys: {\n type: 'array',\n description: 'Property names that are used to group usage costs on an invoice. Each entry represents a set of properties used to slice events into distinct buckets.',\n items: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n property_filters: {\n type: 'array',\n description: 'A list of filters to match events to this billable metric. Each filter defines a rule on an event property. All rules must pass for the event to match the billable metric.',\n items: {\n $ref: '#/$defs/property_filter'\n }\n },\n sql: {\n type: 'string',\n description: 'The SQL query associated with the billable metric'\n }\n },\n required: [ 'id',\n 'name'\n ]\n }\n },\n required: [ 'data'\n ],\n $defs: {\n event_type_filter: {\n type: 'object',\n description: 'An optional filtering rule to match the \\'event_type\\' property of an event.',\n properties: {\n in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly included in the billable metric. If specified, only events of these types will match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly excluded from the billable metric. If specified, events of these types will not match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n }\n },\n property_filter: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n description: 'The name of the event property.'\n },\n exists: {\n type: 'boolean',\n description: 'Determines whether the property must exist in the event. If true, only events with this property will pass the filter. If false, only events without this property will pass the filter. If null or omitted, the existence of the property is optional.'\n },\n in_values: {\n type: 'array',\n description: 'Specifies the allowed values for the property to match an event. An event will pass the filter only if its property value is included in this list. If undefined, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'Specifies the values that prevent an event from matching the filter. An event will not pass the filter if its property value is included in this list. If null or empty, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'name'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieves the complete configuration for a specific billable metric by its ID. Use this to review billable metric setup before associating it with products. Returns the metric's `name`, `event_type_filter`, `property_filters`, `aggregation_type`, `aggregation_key`, `group_keys`, `custom fields`, and `SQL query` (if it's a SQL billable metric). \n\nImportant: \n- Archived billable metrics will include an `archived_at` timestamp; they no longer process new usage events but remain accessible for historical reference.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/billable_metric_retrieve_response',\n $defs: {\n billable_metric_retrieve_response: {\n type: 'object',\n properties: {\n data: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'ID of the billable metric'\n },\n name: {\n type: 'string',\n description: 'The display name of the billable metric.'\n },\n aggregation_key: {\n type: 'string',\n description: 'A key that specifies which property of the event is used to aggregate data. This key must be one of the property filter names and is not applicable when the aggregation type is \\'count\\'.'\n },\n aggregation_type: {\n type: 'string',\n description: 'Specifies the type of aggregation performed on matching events.',\n enum: [ 'COUNT',\n 'LATEST',\n 'MAX',\n 'SUM',\n 'UNIQUE'\n ]\n },\n archived_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the billable metric was archived. If not provided, the billable metric is not archived.',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n event_type_filter: {\n $ref: '#/$defs/event_type_filter'\n },\n group_keys: {\n type: 'array',\n description: 'Property names that are used to group usage costs on an invoice. Each entry represents a set of properties used to slice events into distinct buckets.',\n items: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n property_filters: {\n type: 'array',\n description: 'A list of filters to match events to this billable metric. Each filter defines a rule on an event property. All rules must pass for the event to match the billable metric.',\n items: {\n $ref: '#/$defs/property_filter'\n }\n },\n sql: {\n type: 'string',\n description: 'The SQL query associated with the billable metric'\n }\n },\n required: [ 'id',\n 'name'\n ]\n }\n },\n required: [ 'data'\n ]\n },\n event_type_filter: {\n type: 'object',\n description: 'An optional filtering rule to match the \\'event_type\\' property of an event.',\n properties: {\n in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly included in the billable metric. If specified, only events of these types will match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'A list of event types that are explicitly excluded from the billable metric. If specified, events of these types will not match the billable metric. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n }\n },\n property_filter: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n description: 'The name of the event property.'\n },\n exists: {\n type: 'boolean',\n description: 'Determines whether the property must exist in the event. If true, only events with this property will pass the filter. If false, only events without this property will pass the filter. If null or omitted, the existence of the property is optional.'\n },\n in_values: {\n type: 'array',\n description: 'Specifies the allowed values for the property to match an event. An event will pass the filter only if its property value is included in this list. If undefined, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n },\n not_in_values: {\n type: 'array',\n description: 'Specifies the values that prevent an event from matching the filter. An event will not pass the filter if its property value is included in this list. If null or empty, all property values will pass the filter. Must be non-empty if present.',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'name'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -261,7 +261,7 @@ export const tool: Tool = {
261
261
  type: 'string',
262
262
  description:
263
263
  'Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.',
264
- enum: ['NONE', 'STRIPE', 'ANROK', 'PRECALCULATED'],
264
+ enum: ['NONE', 'STRIPE', 'ANROK', 'AVALARA', 'PRECALCULATED'],
265
265
  },
266
266
  },
267
267
  required: ['payment_gate_type'],
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'archive_v1_contracts',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nPermanently end and archive a contract along with all its terms. Any draft invoices will be canceled, and all upcoming scheduled invoices will be voided–also all finalized invoices can optionally be voided. Use this in the event a contract was incorrectly created and needed to be removed from a customer.\n\n#### Impact on commits and credits:\nWhen archiving a contract, all associated commits and credits are also archived. For prepaid commits with active segments, Metronome automatically generates expiration ledger entries to close out any remaining balances, ensuring accurate accounting of unused prepaid amounts. These ledger entries will appear in the commit's transaction history with type `PREPAID_COMMIT_EXPIRATION`.\n\n#### Archived contract visibility: \nArchived contracts remain accessible for historical reporting and audit purposes. They can be retrieved using the `ListContracts` endpoint by setting the `include_archived` parameter to `true` or in the Metronome UI when the \"Show archived\" option is enabled.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nPermanently end and archive a contract along with all its terms. Any draft invoices will be canceled, and all upcoming scheduled invoices will be voided–also all finalized invoices can optionally be voided. Use this in the event a contract was incorrectly created and needed to be removed from a customer.\n\n#### Impact on commits and credits:\nWhen archiving a contract, all associated commits and credits are also archived. For prepaid commits with active segments, Metronome automatically generates expiration ledger entries to close out any remaining balances, ensuring accurate accounting of unused prepaid amounts. These ledger entries will appear in the commit's transaction history with type `PREPAID_COMMIT_EXPIRATION`.\n\n#### Archived contract visibility: \nArchived contracts remain accessible for historical reporting and audit purposes. They can be retrieved using the `ListContracts` endpoint by setting the `include_archived` parameter to `true` or in the Metronome UI when the \"Show archived\" option is enabled.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/contract_archive_response',\n $defs: {\n contract_archive_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -278,7 +278,7 @@ export const tool: Tool = {
278
278
  type: 'string',
279
279
  description:
280
280
  'Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.',
281
- enum: ['NONE', 'STRIPE', 'ANROK', 'PRECALCULATED'],
281
+ enum: ['NONE', 'STRIPE', 'ANROK', 'AVALARA', 'PRECALCULATED'],
282
282
  },
283
283
  },
284
284
  required: ['payment_gate_type'],
@@ -548,8 +548,29 @@ export const tool: Tool = {
548
548
  },
549
549
  required: ['contract_id', 'customer_id'],
550
550
  },
551
+ parent_behavior: {
552
+ type: 'object',
553
+ properties: {
554
+ invoice_consolidation_type: {
555
+ type: 'string',
556
+ description:
557
+ 'Indicates the desired behavior of consolidated invoices generated by the parent in a customer hierarchy\n**CONCATENATE**: Statements on the invoices of child customers will be appended to the consolidated invoice\n**NONE**: Do not generate consolidated invoices',
558
+ enum: ['CONCATENATE', 'NONE'],
559
+ },
560
+ },
561
+ },
562
+ payer: {
563
+ type: 'string',
564
+ description: "Indicates whether the parent should pay for the child's invoice charges",
565
+ enum: ['SELF', 'PARENT'],
566
+ },
567
+ usage_statement_behavior: {
568
+ type: 'string',
569
+ description:
570
+ "Indicates the behavior of the child's invoice statements on the parent's invoices\n**CONSOLIDATE**: Child's invoice statements will be added to parent's consolidated invoices\n**SEPARATE**: Child's invoice statements will appear not appear on parent's consolidated invoices",
571
+ enum: ['CONSOLIDATE', 'SEPARATE'],
572
+ },
551
573
  },
552
- required: ['parent'],
553
574
  },
554
575
  multiplier_override_prioritization: {
555
576
  type: 'string',
@@ -1644,7 +1665,7 @@ export const tool: Tool = {
1644
1665
  type: 'string',
1645
1666
  description:
1646
1667
  'Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.',
1647
- enum: ['NONE', 'STRIPE', 'ANROK', 'PRECALCULATED'],
1668
+ enum: ['NONE', 'STRIPE', 'ANROK', 'AVALARA', 'PRECALCULATED'],
1648
1669
  },
1649
1670
  },
1650
1671
  required: ['payment_gate_type'],
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'retrieve_contracts_v1_named_schedules',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a named schedule for the given rate card. This endpoint's availability is dependent on your client's configuration.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n value: {\n type: 'object',\n additionalProperties: true\n },\n ending_before: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'starting_at',\n 'value'\n ]\n }\n }\n },\n required: [ 'data'\n ]\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a named schedule for the given rate card. This endpoint's availability is dependent on your client's configuration.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/named_schedule_retrieve_response',\n $defs: {\n named_schedule_retrieve_response: {\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n value: {\n type: 'object',\n additionalProperties: true\n },\n ending_before: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'starting_at',\n 'value'\n ]\n }\n }\n },\n required: [ 'data'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'archive_contracts_v1_products',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nArchive a product. Any current rate cards associated with this product will continue to function as normal. However, it will no longer be available as an option for newly created rates. Once you archive a product, you can still retrieve it in the UI and API, but you cannot unarchive it.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nArchive a product. Any current rate cards associated with this product will continue to function as normal. However, it will no longer be available as an option for newly created rates. Once you archive a product, you can still retrieve it in the UI and API, but you cannot unarchive it.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/product_archive_response',\n $defs: {\n product_archive_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'create_contracts_v1_products',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new product object. Products in Metronome represent your company's individual product or service offerings. A Product can be thought of as the basic unit of a line item on the invoice. This is analogous to SKUs or items in an ERP system. Give the product a meaningful name as they will appear on customer invoices.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new product object. Products in Metronome represent your company's individual product or service offerings. A Product can be thought of as the basic unit of a line item on the invoice. This is analogous to SKUs or items in an ERP system. Give the product a meaningful name as they will appear on customer invoices.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/product_create_response',\n $defs: {\n product_create_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_contracts_v1_products',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a paginated list of all products in your organization with their complete configuration, version history, and metadata. By default excludes archived products unless explicitly requested via the `archive_filter` parameter.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n current: {\n $ref: '#/$defs/product_list_item_state'\n },\n initial: {\n $ref: '#/$defs/product_list_item_state'\n },\n type: {\n type: 'string',\n enum: [ 'USAGE',\n 'SUBSCRIPTION',\n 'COMPOSITE',\n 'FIXED',\n 'PRO_SERVICE'\n ]\n },\n updates: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean'\n },\n name: {\n type: 'string'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by'\n ]\n }\n },\n archived_at: {\n type: 'string',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n }\n },\n required: [ 'id',\n 'current',\n 'initial',\n 'type',\n 'updates'\n ]\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n product_list_item_state: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by',\n 'name'\n ]\n },\n quantity_conversion: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be converted using the provided conversion factor and operation. For example, if the operation is \"multiply\" and the conversion factor is 100, then the quantity will be multiplied by 100. This can be used in cases where data is sent in one unit and priced in another. For example, data could be sent in MB and priced in GB. In this case, the conversion factor would be 1024 and the operation would be \"divide\".',\n properties: {\n conversion_factor: {\n type: 'number',\n description: 'The factor to multiply or divide the quantity by.'\n },\n operation: {\n type: 'string',\n description: 'The operation to perform on the quantity',\n enum: [ 'MULTIPLY',\n 'DIVIDE'\n ]\n },\n name: {\n type: 'string',\n description: 'Optional name for this conversion.'\n }\n },\n required: [ 'conversion_factor',\n 'operation'\n ]\n },\n quantity_rounding: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be rounded using the provided rounding method and decimal places. For example, if the method is \"round up\" and the decimal places is 0, then the quantity will be rounded up to the nearest integer.',\n properties: {\n decimal_places: {\n type: 'number'\n },\n rounding_method: {\n type: 'string',\n enum: [ 'ROUND_UP',\n 'ROUND_DOWN',\n 'ROUND_HALF_UP'\n ]\n }\n },\n required: [ 'decimal_places',\n 'rounding_method'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a paginated list of all products in your organization with their complete configuration, version history, and metadata. By default excludes archived products unless explicitly requested via the `archive_filter` parameter.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/product_list_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n product_list_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n current: {\n $ref: '#/$defs/product_list_item_state'\n },\n initial: {\n $ref: '#/$defs/product_list_item_state'\n },\n type: {\n type: 'string',\n enum: [ 'USAGE',\n 'SUBSCRIPTION',\n 'COMPOSITE',\n 'FIXED',\n 'PRO_SERVICE'\n ]\n },\n updates: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean'\n },\n name: {\n type: 'string'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by'\n ]\n }\n },\n archived_at: {\n type: 'string',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n }\n },\n required: [ 'id',\n 'current',\n 'initial',\n 'type',\n 'updates'\n ]\n },\n product_list_item_state: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by',\n 'name'\n ]\n },\n quantity_conversion: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be converted using the provided conversion factor and operation. For example, if the operation is \"multiply\" and the conversion factor is 100, then the quantity will be multiplied by 100. This can be used in cases where data is sent in one unit and priced in another. For example, data could be sent in MB and priced in GB. In this case, the conversion factor would be 1024 and the operation would be \"divide\".',\n properties: {\n conversion_factor: {\n type: 'number',\n description: 'The factor to multiply or divide the quantity by.'\n },\n operation: {\n type: 'string',\n description: 'The operation to perform on the quantity',\n enum: [ 'MULTIPLY',\n 'DIVIDE'\n ]\n },\n name: {\n type: 'string',\n description: 'Optional name for this conversion.'\n }\n },\n required: [ 'conversion_factor',\n 'operation'\n ]\n },\n quantity_rounding: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be rounded using the provided rounding method and decimal places. For example, if the method is \"round up\" and the decimal places is 0, then the quantity will be rounded up to the nearest integer.',\n properties: {\n decimal_places: {\n type: 'number'\n },\n rounding_method: {\n type: 'string',\n enum: [ 'ROUND_UP',\n 'ROUND_DOWN',\n 'ROUND_HALF_UP'\n ]\n }\n },\n required: [ 'decimal_places',\n 'rounding_method'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'retrieve_contracts_v1_products',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieve a product by its ID, including all metadata and historical changes.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n current: {\n $ref: '#/$defs/product_list_item_state'\n },\n initial: {\n $ref: '#/$defs/product_list_item_state'\n },\n type: {\n type: 'string',\n enum: [ 'USAGE',\n 'SUBSCRIPTION',\n 'COMPOSITE',\n 'FIXED',\n 'PRO_SERVICE'\n ]\n },\n updates: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean'\n },\n name: {\n type: 'string'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by'\n ]\n }\n },\n archived_at: {\n type: 'string',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n }\n },\n required: [ 'id',\n 'current',\n 'initial',\n 'type',\n 'updates'\n ]\n }\n },\n required: [ 'data'\n ],\n $defs: {\n product_list_item_state: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by',\n 'name'\n ]\n },\n quantity_conversion: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be converted using the provided conversion factor and operation. For example, if the operation is \"multiply\" and the conversion factor is 100, then the quantity will be multiplied by 100. This can be used in cases where data is sent in one unit and priced in another. For example, data could be sent in MB and priced in GB. In this case, the conversion factor would be 1024 and the operation would be \"divide\".',\n properties: {\n conversion_factor: {\n type: 'number',\n description: 'The factor to multiply or divide the quantity by.'\n },\n operation: {\n type: 'string',\n description: 'The operation to perform on the quantity',\n enum: [ 'MULTIPLY',\n 'DIVIDE'\n ]\n },\n name: {\n type: 'string',\n description: 'Optional name for this conversion.'\n }\n },\n required: [ 'conversion_factor',\n 'operation'\n ]\n },\n quantity_rounding: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be rounded using the provided rounding method and decimal places. For example, if the method is \"round up\" and the decimal places is 0, then the quantity will be rounded up to the nearest integer.',\n properties: {\n decimal_places: {\n type: 'number'\n },\n rounding_method: {\n type: 'string',\n enum: [ 'ROUND_UP',\n 'ROUND_DOWN',\n 'ROUND_HALF_UP'\n ]\n }\n },\n required: [ 'decimal_places',\n 'rounding_method'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieve a product by its ID, including all metadata and historical changes.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/product_retrieve_response',\n $defs: {\n product_retrieve_response: {\n type: 'object',\n properties: {\n data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n current: {\n $ref: '#/$defs/product_list_item_state'\n },\n initial: {\n $ref: '#/$defs/product_list_item_state'\n },\n type: {\n type: 'string',\n enum: [ 'USAGE',\n 'SUBSCRIPTION',\n 'COMPOSITE',\n 'FIXED',\n 'PRO_SERVICE'\n ]\n },\n updates: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean'\n },\n name: {\n type: 'string'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by'\n ]\n }\n },\n archived_at: {\n type: 'string',\n format: 'date-time'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n }\n },\n required: [ 'id',\n 'current',\n 'initial',\n 'type',\n 'updates'\n ]\n }\n },\n required: [ 'data'\n ]\n },\n product_list_item_state: {\n type: 'object',\n properties: {\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n created_by: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n billable_metric_id: {\n type: 'string'\n },\n composite_product_ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n composite_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n exclude_free_usage: {\n type: 'boolean'\n },\n is_refundable: {\n type: 'boolean',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_internal_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n netsuite_overage_item_id: {\n type: 'string',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.'\n },\n presentation_group_key: {\n type: 'array',\n description: 'For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n pricing_group_key: {\n type: 'array',\n description: 'For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.',\n items: {\n type: 'string'\n }\n },\n quantity_conversion: {\n $ref: '#/$defs/quantity_conversion'\n },\n quantity_rounding: {\n $ref: '#/$defs/quantity_rounding'\n },\n starting_at: {\n type: 'string',\n format: 'date-time'\n },\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n },\n required: [ 'created_at',\n 'created_by',\n 'name'\n ]\n },\n quantity_conversion: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be converted using the provided conversion factor and operation. For example, if the operation is \"multiply\" and the conversion factor is 100, then the quantity will be multiplied by 100. This can be used in cases where data is sent in one unit and priced in another. For example, data could be sent in MB and priced in GB. In this case, the conversion factor would be 1024 and the operation would be \"divide\".',\n properties: {\n conversion_factor: {\n type: 'number',\n description: 'The factor to multiply or divide the quantity by.'\n },\n operation: {\n type: 'string',\n description: 'The operation to perform on the quantity',\n enum: [ 'MULTIPLY',\n 'DIVIDE'\n ]\n },\n name: {\n type: 'string',\n description: 'Optional name for this conversion.'\n }\n },\n required: [ 'conversion_factor',\n 'operation'\n ]\n },\n quantity_rounding: {\n type: 'object',\n description: 'Optional. Only valid for USAGE products. If provided, the quantity will be rounded using the provided rounding method and decimal places. For example, if the method is \"round up\" and the decimal places is 0, then the quantity will be rounded up to the nearest integer.',\n properties: {\n decimal_places: {\n type: 'number'\n },\n rounding_method: {\n type: 'string',\n enum: [ 'ROUND_UP',\n 'ROUND_DOWN',\n 'ROUND_HALF_UP'\n ]\n }\n },\n required: [ 'decimal_places',\n 'rounding_method'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'update_contracts_v1_products',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpdates a product's configuration while maintaining billing continuity for active customers. Use this endpoint to modify product names, metrics, pricing rules, and composite settings without disrupting ongoing billing cycles. Changes are scheduled using the starting_at timestamp, which must be on an hour boundary—set future dates to schedule updates ahead of time, or past dates for retroactive changes. Returns the updated product ID upon success. \n\n### Usage guidance: \n- Product type cannot be changed after creation. For incorrect product types, create a new product and archive the original instead.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpdates a product's configuration while maintaining billing continuity for active customers. Use this endpoint to modify product names, metrics, pricing rules, and composite settings without disrupting ongoing billing cycles. Changes are scheduled using the starting_at timestamp, which must be on an hour boundary—set future dates to schedule updates ahead of time, or past dates for retroactive changes. Returns the updated product ID upon success. \n\n### Usage guidance: \n- Product type cannot be changed after creation. For incorrect product types, create a new product and archive the original instead.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/product_update_response',\n $defs: {\n product_update_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'archive_contracts_v1_rate_cards',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nPermanently disable a rate card by archiving it, preventing use in new contracts while preserving existing contract pricing. Use this when retiring old pricing models, consolidating rate cards, or removing outdated pricing structures. Returns the archived rate card ID and stops the rate card from appearing in contract creation workflows.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nPermanently disable a rate card by archiving it, preventing use in new contracts while preserving existing contract pricing. Use this when retiring old pricing models, consolidating rate cards, or removing outdated pricing structures. Returns the archived rate card ID and stops the rate card from appearing in contract creation workflows.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/rate_card_archive_response',\n $defs: {\n rate_card_archive_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'create_contracts_v1_rate_cards',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nIn Metronome, the rate card is the central location for your pricing. Rate cards were built with new product launches and pricing changes in mind - you can update your products and pricing in one place, and that change will be automatically propagated across your customer cohorts. Most clients need only maintain one or a few rate cards within Metronome.\n\n### Use this endpoint to:\n- Create a rate card with a name and description\n- Define the rate card's single underlying fiat currency, and any number of conversion rates between that fiat currency and custom pricing units. You can then add products and associated rates in the fiat currency or custom pricing unit for which you have defined a conversion rate. \n- Set aliases for the rate card. Aliases are human-readable names that you can use in the place of the id of the rate card when provisioning a customer's contract. By using an alias, you can easily create a contract and provision a customer by choosing the paygo rate card, without storing the rate card id in your internal systems. This is helpful when launching a new rate card for paygo customers, you can update the alias for paygo to be scheduled to be assigned to the new rate card without updating your code.\n\n### Key response fields:\n- The ID of the rate card you just created\n\n### Usage guidelines:\n- After creating a rate card, you can now use the addRate or addRates endpoints to add products and their prices to it\n- A rate card alias can only be used by one rate card at a time. If you create a contract with a rate card alias that is already in use by another rate card, the original rate card's alias schedule will be updated. The alias will reference the rate card to which it was most recently assigned.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nIn Metronome, the rate card is the central location for your pricing. Rate cards were built with new product launches and pricing changes in mind - you can update your products and pricing in one place, and that change will be automatically propagated across your customer cohorts. Most clients need only maintain one or a few rate cards within Metronome.\n\n### Use this endpoint to:\n- Create a rate card with a name and description\n- Define the rate card's single underlying fiat currency, and any number of conversion rates between that fiat currency and custom pricing units. You can then add products and associated rates in the fiat currency or custom pricing unit for which you have defined a conversion rate. \n- Set aliases for the rate card. Aliases are human-readable names that you can use in the place of the id of the rate card when provisioning a customer's contract. By using an alias, you can easily create a contract and provision a customer by choosing the paygo rate card, without storing the rate card id in your internal systems. This is helpful when launching a new rate card for paygo customers, you can update the alias for paygo to be scheduled to be assigned to the new rate card without updating your code.\n\n### Key response fields:\n- The ID of the rate card you just created\n\n### Usage guidelines:\n- After creating a rate card, you can now use the addRate or addRates endpoints to add products and their prices to it\n- A rate card alias can only be used by one rate card at a time. If you create a contract with a rate card alias that is already in use by another rate card, the original rate card's alias schedule will be updated. The alias will reference the rate card to which it was most recently assigned.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/rate_card_create_response',\n $defs: {\n rate_card_create_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/id'\n }\n },\n required: [ 'data'\n ]\n },\n id: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {