@metronome/mcp 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -21
- package/package.json +2 -2
- package/server.js +1 -1
- package/server.mjs +1 -1
- package/src/server.ts +1 -1
- package/src/tools/index.ts +6 -0
- package/src/tools/v1/contracts/amend-v1-contracts.ts +1 -1
- package/src/tools/v1/contracts/create-v1-contracts.ts +9 -6
- package/src/tools/v1/contracts/list-balances-v1-contracts.ts +4 -0
- package/src/tools/v1/credit-grants/create-v1-credit-grants.ts +1 -1
- package/src/tools/v1/credit-grants/edit-v1-credit-grants.ts +1 -1
- package/src/tools/v1/credit-grants/list-entries-v1-credit-grants.ts +1 -1
- package/src/tools/v1/credit-grants/list-v1-credit-grants.ts +1 -1
- package/src/tools/v1/credit-grants/void-v1-credit-grants.ts +1 -1
- package/src/tools/v1/customers/alerts/list-customers-v1-alerts.ts +1 -1
- package/src/tools/v1/customers/billing-config/create-customers-v1-billing-config.ts +5 -1
- package/src/tools/v1/customers/billing-config/delete-customers-v1-billing-config.ts +2 -1
- package/src/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.ts +2 -1
- package/src/tools/v1/customers/commits/create-customers-v1-commits.ts +2 -2
- package/src/tools/v1/customers/create-v1-customers.ts +3 -0
- package/src/tools/v1/customers/invoices/add-charge-customers-v1-invoices.ts +1 -1
- package/src/tools/v1/customers/list-costs-v1-customers.ts +1 -1
- package/src/tools/v1/customers/plans/add-customers-v1-plans.ts +1 -1
- package/src/tools/v1/customers/plans/end-customers-v1-plans.ts +1 -1
- package/src/tools/v1/customers/plans/list-customers-v1-plans.ts +1 -1
- package/src/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.ts +1 -1
- package/src/tools/v1/customers/preview-events-v1-customers.ts +5 -3
- package/src/tools/v1/customers/retrieve-billing-configurations-v1-customers.ts +1 -1
- package/src/tools/v1/customers/set-billing-configurations-v1-customers.ts +1 -0
- package/src/tools/v1/payments/attempt-v1-payments.ts +1 -1
- package/src/tools/v1/payments/cancel-v1-payments.ts +1 -1
- package/src/tools/v1/payments/list-v1-payments.ts +1 -1
- package/src/tools/v1/plans/get-details-v1-plans.ts +1 -1
- package/src/tools/v1/plans/list-charges-v1-plans.ts +1 -1
- package/src/tools/v1/plans/list-customers-v1-plans.ts +1 -1
- package/src/tools/v1/plans/list-v1-plans.ts +1 -1
- package/src/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.ts +60 -0
- package/src/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.ts +48 -0
- package/src/tools/v1/settings/upsert-avalara-credentials-v1-settings.ts +65 -0
- package/src/tools/v2/contracts/edit-v2-contracts.ts +6 -3
- package/tools/index.d.mts.map +1 -1
- package/tools/index.d.ts.map +1 -1
- package/tools/index.js +6 -0
- package/tools/index.js.map +1 -1
- package/tools/index.mjs +6 -0
- package/tools/index.mjs.map +1 -1
- package/tools/v1/contracts/amend-v1-contracts.js +1 -1
- package/tools/v1/contracts/amend-v1-contracts.js.map +1 -1
- package/tools/v1/contracts/amend-v1-contracts.mjs +1 -1
- package/tools/v1/contracts/amend-v1-contracts.mjs.map +1 -1
- package/tools/v1/contracts/create-v1-contracts.d.mts.map +1 -1
- package/tools/v1/contracts/create-v1-contracts.d.ts.map +1 -1
- package/tools/v1/contracts/create-v1-contracts.js +6 -6
- package/tools/v1/contracts/create-v1-contracts.js.map +1 -1
- package/tools/v1/contracts/create-v1-contracts.mjs +6 -6
- package/tools/v1/contracts/create-v1-contracts.mjs.map +1 -1
- package/tools/v1/contracts/list-balances-v1-contracts.d.mts.map +1 -1
- package/tools/v1/contracts/list-balances-v1-contracts.d.ts.map +1 -1
- package/tools/v1/contracts/list-balances-v1-contracts.js +4 -0
- package/tools/v1/contracts/list-balances-v1-contracts.js.map +1 -1
- package/tools/v1/contracts/list-balances-v1-contracts.mjs +4 -0
- package/tools/v1/contracts/list-balances-v1-contracts.mjs.map +1 -1
- package/tools/v1/credit-grants/create-v1-credit-grants.js +1 -1
- package/tools/v1/credit-grants/create-v1-credit-grants.js.map +1 -1
- package/tools/v1/credit-grants/create-v1-credit-grants.mjs +1 -1
- package/tools/v1/credit-grants/create-v1-credit-grants.mjs.map +1 -1
- package/tools/v1/credit-grants/edit-v1-credit-grants.js +1 -1
- package/tools/v1/credit-grants/edit-v1-credit-grants.js.map +1 -1
- package/tools/v1/credit-grants/edit-v1-credit-grants.mjs +1 -1
- package/tools/v1/credit-grants/edit-v1-credit-grants.mjs.map +1 -1
- package/tools/v1/credit-grants/list-entries-v1-credit-grants.js +1 -1
- package/tools/v1/credit-grants/list-entries-v1-credit-grants.js.map +1 -1
- package/tools/v1/credit-grants/list-entries-v1-credit-grants.mjs +1 -1
- package/tools/v1/credit-grants/list-entries-v1-credit-grants.mjs.map +1 -1
- package/tools/v1/credit-grants/list-v1-credit-grants.js +1 -1
- package/tools/v1/credit-grants/list-v1-credit-grants.js.map +1 -1
- package/tools/v1/credit-grants/list-v1-credit-grants.mjs +1 -1
- package/tools/v1/credit-grants/list-v1-credit-grants.mjs.map +1 -1
- package/tools/v1/credit-grants/void-v1-credit-grants.js +1 -1
- package/tools/v1/credit-grants/void-v1-credit-grants.js.map +1 -1
- package/tools/v1/credit-grants/void-v1-credit-grants.mjs +1 -1
- package/tools/v1/credit-grants/void-v1-credit-grants.mjs.map +1 -1
- package/tools/v1/customers/alerts/list-customers-v1-alerts.js +1 -1
- package/tools/v1/customers/alerts/list-customers-v1-alerts.js.map +1 -1
- package/tools/v1/customers/alerts/list-customers-v1-alerts.mjs +1 -1
- package/tools/v1/customers/alerts/list-customers-v1-alerts.mjs.map +1 -1
- package/tools/v1/customers/billing-config/create-customers-v1-billing-config.d.mts.map +1 -1
- package/tools/v1/customers/billing-config/create-customers-v1-billing-config.d.ts.map +1 -1
- package/tools/v1/customers/billing-config/create-customers-v1-billing-config.js +3 -1
- package/tools/v1/customers/billing-config/create-customers-v1-billing-config.js.map +1 -1
- package/tools/v1/customers/billing-config/create-customers-v1-billing-config.mjs +3 -1
- package/tools/v1/customers/billing-config/create-customers-v1-billing-config.mjs.map +1 -1
- package/tools/v1/customers/billing-config/delete-customers-v1-billing-config.d.mts.map +1 -1
- package/tools/v1/customers/billing-config/delete-customers-v1-billing-config.d.ts.map +1 -1
- package/tools/v1/customers/billing-config/delete-customers-v1-billing-config.js +2 -1
- package/tools/v1/customers/billing-config/delete-customers-v1-billing-config.js.map +1 -1
- package/tools/v1/customers/billing-config/delete-customers-v1-billing-config.mjs +2 -1
- package/tools/v1/customers/billing-config/delete-customers-v1-billing-config.mjs.map +1 -1
- package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.d.mts.map +1 -1
- package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.d.ts.map +1 -1
- package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.js +2 -1
- package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.js.map +1 -1
- package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.mjs +2 -1
- package/tools/v1/customers/billing-config/retrieve-customers-v1-billing-config.mjs.map +1 -1
- package/tools/v1/customers/commits/create-customers-v1-commits.js +2 -2
- package/tools/v1/customers/commits/create-customers-v1-commits.js.map +1 -1
- package/tools/v1/customers/commits/create-customers-v1-commits.mjs +2 -2
- package/tools/v1/customers/commits/create-customers-v1-commits.mjs.map +1 -1
- package/tools/v1/customers/create-v1-customers.d.mts.map +1 -1
- package/tools/v1/customers/create-v1-customers.d.ts.map +1 -1
- package/tools/v1/customers/create-v1-customers.js +2 -0
- package/tools/v1/customers/create-v1-customers.js.map +1 -1
- package/tools/v1/customers/create-v1-customers.mjs +2 -0
- package/tools/v1/customers/create-v1-customers.mjs.map +1 -1
- package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.js +1 -1
- package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.js.map +1 -1
- package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.mjs +1 -1
- package/tools/v1/customers/invoices/add-charge-customers-v1-invoices.mjs.map +1 -1
- package/tools/v1/customers/list-costs-v1-customers.js +1 -1
- package/tools/v1/customers/list-costs-v1-customers.js.map +1 -1
- package/tools/v1/customers/list-costs-v1-customers.mjs +1 -1
- package/tools/v1/customers/list-costs-v1-customers.mjs.map +1 -1
- package/tools/v1/customers/plans/add-customers-v1-plans.js +1 -1
- package/tools/v1/customers/plans/add-customers-v1-plans.js.map +1 -1
- package/tools/v1/customers/plans/add-customers-v1-plans.mjs +1 -1
- package/tools/v1/customers/plans/add-customers-v1-plans.mjs.map +1 -1
- package/tools/v1/customers/plans/end-customers-v1-plans.js +1 -1
- package/tools/v1/customers/plans/end-customers-v1-plans.js.map +1 -1
- package/tools/v1/customers/plans/end-customers-v1-plans.mjs +1 -1
- package/tools/v1/customers/plans/end-customers-v1-plans.mjs.map +1 -1
- package/tools/v1/customers/plans/list-customers-v1-plans.js +1 -1
- package/tools/v1/customers/plans/list-customers-v1-plans.js.map +1 -1
- package/tools/v1/customers/plans/list-customers-v1-plans.mjs +1 -1
- package/tools/v1/customers/plans/list-customers-v1-plans.mjs.map +1 -1
- package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.js +1 -1
- package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.js.map +1 -1
- package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.mjs +1 -1
- package/tools/v1/customers/plans/list-price-adjustments-customers-v1-plans.mjs.map +1 -1
- package/tools/v1/customers/preview-events-v1-customers.d.mts.map +1 -1
- package/tools/v1/customers/preview-events-v1-customers.d.ts.map +1 -1
- package/tools/v1/customers/preview-events-v1-customers.js +4 -3
- package/tools/v1/customers/preview-events-v1-customers.js.map +1 -1
- package/tools/v1/customers/preview-events-v1-customers.mjs +4 -3
- package/tools/v1/customers/preview-events-v1-customers.mjs.map +1 -1
- package/tools/v1/customers/retrieve-billing-configurations-v1-customers.js +1 -1
- package/tools/v1/customers/retrieve-billing-configurations-v1-customers.js.map +1 -1
- package/tools/v1/customers/retrieve-billing-configurations-v1-customers.mjs +1 -1
- package/tools/v1/customers/retrieve-billing-configurations-v1-customers.mjs.map +1 -1
- package/tools/v1/customers/set-billing-configurations-v1-customers.d.mts.map +1 -1
- package/tools/v1/customers/set-billing-configurations-v1-customers.d.ts.map +1 -1
- package/tools/v1/customers/set-billing-configurations-v1-customers.js +1 -0
- package/tools/v1/customers/set-billing-configurations-v1-customers.js.map +1 -1
- package/tools/v1/customers/set-billing-configurations-v1-customers.mjs +1 -0
- package/tools/v1/customers/set-billing-configurations-v1-customers.mjs.map +1 -1
- package/tools/v1/payments/attempt-v1-payments.js +1 -1
- package/tools/v1/payments/attempt-v1-payments.js.map +1 -1
- package/tools/v1/payments/attempt-v1-payments.mjs +1 -1
- package/tools/v1/payments/attempt-v1-payments.mjs.map +1 -1
- package/tools/v1/payments/cancel-v1-payments.js +1 -1
- package/tools/v1/payments/cancel-v1-payments.js.map +1 -1
- package/tools/v1/payments/cancel-v1-payments.mjs +1 -1
- package/tools/v1/payments/cancel-v1-payments.mjs.map +1 -1
- package/tools/v1/payments/list-v1-payments.js +1 -1
- package/tools/v1/payments/list-v1-payments.js.map +1 -1
- package/tools/v1/payments/list-v1-payments.mjs +1 -1
- package/tools/v1/payments/list-v1-payments.mjs.map +1 -1
- package/tools/v1/plans/get-details-v1-plans.js +1 -1
- package/tools/v1/plans/get-details-v1-plans.js.map +1 -1
- package/tools/v1/plans/get-details-v1-plans.mjs +1 -1
- package/tools/v1/plans/get-details-v1-plans.mjs.map +1 -1
- package/tools/v1/plans/list-charges-v1-plans.js +1 -1
- package/tools/v1/plans/list-charges-v1-plans.js.map +1 -1
- package/tools/v1/plans/list-charges-v1-plans.mjs +1 -1
- package/tools/v1/plans/list-charges-v1-plans.mjs.map +1 -1
- package/tools/v1/plans/list-customers-v1-plans.js +1 -1
- package/tools/v1/plans/list-customers-v1-plans.js.map +1 -1
- package/tools/v1/plans/list-customers-v1-plans.mjs +1 -1
- package/tools/v1/plans/list-customers-v1-plans.mjs.map +1 -1
- package/tools/v1/plans/list-v1-plans.js +1 -1
- package/tools/v1/plans/list-v1-plans.js.map +1 -1
- package/tools/v1/plans/list-v1-plans.mjs +1 -1
- package/tools/v1/plans/list-v1-plans.mjs.map +1 -1
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.d.mts +45 -0
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.d.mts.map +1 -0
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.d.ts +45 -0
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.d.ts.map +1 -0
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.js +52 -0
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.js.map +1 -0
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.mjs +48 -0
- package/tools/v1/settings/billing-providers/create-settings-v1-billing-providers.mjs.map +1 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.d.mts +45 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.d.mts.map +1 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.d.ts +45 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.d.ts.map +1 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.js +41 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.js.map +1 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.mjs +37 -0
- package/tools/v1/settings/billing-providers/list-settings-v1-billing-providers.mjs.map +1 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.d.mts +45 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.d.mts.map +1 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.d.ts +45 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.d.ts.map +1 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.js +57 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.js.map +1 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.mjs +53 -0
- package/tools/v1/settings/upsert-avalara-credentials-v1-settings.mjs.map +1 -0
- package/tools/v2/contracts/edit-v2-contracts.d.mts.map +1 -1
- package/tools/v2/contracts/edit-v2-contracts.d.ts.map +1 -1
- package/tools/v2/contracts/edit-v2-contracts.js +4 -3
- package/tools/v2/contracts/edit-v2-contracts.js.map +1 -1
- package/tools/v2/contracts/edit-v2-contracts.mjs +4 -3
- package/tools/v2/contracts/edit-v2-contracts.mjs.map +1 -1
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'end_customers_v1_plans',
|
|
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\nChange the end date of a customer's plan.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/plan_end_response',\n $defs: {\n plan_end_response: {\n type: 'object',\n properties: {}\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\nChange the end date of a customer's plan. This is a Plans (deprecated) endpoint. New clients should implement using Contracts.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/plan_end_response',\n $defs: {\n plan_end_response: {\n type: 'object',\n properties: {}\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_customers_v1_plans',
|
|
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\nList the given customer's plans in reverse-chronological order.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'the ID of the customer plan'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n plan_description: {\n type: 'string'\n },\n plan_id: {\n type: 'string',\n description: 'the ID of the plan'\n },\n plan_name: {\n type: 'string'\n },\n starting_on: {\n type: 'string',\n format: 'date-time'\n },\n ending_before: {\n type: 'string',\n format: 'date-time'\n },\n net_payment_terms_days: {\n type: 'number'\n },\n trial_info: {\n type: 'object',\n properties: {\n ending_before: {\n type: 'string',\n format: 'date-time'\n },\n spending_caps: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n amount: {\n type: 'number'\n },\n amount_remaining: {\n type: 'number'\n },\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n }\n },\n required: [ 'amount',\n 'amount_remaining',\n 'credit_type'\n ]\n }\n }\n },\n required: [ 'ending_before',\n 'spending_caps'\n ]\n }\n },\n required: [ 'id',\n 'custom_fields',\n 'plan_description',\n 'plan_id',\n 'plan_name',\n 'starting_on'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n '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\nList the given customer's plans in reverse-chronological order. This is a Plans (deprecated) endpoint. New clients should implement using Contracts.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'the ID of the customer plan'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n plan_description: {\n type: 'string'\n },\n plan_id: {\n type: 'string',\n description: 'the ID of the plan'\n },\n plan_name: {\n type: 'string'\n },\n starting_on: {\n type: 'string',\n format: 'date-time'\n },\n ending_before: {\n type: 'string',\n format: 'date-time'\n },\n net_payment_terms_days: {\n type: 'number'\n },\n trial_info: {\n type: 'object',\n properties: {\n ending_before: {\n type: 'string',\n format: 'date-time'\n },\n spending_caps: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n amount: {\n type: 'number'\n },\n amount_remaining: {\n type: 'number'\n },\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n }\n },\n required: [ 'amount',\n 'amount_remaining',\n 'credit_type'\n ]\n }\n }\n },\n required: [ 'ending_before',\n 'spending_caps'\n ]\n }\n },\n required: [ 'id',\n 'custom_fields',\n 'plan_description',\n 'plan_id',\n 'plan_name',\n 'starting_on'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n '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: 'list_price_adjustments_customers_v1_plans',
|
|
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\nLists a customer plans adjustments. See the [price adjustments documentation](https://plans-docs.metronome.com/pricing/managing-plans/#price-adjustments) for details.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_price_adjustments_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_price_adjustments_response: {\n type: 'object',\n properties: {\n charge_id: {\n type: 'string'\n },\n charge_type: {\n type: 'string',\n enum: [ 'usage',\n 'fixed',\n 'composite',\n 'minimum',\n 'seat'\n ]\n },\n prices: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n adjustment_type: {\n type: 'string',\n description: 'Determines how the value will be applied.',\n enum: [ 'fixed',\n 'quantity',\n 'percentage',\n 'override'\n ]\n },\n tier: {\n type: 'number',\n description: 'Used in pricing tiers. Indicates at what metric value the price applies.'\n },\n value: {\n type: 'number'\n }\n },\n required: [ 'adjustment_type'\n ]\n }\n },\n start_period: {\n type: 'number'\n },\n quantity: {\n type: 'number'\n }\n },\n required: [ 'charge_id',\n 'charge_type',\n 'prices',\n 'start_period'\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\nLists a customer plans adjustments. See the [price adjustments documentation](https://plans-docs.metronome.com/pricing/managing-plans/#price-adjustments) for details. This is a Plans (deprecated) endpoint. New clients should implement using Contracts.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_price_adjustments_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_price_adjustments_response: {\n type: 'object',\n properties: {\n charge_id: {\n type: 'string'\n },\n charge_type: {\n type: 'string',\n enum: [ 'usage',\n 'fixed',\n 'composite',\n 'minimum',\n 'seat'\n ]\n },\n prices: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n adjustment_type: {\n type: 'string',\n description: 'Determines how the value will be applied.',\n enum: [ 'fixed',\n 'quantity',\n 'percentage',\n 'override'\n ]\n },\n tier: {\n type: 'number',\n description: 'Used in pricing tiers. Indicates at what metric value the price applies.'\n },\n value: {\n type: 'number'\n }\n },\n required: [ 'adjustment_type'\n ]\n }\n },\n start_period: {\n type: 'number'\n },\n quantity: {\n type: 'number'\n }\n },\n required: [ 'charge_id',\n 'charge_type',\n 'prices',\n 'start_period'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -17,7 +17,7 @@ export const metadata: Metadata = {
|
|
|
17
17
|
export const tool: Tool = {
|
|
18
18
|
name: 'preview_events_v1_customers',
|
|
19
19
|
description:
|
|
20
|
-
"Preview how a set of events will affect a customer's invoices. Generates draft invoices for a customer using their current contract configuration and the provided events. This is useful for testing how new events will affect the customer's invoices before they are actually processed.\n",
|
|
20
|
+
"Preview how a set of events will affect a customer's invoices. Generates draft invoices for a customer using their current contract configuration and the provided events. This is useful for testing how new events will affect the customer's invoices before they are actually processed. Customers on contracts with SQL billable metrics are not supported.\n",
|
|
21
21
|
inputSchema: {
|
|
22
22
|
type: 'object',
|
|
23
23
|
properties: {
|
|
@@ -26,6 +26,8 @@ export const tool: Tool = {
|
|
|
26
26
|
},
|
|
27
27
|
events: {
|
|
28
28
|
type: 'array',
|
|
29
|
+
description:
|
|
30
|
+
'Array of usage events to include in the preview calculation. Must contain at least one event in `merge` mode.\n',
|
|
29
31
|
items: {
|
|
30
32
|
type: 'object',
|
|
31
33
|
properties: {
|
|
@@ -52,12 +54,12 @@ export const tool: Tool = {
|
|
|
52
54
|
mode: {
|
|
53
55
|
type: 'string',
|
|
54
56
|
description:
|
|
55
|
-
|
|
57
|
+
"Controls how the provided events are combined with existing usage data. Use `replace` to calculate the preview as if these are the only events for the customer, ignoring all historical usage. Use `merge` to combine these events with the customer's existing usage. Defaults to `replace`.",
|
|
56
58
|
enum: ['replace', 'merge'],
|
|
57
59
|
},
|
|
58
60
|
skip_zero_qty_line_items: {
|
|
59
61
|
type: 'boolean',
|
|
60
|
-
description: '
|
|
62
|
+
description: 'When `true`, line items with zero quantity are excluded from the response.',
|
|
61
63
|
},
|
|
62
64
|
},
|
|
63
65
|
required: ['customer_id', 'events'],
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'retrieve_billing_configurations_v1_customers',
|
|
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\nReturns all billing configurations previously set for the customer. Use during the contract provisioning process to fetch the `billing_provider_configuration_id` needed to set the contract billing configuration.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/customer_retrieve_billing_configurations_response',\n $defs: {\n customer_retrieve_billing_configurations_response: {\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 this configuration; can be provided as the billing_provider_configuration_id when creating a contract.'\n },\n archived_at: {\n type: 'string',\n format: 'date-time'\n },\n billing_provider: {\n type: 'string',\n description: 'The billing provider set for this configuration.',\n enum: [ 'aws_marketplace',\n 'stripe',\n 'netsuite',\n 'custom',\n 'azure_marketplace',\n 'quickbooks_online',\n 'workday',\n 'gcp_marketplace'\n ]\n },\n configuration: {\n type: 'object',\n description: 'Configuration for the billing provider. The structure of this object is specific to the billing provider.',\n additionalProperties: true\n },\n customer_id: {\n type: 'string'\n },\n delivery_method: {\n type: 'string',\n description: 'The method to use for delivering invoices to this customer.',\n enum: [ 'direct_to_billing_provider',\n 'aws_sqs',\n 'tackle',\n 'aws_sns'\n ]\n },\n delivery_method_configuration: {\n type: 'object',\n description: 'Configuration for the delivery method. The structure of this object is specific to the delivery method.',\n additionalProperties: true\n },\n delivery_method_id: {\n type: 'string',\n description: 'ID of the delivery method to use for this customer.'\n }\n },\n required: [ 'id',\n 'archived_at',\n 'billing_provider',\n 'configuration',\n 'customer_id',\n 'delivery_method',\n 'delivery_method_configuration',\n 'delivery_method_id'\n ]\n }\n }\n },\n required: [ 'data'\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\nReturns all billing configurations previously set for the customer. Use during the contract provisioning process to fetch the `billing_provider_configuration_id` needed to set the contract billing configuration.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/customer_retrieve_billing_configurations_response',\n $defs: {\n customer_retrieve_billing_configurations_response: {\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 this configuration; can be provided as the billing_provider_configuration_id when creating a contract.'\n },\n archived_at: {\n type: 'string',\n format: 'date-time'\n },\n billing_provider: {\n type: 'string',\n description: 'The billing provider set for this configuration.',\n enum: [ 'aws_marketplace',\n 'stripe',\n 'netsuite',\n 'custom',\n 'azure_marketplace',\n 'quickbooks_online',\n 'workday',\n 'gcp_marketplace',\n 'metronome'\n ]\n },\n configuration: {\n type: 'object',\n description: 'Configuration for the billing provider. The structure of this object is specific to the billing provider.',\n additionalProperties: true\n },\n customer_id: {\n type: 'string'\n },\n delivery_method: {\n type: 'string',\n description: 'The method to use for delivering invoices to this customer.',\n enum: [ 'direct_to_billing_provider',\n 'aws_sqs',\n 'tackle',\n 'aws_sns'\n ]\n },\n delivery_method_configuration: {\n type: 'object',\n description: 'Configuration for the delivery method. The structure of this object is specific to the delivery method.',\n additionalProperties: true\n },\n delivery_method_id: {\n type: 'string',\n description: 'ID of the delivery method to use for this customer.'\n }\n },\n required: [ 'id',\n 'archived_at',\n 'billing_provider',\n 'configuration',\n 'customer_id',\n 'delivery_method',\n 'delivery_method_configuration',\n 'delivery_method_id'\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: 'attempt_v1_payments',
|
|
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\nTrigger a new attempt by canceling any existing attempts for this invoice and creating a new Payment. This will trigger another attempt to charge the Customer's configured Payment Gateway. \nPayment can only be attempted if all of the following are true:\n - The Metronome Invoice is finalized\n - PLG Invoicing is configured for the Customer\n - You cannot attempt payments for invoices that have already been `paid` or `voided`.\n\nAttempting to payment on an ineligible Invoice or Customer will result in a `400` response.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/payment_attempt_response',\n $defs: {\n payment_attempt_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/payment'\n }\n },\n required: [ 'data'\n ]\n },\n payment: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n amount: {\n type: 'number'\n },\n amount_paid: {\n type: 'number'\n },\n contract_id: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n customer_id: {\n type: 'string'\n },\n error_message: {\n type: 'string'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n invoice_id: {\n type: 'string'\n },\n payment_gateway: {\n type: 'object',\n properties: {\n stripe: {\n type: 'object',\n properties: {\n payment_intent_id: {\n type: 'string'\n },\n error: {\n type: 'object',\n properties: {\n code: {\n type: 'string'\n },\n decline_code: {\n type: 'string'\n },\n type: {\n type: 'string'\n }\n }\n }\n },\n required: [ 'payment_intent_id'\n ]\n },\n type: {\n type: 'string',\n enum: [ 'stripe'\n ]\n }\n },\n required: [ 'stripe',\n 'type'\n ]\n },\n status: {\n $ref: '#/$defs/payment_status'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'id'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n payment_status: {\n type: 'string',\n enum: [ 'pending',\n 'requires_intervention',\n 'paid',\n 'canceled'\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\nTrigger a new attempt by canceling any existing attempts for this invoice and creating a new Payment. This will trigger another attempt to charge the Customer's configured Payment Gateway. \nPayment can only be attempted if all of the following are true:\n - The Metronome Invoice is finalized\n - PLG Invoicing is configured for the Customer\n - You cannot attempt payments for invoices that have already been `paid` or `voided`.\n\nAttempting to payment on an ineligible Invoice or Customer will result in a `400` response.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/payment_attempt_response',\n $defs: {\n payment_attempt_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/payment'\n }\n },\n required: [ 'data'\n ]\n },\n payment: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n amount: {\n type: 'number'\n },\n amount_paid: {\n type: 'number'\n },\n contract_id: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n customer_id: {\n type: 'string'\n },\n error_message: {\n type: 'string'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n invoice_id: {\n type: 'string'\n },\n payment_gateway: {\n type: 'object',\n properties: {\n stripe: {\n type: 'object',\n properties: {\n payment_intent_id: {\n type: 'string'\n },\n error: {\n type: 'object',\n properties: {\n code: {\n type: 'string'\n },\n decline_code: {\n type: 'string'\n },\n type: {\n type: 'string'\n }\n }\n },\n payment_method_id: {\n type: 'string'\n }\n },\n required: [ 'payment_intent_id'\n ]\n },\n type: {\n type: 'string',\n enum: [ 'stripe'\n ]\n }\n },\n required: [ 'stripe',\n 'type'\n ]\n },\n status: {\n $ref: '#/$defs/payment_status'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'id'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n payment_status: {\n type: 'string',\n enum: [ 'pending',\n 'requires_intervention',\n 'paid',\n 'canceled'\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: 'cancel_v1_payments',
|
|
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\nCancel an existing payment attempt for an invoice.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/payment_cancel_response',\n $defs: {\n payment_cancel_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/payment'\n }\n },\n required: [ 'data'\n ]\n },\n payment: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n amount: {\n type: 'number'\n },\n amount_paid: {\n type: 'number'\n },\n contract_id: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n customer_id: {\n type: 'string'\n },\n error_message: {\n type: 'string'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n invoice_id: {\n type: 'string'\n },\n payment_gateway: {\n type: 'object',\n properties: {\n stripe: {\n type: 'object',\n properties: {\n payment_intent_id: {\n type: 'string'\n },\n error: {\n type: 'object',\n properties: {\n code: {\n type: 'string'\n },\n decline_code: {\n type: 'string'\n },\n type: {\n type: 'string'\n }\n }\n }\n },\n required: [ 'payment_intent_id'\n ]\n },\n type: {\n type: 'string',\n enum: [ 'stripe'\n ]\n }\n },\n required: [ 'stripe',\n 'type'\n ]\n },\n status: {\n $ref: '#/$defs/payment_status'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'id'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n payment_status: {\n type: 'string',\n enum: [ 'pending',\n 'requires_intervention',\n 'paid',\n 'canceled'\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\nCancel an existing payment attempt for an invoice.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/payment_cancel_response',\n $defs: {\n payment_cancel_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/payment'\n }\n },\n required: [ 'data'\n ]\n },\n payment: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n amount: {\n type: 'number'\n },\n amount_paid: {\n type: 'number'\n },\n contract_id: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n customer_id: {\n type: 'string'\n },\n error_message: {\n type: 'string'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n invoice_id: {\n type: 'string'\n },\n payment_gateway: {\n type: 'object',\n properties: {\n stripe: {\n type: 'object',\n properties: {\n payment_intent_id: {\n type: 'string'\n },\n error: {\n type: 'object',\n properties: {\n code: {\n type: 'string'\n },\n decline_code: {\n type: 'string'\n },\n type: {\n type: 'string'\n }\n }\n },\n payment_method_id: {\n type: 'string'\n }\n },\n required: [ 'payment_intent_id'\n ]\n },\n type: {\n type: 'string',\n enum: [ 'stripe'\n ]\n }\n },\n required: [ 'stripe',\n 'type'\n ]\n },\n status: {\n $ref: '#/$defs/payment_status'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'id'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n payment_status: {\n type: 'string',\n enum: [ 'pending',\n 'requires_intervention',\n 'paid',\n 'canceled'\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_payments',
|
|
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\nFetch all payment attempts for the given invoice.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/payment'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n payment: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n amount: {\n type: 'number'\n },\n amount_paid: {\n type: 'number'\n },\n contract_id: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n customer_id: {\n type: 'string'\n },\n error_message: {\n type: 'string'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n invoice_id: {\n type: 'string'\n },\n payment_gateway: {\n type: 'object',\n properties: {\n stripe: {\n type: 'object',\n properties: {\n payment_intent_id: {\n type: 'string'\n },\n error: {\n type: 'object',\n properties: {\n code: {\n type: 'string'\n },\n decline_code: {\n type: 'string'\n },\n type: {\n type: 'string'\n }\n }\n }\n },\n required: [ 'payment_intent_id'\n ]\n },\n type: {\n type: 'string',\n enum: [ 'stripe'\n ]\n }\n },\n required: [ 'stripe',\n 'type'\n ]\n },\n status: {\n $ref: '#/$defs/payment_status'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'id'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n payment_status: {\n type: 'string',\n enum: [ 'pending',\n 'requires_intervention',\n 'paid',\n 'canceled'\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\nFetch all payment attempts for the given invoice.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/payment'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data'\n ],\n $defs: {\n payment: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n amount: {\n type: 'number'\n },\n amount_paid: {\n type: 'number'\n },\n contract_id: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n customer_id: {\n type: 'string'\n },\n error_message: {\n type: 'string'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n invoice_id: {\n type: 'string'\n },\n payment_gateway: {\n type: 'object',\n properties: {\n stripe: {\n type: 'object',\n properties: {\n payment_intent_id: {\n type: 'string'\n },\n error: {\n type: 'object',\n properties: {\n code: {\n type: 'string'\n },\n decline_code: {\n type: 'string'\n },\n type: {\n type: 'string'\n }\n }\n },\n payment_method_id: {\n type: 'string'\n }\n },\n required: [ 'payment_intent_id'\n ]\n },\n type: {\n type: 'string',\n enum: [ 'stripe'\n ]\n }\n },\n required: [ 'stripe',\n 'type'\n ]\n },\n status: {\n $ref: '#/$defs/payment_status'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'id'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'name'\n ]\n },\n payment_status: {\n type: 'string',\n enum: [ 'pending',\n 'requires_intervention',\n 'paid',\n 'canceled'\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: 'get_details_v1_plans',
|
|
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\nFetch high level details of a specific plan.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/plan_get_details_response',\n $defs: {\n plan_get_details_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/plan_detail'\n }\n },\n required: [ 'data'\n ]\n },\n plan_detail: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n name: {\n type: 'string'\n },\n credit_grants: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n amount_granted: {\n type: 'number'\n },\n amount_granted_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n amount_paid: {\n type: 'number'\n },\n amount_paid_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n effective_duration: {\n type: 'number'\n },\n name: {\n type: 'string'\n },\n priority: {\n type: 'string'\n },\n send_invoice: {\n type: 'boolean'\n },\n reason: {\n type: 'string'\n },\n recurrence_duration: {\n type: 'number'\n },\n recurrence_interval: {\n type: 'number'\n }\n },\n required: [ 'amount_granted',\n 'amount_granted_credit_type',\n 'amount_paid',\n 'amount_paid_credit_type',\n 'effective_duration',\n 'name',\n 'priority',\n 'send_invoice'\n ]\n }\n },\n description: {\n type: 'string'\n },\n minimums: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n name: {\n type: 'string'\n },\n start_period: {\n type: 'number',\n description: 'Used in price ramps. Indicates how many billing periods pass before the charge applies.'\n },\n value: {\n type: 'number'\n }\n },\n required: [ 'credit_type',\n 'name',\n 'start_period',\n 'value'\n ]\n }\n },\n overage_rates: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n start_period: {\n type: 'number',\n description: 'Used in price ramps. Indicates how many billing periods pass before the charge applies.'\n },\n to_fiat_conversion_factor: {\n type: 'number'\n }\n },\n required: [ 'credit_type',\n 'fiat_credit_type',\n 'start_period',\n 'to_fiat_conversion_factor'\n ]\n }\n }\n },\n required: [ 'id',\n 'custom_fields',\n 'name'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n '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\nFetch high level details of a specific plan. This is a Plans (deprecated) endpoint. New clients should implement using Contracts.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/plan_get_details_response',\n $defs: {\n plan_get_details_response: {\n type: 'object',\n properties: {\n data: {\n $ref: '#/$defs/plan_detail'\n }\n },\n required: [ 'data'\n ]\n },\n plan_detail: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n name: {\n type: 'string'\n },\n credit_grants: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n amount_granted: {\n type: 'number'\n },\n amount_granted_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n amount_paid: {\n type: 'number'\n },\n amount_paid_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n effective_duration: {\n type: 'number'\n },\n name: {\n type: 'string'\n },\n priority: {\n type: 'string'\n },\n send_invoice: {\n type: 'boolean'\n },\n reason: {\n type: 'string'\n },\n recurrence_duration: {\n type: 'number'\n },\n recurrence_interval: {\n type: 'number'\n }\n },\n required: [ 'amount_granted',\n 'amount_granted_credit_type',\n 'amount_paid',\n 'amount_paid_credit_type',\n 'effective_duration',\n 'name',\n 'priority',\n 'send_invoice'\n ]\n }\n },\n description: {\n type: 'string'\n },\n minimums: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n name: {\n type: 'string'\n },\n start_period: {\n type: 'number',\n description: 'Used in price ramps. Indicates how many billing periods pass before the charge applies.'\n },\n value: {\n type: 'number'\n }\n },\n required: [ 'credit_type',\n 'name',\n 'start_period',\n 'value'\n ]\n }\n },\n overage_rates: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n fiat_credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n start_period: {\n type: 'number',\n description: 'Used in price ramps. Indicates how many billing periods pass before the charge applies.'\n },\n to_fiat_conversion_factor: {\n type: 'number'\n }\n },\n required: [ 'credit_type',\n 'fiat_credit_type',\n 'start_period',\n 'to_fiat_conversion_factor'\n ]\n }\n }\n },\n required: [ 'id',\n 'custom_fields',\n 'name'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n '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: 'list_charges_v1_plans',
|
|
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\nFetches a list of charges of a specific plan.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_charges_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_charges_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n charge_type: {\n type: 'string',\n enum: [ 'usage',\n 'fixed',\n 'composite',\n 'minimum',\n 'seat'\n ]\n },\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n name: {\n type: 'string'\n },\n prices: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n tier: {\n type: 'number',\n description: 'Used in pricing tiers. Indicates at what metric value the price applies.'\n },\n value: {\n type: 'number'\n },\n collection_interval: {\n type: 'number'\n },\n collection_schedule: {\n type: 'string'\n },\n quantity: {\n type: 'number'\n }\n },\n required: [ 'tier',\n 'value'\n ]\n }\n },\n product_id: {\n type: 'string'\n },\n product_name: {\n type: 'string'\n },\n quantity: {\n type: 'number'\n },\n start_period: {\n type: 'number',\n description: 'Used in price ramps. Indicates how many billing periods pass before the charge applies.'\n },\n tier_reset_frequency: {\n type: 'number',\n description: 'Used in pricing tiers. Indicates how often the tier resets. Default is 1 - the tier count resets every billing period.'\n },\n unit_conversion: {\n type: 'object',\n description: 'Specifies how quantities for usage based charges will be converted.',\n properties: {\n division_factor: {\n type: 'number',\n description: 'The conversion factor'\n },\n rounding_behavior: {\n type: 'string',\n description: 'Whether usage should be rounded down or up to the nearest whole number. If null, quantity will be rounded to 20 decimal places.',\n enum: [ 'floor',\n 'ceiling'\n ]\n }\n },\n required: [ 'division_factor'\n ]\n }\n },\n required: [ 'id',\n 'charge_type',\n 'credit_type',\n 'custom_fields',\n 'name',\n 'prices',\n 'product_id',\n 'product_name'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n '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\nFetches a list of charges of a specific plan. This is a Plans (deprecated) endpoint. New clients should implement using Contracts.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_charges_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_charges_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n charge_type: {\n type: 'string',\n enum: [ 'usage',\n 'fixed',\n 'composite',\n 'minimum',\n 'seat'\n ]\n },\n credit_type: {\n $ref: '#/$defs/credit_type_data'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n name: {\n type: 'string'\n },\n prices: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n tier: {\n type: 'number',\n description: 'Used in pricing tiers. Indicates at what metric value the price applies.'\n },\n value: {\n type: 'number'\n },\n collection_interval: {\n type: 'number'\n },\n collection_schedule: {\n type: 'string'\n },\n quantity: {\n type: 'number'\n }\n },\n required: [ 'tier',\n 'value'\n ]\n }\n },\n product_id: {\n type: 'string'\n },\n product_name: {\n type: 'string'\n },\n quantity: {\n type: 'number'\n },\n start_period: {\n type: 'number',\n description: 'Used in price ramps. Indicates how many billing periods pass before the charge applies.'\n },\n tier_reset_frequency: {\n type: 'number',\n description: 'Used in pricing tiers. Indicates how often the tier resets. Default is 1 - the tier count resets every billing period.'\n },\n unit_conversion: {\n type: 'object',\n description: 'Specifies how quantities for usage based charges will be converted.',\n properties: {\n division_factor: {\n type: 'number',\n description: 'The conversion factor'\n },\n rounding_behavior: {\n type: 'string',\n description: 'Whether usage should be rounded down or up to the nearest whole number. If null, quantity will be rounded to 20 decimal places.',\n enum: [ 'floor',\n 'ceiling'\n ]\n }\n },\n required: [ 'division_factor'\n ]\n }\n },\n required: [ 'id',\n 'charge_type',\n 'credit_type',\n 'custom_fields',\n 'name',\n 'prices',\n 'product_id',\n 'product_name'\n ]\n },\n credit_type_data: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n }\n },\n required: [ 'id',\n '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: 'list_customers_v1_plans',
|
|
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\nFetches a list of customers on a specific plan (by default, only currently active plans are included)\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_customers_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_customers_response: {\n type: 'object',\n properties: {\n customer_details: {\n $ref: '#/$defs/customer_detail'\n },\n plan_details: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n customer_plan_id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n starting_on: {\n type: 'string',\n description: 'The start date of the plan',\n format: 'date-time'\n },\n ending_before: {\n type: 'string',\n description: 'The end date of the plan',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'custom_fields',\n 'customer_plan_id',\n 'name',\n 'starting_on'\n ]\n }\n },\n required: [ 'customer_details',\n 'plan_details'\n ]\n },\n customer_detail: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'the Metronome ID of the customer'\n },\n created_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the customer was created.',\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 customer_config: {\n type: 'object',\n properties: {\n salesforce_account_id: {\n type: 'string',\n description: 'The Salesforce account ID for the customer'\n }\n },\n required: [ 'salesforce_account_id'\n ]\n },\n external_id: {\n type: 'string',\n description: '(deprecated, use ingest_aliases instead) the first ID (Metronome or ingest alias) that can be used in usage events'\n },\n ingest_aliases: {\n type: 'array',\n description: 'aliases for this customer that can be used instead of the Metronome customer ID in usage events',\n items: {\n type: 'string'\n }\n },\n name: {\n type: 'string'\n },\n updated_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the customer was last updated.',\n format: 'date-time'\n },\n archived_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the customer was archived. Null if the customer is active.',\n format: 'date-time'\n },\n current_billable_status: {\n type: 'object',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.',\n properties: {\n value: {\n type: 'string',\n enum: [ 'billable',\n 'unbillable'\n ]\n },\n effective_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'value'\n ]\n }\n },\n required: [ 'id',\n 'created_at',\n 'custom_fields',\n 'customer_config',\n 'external_id',\n 'ingest_aliases',\n 'name',\n 'updated_at'\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\nFetches a list of customers on a specific plan (by default, only currently active plans are included). This is a Plans (deprecated) endpoint. New clients should implement using Contracts.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_customers_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_customers_response: {\n type: 'object',\n properties: {\n customer_details: {\n $ref: '#/$defs/customer_detail'\n },\n plan_details: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n custom_fields: {\n type: 'object',\n description: 'Custom fields to be added eg. { \"key1\": \"value1\", \"key2\": \"value2\" }',\n additionalProperties: true\n },\n customer_plan_id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n starting_on: {\n type: 'string',\n description: 'The start date of the plan',\n format: 'date-time'\n },\n ending_before: {\n type: 'string',\n description: 'The end date of the plan',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'custom_fields',\n 'customer_plan_id',\n 'name',\n 'starting_on'\n ]\n }\n },\n required: [ 'customer_details',\n 'plan_details'\n ]\n },\n customer_detail: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'the Metronome ID of the customer'\n },\n created_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the customer was created.',\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 customer_config: {\n type: 'object',\n properties: {\n salesforce_account_id: {\n type: 'string',\n description: 'The Salesforce account ID for the customer'\n }\n },\n required: [ 'salesforce_account_id'\n ]\n },\n external_id: {\n type: 'string',\n description: '(deprecated, use ingest_aliases instead) the first ID (Metronome or ingest alias) that can be used in usage events'\n },\n ingest_aliases: {\n type: 'array',\n description: 'aliases for this customer that can be used instead of the Metronome customer ID in usage events',\n items: {\n type: 'string'\n }\n },\n name: {\n type: 'string'\n },\n updated_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the customer was last updated.',\n format: 'date-time'\n },\n archived_at: {\n type: 'string',\n description: 'RFC 3339 timestamp indicating when the customer was archived. Null if the customer is active.',\n format: 'date-time'\n },\n current_billable_status: {\n type: 'object',\n description: 'This field\\'s availability is dependent on your client\\'s configuration.',\n properties: {\n value: {\n type: 'string',\n enum: [ 'billable',\n 'unbillable'\n ]\n },\n effective_at: {\n type: 'string',\n format: 'date-time'\n }\n },\n required: [ 'value'\n ]\n }\n },\n required: [ 'id',\n 'created_at',\n 'custom_fields',\n 'customer_config',\n 'external_id',\n 'ingest_aliases',\n 'name',\n 'updated_at'\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_plans',
|
|
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\nList all available plans.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n description: {\n type: 'string'\n },\n name: {\n type: 'string'\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 'description',\n '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\nList all available plans. This is a Plans (deprecated) endpoint. New clients should implement using Contracts.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n $ref: '#/$defs/plan_list_response'\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data',\n 'next_page'\n ],\n $defs: {\n plan_list_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n description: {\n type: 'string'\n },\n name: {\n type: 'string'\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 'description',\n 'name'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { maybeFilter } from '@metronome/mcp/filtering';
|
|
4
|
+
import { Metadata, asTextContentResult } from '@metronome/mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Metronome from '@metronome/sdk';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'v1.settings.billing_providers',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'post',
|
|
14
|
+
httpPath: '/v1/setUpBillingProvider',
|
|
15
|
+
operationId: 'setUpBillingProvider-v1',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'create_settings_v1_billing_providers',
|
|
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\nSet up account-level configuration for a billing provider. Once configured, individual contracts across customers can be mapped to this configuration using the returned delivery_method_id.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/billing_provider_create_response',\n $defs: {\n billing_provider_create_response: {\n type: 'object',\n properties: {\n data: {\n type: 'object',\n properties: {\n delivery_method_id: {\n type: 'string'\n }\n },\n required: [ 'delivery_method_id'\n ]\n }\n },\n required: [ 'data'\n ]\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
billing_provider: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'The billing provider set for this configuration.',
|
|
28
|
+
enum: ['aws_marketplace', 'azure_marketplace'],
|
|
29
|
+
},
|
|
30
|
+
configuration: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
description:
|
|
33
|
+
'Account-level configuration for the billing provider. The structure of this object is specific to the billing provider and delivery provider combination. See examples below.',
|
|
34
|
+
additionalProperties: true,
|
|
35
|
+
},
|
|
36
|
+
delivery_method: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'The method to use for delivering invoices for this configuration.',
|
|
39
|
+
enum: ['direct_to_billing_provider', 'aws_sqs', 'aws_sns'],
|
|
40
|
+
},
|
|
41
|
+
jq_filter: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
title: 'jq Filter',
|
|
44
|
+
description:
|
|
45
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
required: ['billing_provider', 'configuration', 'delivery_method'],
|
|
49
|
+
},
|
|
50
|
+
annotations: {},
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const handler = async (client: Metronome, args: Record<string, unknown> | undefined) => {
|
|
54
|
+
const { jq_filter, ...body } = args as any;
|
|
55
|
+
return asTextContentResult(
|
|
56
|
+
await maybeFilter(jq_filter, await client.v1.settings.billingProviders.create(body)),
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { maybeFilter } from '@metronome/mcp/filtering';
|
|
4
|
+
import { Metadata, asTextContentResult } from '@metronome/mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Metronome from '@metronome/sdk';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'v1.settings.billing_providers',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'post',
|
|
14
|
+
httpPath: '/v1/listConfiguredBillingProviders',
|
|
15
|
+
operationId: 'listConfiguredBillingProviders-v1',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'list_settings_v1_billing_providers',
|
|
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\nLists all configured billing providers and their delivery method configurations for your account. Returns provider details, delivery method IDs, and configuration settings needed for mapping individual customer contracts to billing integrations.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/billing_provider_list_response',\n $defs: {\n billing_provider_list_response: {\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n billing_provider: {\n type: 'string',\n description: 'The billing provider set for this configuration.',\n enum: [ 'aws_marketplace',\n 'stripe',\n 'netsuite',\n 'custom',\n 'azure_marketplace',\n 'quickbooks_online',\n 'workday',\n 'gcp_marketplace',\n 'metronome'\n ]\n },\n delivery_method: {\n type: 'string',\n description: 'The method to use for delivering invoices to this customer.',\n enum: [ 'direct_to_billing_provider',\n 'aws_sqs',\n 'tackle',\n 'aws_sns'\n ]\n },\n delivery_method_configuration: {\n type: 'object',\n description: 'Configuration for the delivery method. The structure of this object is specific to the delivery method. Some configuration may be omitted for security reasons.',\n additionalProperties: true\n },\n delivery_method_id: {\n type: 'string',\n description: 'ID of the delivery method to use for this customer.'\n }\n },\n required: [ 'billing_provider',\n 'delivery_method',\n 'delivery_method_configuration',\n 'delivery_method_id'\n ]\n }\n },\n next_page: {\n type: 'string'\n }\n },\n required: [ 'data'\n ]\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
next_page: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'The cursor to the next page of results',
|
|
28
|
+
},
|
|
29
|
+
jq_filter: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
title: 'jq Filter',
|
|
32
|
+
description:
|
|
33
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: [],
|
|
37
|
+
},
|
|
38
|
+
annotations: {},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const handler = async (client: Metronome, args: Record<string, unknown> | undefined) => {
|
|
42
|
+
const { jq_filter, ...body } = args as any;
|
|
43
|
+
return asTextContentResult(
|
|
44
|
+
await maybeFilter(jq_filter, await client.v1.settings.billingProviders.list(body)),
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { maybeFilter } from '@metronome/mcp/filtering';
|
|
4
|
+
import { Metadata, asTextContentResult } from '@metronome/mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Metronome from '@metronome/sdk';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'v1.settings',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'post',
|
|
14
|
+
httpPath: '/v1/upsertAvalaraCredentials',
|
|
15
|
+
operationId: 'upsertAvalaraCredentials-v1',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'upsert_avalara_credentials_v1_settings',
|
|
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\nSet the Avalara credentials for some specified `delivery_method_ids`, which can be found in the `/listConfiguredBillingProviders` response. This maps the Avalara credentials to the appropriate billing entity. These credentials are only used for PLG Invoicing today.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/setting_upsert_avalara_credentials_response',\n $defs: {\n setting_upsert_avalara_credentials_response: {\n type: 'object',\n properties: {}\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
avalara_environment: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'The Avalara environment to use (SANDBOX or PRODUCTION).',
|
|
28
|
+
enum: ['PRODUCTION', 'SANDBOX'],
|
|
29
|
+
},
|
|
30
|
+
avalara_password: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'The password for the Avalara account.',
|
|
33
|
+
},
|
|
34
|
+
avalara_username: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
description: 'The username for the Avalara account.',
|
|
37
|
+
},
|
|
38
|
+
delivery_method_ids: {
|
|
39
|
+
type: 'array',
|
|
40
|
+
description:
|
|
41
|
+
'The delivery method IDs of the billing provider configurations to update, can be found in the response of the `/listConfiguredBillingProviders` endpoint.',
|
|
42
|
+
items: {
|
|
43
|
+
type: 'string',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
jq_filter: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
title: 'jq Filter',
|
|
49
|
+
description:
|
|
50
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
required: ['avalara_environment', 'avalara_password', 'avalara_username', 'delivery_method_ids'],
|
|
54
|
+
},
|
|
55
|
+
annotations: {},
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const handler = async (client: Metronome, args: Record<string, unknown> | undefined) => {
|
|
59
|
+
const { jq_filter, ...body } = args as any;
|
|
60
|
+
return asTextContentResult(
|
|
61
|
+
await maybeFilter(jq_filter, await client.v1.settings.upsertAvalaraCredentials(body)),
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export default { metadata, tool, handler };
|
|
@@ -48,6 +48,7 @@ export const tool: Tool = {
|
|
|
48
48
|
'quickbooks_online',
|
|
49
49
|
'workday',
|
|
50
50
|
'gcp_marketplace',
|
|
51
|
+
'metronome',
|
|
51
52
|
],
|
|
52
53
|
},
|
|
53
54
|
billing_provider_configuration_id: {
|
|
@@ -914,7 +915,8 @@ export const tool: Tool = {
|
|
|
914
915
|
},
|
|
915
916
|
allocation: {
|
|
916
917
|
type: 'string',
|
|
917
|
-
description:
|
|
918
|
+
description:
|
|
919
|
+
'If set to POOLED, allocation added per seat is pooled across the account. (BETA) If set to INDIVIDUAL, each seat in the subscription will have its own allocation.',
|
|
918
920
|
enum: ['POOLED', 'INDIVIDUAL'],
|
|
919
921
|
},
|
|
920
922
|
},
|
|
@@ -1063,7 +1065,8 @@ export const tool: Tool = {
|
|
|
1063
1065
|
},
|
|
1064
1066
|
allocation: {
|
|
1065
1067
|
type: 'string',
|
|
1066
|
-
description:
|
|
1068
|
+
description:
|
|
1069
|
+
'If set to POOLED, allocation added per seat is pooled across the account. (BETA) If set to INDIVIDUAL, each seat in the subscription will have its own allocation.',
|
|
1067
1070
|
enum: ['POOLED', 'INDIVIDUAL'],
|
|
1068
1071
|
},
|
|
1069
1072
|
},
|
|
@@ -1329,7 +1332,7 @@ export const tool: Tool = {
|
|
|
1329
1332
|
quantity_management_mode: {
|
|
1330
1333
|
type: 'string',
|
|
1331
1334
|
description:
|
|
1332
|
-
"Determines how the subscription's quantity is controlled. Defaults to QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified directly on the subscription. `initial_quantity` must be provided with this option. Compatible with recurring commits/credits that use POOLED allocation.",
|
|
1335
|
+
"Determines how the subscription's quantity is controlled. Defaults to QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified directly on the subscription. `initial_quantity` must be provided with this option. Compatible with recurring commits/credits that use POOLED allocation. **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g. add user_123) to increment and decrement a subscription quantity, rather than directly providing the quantity. You must use a **SEAT_BASED** subscription to use a linked recurring credit with an allocation per seat. `seat_config` must be provided with this option.",
|
|
1333
1336
|
enum: ['SEAT_BASED', 'QUANTITY_ONLY'],
|
|
1334
1337
|
},
|
|
1335
1338
|
starting_at: {
|
package/tools/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAiH/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AAqHxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
|
package/tools/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAiH/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AAqHxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
|
package/tools/index.js
CHANGED
|
@@ -113,6 +113,9 @@ const update_contracts_v1_named_schedules_1 = __importDefault(require("./v1/cont
|
|
|
113
113
|
const list_v1_payments_1 = __importDefault(require("./v1/payments/list-v1-payments.js"));
|
|
114
114
|
const attempt_v1_payments_1 = __importDefault(require("./v1/payments/attempt-v1-payments.js"));
|
|
115
115
|
const cancel_v1_payments_1 = __importDefault(require("./v1/payments/cancel-v1-payments.js"));
|
|
116
|
+
const upsert_avalara_credentials_v1_settings_1 = __importDefault(require("./v1/settings/upsert-avalara-credentials-v1-settings.js"));
|
|
117
|
+
const create_settings_v1_billing_providers_1 = __importDefault(require("./v1/settings/billing-providers/create-settings-v1-billing-providers.js"));
|
|
118
|
+
const list_settings_v1_billing_providers_1 = __importDefault(require("./v1/settings/billing-providers/list-settings-v1-billing-providers.js"));
|
|
116
119
|
exports.endpoints = [];
|
|
117
120
|
function addEndpoint(endpoint) {
|
|
118
121
|
exports.endpoints.push(endpoint);
|
|
@@ -224,6 +227,9 @@ addEndpoint(update_contracts_v1_named_schedules_1.default);
|
|
|
224
227
|
addEndpoint(list_v1_payments_1.default);
|
|
225
228
|
addEndpoint(attempt_v1_payments_1.default);
|
|
226
229
|
addEndpoint(cancel_v1_payments_1.default);
|
|
230
|
+
addEndpoint(upsert_avalara_credentials_v1_settings_1.default);
|
|
231
|
+
addEndpoint(create_settings_v1_billing_providers_1.default);
|
|
232
|
+
addEndpoint(list_settings_v1_billing_providers_1.default);
|
|
227
233
|
function query(filters, endpoints) {
|
|
228
234
|
const allExcludes = filters.length > 0 && filters.every((filter) => filter.op === 'exclude');
|
|
229
235
|
const unmatchedFilters = new Set(filters);
|
package/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"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"}
|