Skip to main content
Glama

Get balance

get_balance
Read-onlyIdempotent

Check remaining VA hours, cap room, spendable calls wallet balance, and open holds before proposing spend; confirms whether delegation is allowed without creating a task.

Instructions

Return remaining VA hours, capRoom, and whether a new cap can be filed. Also returns the calls wallet: balance_cents is spendable after open holds, wallet_cents is that amount plus holds_cents, and holds_cents is the sum of unsettled holds. addFundsUrl is POST /api/v1/billing/add-funds and this read does not create a Stripe session. canDelegate is false when hours are unavailable, when spendable hours are not above zero, or when open caps leave no room. canDelegate false while hoursRemaining is above zero means lower maxHours to capRoom or wait. It is not a buy-hours signal. Call this before proposing spend. Does not create a task.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
capRoomNoHours free for a new cap after open caps. Omitted when hours are unavailable.
addFundsUrlNoPOST /api/v1/billing/add-funds. This read does not create a Stripe session.
addHoursUrlNoBuy-hours URL. Use it only when a live read is not above zero.
canDelegateNoFalse when hours are unavailable, spendable hours are not above zero, or capRoom is below the minimum new cap.
holds_centsNoSum of unsettled call holds.
wallet_centsNobalance_cents plus holds_cents.
balance_centsNoSpendable calls-wallet cents after open holds.
can_place_callNoWhether the calls wallet can place a call.
hoursRemainingNoLive remaining hours when Ops returned a figure.
hoursUnavailableNoTrue when Ops did not return a live remaining figure. Not a buy-hours signal.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.2.0
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "addFundsUrl": {
      +      "description": "POST /api/v1/billing/add-funds. This read does not create a Stripe session.",
      +      "type": "string"
      +    },
      +    "addHoursUrl": {
      +      "description": "Buy-hours URL. Use it only when a live read is not above zero.",
      +      "type": "string"
      +    },
      +    "balance_cents": {
      +      "description": "Spendable calls-wallet cents after open holds.",
      +      "type": "number"
      +    },
      +    "canDelegate": {
      +      "description": "False when hours are unavailable, spendable hours are not above zero, or capRoom is below the minimum new cap.",
      +      "type": "boolean"
      +    },
      +    "can_place_call": {
      +      "description": "Whether the calls wallet can place a call.",
      +      "type": "boolean"
      +    },
      +    "capRoom": {
      +      "description": "Hours free for a new cap after open caps. Omitted when hours are unavailable.",
      +      "type": "number"
      +    },
      +    "holds_cents": {
      +      "description": "Sum of unsettled call holds.",
      +      "type": "number"
      +    },
      +    "hoursRemaining": {
      +      "description": "Live remaining hours when Ops returned a figure.",
      +      "type": "number"
      +    },
      +    "hoursUnavailable": {
      +      "description": "True when Ops did not return a live remaining figure. Not a buy-hours signal.",
      +      "type": "boolean"
      +    },
      +    "wallet_cents": {
      +      "description": "balance_cents plus holds_cents.",
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.1.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and non-destructive, and the description adds genuinely new behavioral facts: addFundsUrl is POST /api/v1/billing/add-funds yet this read creates no Stripe session, and canDelegate semantics for the zero-hours / no-room cases. It does not cover auth requirements or rate limits, so not a 5.

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

Conciseness4/5

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

Front-loaded with the resource and its returns, then the canDelegate rules and the invocation cue. Efficient overall, though the field-by-field wallet breakdown and the addFundsUrl/Stripe detail are somewhat dense and partly overlap with the output schema.

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?

The schema has no params, annotations carry the safety profile, and an output schema exists so return values needn't be re-specified. The description still supplies the non-obvious semantics an agent needs: how canDelegate false should be interpreted, and that this read has no billing side effect.

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?

Zero input parameters, so there is nothing parameter-side to compensate for; baseline is 4. The description instead spends its detail on return-field semantics (balance_cents vs wallet_cents vs holds_cents), which sits outside this dimension.

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

Purpose5/5

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

States a specific verb and resource, naming exactly what comes back: remaining VA hours, capRoom, whether a new cap can be filed, and the calls wallet breakdown. It also disambiguates itself from siblings by asserting 'Does not create a task' and 'not a buy-hours signal', so an agent can separate it from place_call/delegate_task without opening a schema.

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?

Gives clear invocation context: 'Call this before proposing spend.' It also sets two boundaries — not a buy-hours signal, and it does not create a task. It stops short of naming an alternative tool for the buy-hours or cap-filing paths, so it is strong context rather than full when/when-not routing.

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