Skip to main content
Glama

Party budget

party_budget
Read-onlyIdempotent

Allocate a total party budget (USD) across seven categories (venue, food and drink, cake, decorations, entertainment, favors, contingency) by spending style, with per-guest spend and saving tips. Use when deciding what to spend before booking. Do NOT use to estimate attendance or food quantities (use headcount_plan).

Input Schema

NameRequiredDescriptionDefault
styleNoSpending style that sets the category percentages: 'budget', 'standard' (default) or 'premium'
budgetYesTotal party budget in USD, positive, e.g. 600
guestsYesNumber of guests, whole number 1-500, e.g. 30

Output Schema

NameRequiredDescriptionDefault
noteYesPlain-language summary of the allocation
budgetYesTotal budget, rounded to cents
guestsYesGuest count used
currencyYesCurrency of all amounts, always USD
allocationYesBudget split per category; amounts sum to the budget
per_guest_budgetYesTotal budget divided by guests, rounded to cents

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed21 schema fields changed
    • changedInput schema / properties / budget / description
      Previous value: -"Total party budget in USD"New value: +"Total party budget in USD, positive, e.g. 600"
    • changedInput schema / properties / guests / description
      Previous value: -"Number of guests (1-500)"New value: +"Number of guests, whole number 1-500, e.g. 30"
    • addedInput schema / properties / guests / maximum
      Added value: +500
    • addedInput schema / properties / guests / minimum
      Added value: +1
    • changedInput schema / properties / guests / type
      Previous value: -"number"New value: +"integer"
    • changedInput schema / properties / style / description
      Previous value: -"Spending style, default standard"New value: +"Spending style that sets the category percentages: 'budget', 'standard' (default) or 'premium'"
    • addedOutput schema / properties / allocation
      Added value: +{
      +  "description": "Budget split per category; amounts sum to the budget",
      +  "items": {
      +    "properties": {
      +      "amount": {
      +        "description": "USD allocated to this category",
      +        "type": "number"
      +      },
      +      "category": {
      +        "description": "Budget category key",
      +        "enum": [
      +          "venue",
      +          "food_drink",
      +          "cake",
      +          "decorations",
      +          "entertainment",
      +          "favors",
      +          "contingency"
      +        ],
      +        "type": "string"
      +      },
      +      "percent": {
      +        "description": "Percent of the budget for this category",
      +        "type": "number"
      +      },
      +      "tips": {
      +        "description": "Saving tip for this category",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "category",
      +      "percent",
      +      "amount",
      +      "tips"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / budget
      Added value: +{
      +  "description": "Total budget, rounded to cents",
      +  "type": "number"
      +}
    • removedOutput schema / properties / cake
      Removed value: -{
      -  "description": "Cost of the cake, in ISO currency code",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount allocated for the cake in USD",
      -      "type": "number"
      -    },
      -    "tip": {
      -      "description": "Tip for cake selection",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "tip"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / contingency
      Removed value: -{
      -  "description": "Amount set aside for unexpected expenses, in ISO currency code",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount allocated for contingency in USD",
      -      "type": "number"
      -    },
      -    "tip": {
      -      "description": "Tip for contingency planning",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "tip"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / currency
      Added value: +{
      +  "description": "Currency of all amounts, always USD",
      +  "type": "string"
      +}
    • removedOutput schema / properties / decorations
      Removed value: -{
      -  "description": "Total cost for decorations, in ISO currency code",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount allocated for decorations in USD",
      -      "type": "number"
      -    },
      -    "tip": {
      -      "description": "Tip for decorations selection",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "tip"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / entertainment
      Removed value: -{
      -  "description": "Cost for entertainment, such as DJ or band, in ISO currency code",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount allocated for entertainment in USD",
      -      "type": "number"
      -    },
      -    "tip": {
      -      "description": "Tip for entertainment selection",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "tip"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / favors
      Removed value: -{
      -  "description": "Total cost for party favors, in ISO currency code",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount allocated for favors in USD",
      -      "type": "number"
      -    },
      -    "tip": {
      -      "description": "Tip for favors selection",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "tip"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / food_and_drink
      Removed value: -{
      -  "description": "Total cost for food and drinks, in ISO currency code",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount allocated for food and drink in USD",
      -      "type": "number"
      -    },
      -    "tip": {
      -      "description": "Tip for food and drink selection",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "tip"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / guests
      Added value: +{
      +  "description": "Guest count used",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / note
      Added value: +{
      +  "description": "Plain-language summary of the allocation",
      +  "type": "string"
      +}
    • addedOutput schema / properties / per_guest_budget
      Added value: +{
      +  "description": "Total budget divided by guests, rounded to cents",
      +  "type": "number"
      +}
    • removedOutput schema / properties / per_guest_spend
      Removed value: -{
      -  "description": "Estimated spend per guest in USD",
      -  "type": "number"
      -}
    • removedOutput schema / properties / venue
      Removed value: -{
      -  "description": "Venue costs, including rental and any additional fees, in ISO currency code",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount allocated for the venue in USD",
      -      "type": "number"
      -    },
      -    "tip": {
      -      "description": "Tip for venue selection",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "tip"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "venue",
      -  "food_and_drink",
      -  "cake",
      -  "decorations",
      -  "entertainment",
      -  "favors",
      -  "contingency",
      -  "per_guest_spend"
      -]New value: +[
      +  "currency",
      +  "budget",
      +  "guests",
      +  "per_guest_budget",
      +  "allocation",
      +  "note"
      +]
  2. Changed7 schema fields changed
    • addedOutput schema / properties / cake / description
      Added value: +"Cost of the cake, in ISO currency code"
    • addedOutput schema / properties / contingency / description
      Added value: +"Amount set aside for unexpected expenses, in ISO currency code"
    • addedOutput schema / properties / decorations / description
      Added value: +"Total cost for decorations, in ISO currency code"
    • addedOutput schema / properties / entertainment / description
      Added value: +"Cost for entertainment, such as DJ or band, in ISO currency code"
    • addedOutput schema / properties / favors / description
      Added value: +"Total cost for party favors, in ISO currency code"
    • addedOutput schema / properties / food_and_drink / description
      Added value: +"Total cost for food and drinks, in ISO currency code"
    • addedOutput schema / properties / venue / description
      Added value: +"Venue costs, including rental and any additional fees, in ISO currency code"
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "cake": {
      +      "properties": {
      +        "amount": {
      +          "description": "Amount allocated for the cake in USD",
      +          "type": "number"
      +        },
      +        "tip": {
      +          "description": "Tip for cake selection",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "amount",
      +        "tip"
      +      ],
      +      "type": "object"
      +    },
      +    "contingency": {
      +      "properties": {
      +        "amount": {
      +          "description": "Amount allocated for contingency in USD",
      +          "type": "number"
      +        },
      +        "tip": {
      +          "description": "Tip for contingency planning",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "amount",
      +        "tip"
      +      ],
      +      "type": "object"
      +    },
      +    "decorations": {
      +      "properties": {
      +        "amount": {
      +          "description": "Amount allocated for decorations in USD",
      +          "type": "number"
      +        },
      +        "tip": {
      +          "description": "Tip for decorations selection",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "amount",
      +        "tip"
      +      ],
      +      "type": "object"
      +    },
      +    "entertainment": {
      +      "properties": {
      +        "amount": {
      +          "description": "Amount allocated for entertainment in USD",
      +          "type": "number"
      +        },
      +        "tip": {
      +          "description": "Tip for entertainment selection",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "amount",
      +        "tip"
      +      ],
      +      "type": "object"
      +    },
      +    "favors": {
      +      "properties": {
      +        "amount": {
      +          "description": "Amount allocated for favors in USD",
      +          "type": "number"
      +        },
      +        "tip": {
      +          "description": "Tip for favors selection",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "amount",
      +        "tip"
      +      ],
      +      "type": "object"
      +    },
      +    "food_and_drink": {
      +      "properties": {
      +        "amount": {
      +          "description": "Amount allocated for food and drink in USD",
      +          "type": "number"
      +        },
      +        "tip": {
      +          "description": "Tip for food and drink selection",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "amount",
      +        "tip"
      +      ],
      +      "type": "object"
      +    },
      +    "per_guest_spend": {
      +      "description": "Estimated spend per guest in USD",
      +      "type": "number"
      +    },
      +    "venue": {
      +      "properties": {
      +        "amount": {
      +          "description": "Amount allocated for the venue in USD",
      +          "type": "number"
      +        },
      +        "tip": {
      +          "description": "Tip for venue selection",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "amount",
      +        "tip"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "venue",
      +    "food_and_drink",
      +    "cake",
      +    "decorations",
      +    "entertainment",
      +    "favors",
      +    "contingency",
      +    "per_guest_spend"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds behavioral context beyond that: it is a pure allocation/calculation that returns per-category splits, per-guest spend, and saving tips. It doesn't address edge cases like style defaults, but for a deterministic calculator that is minor.

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

Conciseness5/5

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

Three compact sentences: purpose and output scope first, then positive routing, then the explicit exclusion. No filler and nothing buried.

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?

An output schema exists, so return values need not be explained in prose, yet the description still previews the category breakdown and tips. Combined with full schema coverage and covered safety annotations, the agent has everything needed to invoke it correctly.

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%, including the style enum and its meaning and the budget/guests constraints, so the schema does the heavy lifting. The description only names 'spending style' and 'per-guest spend' at a high level, adding little syntax or format meaning beyond the schema. 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?

States a specific verb and resource (allocate a party budget) plus the exact output scope (seven named categories), so the agent knows precisely what it produces. It is clearly distinguishable from headcount_plan, party_checklist, and party_timeline.

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?

Gives an explicit when-to-use condition ('when deciding what to spend before booking') and an explicit when-not-to-use with the alternative named ('Do NOT use to estimate attendance or food quantities (use headcount_plan)'). This is exactly the routing guidance an agent needs.

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