Skip to main content
Glama

get_purchase

Read-only

Retrieve one purchase by ID to view its name, project/task, paid and billed prices, dates, and billing policy. Read-only; use list_purchases to find the ID first. Requires Gryzzly's budget offer.

Instructions

Read one purchase by its identifier: name, project or task it is charged to, paid and billed prices, dates and billing policy. Use list_purchases to find the id first. Read-only; an unknown id is reported as not found. Requires Gryzzly's budget offer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe identifier.
confirmNoMust be `true` to delete. Ignored when reading.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe purchase's identifier.
nameNoWhat was bought.
paid_atNoWhen it was paid.
task_idNoThe task it is charged to.
billed_atNoWhen it was billed.
created_atNoWhen the purchase was created.
paid_priceNoWhat it cost.
project_idNoThe project it is charged to.
updated_atNoWhen the purchase was last updated.
billed_priceNoWhat it was billed for.
billing_policyNo`add` or `ignore`, how it weighs on the budget.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's "Read-only" restatement adds little. What it does add is genuinely useful and not in the structured data: unknown ids surface as not-found rather than erroring, and it requires Gryzzly's budget offer — a real prerequisite/feature-gate the agent must satisfy before calling.

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?

Three tight sentences, front-loaded with the action and the id-lookup path, then the prerequisite. Slightly padded by enumerating return fields that an output schema (which exists) already carries, but no sentence is wasted.

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?

With an output schema covering return values, annotations covering the read-only profile, and full schema coverage on both params, the description only needed to add the non-obvious bits — the list_purchases prerequisite, not-found behavior, and the budget-offer requirement. It does exactly that.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema itself explains that `confirm` is only meaningful for deletion and ignored when reading — more than the description says. The description only restates that `id` identifies the purchase, adding no format or lookup semantics 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.

Purpose5/5

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

Opens with a specific verb+resource ("Read one purchase by its identifier") and enumerates what is returned (name, charge-to project/task, paid and billed prices, dates, billing policy). It is immediately distinguishable from list_purchases and from sibling getters like get_project or get_discount.

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?

Explicitly routes the agent: "Use list_purchases to find the id first," which is the key prerequisite for obtaining the required id. It does not state exclusions (e.g., when get_project_metrics or list_purchases would be preferable), so it stops short of full when/when-not guidance.

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