Skip to main content
Glama

Measure typed subscription rows

well_list_subscription_rows
Read-only

Read the active typed subscription rows on one side of this workspace's own company. Use side=sold for subscriptions the workspace sells to clients, or side=buy for subscriptions it buys from suppliers. This read applies the server's exact monthly amount rule, keeps currencies separate, and does not convert them. Rows with an exclusion_reason stay out of clients, suppliers and totals; excluded counts rows by reason, and each row carries needs_review when it has an exclusion_reason. A read is capped at 500 subscriptions, and rows_truncated says when more exist. On a sold read, clients[].monthly_total is each client's live monthly figure, the per-client value. Pass billed_year to add a server-computed billed total per client and currency for that calendar year; billed_totals[] pairs with it by company_id and currency. The current UTC year ends today; a past year covers the full calendar year. billed_period names the dates and the scope: the total sums only the billed invoices linked to the client's active subscriptions, so an invoice of an ended or replaced subscription, or one with no subscription link, stays out, and the answer must say so. billed_totals_status says whether the result is complete; may_double_count means the period holds a corrected or consolidated invoice (replacing_invoice_count per client), which the total may count next to the invoice it replaces. This total counts issued revenue documents, nets credit notes, keeps currencies separate, and uses each invoice's grand_total. It never changes or replaces the monthly run-rate. Do not calculate a billed total from the newest invoice samples. Sold rows also include up to 12 newest live linked invoices per subscription, each invoice's effective lifecycle status_code, payment_status, paid_amount, balance_due, last_payment_allocation_date and whether a confirmed bank allocation exists, their total count, the workspace's unresolved-customer count and missing-own-company park count (capped at 10,001, which means 10,001 or more), up to five distinct sorted Pennylane customer labels with a count of additional labels, a review_summary that keeps excluded typed rows, unresolved source subscriptions and parked own-company subscriptions separate and names the recorded billing-subscriptions scope refusal when the Pennylane token lacks that scope, and Pennylane's last successful sync and latest completed sync status. Labels are trimmed and omit provider rows with no readable name.

Every workspace of the person. With workspaces: "all_my_workspaces" — on every call on WhatsApp, and elsewhere when the person asks across all their workspaces — the read also reads each other real workspace the person may read, at most 10 of them, found from the person and never named in the call. other_workspaces then holds each one's own subscriptions, clients (for side=sold), suppliers, totals, excluded counts, review_summary, and Pennylane's last successful sync and latest completed sync status for that workspace, and other_workspaces_skipped counts the ones past that limit, so every combined figure covers the workspaces read only. all_workspaces_totals gives, per currency, the combined monthly total across every workspace read, this one included; all_workspaces_suppliers ranks the bought rows across them, each line named by its workspace_id; workspace_order.workspace_ids lists the workspace blocks largest first. When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.

Input Schema

NameRequiredDescriptionDefault
sideYes
workspacesNoWhich workspaces the read reads. Omit it, or pass "this_workspace", for this workspace alone. Pass "all_my_workspaces" on every call on WhatsApp, and elsewhere when the person asks across all their workspaces: `other_workspaces` then holds each other workspace's own rows, and the all-workspaces fields total and rank across every workspace read.
billed_yearNoFor a sold-side billed-total read, pass "current" for the current UTC year or a calendar year. The current year runs through today; a past year covers the full year.
workspace_idNoTarget workspace. Omit when the token authorizes one workspace. Required when it authorizes several: this read reports one workspace's own figures and will not choose which.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.
workspace_scopeNoRestrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.

Output Schema

