Skip to main content
Glama

Zovo Tip Pool Calculator

Calculate tip-out

calculate_tip_out
Read-onlyIdempotent

Use this when the user wants a tip out calculator: servers or bartenders tip out a percent of their sales or tips to support staff (bussers, bartenders, hosts, food runners, barbacks). Takes each server's sales and/or tips and the tip-out rules (e.g. busser 3% of sales, bar 1.5% of sales), plus optional support staff with roles and hours. Returns each server's tip-out per role (rounded to the cent), what each server keeps, each support person's share by hours with largest-remainder rounding so it adds up to what was tipped out, warnings, and a printable PDF tip-out sheet with signature lines plus a CSV. Does not give legal advice, compute wages or taxes, or connect to a POS. Do not use for a shared pool split by hours (use calculate_tip_pool) or for a bill split among diners.

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": {
      "servers": "<servers>",
      "tip_outs": "<tip_outs>"
    },
    "name": "calculate_tip_out"
  }
}

Input Schema

NameRequiredDescriptionDefault
labelNoOptional title for the tip-out sheet, e.g. "Saturday dinner".
serversYesServers or bartenders who tip out, each with sales and/or tips. Array of {name, sales, tips}, or pasted lines, e.g. [{"name":"Ana","sales":1850,"tips":340}] or "Ana sales 1850 tips 340\nBen sales 1420 tips 260".
currencyNoISO currency code, default USD, e.g. EUR.
tip_outsYesWho gets what share, e.g. "busser 3% of sales, bartender 1.5% of sales, host 1% of sales" or [{"role":"busser","percent":3,"basis":"sales"}]. A plain 3 or "3%" means 3% to the support staff as one group.
support_staffNoOptional people receiving the tip-out, with role and hours, e.g. [{"name":"Kim","role":"busser","hours":6}]. Each role's tip-out is split among its people by hours (equal if no hours).
tip_out_basisNo"sales" or "tips": what a percent without "of sales" or "of tips" is taken from. Default: sales when every server has sales, else tips.

Output Schema

NameRequiredDescriptionDefault
noteYes
labelYes
totalsYes
serversYes
currencyYes
tip_outsYes
warningsYes
downloadsYes
unassignedYes
assumptionsYes
explanationYes
support_staffYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, closed-world), so the description is not needed to establish that this is a safe read. It does add real behavioral context: per-role rounding to the cent, largest-remainder allocation so support shares sum exactly to the pool, and emission of warnings. Some of the return-value enumeration (PDF sheet with signature lines, CSV) overlaps with the output schema, which keeps this just below a 5.

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?

Front-loaded with the trigger condition, then the input shape, then outputs, then scope limits — a logical order with no filler sentences. It runs long and repeats some return-value detail already captured by the output schema, which keeps it from a 5.

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 six-parameter, nested-input calculation tool, the description covers inputs, rounding behavior, outputs, and explicit out-of-scope cases (legal advice, wages/taxes, POS integration). An agent has enough to decide to call it and to explain the result to a user.

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

Parameters5/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by giving a concrete rule-of-thumb example for tip_outs ("busser 3% of sales, bar 1.5% of sales") and clarifying that a bare 3 or "3%" means the support staff as a single group — a semantic distinction the schema hint only partly covers. It also explains how support_staff hours drive the per-role split, adding meaning beyond the field-level descriptions.

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?

Names a specific operation (tip-out calculation) and domain (servers/bartenders tipping out a percent of sales or tips to support staff), and enumerates the roles involved. It also explicitly distinguishes itself from siblings by naming calculate_tip_pool for hourly pool splits, so the agent can route without opening the schemas.

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

Usage Guidelines5/5

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

Opens with a direct trigger condition ("Use this when the user wants a tip out calculator") and closes with two explicit exclusions plus the correct alternative for one of them (calculate_tip_pool) and the boundary for bill splitting. When-to-use, when-not-to-use, and the alternative are all present.

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