Chargebee MCP by usefulapi
Server Details
Read Chargebee customers, subscriptions, invoices, items, transactions, credit notes and coupons.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 75.3% over 73 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 13 tools
Each tool targets a distinct resource+action pairing (get_invoice vs list_invoices, get_customer vs list_customers). There is no overlap between tools; list vs get vs create vs update are cleanly separated by resource.
Every tool follows the identical chargebee_verb_noun pattern with consistent verbs (create, get, list, update). No deviations or mixed conventions.
13 tools is well within the ideal range and each tool covers a distinct resource or operation. Nothing feels padded or redundant.
The surface is heavily read-biased: nine of thirteen tools are list/get reads, with write operations only for customers (create/update). Key billing lifecycle operations like subscription create/update/cancel, invoice void/pay, and coupon/transaction mutations are absent, creating dead ends for core workflows.
Available Tools
13 toolschargebee_create_customerCreate customerCDestructiveInspect
Creates a customer in Chargebee (additive). Chargebee auto-generates the id unless you pass one. Chargebee API: POST /customers.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional custom customer id (Chargebee auto-generates if omitted). | |
| No | Customer email address. | ||
| phone | No | Phone number. | |
| locale | No | Locale, e.g. fr-CA. | |
| company | No | Company name. | |
| last_name | No | Customer last name. | |
| first_name | No | Customer first name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description labels the operation '(additive)', asserting it only appends data, while the annotation declares destructiveHint=true. An agent reading both gets opposite signals about whether to warn the user, which is exactly the inconsistency this dimension is meant to catch. The useful extras it does provide (auto-generated id, POST /customers) do not resolve that conflict.
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?
Three short sentences, front-loaded with the action, no padding or repetition. The trailing 'Chargebee API: POST /customers' line is of limited value to an agent that cannot call the raw API, but it is brief enough not to hurt.
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?
There is no output schema, and the description never says what is returned (e.g. the created customer object) or what happens on a duplicate email, so an agent cannot predict the result. With no required parameters and full schema coverage the gap is moderate rather than severe, but the return behavior and the destructive/additive conflict remain unexplained.
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%, so all seven fields (id, email, phone, locale, company, last_name, first_name) are already documented in the schema. The description only restates the id auto-generation rule already present in the schema, adding no new parameter meaning.
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?
States a specific verb+resource ('Creates a customer in Chargebee'), which is unambiguous and clearly distinct from the get/list/update siblings. It does not explicitly name an alternative (e.g. update_customer) for existing records, but the create verb makes the boundary obvious.
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 on when to use this versus chargebee_update_customer or chargebee_list_customers, no prerequisites (auth, required fields, duplicate handling), and no note on what happens if the email already exists. The only conditional offered is about the optional id, which is invocation detail rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_get_customerGet customerBRead-onlyInspect
Retrieve a single customer by id. Chargebee API: GET /customers/{customer_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Chargebee customer id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a non-mutating read, so the safety profile is covered. The description adds the concrete HTTP endpoint, but says nothing about behavior on a missing/unknown id (404 vs empty), auth requirements, 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?
Two short sentences, zero filler, with the core action front-loaded and the API reference placed after it. Nothing to trim.
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 one-parameter read with annotations covering safety, this is nearly complete. The only gap is the absence of any hint about the returned customer object, which matters slightly more because no output schema exists.
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% for the single required parameter, so the schema already carries parameter meaning. The endpoint path in the description confirms customer_id is a path segment, but adds no format, prefix, or validation guidance beyond that.
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?
States a specific verb ("Retrieve") and resource ("a single customer by id"), and even pins the underlying endpoint. The word "single" implicitly separates it from chargebee_list_customers, though no sibling is named explicitly.
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?
There is no statement of when to choose this over chargebee_list_customers or chargebee_get_invoice/get_subscription. The only usable signal is "by id," which is already implied by the tool name and the required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_get_invoiceGet invoiceBRead-onlyInspect
Retrieve a single invoice by id. Chargebee API: GET /invoices/{invoice_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Chargebee invoice id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint already declares a safe read, so the bar is lower. The description adds the REST endpoint and single-object scope, which is useful context, but it does not disclose error behavior, rate limits, or return shape.
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 short sentences, front-loaded with the operation and then the endpoint. Every phrase earns its place with no filler.
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 low-complexity, one-parameter read tool, the annotations cover safety and the schema covers the identifier. The description provides scope and endpoint, so an agent can invoke it correctly; return details and errors are omitted but less critical here.
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%, with invoice_id documented as 'Chargebee invoice id.' The description adds no syntax, format, or validation detail beyond 'by id' and the endpoint template, so the baseline 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?
The description states a specific verb 'Retrieve', a specific resource 'invoice', and the scope 'single...by id'. It distinguishes from chargebee_list_invoices by returning one record, though it does not explicitly name that sibling.
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?
There is no when-to-use guidance, no prerequisites, and no alternatives. The only cue is 'by id', which is parameter semantics rather than routing guidance for choosing between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_get_subscriptionGet subscriptionBRead-onlyInspect
Retrieve a single subscription by id. Chargebee API: GET /subscriptions/{subscription_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Chargebee subscription id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description needs only to add context. It contributes the underlying API endpoint (GET /subscriptions/{subscription_id}), which is minor, and says nothing about not-found/error behavior or scope of the returned record.
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 short sentences, front-loaded with the action and zero filler. Every clause 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 one-parameter read tool with annotations covering the safety profile, this is nearly complete; the only gap is that no output schema exists, so the shape of the returned subscription is not described.
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 a single documented parameter (subscription_id), so the schema carries the meaning. The description adds no format or syntax detail beyond what the schema provides — the baseline 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?
States a specific verb and resource ('Retrieve a single subscription by id'), and the word 'single' distinguishes it from the sibling list_subscriptions without naming it. Clear purpose, though it doesn't explicitly call out the sibling alternative.
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?
Usage is only implied: 'by id' vs. the list_* siblings suggests this is the point-lookup path. There is no explicit when-to-use or when-not-to-use guidance (e.g., 'use this instead of chargebee_list_subscriptions when you already have the id').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_couponsList couponsBRead-onlyInspect
List coupons. Chargebee API: GET /coupons.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is covered. The description adds only the underlying REST endpoint (GET /coupons), which is mild context, and says nothing about default result counts, pagination continuation via next_offset, 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?
Two short fragments with zero waste; the purpose is front-loaded and nothing extraneous is included. Appropriate size for a trivial list endpoint.
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 exists, so the description should ideally explain the returned shape or pagination behavior, but it does not. For a simple read-only list with fully documented params, it is adequate but leaves the agent guessing at defaults and response structure.
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%, and both limit and offset are documented in the schema with their meaning and constraints, so the baseline is 3. The description adds no parameter-level detail beyond what the schema already conveys.
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?
States a specific verb (List) and resource (coupons), which cleanly distinguishes it from siblings like chargebee_list_invoices or chargebee_list_customers that target other resources. It does not explicitly contrast itself with any sibling, but the resource noun alone makes the target unambiguous.
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?
There is no guidance on when to use this tool versus alternatives, no mention of prerequisites or filters, and no note on whether it needs to be paginated for full coverage. The agent is left to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_credit_notesList credit notesBRead-onlyInspect
List credit notes. Filter by customer. Chargebee API: GET /credit_notes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. | |
| customer_id | No | Only credit notes of this customer (→ customer_id[is]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read with no side effects. The description adds only the raw upstream endpoint (GET /credit_notes) and no behavioral context such as pagination expectations, result ordering, or empty-result semantics, so it contributes little beyond the annotation.
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?
Three short sentences, front-loaded with the action and the filter before the endpoint detail. Nothing is bloated, though the raw "Chargebee API: GET /credit_notes" line is arguably noise for an agent that already has the tool contract.
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 paginated read tool with full schema documentation and a readOnlyHint annotation, and no output schema to explain, the definition covers what is needed. The remaining gap is behavioral expectation around pagination/ordering, which is minor.
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%, with limit, offset, and customer_id each fully documented including the Chargebee max of 100 and the customer_id[is] mapping. The description's "Filter by customer" merely restates customer_id, so baseline 3 is correct.
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?
States a specific verb and resource ("List credit notes") plus the supported filter, which is enough to distinguish it from list_invoices, list_transactions, and other list siblings by resource alone. No explicit sibling call-out, which keeps it at 4 rather than 5.
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?
"Filter by customer" implies the primary use case (retrieving credit notes, optionally scoped to one customer), but there is no when-to-use/when-not-to-use guidance, no mention of alternatives for related lookups (e.g., get_invoice), and no note on when the customer filter is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_customersList customersARead-onlyInspect
List customers, newest first. Filter by email or creation time. Chargebee API: GET /customers.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Exact email to match (→ email[is]). | ||
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. | |
| created_after | No | Unix timestamp; only customers created after this (→ created_at[after]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the default sort order ('newest first'), which is genuine behavioral context, but says nothing about pagination mechanics, rate limits, or how many calls the agent must make despite exposing an offset token.
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?
Three short, front-loaded sentences with zero filler: purpose, filters, and API endpoint. 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 simple 0-required-param list tool with no output schema and full schema coverage, the description covers purpose, ordering, and filters adequately. It could have noted the pagination loop (repeat until next_offset is absent) since there is no output schema to clarify return shape, but the gap is minor.
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%, so every parameter (email, limit, offset, created_after) is already documented with Chargebee-specific mapping notes like '→ email[is]'. The description adds no parameter detail beyond what the schema provides, so the baseline 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?
Specific verb+resource ('List customers') plus scope details (newest-first ordering, filterable by email or creation time) and the underlying API endpoint. It's clearly distinguishable from chargebee_get_customer / chargebee_create_customer by the list semantics, though it never names a sibling explicitly.
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 by stating the available filters ('Filter by email or creation time'), which tells the agent when this tool is appropriate, but there is no explicit when-to-use versus chargebee_get_customer or the other list_* tools, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_invoicesList invoicesARead-onlyInspect
List invoices. Filter by customer or status. Chargebee API: GET /invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. | |
| status | No | Invoice status filter (→ status[is]). | |
| customer_id | No | Only invoices of this customer (→ customer_id[is]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this is a safe, non-mutating read, and the description does not contradict it. Beyond restating the endpoint, the description adds no behavioral context such as pagination semantics, default page size, ordering, or rate limits, so it clears the lowered bar but adds little.
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?
Three short, front-loaded sentences with the core purpose first and no filler. The API endpoint line is marginally useful but borders on redundant given the tool name.
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 read-only list tool with a fully documented schema and no output schema, the definition covers what is needed to invoke it. It could still note pagination behavior and result ordering, but nothing essential is missing.
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%, so limit, offset, status, and customer_id are already fully documented in the schema, including the enum values and the Chargebee filter mapping. The description only names two of the four filters and adds no syntax or format detail beyond the schema, so the baseline 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?
States a specific verb (list) and resource (invoices) and names the two filter dimensions, so it is clearly distinct from chargebee_get_invoice (single invoice) and the other list_* siblings. It stops short of explicitly contrasting itself with the sibling retrieval tools, which keeps it from a 5.
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?
"Filter by customer or status" implies the intended use cases but never states when to reach for this versus chargebee_get_invoice or chargebee_list_credit_notes, nor any exclusions or prerequisites. Usage must be inferred from the tool name and filter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_item_pricesList item pricesBRead-onlyInspect
List Product Catalog 2.0 item prices. Filter by item. Chargebee API: GET /item_prices.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. | |
| item_id | No | Only prices of this item (→ item_id[is]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this as a safe read, so the bar is lower. The description adds the endpoint and the API version (Product Catalog 2.0) context, but says nothing about pagination behavior, result ordering, or rate limits that a listing tool would benefit from disclosing.
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?
Three short, front-loaded sentences with no filler; the endpoint reference is the least essential line but still cheap and informative. Nothing is buried or padded.
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-only, zero-required-parameter list tool with 100% schema coverage, the description covers what it does and what it queries. The absence of an output schema means return shape is unspecified, but the tool's simplicity keeps this from being a serious 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 description coverage is 100%, so limit, offset, and item_id are already fully documented, including the [is] filter mapping. The description's 'Filter by item' merely restates item_id, adding no syntax or semantics 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?
States a specific verb+resource ('List Product Catalog 2.0 item prices') and the underlying endpoint (GET /item_prices), which distinguishes it from sibling chargebee_list_items (items, not prices). It never names that sibling explicitly, so it stops short of full differentiation.
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 only usage hint is 'Filter by item', which describes a capability rather than a when-to-use condition. There is no guidance on when to pick this over chargebee_list_items or how to page through results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_itemsList itemsARead-onlyInspect
List Product Catalog 2.0 items (plans, addons, charges). Filter by type. Chargebee API: GET /items.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Item type filter (→ type[is]). | |
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already declares this is a safe read, and the description's "Chargebee API: GET /items" is consistent with that. It adds the endpoint mapping but nothing beyond annotations (no pagination behavior, rate limits, or response shape), so with annotations present a 3 is appropriate.
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?
Three short, front-loaded sentences with no filler; the core purpose leads. The second and third sentences are terse and earn their place, though the third is only marginally useful.
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 read-only list tool with full schema coverage and no output schema, the definition covers scope and filtering adequately. Pagination is handled by the schema's offset description, so nothing critical is missing, though a note on default result ordering/size would round it out.
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%, so all three parameters (type, limit, offset) are already documented in the schema, including the type[is] mapping and the opaque next_offset token. The description only restates "Filter by type" and adds no syntax or format detail, matching the baseline of 3.
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?
States a specific verb (List) and resource (Product Catalog 2.0 items) and enumerates the item subtypes (plans, addons, charges), so the agent knows the domain. It does not explicitly contrast with the closest sibling chargebee_list_item_prices, so it stops short of a 5.
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?
"Filter by type" implies the tool's usage context and gives a hint about narrowing results, but there is no statement of when to prefer this over chargebee_list_item_prices or other list tools, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_subscriptionsList subscriptionsBRead-onlyInspect
List subscriptions. Filter by customer or status. Chargebee API: GET /subscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. | |
| status | No | Subscription status filter (→ status[is]). | |
| customer_id | No | Only subscriptions of this customer (→ customer_id[is]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so safety profile is known. The description adds the API endpoint and filter dimensions, but no pagination behavior (limit/offset interplay), no default page size, no return format details. For a list tool where pagination is critical, this is a significant behavioral gap.
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?
Three short sentences, zero waste, and the scope is front-loaded ('List subscriptions') before the filtering and endpoint details. 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 read-only list tool with full schema coverage and an annotation for safety, the description covers the basics. However, it omits pagination semantics (important given limit/offset params) and doesn't mention the output structure (no output schema exists, so the description could explain the return shape). Adequate but with clear 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 coverage is 100%, so all parameter semantics (limit, offset, status, customer_id) are fully documented in the schema itself. The description adds only the fact that filtering is possible, which is redundant with the schema. Baseline 3 is appropriate when schema does the heavy lifting.
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?
States a clear verb (List) and resource (subscriptions), and the description makes the scope explicit by noting the filter dimensions (customer or status). It's distinguishable from chargebee_get_subscription (single) but doesn't explicitly name a sibling alternative, so not a 5.
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 the tool is for browsing/filtering subscriptions ('Filter by customer or status'), but it doesn't state when to use this vs alternatives like chargebee_get_subscription for a single subscription. No explicit when-not or exclusions are provided, leaving usage context to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_list_transactionsList transactionsBRead-onlyInspect
List payment/refund transactions. Filter by customer. Chargebee API: GET /transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (Chargebee max 100). | |
| offset | No | Opaque pagination token from a previous response's `next_offset`. | |
| customer_id | No | Only transactions of this customer (→ customer_id[is]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the underlying API path (GET /transactions) and that both payments and refunds are included, which is genuinely useful context. It does not describe return shape, ordering, or rate limits, so it stays at an adequate-but-thin level.
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?
Three short fragments with no filler, and the core purpose is front-loaded in the first sentence. The API-path fragment is mildly redundant but compact enough to justify its presence as an endpoint reference.
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?
This is a simple, parameterless-required read tool with a fully covered schema and a readOnly annotation, so the essentials are present. Still, with no output schema the description could have said something about the transaction collection returned or pagination flow, which it leaves entirely to the 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%, so limit, offset, and customer_id are already fully documented in the schema, including the Chargebee max and the next_offset token semantics. The description's 'Filter by customer' merely restates the customer_id parameter and adds no syntax beyond what the schema provides. Baseline 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?
States a specific verb (List) and resource (payment/refund transactions), and the scope note 'payment/refund' usefully narrows what kind of transactions are returned. It does not explicitly contrast itself with siblings like chargebee_get_invoice or chargebee_list_invoices, but an agent can distinguish it by resource name alone.
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?
'Filter by customer' implies the primary use case, and the API line hints this is the direct Chargebee endpoint wrapper. However, there is no statement of when to use this versus the other list tools, no exclusions, and no note about pagination requiring offset from a prior response.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargebee_update_customerUpdate customerCDestructiveInspect
Updates a customer's details in Chargebee. Chargebee API: POST /customers/{customer_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Customer email address. | ||
| phone | No | Phone number. | |
| company | No | Company name. | |
| last_name | No | Customer last name. | |
| first_name | No | Customer first name. | |
| customer_id | Yes | Chargebee customer id to update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, which the description neither reinforces nor contradicts. Beyond that the description adds nothing behavioral: no note that the change is irreversible, no mention of which fields can be modified, no permission or rate-limit context, and no indication that omitted fields are left untouched.
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 short, front-loaded sentences with no filler; the purpose leads and the API reference follows. Slightly terse rather than padded, but nothing is wasted.
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 mutation tool with six parameters, one required, no output schema and a destructiveHint annotation, the description should at minimum clarify partial-update semantics and the destructive nature of the call. None of that is present, leaving the agent to infer behavior from the HTTP verb alone.
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%, so every one of the six parameters (including the required customer_id) is already documented in the schema. The description adds no parameter-level meaning beyond the endpoint path placeholder, so the baseline 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?
States a specific verb and resource ('Updates a customer's details') plus the underlying Chargebee endpoint, so the agent knows exactly what the tool does. It doesn't explicitly contrast itself with chargebee_create_customer or chargebee_get_customer, but the verb is unambiguous enough to distinguish it in practice.
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?
There is no guidance on when to use this tool versus siblings like chargebee_create_customer or chargebee_get_customer, nor any prerequisite (e.g. the customer must already exist). Usage is only implied by the word 'Updates'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Read Checkout.com payments, disputes, reports and payouts.
Read ChargeOver customers, invoices, transactions, subscriptions, reports; create customers, quotes.
Read subscriptions, customers, charges, orders; skip charges, cancel or activate subscriptions.
Read SalesBinder customers, inventory, warehouse locations, invoices and sales orders.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables read-only access to customer and recurring-billing state from Recurly, including accounts, subscriptions, invoices, and payment outcomes.14 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables querying Chargebee subscriptions and customer data through natural language, supporting subscription details, customer lists, and customer profiles.433 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables reading customer, subscription, transaction, and adjustment data from the Paddle Billing API to inspect billing and recurring-revenue state.16 npmMIT
- AlicenseNot gradedqualityBmaintenanceRead-only access to Stripe data including customers, charges, subscriptions, balance, and invoices.195 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.