Amberflo MCP by usefulapi
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Query and manage Amberflo metering & billing: customers, meters, usage, plans, invoices, prepaid.
| Author | io.usefulapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 535 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Amberflo MCP by usefulapi": {
"url": "https://amberflo.usefulapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (14)
amberflo_list_customersread-onlyList all customers registered in your Amberflo account (id, name, email, traits, enabled). Good first call to discover customer ids. API: GET /customers/.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_get_customerread-onlyFetch a single customer by its Amberflo customerId. API: GET /customers/?customerId=<id>.
Parameters:
customer_id(required) — string — The Amberflo customerId to fetch.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_list_metersread-onlyList all meter definitions in your account (id, meterApiName, label, meterType, aggregation, etc.). Use meterApiName values here as inputs to usage tools. API: GET /meters.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_get_usageread-onlyQuery aggregated usage for a single meter over a time range, optionally grouped/filtered. API: POST /usage/.
Parameters:
meter_api_name(required) — string — The meterApiName to query (from amberflo_list_meters).aggregation(required) — string — Aggregation function: SUM | COUNT | MIN | MAX.time_grouping_interval(required) — string — Bucket size: HOUR | DAY | WEEK | MONTH.start_time_in_seconds(required) — integer — Range start, unix epoch seconds (inclusive).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.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.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_get_all_usageread-onlyGet total usage across all meters over a time range, optionally grouped by customer or filtered to one customer. API: GET /usage/all.
Parameters:
start_time_in_seconds(required) — integer — Range start, unix epoch seconds (inclusive).time_grouping_interval(required) — string — Bucket size: HOUR | DAY | WEEK | MONTH.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.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_explain_usageread-onlyExplain/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.
Parameters:
meter_api_name(required) — string — The meterApiName to explain (from amberflo_list_meters).start_time_in_seconds(required) — integer — Range start, unix epoch seconds (inclusive).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.end_time_in_seconds— integer — Range end, unix epoch seconds. Defaults to now if omitted.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_get_customer_planread-onlyGet a customer's LATEST assigned product plan (pricing). API: GET /payments/pricing/amberflo/customer-pricing?CustomerId=<id>.
Parameters:
customer_id(required) — string — The Amberflo customerId.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_list_customer_plan_historyread-onlyList the full history of product plans assigned to a customer over time. API: GET /payments/pricing/amberflo/customer-pricing/list?CustomerId=<id>.
Parameters:
customer_id(required) — string — The Amberflo customerId.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_list_customer_invoicesread-onlyList all invoices for a customer (optionally for a specific product), with payment status. API: GET /payments/billing/customer-product-invoice/all.
Parameters:
customer_id(required) — string — The Amberflo customerId.from_cache— boolean — Use cached invoices (faster). Default true.product_id— string — Product id. Default "1".with_payment_status— boolean — Include payment status. Default true.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_get_customer_invoiceread-onlyGet 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.
Parameters:
customer_id(required) — string — The Amberflo customerId.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".product_plan_id— string — Product plan id of a specific past invoice (with year/month/day).with_payment_status— boolean — Include payment status. Default true.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_list_prepaid_ordersread-onlyList a customer's active prepaid credit orders for a product. API: GET /payments/pricing/amberflo/customer-prepaid/list?CustomerId=<id>&ProductId=<pid>.
Parameters:
customer_id(required) — string — The Amberflo customerId.product_id— string — Product id. Default "1".
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
amberflo_create_customerdestructiveWRITE: 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/.
Parameters:
customer_id(required) — string — Unique customerId to assign (your identifier for the customer).customer_name(required) — string — Human-readable customer name.traits— object — Arbitrary string traits (key/value metadata).enabled— boolean — Whether the customer is enabled.customer_email— string — Customer email address.create_in_stripe— boolean — When true, also auto-create this customer in Stripe (adds ?autoCreateCustomerInStripe=true).
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
amberflo_assign_customer_plandestructiveWRITE: assign/attach a pricing product plan to a customer — this changes what the customer is billed. API: POST /payments/pricing/amberflo/customer-pricing.
Parameters:
customer_id(required) — string — The Amberflo customerId to assign the plan to.product_plan_id(required) — string — The productPlanId of the plan to assign.product_id— string — Product id the plan belongs to.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.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
amberflo_ingest_usagedestructiveWRITE: record/ingest a single usage meter event (writes billable usage data) to the Amberflo ingestion host. API: POST /ingest/ on the ingest base URL.
Parameters:
meter_api_name(required) — string — The meterApiName this event is for.meter_value(required) — number — The numeric value of the usage event.meter_time_in_millis(required) — integer — Event timestamp, unix epoch milliseconds.customer_id(required) — string — The customerId this usage belongs to.unique_id— string — Optional idempotency/unique id for the event.dimensions— object — Optional dimensions (key/value string metadata) for the event.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.