amberflo
Server Details
Query and manage Amberflo metering & billing: customers, meters, usage, plans, invoices, prepaid.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.8/5 across 14 of 14 tools scored. Lowest: 2.9/5.
Each tool targets a distinct action and resource (e.g., create_customer vs list_customers, get_customer_plan vs list_customer_plan_history). No two tools overlap in purpose; descriptions clearly differentiate them.
All tools follow the consistent pattern amberflo_verb_noun with snake_case. Verbs like create, get, list, assign, explain, ingest are used uniformly, and nouns consistently represent the resource (customer, usage, meters, etc.).
14 tools is well-scoped for a billing/metering server, covering customer management, plan assignment, invoices, usage ingestion/querying, and meter discovery. Each tool serves a clear purpose without excess.
The tool set covers essential CRUD and lifecycle operations for customers, plans, invoices, and usage. Minor gaps exist (e.g., no update or delete customer, no unassign plan), but the core workflows are fully supported.
Available Tools
14 toolsamberflo_assign_customer_planAssign customer planBDestructiveInspect
WRITE: assign/attach a pricing product plan to a customer — this changes what the customer is billed. API: POST /payments/pricing/amberflo/customer-pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | No | Product id the plan belongs to. | |
| customer_id | Yes | The Amberflo customerId to assign the plan to. | |
| product_plan_id | Yes | The productPlanId of the plan to assign. | |
| end_time_in_seconds | No | When the plan ends, unix epoch seconds. | |
| start_time_in_seconds | No | When the plan takes effect, unix epoch seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations have destructiveHint: true. Description adds 'WRITE' and 'changes billing', confirming mutation. However, lacks details on reversibility, idempotency, effects on existing plans, or authentication needs. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence with API endpoint. Front-loaded with 'WRITE'. No wasted words. Appropriate for a simple mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and destructiveHint true, description is too minimal. Lacks info on return value, error conditions, behavior when plan already assigned, or optional parameters (start_time/end_time). Not complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with individual parameter descriptions. Description does not add extra meaning beyond schema (e.g., parameter relationships, usage examples). Baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'assign/attach', resource 'pricing product plan to a customer', and effect 'changes what the customer is billed'. The 'WRITE:' prefix and API endpoint further clarify purpose. Distinct from sibling tools like amberflo_get_customer_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. No mention of prerequisites (e.g., customer must exist, plan must exist) or when not to use. Sibling tools exist but no comparison provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_create_customerCreate customerADestructiveInspect
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/.
| Name | Required | Description | Default |
|---|---|---|---|
| traits | No | Arbitrary string traits (key/value metadata). | |
| enabled | No | Whether the customer is enabled. | |
| customer_id | Yes | Unique customerId to assign (your identifier for the customer). | |
| customer_name | Yes | Human-readable customer name. | |
| customer_email | No | Customer email address. | |
| create_in_stripe | No | When true, also auto-create this customer in Stripe (adds ?autoCreateCustomerInStripe=true). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by specifying 'WRITE' and detailing the optional Stripe creation behavior. The annotations already indicate destructiveHint=true, and the description aligns with that. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences), front-loaded with 'WRITE', and covers all key points without redundancy. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers inputs but lacks information about return values (no output schema provided). For a creation tool, mentioning what is returned (e.g., the created customer object) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds minimal extra meaning. It notes that 'customer_id' and 'customer_name' are required and mentions optional fields ('email, enabled flag, traits') but does not elaborate beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('create/register'), the resource ('customer in Amberflo'), and the required fields ('id + name required'). It also distinguishes from sibling tools like 'amberflo_get_customer' (read) or 'amberflo_assign_customer_plan' (assign plan) by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional auto-creation in Stripe but does not provide explicit guidance on when to use this tool versus alternatives (e.g., when to add a customer vs. assigning a plan). It implies creation is the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_explain_usageExplain usageARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Dimension filter: map of dimension name -> allowed values. | |
| group_by | No | Dimension names to group by, e.g. ["customerId"]. | |
| take_limit | No | Return only the top N records. | |
| aggregation | No | Aggregation function: SUM | COUNT | MIN | MAX. | |
| meter_api_name | Yes | The meterApiName to explain (from amberflo_list_meters). | |
| end_time_in_seconds | No | Range end, unix epoch seconds. Defaults to now if omitted. | |
| start_time_in_seconds | Yes | Range start, unix epoch seconds (inclusive). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description's 'explain/drill into' implies read-only access, consistent with the readOnlyHint annotation. It adds the API endpoint but no other behavioral details (e.g., pagination, rate limits). With annotations covering safety, this is adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one for purpose, one for API endpoint. No redundancy, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema, the description is minimalist. It doesn't mention return format or how many events are returned. While adequate for a debug tool, it could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the input schema already provides for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool explains/drills into raw meter events behind a meter's usage, with a specific use case: debugging discrepancies. It uses strong verbs and distinguishes from sibling tools like get_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides guidance on when to use ('useful to debug why a number looks off') but does not explicitly state when not to use or mention alternatives among siblings. The context is clear enough for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_get_all_usageGet all usageBRead-onlyInspect
Get total usage across all meters over a time range, optionally grouped by customer or filtered to one customer. API: GET /usage/all.
| Name | Required | Description | Default |
|---|---|---|---|
| end_time_in_seconds | No | Range end, unix epoch seconds. Defaults to now if omitted. | |
| group_by_customer_id | No | When true, group results by customer (sends groupBy=customerId). | |
| filter_by_customer_id | No | Restrict results to a single customerId. | |
| start_time_in_seconds | Yes | Range start, unix epoch seconds (inclusive). | |
| time_grouping_interval | Yes | Bucket size: HOUR | DAY | WEEK | MONTH. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds only the HTTP method (GET) which is consistent. No additional behavioral details (e.g., pagination, limits, rate limits) are provided beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences only, no wasted words. Clear and efficient. Essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description does not hint at the return format (e.g., structure, pagination). For a tool returning aggregated usage across all meters, more context about output would be helpful. Incomplete for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; each parameter is already well-described. Description adds minimal extra context by mentioning optional grouping/filtering, but does not elaborate on format or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets total usage across all meters over a time range, with optional grouping/filtering. Verb 'get' and resource 'total usage across all meters' are specific. Distinguishes from siblings like 'amberflo_get_usage' which likely targets a single meter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for aggregated metrics across all meters, but lacks explicit when-to-use or when-not-to-use compared to alternatives like 'amberflo_get_usage' or 'amberflo_explain_usage'. No exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_get_customerGet a customerARead-onlyInspect
Fetch a single customer by its Amberflo customerId. API: GET /customers/?customerId=.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | The Amberflo customerId to fetch. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's addition of 'Fetch' is consistent but does not add new behavioral context beyond noting the API endpoint (GET /customers/). No mention of errors, auth, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence long, contains the essential information, and is front-loaded with the action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with one parameter and annotations indicating read-only, the description is mostly complete. It lacks details about the response shape, but no output schema exists to compensate. Minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the description restates the parameter's role in natural language, aligning with the schema's own description. Adds no new semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Fetch a single customer by its Amberflo customerId', specifying the verb and resource clearly. It distinguishes from sibling tools that list customers or fetch related entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like `amberflo_list_customers` or `amberflo_get_customer_invoice`. The usage is implied: when you have a specific customer ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_get_customer_invoiceGet customer invoiceARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | Day of month of a specific past invoice. | |
| year | No | Year of a specific past invoice. | |
| month | No | Month (1-12) of a specific past invoice. | |
| latest | No | Fetch the current open invoice. Default true. Ignored when a specific invoice is addressed. | |
| from_cache | No | Use cached invoice (faster). Default true. | |
| product_id | No | Product id. Default "1". | |
| customer_id | Yes | The Amberflo customerId. | |
| product_plan_id | No | Product plan id of a specific past invoice (with year/month/day). | |
| with_payment_status | No | Include payment status. Default true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. The description adds the API endpoint and the two operational modes (current vs specific), providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main action, zero wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description covers all input modes and defaults. Could mention return object structure, but given simplicity, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but description groups parameters logically (latest for current, product_plan_id+year+month+day for specific), adding meaning beyond individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a single customer invoice, specifying two modes: current open invoice (latest=true) or specific past invoice by product_plan_id+year+month+day. This distinguishes it from sibling list tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use each mode (current vs specific) but does not explicitly compare with alternatives like list_customer_invoices. Context is clear but not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_get_customer_planGet customer planARead-onlyInspect
Get a customer's LATEST assigned product plan (pricing). API: GET /payments/pricing/amberflo/customer-pricing?CustomerId=.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | The Amberflo customerId. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds the 'LATEST' constraint and the API endpoint, which provides some behavioral context beyond annotations but does not disclose return format or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the API endpoint, no wasted words, and the purpose is front-loaded. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read-only, no output schema), the description is mostly complete. It could benefit from mentioning the return type or structure, but the existing information is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents the single parameter. The description does not add any additional semantic meaning beyond what the schema provides, meriting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get', the resource 'customer's LATEST assigned product plan', and distinguishes from siblings like 'list_customer_plan_history' by specifying 'LATEST'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving the current plan, and the context is clear, but it does not explicitly exclude using alternatives like 'list_customer_plan_history' when historical data is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_get_usageQuery usage for a meterARead-onlyInspect
Query aggregated usage for a single meter over a time range, optionally grouped/filtered. API: POST /usage/.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Dimension filter: map of dimension name -> allowed values. | |
| group_by | No | Dimension names to group results by, e.g. ["customerId"]. | |
| take_limit | No | Return only the top N groups. | |
| aggregation | Yes | Aggregation function: SUM | COUNT | MIN | MAX. | |
| meter_api_name | Yes | The meterApiName to query (from amberflo_list_meters). | |
| take_is_ascending | No | Sort order for `take` (default false = descending). | |
| end_time_in_seconds | No | Range end, unix epoch seconds. Defaults to now if omitted. | |
| start_time_in_seconds | Yes | Range start, unix epoch seconds (inclusive). | |
| time_grouping_interval | Yes | Bucket size: HOUR | DAY | WEEK | MONTH. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description does not need to restate safety. It adds the API endpoint but no further behavioral traits. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, clear and direct, no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 params, no output schema), the description is minimal. It states the purpose but lacks details on return format or behavioral nuances. With high schema coverage and annotations, it is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so descriptions in schema fully document parameters. The tool description adds no extra parameter meaning beyond schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Query', the resource 'usage for a single meter', and the scope 'aggregated usage over a time range'. It differentiates from sibling 'amberflo_get_all_usage' by specifying 'single meter'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use: query a single meter; sibling 'amberflo_get_all_usage' is for all meters. It also notes optional grouping/filtering. However, it does not explicitly state when not to use or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_ingest_usageIngest usage eventBDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| unique_id | No | Optional idempotency/unique id for the event. | |
| dimensions | No | Optional dimensions (key/value string metadata) for the event. | |
| customer_id | Yes | The customerId this usage belongs to. | |
| meter_value | Yes | The numeric value of the usage event. | |
| meter_api_name | Yes | The meterApiName this event is for. | |
| meter_time_in_millis | Yes | Event timestamp, unix epoch milliseconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true. The description adds 'WRITE' and 'writes billable usage data', which is consistent but does not add further behavioral context (e.g., idempotency, rate limits, consequences). Low added value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the purpose. The second sentence about the API endpoint is somewhat extraneous for an agent but not harmful. Could be more concise, but efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and the description does not mention return values or success/error behavior. For a write tool with 6 parameters, this is a gap. However, the required parameters are clear. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 6 parameters. The description does not add any extra meaning or context about parameters beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'WRITE: record/ingest a single usage meter event (writes billable usage data)', specifying the action (ingest), resource (usage meter event), and nature (write). It distinguishes from sibling read tools like amberflo_get_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool vs. alternatives. It mentions the API endpoint but does not provide contextual when-to-use or when-not-to-use information. Score 3 for implied usage but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_list_customer_invoicesList customer invoicesARead-onlyInspect
List all invoices for a customer (optionally for a specific product), with payment status. API: GET /payments/billing/customer-product-invoice/all.
| Name | Required | Description | Default |
|---|---|---|---|
| from_cache | No | Use cached invoices (faster). Default true. | |
| product_id | No | Product id. Default "1". | |
| customer_id | Yes | The Amberflo customerId. | |
| with_payment_status | No | Include payment status. Default true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds limited behavioral insight. It mentions the API endpoint and optional filters, but does not disclose caching behavior, pagination, authorization needs, or data freshness trade-offs beyond the schema parameter 'from_cache'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the core functionality without extraneous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks an output schema, and the description does not specify the return format, pagination, or error handling. While the parameter details are covered in the schema, the description itself is too terse to fully inform an agent about expected results or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. The description echoes 'optionally for a specific product' and 'with payment status' but adds no new meaning beyond what the schema provides. Baseline 3 is appropriate as the description does not compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), resource (invoices for a customer), and optional filters (by product, payment status). It is specific and distinguishes from the sibling tool 'get_customer_invoice' which likely retrieves a single invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies listing all invoices, but does not explicitly guide when to use this tool over alternatives like 'get_customer_invoice'. It lacks when-to-use or when-not-to-use advice, and no prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_list_customer_plan_historyList customer plan historyARead-onlyInspect
List the full history of product plans assigned to a customer over time. API: GET /payments/pricing/amberflo/customer-pricing/list?CustomerId=.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | The Amberflo customerId. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only (readOnlyHint=true). Description adds that it lists history and shows API endpoint, but no additional behavioral traits like rate limits or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, efficient. The API endpoint is a useful addition. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and no output schema, description is sufficient: explains purpose and endpoint. No major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes customer_id as 'The Amberflo customerId.' with 100% coverage. Description repeats this in API path without adding new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists the full history of product plans for a customer. Differentiates from related tools like get_customer_plan (current plan) and assign_customer_plan (mutative).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for historical audit via 'full history', but provides no explicit guidance on when to use versus alternatives like get_customer_plan for current plan, or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_list_customersList customersARead-onlyInspect
List all customers registered in your Amberflo account (id, name, email, traits, enabled). Good first call to discover customer ids. API: GET /customers/.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds the API endpoint and lists returned fields, providing extra context beyond the annotation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences; the first states the action and fields, the second adds a usage tip. No wasted words, front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters or output schema; the description covers the purpose, returned fields, API route, and a use-case hint, meeting all needs for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description adds meaning by confirming no input is needed and listing the output fields (id, name, email, traits, enabled), compensating for the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all customers with specific fields (id, name, email, traits, enabled). It distinguishes from sibling tools like 'amberflo_get_customer' (single customer) and 'amberflo_create_customer' (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests 'Good first call to discover customer ids', providing a clear use case as an initial discovery step. It implies when to use but does not explicitly state alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_list_metersList metersARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description need not reiterate safety. It adds that the tool returns a list of definitions with specified fields, no side effects mentioned—consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two precise sentences: first states purpose and output, second gives usage guidance. No fluff, front-loaded, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool, description covers what it returns and how to use results. Could mention pagination or data limit, but not essential given typical behavior of such APIs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema, so description provides all meaning by detailing output fields (id, meterApiName, etc.) and their downstream use. Schema coverage is 100%, baseline 3, but description significantly enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists all meter definitions, names specific fields (id, meterApiName, label, meterType, aggregation), and references the underlying API. Distinguishes from sibling list tools by focusing on meters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on using meterApiName values as inputs to usage tools, showing how to chain tools. Does not explicitly state when not to use or compare to alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amberflo_list_prepaid_ordersList prepaid ordersCRead-onlyInspect
List a customer's active prepaid credit orders for a product. API: GET /payments/pricing/amberflo/customer-prepaid/list?CustomerId=&ProductId=.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | No | Product id. Default "1". | |
| customer_id | Yes | The Amberflo customerId. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is minimal beyond the readOnlyHint annotation. It mentions 'active' prepaid orders but does not disclose behaviors like ordering, pagination, limits, or error handling. The annotation already indicates read-only, but the description adds little additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with important information front-loaded. The API endpoint is included, which may be extraneous, but overall it is concise and avoids verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain return format, pagination, or ordering. None of this is mentioned. The description is incomplete for a list operation that typically requires pagination or limit details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with clear parameter descriptions. The description adds context by stating 'for a product' and mentioning the API endpoint, but does not significantly enhance understanding beyond the schema. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', resource 'active prepaid credit orders', and scope 'for a customer and optionally a product'. It distinguishes from sibling tools like 'amberflo_get_customer_invoice' by specifying a unique resource. However, it does not explicitly differentiate itself from siblings that might also list prepaid orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when-not-to-use, or equivalent tools. The description only states what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseBqualityAmaintenanceEnables natural language interaction with the Zenskar billing platform, covering customers, contracts, invoices, payments, accounting, products, plans, and more.100431MIT- AlicenseCqualityDmaintenanceEnables access to Usage and Billing APIs for managing accounts, products, meters, plans, and usage reporting. Supports operations like creating products/plans, reporting usage, and retrieving billing information.18MIT

ChartMogul MCP Serverofficial
AlicenseAqualityFmaintenanceEnables interaction with the ChartMogul API to manage subscription data, customer relationships, and sales CRM activities. It allows users to retrieve key business metrics like MRR and churn while performing data operations on plans, invoices, and contacts.558MIT- FlicenseCqualityDmaintenanceProvides access to Northbeam marketing analytics data, enabling querying of metrics, dimensions, channel performance, cohort analysis, and attribution data.61