NameRequiredDescriptionDefault
sideYes
errorNo
totalsYes
clientsYes
successYes
excludedYes
suppliersYes
workspaceYes
months_readYes
workspace_idYes
billed_periodYes
billed_totalsYes
subscriptionsYes
review_summaryYes
rows_truncatedYes
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
newly_connectedNoTools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.
workspace_orderYes
other_workspacesYes
latest_sync_statusYes
resolved_workspaceNoThe workspace that answered, when the caller named none and the token authorizes several.
billed_totals_statusYes
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
all_workspaces_totalsYes
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.
last_successful_sync_atYes
other_workspaces_statusYes
all_workspaces_suppliersYes
other_workspaces_skippedYes
customer_unresolved_countYes
customer_unresolved_labelsYes
customer_unresolved_more_label_countYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed155 schema fields changed
    • removedOutput schema / properties / all_workspaces_suppliers / items / properties / amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / all_workspaces_suppliers / items / properties / amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / all_workspaces_suppliers / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / all_workspaces_suppliers / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / all_workspaces_suppliers / items / properties / per_seat_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / all_workspaces_suppliers / items / properties / per_seat_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / all_workspaces_suppliers / items / properties / quantity / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / all_workspaces_suppliers / items / properties / quantity / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / all_workspaces_suppliers / items / properties / subscription_external_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / all_workspaces_suppliers / items / properties / subscription_external_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / billed_totals / items / properties / billed_total / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / billed_totals / items / properties / billed_total / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / billed_totals / items / properties / currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / billed_totals / items / properties / currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / billed_totals / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / billed_totals / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / clients / items / properties / monthly_total / description
      Added value: +"This client's live monthly total before VAT (HT), in its currency: the per-client monthly figure. `billed_totals[]` pairs with it by company_id and currency."
    • removedOutput schema / properties / clients / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / clients / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / customer_unresolved_count / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / customer_unresolved_count / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / last_successful_sync_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / last_successful_sync_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / latest_sync_status / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / latest_sync_status / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / months_read / properties / from / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / months_read / properties / from / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / months_read / properties / through / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / months_read / properties / through / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / billed_totals / items / properties / billed_total / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / billed_totals / items / properties / billed_total / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / billed_totals / items / properties / currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / billed_totals / items / properties / currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / billed_totals / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / billed_totals / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / other_workspaces / items / properties / clients / items / properties / monthly_total / description
      Added value: +"This client's live monthly total before VAT (HT), in its currency: the per-client monthly figure. `billed_totals[]` pairs with it by company_id and currency."
    • removedOutput schema / properties / other_workspaces / items / properties / clients / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / clients / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / last_successful_sync_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / last_successful_sync_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / latest_sync_status / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / latest_sync_status / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / review_summary / properties / parked_own_company_subscription_count / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / review_summary / properties / parked_own_company_subscription_count / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / review_summary / properties / unresolved_source_subscription_count / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / review_summary / properties / unresolved_source_subscription_count / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / billing_interval / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / billing_interval / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / billing_interval_count / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / billing_interval_count / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / cancel_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / cancel_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / ends_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / ends_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / balance_due / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / balance_due / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / grand_total / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / grand_total / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / invoice_number / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / invoice_number / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / issue_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / issue_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / last_payment_allocation_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / last_payment_allocation_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / paid_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / invoices / items / properties / paid_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / monthly_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / monthly_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / party_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / party_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / per_seat_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / per_seat_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / quantity / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / quantity / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / starts_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / starts_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / subscription_external_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / subscriptions / items / properties / subscription_external_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / per_seat_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / per_seat_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / quantity / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / quantity / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / subscription_external_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / suppliers / items / properties / subscription_external_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / other_workspaces / items / properties / workspace / properties / own_company_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / other_workspaces / items / properties / workspace / properties / own_company_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / resolved_workspace / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / resolved_workspace / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / review_summary / properties / parked_own_company_subscription_count / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / review_summary / properties / parked_own_company_subscription_count / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / review_summary / properties / unresolved_source_subscription_count / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / review_summary / properties / unresolved_source_subscription_count / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / billing_interval / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / billing_interval / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / billing_interval_count / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / billing_interval_count / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / cancel_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / cancel_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / ends_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / ends_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / balance_due / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / balance_due / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / grand_total / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / grand_total / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / invoice_number / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / invoice_number / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / issue_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / issue_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / last_payment_allocation_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / last_payment_allocation_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / paid_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / invoices / items / properties / paid_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / monthly_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / monthly_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / party_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / party_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / per_seat_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / per_seat_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / quantity / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / quantity / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / starts_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / starts_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / subscription_external_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / subscription_external_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / suppliers / items / properties / amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / suppliers / items / properties / amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / suppliers / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / suppliers / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / suppliers / items / properties / per_seat_amount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / suppliers / items / properties / per_seat_amount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / suppliers / items / properties / quantity / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / suppliers / items / properties / quantity / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / suppliers / items / properties / subscription_external_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / suppliers / items / properties / subscription_external_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / workspace / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bank_names": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "is_personal": {
      -        "type": "boolean"
      -      },
      -      "own_company_name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "workspace_id": {
      -        "type": "string"
      -      },
      -      "workspace_name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "workspace_id",
      -      "workspace_name",
      -      "own_company_name",
      -      "is_personal",
      -      "bank_names"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bank_names": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "is_personal": {
      +        "type": "boolean"
      +      },
      +      "own_company_name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "workspace_id": {
      +        "type": "string"
      +      },
      +      "workspace_name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspace_id",
      +      "workspace_name",
      +      "own_company_name",
      +      "is_personal",
      +      "bank_names"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspace_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspace_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / workspace_order / properties / currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspace_order / properties / currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed16 schema fields changed
    • addedInput schema / properties / billed_year
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "current",
      +      "type": "string"
      +    },
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 1900,
      +      "type": "integer"
      +    }
      +  ],
      +  "description": "For a sold-side billed-total read, pass \"current\" for the current UTC year or a calendar year. The current year runs through today; a past year covers the full year."
      +}
    • addedOutput schema / properties / billed_period
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "from": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "const": "active_subscription_invoices",
      +          "type": "string"
      +        },
      +        "through": {
      +          "type": "string"
      +        },
      +        "year": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "year",
      +        "from",
      +        "through",
      +        "scope"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / billed_totals
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "billed_total": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "currency": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "incomplete_invoice_count": {
      +        "type": "number"
      +      },
      +      "invoice_count": {
      +        "type": "number"
      +      },
      +      "name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "replacing_invoice_count": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "name",
      +      "currency",
      +      "billed_total",
      +      "invoice_count",
      +      "incomplete_invoice_count",
      +      "replacing_invoice_count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / billed_totals_status
      Added value: +{
      +  "enum": [
      +    "not_requested",
      +    "available",
      +    "incomplete",
      +    "truncated",
      +    "may_double_count",
      +    "unavailable"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / months_read
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "from": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "through": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "from",
      +    "through"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / other_workspaces / items / properties / billed_period
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "from": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "const": "active_subscription_invoices",
      +          "type": "string"
      +        },
      +        "through": {
      +          "type": "string"
      +        },
      +        "year": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "year",
      +        "from",
      +        "through",
      +        "scope"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / other_workspaces / items / properties / billed_totals
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "billed_total": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "currency": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "incomplete_invoice_count": {
      +        "type": "number"
      +      },
      +      "invoice_count": {
      +        "type": "number"
      +      },
      +      "name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "replacing_invoice_count": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "name",
      +      "currency",
      +      "billed_total",
      +      "invoice_count",
      +      "incomplete_invoice_count",
      +      "replacing_invoice_count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / other_workspaces / items / properties / billed_totals_status
      Added value: +{
      +  "enum": [
      +    "not_requested",
      +    "available",
      +    "incomplete",
      +    "truncated",
      +    "may_double_count",
      +    "unavailable"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / other_workspaces / items / properties / review_summary / properties / billing_subscriptions_scope_refusal
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "auth_scope_insufficient",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The diagnostic recorded for the billing-subscriptions scope: \"auth_scope_insufficient\" means the Pennylane token lacks it and no read of the target has succeeded since; null otherwise."
      +}
    • addedOutput schema / properties / other_workspaces / items / properties / review_summary / properties / parked_own_company_subscription_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Pennylane subscriptions parked because the workspace has no own company; 10,001 means 10,001 or more."
      +}
    • changedOutput schema / properties / other_workspaces / items / properties / review_summary / required
      Previous value: -[
      -  "excluded_typed_row_count",
      -  "unresolved_source_subscription_count",
      -  "unresolved_customer_labels",
      -  "unresolved_customer_more_label_count"
      -]New value: +[
      +  "excluded_typed_row_count",
      +  "unresolved_source_subscription_count",
      +  "unresolved_customer_labels",
      +  "unresolved_customer_more_label_count",
      +  "parked_own_company_subscription_count",
      +  "billing_subscriptions_scope_refusal"
      +]
    • changedOutput schema / properties / other_workspaces / items / required
      Previous value: -[
      -  "workspace",
      -  "success",
      -  "rows_truncated",
      -  "subscriptions",
      -  "clients",
      -  "suppliers",
      -  "totals",
      -  "excluded",
      -  "last_successful_sync_at",
      -  "latest_sync_status",
      -  "review_summary"
      -]New value: +[
      +  "workspace",
      +  "success",
      +  "rows_truncated",
      +  "subscriptions",
      +  "clients",
      +  "suppliers",
      +  "totals",
      +  "billed_period",
      +  "billed_totals_status",
      +  "billed_totals",
      +  "excluded",
      +  "last_successful_sync_at",
      +  "latest_sync_status",
      +  "review_summary"
      +]
    • addedOutput schema / properties / review_summary / properties / billing_subscriptions_scope_refusal
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "auth_scope_insufficient",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The diagnostic recorded for the billing-subscriptions scope: \"auth_scope_insufficient\" means the Pennylane token lacks it and no read of the target has succeeded since; null otherwise."
      +}
    • addedOutput schema / properties / review_summary / properties / parked_own_company_subscription_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Pennylane subscriptions parked because the workspace has no own company; 10,001 means 10,001 or more."
      +}
    • changedOutput schema / properties / review_summary / required
      Previous value: -[
      -  "excluded_typed_row_count",
      -  "unresolved_source_subscription_count",
      -  "unresolved_customer_labels",
      -  "unresolved_customer_more_label_count"
      -]New value: +[
      +  "excluded_typed_row_count",
      +  "unresolved_source_subscription_count",
      +  "unresolved_customer_labels",
      +  "unresolved_customer_more_label_count",
      +  "parked_own_company_subscription_count",
      +  "billing_subscriptions_scope_refusal"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "success",
      -  "side",
      -  "workspace_id",
      -  "workspace",
      -  "subscriptions",
      -  "clients",
      -  "suppliers",
      -  "totals",
      -  "excluded",
      -  "rows_truncated",
      -  "customer_unresolved_count",
      -  "customer_unresolved_labels",
      -  "customer_unresolved_more_label_count",
      -  "last_successful_sync_at",
      -  "latest_sync_status",
      -  "other_workspaces_status",
      -  "other_workspaces",
      -  "other_workspaces_skipped",
      -  "all_workspaces_totals",
      -  "workspace_order",
      -  "all_workspaces_suppliers",
      -  "review_summary"
      -]New value: +[
      +  "success",
      +  "side",
      +  "workspace_id",
      +  "workspace",
      +  "subscriptions",
      +  "clients",
      +  "suppliers",
      +  "totals",
      +  "billed_period",
      +  "billed_totals_status",
      +  "billed_totals",
      +  "excluded",
      +  "rows_truncated",
      +  "months_read",
      +  "customer_unresolved_count",
      +  "customer_unresolved_labels",
      +  "customer_unresolved_more_label_count",
      +  "last_successful_sync_at",
      +  "latest_sync_status",
      +  "other_workspaces_status",
      +  "other_workspaces",
      +  "other_workspaces_skipped",
      +  "all_workspaces_totals",
      +  "workspace_order",
      +  "all_workspaces_suppliers",
      +  "review_summary"
      +]
  3. Changed4 schema fields changed
    • addedOutput schema / properties / other_workspaces / items / properties / clients
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "currency": {
      +        "type": "string"
      +      },
      +      "included_rows": {
      +        "type": "number"
      +      },
      +      "monthly_total": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "name",
      +      "currency",
      +      "monthly_total",
      +      "included_rows"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / other_workspaces / items / properties / last_successful_sync_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / other_workspaces / items / properties / latest_sync_status
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / other_workspaces / items / required
      Previous value: -[
      -  "workspace",
      -  "success",
      -  "rows_truncated",
      -  "subscriptions",
      -  "suppliers",
      -  "totals",
      -  "excluded",
      -  "review_summary"
      -]New value: +[
      +  "workspace",
      +  "success",
      +  "rows_truncated",
      +  "subscriptions",
      +  "clients",
      +  "suppliers",
      +  "totals",
      +  "excluded",
      +  "last_successful_sync_at",
      +  "latest_sync_status",
      +  "review_summary"
      +]
  4. Added

