Skip to main content
Glama

revenue_summary

Revenue and subscriber summary in USD cents (normalized from each transaction currency). Returns latest_payments (the MOST RECENT payment summed per customer: a run-rate, NOT lifetime turnover, because amount_paid is overwritten on renewal), refunds, approximate MRR, active/trialing/paid counts, and lifetime_net (the only cumulative total held, accrued per OWNER across all their apps and net of refunds; null when no accrual record exists). lifetime_net counts only charges whose Stripe webhook reached this app, so a missing renewal event under-counts it silently. A 0 or a low figure means "not recorded here", never "no sales". For turnover, accounts or tax, read Stripe directly: it is authoritative, and this database cannot reconstruct lifetime gross. Optionally scope by app_id; omit for platform-wide totals.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
app_idNo
include_samplesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so exceptionally: it explains that latest_payments is a run-rate not lifetime turnover because amount_paid is overwritten on renewal, that lifetime_net is accrued per OWNER across apps and net of refunds, that missing webhooks under-count silently, and that 0 means 'not recorded here' rather than 'no sales'. These are exactly the caveats an agent needs to avoid misreporting.

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?

The description is long but dense and front-loaded with the return payload before the caveats. Nearly every clause earns its place by preventing misinterpretation; the only mild cost is the run-on phrasing of the lifetime_net sentence.

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

Completeness4/5

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

There is no output schema, so the description must describe returns, and it covers the payload and its pitfalls thoroughly, including null/under-count semantics. The one gap is the undocumented include_samples parameter, which a caller cannot infer from the schema.

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 0% with two parameters, so the description must compensate. It does explain app_id well ('Optionally scope by app_id; omit for platform-wide totals'), but include_samples is never mentioned anywhere, leaving one of two parameters entirely undocumented.

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?

The opening sentence names the specific resource (revenue and subscriber summary) and its unit (USD cents, normalized), then enumerates the exact payload returned (latest_payments, refunds, MRR, active/trialing/paid counts, lifetime_net). This lets an agent distinguish it from siblings like revenue_by_app or list_recent_payments 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?

It explicitly routes the agent away for adjacent needs — 'For turnover, accounts or tax, read Stripe directly: it is authoritative' — and explains the app_id scoping choice ('omit for platform-wide totals'). It stops short of naming the obvious sibling revenue_by_app as the per-app alternative, so the exclusion set is clear but the sibling routing is only implied.

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