Skip to main content
Glama

Get Balance

get_balance
Read-onlyIdempotent

Get plan terms and usage for accessible businesses. No-card trials report 25 lifetime minutes, zero price and no overage; paid plans report the mapped subscription price and billing-cycle usage. Answered-call allowance usage is the raw billable call count, matching dashboard and right-sizing. A separate weighted count is informational only, not allowance consumption or right-sizing. Phone allowance includes purchased extra lines. A balance does not prove activation or inbound routing. Mirrors GET /api/v1/balance; unavailable billing data returns an error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when success is false
successYesWhether the tool completed successfully
businessesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / businesses / items / properties
      Added value: +{
      +  "allowance_model": {
      +    "enum": [
      +      "minutes",
      +      "answered_calls"
      +    ],
      +    "type": "string"
      +  },
      +  "answered_calls_allowance": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "answered_calls_raw": {
      +    "description": "Unweighted billable call count for reporting.",
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "answered_calls_used": {
      +    "description": "Raw billable call count used for allowance reporting, matching dashboard and right-sizing; null for minute plans.",
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "answered_calls_weighted": {
      +    "description": "Informational only, not allowance consumption or right-sizing: ordinary calls 1, human-answered silent-listen calls 0.5; null for minute plans.",
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "business_id": {
      +    "type": "string"
      +  },
      +  "minutes_allowance": {
      +    "type": "number"
      +  },
      +  "minutes_used": {
      +    "type": "number"
      +  },
      +  "overage_allowed": {
      +    "type": "boolean"
      +  },
      +  "period_end": {
      +    "description": "Null for lifetime trial usage; does not imply the trial cannot expire.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "period_kind": {
      +    "enum": [
      +      "lifetime_trial",
      +      "billing_cycle"
      +    ],
      +    "type": "string"
      +  },
      +  "period_start": {
      +    "type": "string"
      +  },
      +  "phone_numbers": {
      +    "description": "Active registered numbers, including unassigned numbers.",
      +    "type": "integer"
      +  },
      +  "phone_numbers_allowance": {
      +    "type": "integer"
      +  },
      +  "plan_key": {
      +    "type": "string"
      +  },
      +  "plan_name": {
      +    "type": "string"
      +  },
      +  "price_monthly": {
      +    "description": "Mapped subscription base price in USD; zero for no-card trial. Excludes add-ons and tax.",
      +    "type": "number"
      +  },
      +  "subscription_status": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / businesses / items / required
      Added value: +[
      +  "business_id",
      +  "plan_key",
      +  "plan_name",
      +  "price_monthly",
      +  "allowance_model",
      +  "minutes_used",
      +  "minutes_allowance",
      +  "answered_calls_used",
      +  "answered_calls_raw",
      +  "answered_calls_weighted",
      +  "answered_calls_allowance",
      +  "phone_numbers",
      +  "phone_numbers_allowance",
      +  "subscription_status",
      +  "overage_allowed",
      +  "period_start",
      +  "period_end",
      +  "period_kind"
      +]
  2. Added

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this read-only, idempotent, and non-destructive, and the description adds substantial non-obvious behavioral detail: trial-specific constants, paid-plan mapping, raw vs weighted usage semantics, extra-line inclusion, and an error case when billing data is unavailable. This goes well beyond what the annotations and schema convey, and nothing contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose is front-loaded in the first sentence, and every subsequent sentence earns its place by disambiguating the meaning of 'balance'—trial behavior, allowance counts, phone allowances, activation caveats, and error behavior. It is dense but not padded, and it avoids repeating annotation or schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only endpoint with an output schema, the description supplies everything an agent needs: expected value semantics, the exact endpoint it mirrors, the error case, and misleading interpretations to avoid. No material selection or interpretation context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the input schema documents that completely, so there is no parameter ambiguity. Per the baseline for zero-parameter tools, the description does not need to add parameter-level detail and introduces none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Get plan terms and usage') and then defines what 'balance' means with concrete distinctions: trial vs paid plans, raw billable usage vs informational weighted count, and phone allowance including extra lines. It also states what a balance does not prove (activation or inbound routing), which helps separate it from adjacent concerns. However, it never names sibling tools like get_usage or list_plans, so differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful contextual guidance: no-card trials report fixed minutes and zero price, paid plans report mapped price and billing-cycle usage, and only the raw billable call count should be treated as allowance consumption. It also warns that a balance does not prove activation or inbound routing, providing a when-not cue. It does not explicitly name alternatives or say 'use get_usage for detailed call records', so routing guidance is contextual but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.