TDQS

A3.9/5.0
Behavior5/5

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

With readOnlyHint and destructiveHint already declaring safety, the description still adds substantial behavioral context: exclusion_reason handling, 500-row cap and truncation, currency separation, billed-total caveats, double-count status, invoice sample limits, review_summary details, and multi-workspace aggregation behavior.

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

Conciseness2/5

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

The description is extremely long and dense, with several sprawling sentences that enumerate output fields and edge cases. It is front-loaded with the core purpose, but much of the detail duplicates or exceeds what an output schema can carry, making it poorly sized for a tool definition.

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 complex read tool with multi-workspace behavior, billing-period caveats, exclusion handling, and many output fields, the description is thorough. An agent has enough context to call it correctly, even if the detail is overdelivered.

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?

Schema coverage is high at 83%, so the schema already documents most parameters. The description nevertheless adds meaningful semantics for side, workspaces, billed_year, and workspace_id, though it does not explain conversation_id or workspace_scope beyond what the schema already says.

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 states a clear verb and resource: it reads active typed subscription rows for one side of the workspace's own company, and it explains the sold/buy distinction. It does not explicitly differentiate itself from the sibling well_measure_subscriptions, so sibling disambiguation is left to inference.

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

Usage Guidelines3/5

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

It gives useful usage cues for side, billed_year, and multi-workspace reads, including when to pass workspace_id. However, it never names an alternative tool or says when not to use this one versus well_measure_subscriptions or other subscription-related reads.

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.

Resources