Skip to main content
Glama

Get spending

billingo_get_spending
Read-onlyIdempotent

Retrieve a specific spending record by ID from Billingo to review expense details.

Instructions

Returns a single spending by id.

Input Schema

NameRequiredDescriptionDefault
idYesSpending id.

Output Schema

NameRequiredDescriptionDefault
idYes
commentNo
paid_atNo
partnerNo
categoryNo
currencyNo
due_dateNo
total_grossNo
invoice_dateNo
invoice_numberNo
payment_methodNo
conversion_rateNo
fulfillment_dateNo
total_vat_amountNo
total_gross_localNo
total_vat_amount_localNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.3
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "category": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "comment": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "conversion_rate": {
      +      "type": [
      +        "number",
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "currency": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "due_date": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "fulfillment_date": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "id": {
      +      "type": "number"
      +    },
      +    "invoice_date": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "invoice_number": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "paid_at": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "partner": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "id": {
      +                  "type": [
      +                    "number",
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "name": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "tax_code": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "items": {},
      +              "maxItems": 0,
      +              "type": "array"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "payment_method": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total_gross": {
      +      "type": [
      +        "number",
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total_gross_local": {
      +      "type": [
      +        "number",
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total_vat_amount": {
      +      "type": [
      +        "number",
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total_vat_amount_local": {
      +      "type": [
      +        "number",
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "id"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that — no note on what happens with an unknown id, whether the response is a live upstream fetch (openWorld), or any rate/consistency caveat.

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?

One short, front-loaded sentence with no filler or redundancy. It is arguably too terse rather than padded, but nothing in it is wasted.

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

Completeness3/5

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

An output schema exists, so return-value explanation is not required, and the single parameter is fully described in the schema. However, for an open-world fetch by id, the description never says whether a missing/invalid id errors or returns empty, leaving a small but real gap.

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?

Only one parameter exists and the schema documents it fully ("Spending id.", 100% coverage, required). The description's "by id" is consistent with the schema but adds no meaning beyond it, so the baseline 4 for a fully documented single-parameter tool applies.

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?

States a specific verb and resource ("Returns a single spending") and the qualifier "by id" scopes the operation. The word "single" implicitly contrasts with the sibling billingo_list_spendings, though the alternative is never named, so differentiation is only inferable.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus billingo_list_spendings or any other sibling, no prerequisites, and no error/not-found conditions mentioned. The only usable cue is the implicit 'you need one record and already have its id'.

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