Query and manage Amberflo metering & billing: customers, meters, usage, plans, invoices, prepaid.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: assign/attach a pricing product plan to a customer — this changes what the customer is billed. API: POST /payments/pricing/amberflo/customer-pricing.
The Amberflo customerId to assign the plan to.
The productPlanId of the plan to assign.
Product id the plan belongs to.
When the plan ends, unix epoch seconds.
When the plan takes effect, unix epoch seconds.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: assign/attach a pricing product plan to a customer — this changes what the customer is billed. API: POST /payments/pricing/amberflo/customer-pricing.
| Argument | Type | Description |
|---|---|---|
| product_id | string | Product id the plan belongs to. |
| customer_id* | string | The Amberflo customerId to assign the plan to. |
| product_plan_id* | string | The productPlanId of the plan to assign. |
| end_time_in_seconds | integer | When the plan ends, unix epoch seconds. |
| start_time_in_seconds | integer | When the plan takes effect, unix epoch seconds. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"product_plan_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "Product id the plan belongs to."
},
"customer_id": {
"type": "string",
"description": "The Amberflo customerId to assign the plan to."
},
"product_plan_id": {
"type": "string",
"description": "The productPlanId of the plan to assign."
},
"end_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "When the plan ends, unix epoch seconds."
},
"start_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "When the plan takes effect, unix epoch seconds."
}
}
}WRITE: create/register a new customer in Amberflo (id + name required; optional email, enabled flag, and traits). Optionally auto-create the customer in Stripe. API: POST /customers/.
| Argument | Type | Description |
|---|---|---|
| traits | object | Arbitrary string traits (key/value metadata). |
| enabled | boolean | Whether the customer is enabled. |
| customer_id* | string | Unique customerId to assign (your identifier for the customer). |
| customer_name* | string | Human-readable customer name. |
| customer_email | string | Customer email address. |
| create_in_stripe | boolean | When true, also auto-create this customer in Stripe (adds ?autoCreateCustomerInStripe=true). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"customer_name"
],
"properties": {
"traits": {
"type": "object",
"description": "Arbitrary string traits (key/value metadata).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"enabled": {
"type": "boolean",
"description": "Whether the customer is enabled."
},
"customer_id": {
"type": "string",
"description": "Unique customerId to assign (your identifier for the customer)."
},
"customer_name": {
"type": "string",
"description": "Human-readable customer name."
},
"customer_email": {
"type": "string",
"description": "Customer email address."
},
"create_in_stripe": {
"type": "boolean",
"description": "When true, also auto-create this customer in Stripe (adds ?autoCreateCustomerInStripe=true)."
}
}
}Explain/drill into the raw meter events behind a meter's usage over a time range — useful to debug why a number looks off. API: POST /usage/explain.
| Argument | Type | Description |
|---|---|---|
| filter | object | Dimension filter: map of dimension name -> allowed values. |
| group_by | array | Dimension names to group by, e.g. ["customerId"]. |
| take_limit | integer | Return only the top N records. |
| aggregation | string | Aggregation function: SUM | COUNT | MIN | MAX. |
| meter_api_name* | string | The meterApiName to explain (from amberflo_list_meters). |
| end_time_in_seconds | integer | Range end, unix epoch seconds. Defaults to now if omitted. |
| start_time_in_seconds* | integer | Range start, unix epoch seconds (inclusive). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"meter_api_name",
"start_time_in_seconds"
],
"properties": {
"filter": {
"type": "object",
"description": "Dimension filter: map of dimension name -> allowed values.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"group_by": {
"type": "array",
"items": {
"type": "string"
},
"description": "Dimension names to group by, e.g. [\"customerId\"]."
},
"take_limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Return only the top N records.",
"exclusiveMinimum": 0
},
"aggregation": {
"enum": [
"SUM",
"COUNT",
"MIN",
"MAX"
],
"type": "string",
"description": "Aggregation function: SUM | COUNT | MIN | MAX."
},
"meter_api_name": {
"type": "string",
"description": "The meterApiName to explain (from amberflo_list_meters)."
},
"end_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range end, unix epoch seconds. Defaults to now if omitted."
},
"start_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range start, unix epoch seconds (inclusive)."
}
}
}Get total usage across all meters over a time range, optionally grouped by customer or filtered to one customer. API: GET /usage/all.
| Argument | Type | Description |
|---|---|---|
| end_time_in_seconds | integer | Range end, unix epoch seconds. Defaults to now if omitted. |
| group_by_customer_id | boolean | When true, group results by customer (sends groupBy=customerId). |
| filter_by_customer_id | string | Restrict results to a single customerId. |
| start_time_in_seconds* | integer | Range start, unix epoch seconds (inclusive). |
| time_grouping_interval* | string | Bucket size: HOUR | DAY | WEEK | MONTH. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start_time_in_seconds",
"time_grouping_interval"
],
"properties": {
"end_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range end, unix epoch seconds. Defaults to now if omitted."
},
"group_by_customer_id": {
"type": "boolean",
"description": "When true, group results by customer (sends groupBy=customerId)."
},
"filter_by_customer_id": {
"type": "string",
"description": "Restrict results to a single customerId."
},
"start_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range start, unix epoch seconds (inclusive)."
},
"time_grouping_interval": {
"enum": [
"HOUR",
"DAY",
"WEEK",
"MONTH"
],
"type": "string",
"description": "Bucket size: HOUR | DAY | WEEK | MONTH."
}
}
}Fetch a single customer by its Amberflo customerId. API: GET /customers/?customerId=<id>.
| Argument | Type | Description |
|---|---|---|
| customer_id* | string | The Amberflo customerId to fetch. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "string",
"description": "The Amberflo customerId to fetch."
}
}
}Get a single customer invoice: the CURRENT open invoice (latest=true, default) or a SPECIFIC past invoice by product_plan_id + year + month + day. API: GET /payments/billing/customer-product-invoice.
| Argument | Type | Description |
|---|---|---|
| day | integer | Day of month of a specific past invoice. |
| year | integer | Year of a specific past invoice. |
| month | integer | Month (1-12) of a specific past invoice. |
| latest | boolean | Fetch the current open invoice. Default true. Ignored when a specific invoice is addressed. |
| from_cache | boolean | Use cached invoice (faster). Default true. |
| product_id | string | Product id. Default "1". |
| customer_id* | string | The Amberflo customerId. |
| product_plan_id | string | Product plan id of a specific past invoice (with year/month/day). |
| with_payment_status |
Get a customer's LATEST assigned product plan (pricing). API: GET /payments/pricing/amberflo/customer-pricing?CustomerId=<id>.
| Argument | Type | Description |
|---|---|---|
| customer_id* | string | The Amberflo customerId. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "string",
"description": "The Amberflo customerId."
}
}
}Query aggregated usage for a single meter over a time range, optionally grouped/filtered. API: POST /usage/.
| Argument | Type | Description |
|---|---|---|
| filter | object | Dimension filter: map of dimension name -> allowed values. |
| group_by | array | Dimension names to group results by, e.g. ["customerId"]. |
| take_limit | integer | Return only the top N groups. |
| aggregation* | string | Aggregation function: SUM | COUNT | MIN | MAX. |
| meter_api_name* | string | The meterApiName to query (from amberflo_list_meters). |
| take_is_ascending | boolean | Sort order for `take` (default false = descending). |
| end_time_in_seconds | integer | Range end, unix epoch seconds. Defaults to now if omitted. |
| start_time_in_seconds* | integer | Range start, unix epoch seconds (inclusive). |
WRITE: record/ingest a single usage meter event (writes billable usage data) to the Amberflo ingestion host. API: POST /ingest/ on the ingest base URL.
| Argument | Type | Description |
|---|---|---|
| unique_id | string | Optional idempotency/unique id for the event. |
| dimensions | object | Optional dimensions (key/value string metadata) for the event. |
| customer_id* | string | The customerId this usage belongs to. |
| meter_value* | number | The numeric value of the usage event. |
| meter_api_name* | string | The meterApiName this event is for. |
| meter_time_in_millis* | integer | Event timestamp, unix epoch milliseconds. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"meter_api_name",
"meter_value",
"meter_time_in_millis",
"customer_id"
],
"properties": {
"unique_id": {
"type": "string",
"description": "Optional idempotency/unique id for the event."
},
"dimensions": {
"type": "object",
"description": "Optional dimensions (key/value string metadata) for the event.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"customer_id": {
"type": "string",
"description": "The customerId this usage belongs to."
},
"meter_value": {
"type": "number",
"description": "The numeric value of the usage event."
},
"meter_api_name": {
"type": "string",
"description": "The meterApiName this event is for."
},
"meter_time_in_millis": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Event timestamp, unix epoch milliseconds."
}
}
}List all invoices for a customer (optionally for a specific product), with payment status. API: GET /payments/billing/customer-product-invoice/all.
| Argument | Type | Description |
|---|---|---|
| from_cache | boolean | Use cached invoices (faster). Default true. |
| product_id | string | Product id. Default "1". |
| customer_id* | string | The Amberflo customerId. |
| with_payment_status | boolean | Include payment status. Default true. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"from_cache": {
"type": "boolean",
"description": "Use cached invoices (faster). Default true."
},
"product_id": {
"type": "string",
"description": "Product id. Default \"1\"."
},
"customer_id": {
"type": "string",
"description": "The Amberflo customerId."
},
"with_payment_status": {
"type": "boolean",
"description": "Include payment status. Default true."
}
}
}List the full history of product plans assigned to a customer over time. API: GET /payments/pricing/amberflo/customer-pricing/list?CustomerId=<id>.
| Argument | Type | Description |
|---|---|---|
| customer_id* | string | The Amberflo customerId. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "string",
"description": "The Amberflo customerId."
}
}
}List all customers registered in your Amberflo account (id, name, email, traits, enabled). Good first call to discover customer ids. API: GET /customers/.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List all meter definitions in your account (id, meterApiName, label, meterType, aggregation, etc.). Use meterApiName values here as inputs to usage tools. API: GET /meters.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List a customer's active prepaid credit orders for a product. API: GET /payments/pricing/amberflo/customer-prepaid/list?CustomerId=<id>&ProductId=<pid>.
| Argument | Type | Description |
|---|---|---|
| product_id | string | Product id. Default "1". |
| customer_id* | string | The Amberflo customerId. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "Product id. Default \"1\"."
},
"customer_id": {
"type": "string",
"description": "The Amberflo customerId."
}
}
}| boolean |
| Include payment status. Default true. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"day": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Day of month of a specific past invoice."
},
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Year of a specific past invoice."
},
"month": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Month (1-12) of a specific past invoice."
},
"latest": {
"type": "boolean",
"description": "Fetch the current open invoice. Default true. Ignored when a specific invoice is addressed."
},
"from_cache": {
"type": "boolean",
"description": "Use cached invoice (faster). Default true."
},
"product_id": {
"type": "string",
"description": "Product id. Default \"1\"."
},
"customer_id": {
"type": "string",
"description": "The Amberflo customerId."
},
"product_plan_id": {
"type": "string",
"description": "Product plan id of a specific past invoice (with year/month/day)."
},
"with_payment_status": {
"type": "boolean",
"description": "Include payment status. Default true."
}
}
}| time_grouping_interval* |
| string |
| Bucket size: HOUR | DAY | WEEK | MONTH. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"meter_api_name",
"aggregation",
"time_grouping_interval",
"start_time_in_seconds"
],
"properties": {
"filter": {
"type": "object",
"description": "Dimension filter: map of dimension name -> allowed values.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"group_by": {
"type": "array",
"items": {
"type": "string"
},
"description": "Dimension names to group results by, e.g. [\"customerId\"]."
},
"take_limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Return only the top N groups.",
"exclusiveMinimum": 0
},
"aggregation": {
"enum": [
"SUM",
"COUNT",
"MIN",
"MAX"
],
"type": "string",
"description": "Aggregation function: SUM | COUNT | MIN | MAX."
},
"meter_api_name": {
"type": "string",
"description": "The meterApiName to query (from amberflo_list_meters)."
},
"take_is_ascending": {
"type": "boolean",
"description": "Sort order for `take` (default false = descending)."
},
"end_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range end, unix epoch seconds. Defaults to now if omitted."
},
"start_time_in_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Range start, unix epoch seconds (inclusive)."
},
"time_grouping_interval": {
"enum": [
"HOUR",
"DAY",
"WEEK",
"MONTH"
],
"type": "string",
"description": "Bucket size: HOUR | DAY | WEEK | MONTH."
}
}
}