{"id":300013,"recorded_at":"2026-10-26T22:20:22.889232Z","observed_at":"2026-10-26T22:20:22.889175Z","subject_kind":"endpoint","subject":"14fe11f8-298e-418f-81c2-3f4eba575f74","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":14,"tools":[{"description":"WRITE: assign/attach a pricing product plan to a customer — this changes what the customer is billed. API: POST /payments/pricing/amberflo/customer-pricing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The Amberflo customerId to assign the plan to.","type":"string"},"end_time_in_seconds":{"description":"When the plan ends, unix epoch seconds.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"product_id":{"description":"Product id the plan belongs to.","type":"string"},"product_plan_id":{"description":"The productPlanId of the plan to assign.","type":"string"},"start_time_in_seconds":{"description":"When the plan takes effect, unix epoch seconds.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["customer_id","product_plan_id"],"type":"object"},"name":"amberflo_assign_customer_plan"},{"description":"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/.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"create_in_stripe":{"description":"When true, also auto-create this customer in Stripe (adds ?autoCreateCustomerInStripe=true).","type":"boolean"},"customer_email":{"description":"Customer email address.","type":"string"},"customer_id":{"description":"Unique customerId to assign (your identifier for the customer).","type":"string"},"customer_name":{"description":"Human-readable customer name.","type":"string"},"enabled":{"description":"Whether the customer is enabled.","type":"boolean"},"traits":{"additionalProperties":{"type":"string"},"description":"Arbitrary string traits (key/value metadata).","propertyNames":{"type":"string"},"type":"object"}},"required":["customer_id","customer_name"],"type":"object"},"name":"amberflo_create_customer"},{"description":"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.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"aggregation":{"description":"Aggregation function: SUM | COUNT | MIN | MAX.","enum":["SUM","COUNT","MIN","MAX"],"type":"string"},"end_time_in_seconds":{"description":"Range end, unix epoch seconds. Defaults to now if omitted.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"filter":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"description":"Dimension filter: map of dimension name -> allowed values.","propertyNames":{"type":"string"},"type":"object"},"group_by":{"description":"Dimension names to group by, e.g. [\"customerId\"].","items":{"type":"string"},"type":"array"},"meter_api_name":{"description":"The meterApiName to explain (from amberflo_list_meters).","type":"string"},"start_time_in_seconds":{"description":"Range start, unix epoch seconds (inclusive).","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"take_limit":{"description":"Return only the top N records.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["meter_api_name","start_time_in_seconds"],"type":"object"},"name":"amberflo_explain_usage"},{"description":"Get total usage across all meters over a time range, optionally grouped by customer or filtered to one customer. API: GET /usage/all.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"end_time_in_seconds":{"description":"Range end, unix epoch seconds. Defaults to now if omitted.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"filter_by_customer_id":{"description":"Restrict results to a single customerId.","type":"string"},"group_by_customer_id":{"description":"When true, group results by customer (sends groupBy=customerId).","type":"boolean"},"start_time_in_seconds":{"description":"Range start, unix epoch seconds (inclusive).","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"time_grouping_interval":{"description":"Bucket size: HOUR | DAY | WEEK | MONTH.","enum":["HOUR","DAY","WEEK","MONTH"],"type":"string"}},"required":["start_time_in_seconds","time_grouping_interval"],"type":"object"},"name":"amberflo_get_all_usage"},{"description":"Fetch a single customer by its Amberflo customerId. API: GET /customers/?customerId=<id>.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The Amberflo customerId to fetch.","type":"string"}},"required":["customer_id"],"type":"object"},"name":"amberflo_get_customer"},{"description":"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.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The Amberflo customerId.","type":"string"},"day":{"description":"Day of month of a specific past invoice.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"from_cache":{"description":"Use cached invoice (faster). Default true.","type":"boolean"},"latest":{"description":"Fetch the current open invoice. Default true. Ignored when a specific invoice is addressed.","type":"boolean"},"month":{"description":"Month (1-12) of a specific past invoice.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"product_id":{"description":"Product id. Default \"1\".","type":"string"},"product_plan_id":{"description":"Product plan id of a specific past invoice (with year/month/day).","type":"string"},"with_payment_status":{"description":"Include payment status. Default true.","type":"boolean"},"year":{"description":"Year of a specific past invoice.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["customer_id"],"type":"object"},"name":"amberflo_get_customer_invoice"},{"description":"Get a customer's LATEST assigned product plan (pricing). API: GET /payments/pricing/amberflo/customer-pricing?CustomerId=<id>.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The Amberflo customerId.","type":"string"}},"required":["customer_id"],"type":"object"},"name":"amberflo_get_customer_plan"},{"description":"Query aggregated usage for a single meter over a time range, optionally grouped/filtered. API: POST /usage/.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"aggregation":{"description":"Aggregation function: SUM | COUNT | MIN | MAX.","enum":["SUM","COUNT","MIN","MAX"],"type":"string"},"end_time_in_seconds":{"description":"Range end, unix epoch seconds. Defaults to now if omitted.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"filter":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"description":"Dimension filter: map of dimension name -> allowed values.","propertyNames":{"type":"string"},"type":"object"},"group_by":{"description":"Dimension names to group results by, e.g. [\"customerId\"].","items":{"type":"string"},"type":"array"},"meter_api_name":{"description":"The meterApiName to query (from amberflo_list_meters).","type":"string"},"start_time_in_seconds":{"description":"Range start, unix epoch seconds (inclusive).","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"take_is_ascending":{"description":"Sort order for `take` (default false = descending).","type":"boolean"},"take_limit":{"description":"Return only the top N groups.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"time_grouping_interval":{"description":"Bucket size: HOUR | DAY | WEEK | MONTH.","enum":["HOUR","DAY","WEEK","MONTH"],"type":"string"}},"required":["meter_api_name","aggregation","time_grouping_interval","start_time_in_seconds"],"type":"object"},"name":"amberflo_get_usage"},{"description":"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.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The customerId this usage belongs to.","type":"string"},"dimensions":{"additionalProperties":{"type":"string"},"description":"Optional dimensions (key/value string metadata) for the event.","propertyNames":{"type":"string"},"type":"object"},"meter_api_name":{"description":"The meterApiName this event is for.","type":"string"},"meter_time_in_millis":{"description":"Event timestamp, unix epoch milliseconds.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"meter_value":{"description":"The numeric value of the usage event.","type":"number"},"unique_id":{"description":"Optional idempotency/unique id for the event.","type":"string"}},"required":["meter_api_name","meter_value","meter_time_in_millis","customer_id"],"type":"object"},"name":"amberflo_ingest_usage"},{"description":"List all invoices for a customer (optionally for a specific product), with payment status. API: GET /payments/billing/customer-product-invoice/all.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The Amberflo customerId.","type":"string"},"from_cache":{"description":"Use cached invoices (faster). Default true.","type":"boolean"},"product_id":{"description":"Product id. Default \"1\".","type":"string"},"with_payment_status":{"description":"Include payment status. Default true.","type":"boolean"}},"required":["customer_id"],"type":"object"},"name":"amberflo_list_customer_invoices"},{"description":"List the full history of product plans assigned to a customer over time. API: GET /payments/pricing/amberflo/customer-pricing/list?CustomerId=<id>.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The Amberflo customerId.","type":"string"}},"required":["customer_id"],"type":"object"},"name":"amberflo_list_customer_plan_history"},{"description":"List all customers registered in your Amberflo account (id, name, email, traits, enabled). Good first call to discover customer ids. API: GET /customers/.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"amberflo_list_customers"},{"description":"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.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"amberflo_list_meters"},{"description":"List a customer's active prepaid credit orders for a product. API: GET /payments/pricing/amberflo/customer-prepaid/list?CustomerId=<id>&ProductId=<pid>.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The Amberflo customerId.","type":"string"},"product_id":{"description":"Product id. Default \"1\".","type":"string"}},"required":["customer_id"],"type":"object"},"name":"amberflo_list_prepaid_orders"}]},"body_sha256":"161c29e7f621094d71580f8ded6d8d562adf90c10280a4c7f9e2b9f1ba57c064","prev_id":null,"leaf":"0xa78a332bc669662b7db532de67cc245142619cea348198ebee2d25fcc30821f3","leaf_text":"{\"body\":\"161c29e7f621094d71580f8ded6d8d562adf90c10280a4c7f9e2b9f1ba57c064\",\"id\":300013,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793053222889175,\"prev\":null,\"subject\":\"14fe11f8-298e-418f-81c2-3f4eba575f74\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0xa78a71c32d7010ef43326640b8dbd4d1b0e0ff21c1999cfefd1dc8b6137567e0","0x7a808a1f612de12c2637710d5fda4e57ea91a732a1cc9c7810c9fdaae9e06100","0x31581cfb8df064e8ec0d19a37b0e26e49a5650d1b7d609deee19bdf12871aec9","0xd08ba8c95bf959d6a4f774ac2ad8a5ba212beead02a84bb87bcc44bf208f6d8f","0x138e13c10d351cdbddb3893ab076c10c1a950ac57bf9b365b2d8b1b4760cc65e","0x3c27e63fa0e746e46122d162367083506fe36e2bc84e395dc31dfd2392900f68","0x230bcae3cb600ebc5a482ba6a9bd5bc7da9817d8d81f6df507bde74c47cca5f4","0xa6b96bbc1e45f1918b98580ae376f03cc11570456bdda7e116c9cbac543a22ea","0xdea9600bee8435f84fe6baa7a2097a96003e9096c73edfd41525e72052fb0c18","0x96a6c36f66ccdce2fc9d08bc551d6e8a2e7e8f76cf469865819b5bc277877605","0xfd7db9a5ff472cfefafacbeb7f7f7dc6fc7e28e7e0d99e3b79d231f0d5f46aee","0x1e464fcb484a1e782f9fe44be5118a9de934eb533c96ba10fc7d20e3a3e4711c","0x292ebdce6b8d3d7ef08ad646a0fd97dee9313ab55c1a350807d9f3013794c37a","0x428106f4ae4ec142f17aebf6fa50935242f8d3f1c211cf95d6351d03d11da2b7","0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0","0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f","0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9","0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}