Skip to main content
Glama

record_revenue

Record model revenue events—sales, royalties, tips, or refunds—by marketplace to track earnings and maintain accurate transaction history.

Instructions

Record a revenue event (sale, royalty, tip, or refund).

        Args:
            model_id: File hash or listing ID of the model.
            marketplace: Marketplace name (e.g. ``"thingiverse"``).
            amount_usd: Amount in USD.
            transaction_type: Type — ``"sale"``, ``"royalty"``,
                ``"tip"``, or ``"refund"``.
            currency: Currency code (default ``"USD"``).
            description: Optional description of the transaction.
        

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "model_id": "<model_id>",
      "marketplace": "<marketplace>",
      "amount_usd": "<amount_usd>"
    },
    "name": "record_revenue"
  }
}

Input Schema

NameRequiredDescriptionDefault
currencyNoCurrency code (default ``"USD"``). Default: "USD".
model_idYesFile hash or listing ID of the model.
amount_usdYesAmount in USD.
descriptionNoOptional description of the transaction. Default: "".
marketplaceYesMarketplace name (e.g. ``"thingiverse"``).
transaction_typeNoType — ``"sale"``, ``"royalty"``, ``"tip"``, or ``"refund"``. Default: "sale".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.5.1
    • addedInput schema / properties / amount_usd / description
      Added value: +"Amount in USD."
    • changedInput schema / properties / currency / description
      Previous value: -"Default: \"USD\"."New value: +"Currency code (default ``\"USD\"``). Default: \"USD\"."
    • changedInput schema / properties / description / description
      Previous value: -"Default: \"\"."New value: +"Optional description of the transaction. Default: \"\"."
    • addedInput schema / properties / marketplace / description
      Added value: +"Marketplace name (e.g. ``\"thingiverse\"``)."
    • addedInput schema / properties / model_id / description
      Added value: +"File hash or listing ID of the model."
    • changedInput schema / properties / transaction_type / description
      Previous value: -"Default: \"sale\"."New value: +"Type — ``\"sale\"``, ``\"royalty\"``, ``\"tip\"``, or ``\"refund\"``. Default: \"sale\"."
  2. Changed6 schema fields changedv1.5.0
    • removedInput schema / properties / currency / default
      Removed value: -"USD"
    • addedInput schema / properties / currency / description
      Added value: +"Default: \"USD\"."
    • removedInput schema / properties / description / default
      Removed value: -""
    • addedInput schema / properties / description / description
      Added value: +"Default: \"\"."
    • removedInput schema / properties / transaction_type / default
      Removed value: -"sale"
    • addedInput schema / properties / transaction_type / description
      Added value: +"Default: \"sale\"."
  3. First observedv0.1.0

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered by structured data. Beyond that, the description adds nothing: it does not say whether repeated calls with identical arguments create duplicate events, whether the event feeds dashboards or ledger totals, what authentication or marketplace registration is required, or what is returned. For a write tool the description should carry more than a restatement of the parameter list.

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

Conciseness3/5

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

The lead sentence is well-formed and front-loaded, but the following Args block is a docstring transcription of the input schema and therefore largely wasted space. It is not verbose, but a meaningful share of the text earns nothing beyond what structured fields already provide.

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?

With no output schema, the description does not need to explain return values, and the required parameters are all identifiable. Still, for a six-parameter financial write tool it omits anything about idempotency, effect on aggregate revenue reporting, or validation behavior on unknown marketplaces, leaving real gaps an agent would want filled.

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%, so the schema already documents every field including defaults for currency and transaction_type. The Args block mirrors the schema text almost verbatim, adding no format hints (e.g. accepted currency codes, whether amount_usd is gross or net of fees, whether refunds should be negative). Baseline 3 applies when the schema does the heavy lifting and the description contributes no extra meaning.

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 specific verb and resource ("Record a revenue event") and enumerates the event kinds it covers (sale, royalty, tip, refund), so the action is unambiguous. It does not, however, distinguish itself from adjacent siblings such as model_revenue, revenue_dashboard, or tax_estimate, which an agent could plausibly confuse with this write operation.

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 when-to-use guidance: nothing says when a revenue event should be recorded versus read back through model_revenue, nor whether this is a one-off bookkeeping call. No prerequisites, preconditions, or exclusions are stated, leaving the agent to infer usage entirely from the name.

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

Deploy Server

Other Tools