Skip to main content
Glama

Add a service, class or rental

owner_add_offering

Only for business owners signed in to Awning. Add a new offering to a business the owner already has, live or not, described the same way as in owner_setup. On a live business it can be booked at once. Confirm the details with the owner first; never invent a price. Use it for a service that is not there yet; to change one that exists use owner_update_offering.

Input Schema

NameRequiredDescriptionDefault
offeringYesThe service, class or rental, in the same form as owner_setup's offerings. Prices in major units (2500); duration_min in minutes; price_from: a starting price; quote_only: price on request; rentals: units, deposit; classes: capacity, schedule [{"days":"tue","time":"18:30"}]; options: paid extras.
business_idYesThe business to add it to: business_id from owner_status

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • addedInput schema / properties / business_id / description
      Added value: +"The business to add it to: business_id from owner_status"
    • addedInput schema / properties / offering / description
      Added value: +"The service, class or rental, in the same form as owner_setup's offerings. Prices in major units (2500); duration_min in minutes; price_from: a starting price; quote_only: price on request; rentals: units, deposit; classes: capacity, schedule [{\"days\":\"tue\",\"time\":\"18:30\"}]; options: paid extras."
    • removedInput schema / properties / offering / properties / capacity / description
      Removed value: -"Classes: people per class"
    • removedInput schema / properties / offering / properties / description / maxLength
      Removed value: -600
    • removedInput schema / properties / offering / properties / name / maxLength
      Removed value: -120
    • removedInput schema / properties / offering / properties / options / items / properties / name / maxLength
      Removed value: -200
    • removedInput schema / properties / offering / properties / options / maxItems
      Removed value: -50
    • removedInput schema / properties / offering / properties / price / description
      Removed value: -"In major units of the business currency, e.g. 2500"
    • removedInput schema / properties / offering / properties / price_from / description
      Removed value: -"Price is 'from'"
    • removedInput schema / properties / offering / properties / schedule / description
      Removed value: -"Classes: when they run"
    • changedInput schema / properties / offering / properties / schedule / items / properties / days / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 100,
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "maxLength": 20,
      -      "type": "string"
      -    },
      -    "maxItems": 14,
      -    "type": "array"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedInput schema / properties / offering / properties / schedule / items / properties / days / description
      Removed value: -"e.g. \"mon-sat\", \"daily\", [\"tue\",\"thu\"]"
    • removedInput schema / properties / offering / properties / schedule / items / properties / time / maxLength
      Removed value: -20
    • removedInput schema / properties / offering / properties / schedule / maxItems
      Removed value: -50
    • removedInput schema / properties / offering / properties / units / description
      Removed value: -"Rentals: how many identical items"
  2. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so mutation status is covered. The description adds real value beyond that: it discloses the auth requirement, that the offering is attached to an existing business whether live or not, and that on a live business it becomes immediately bookable — a meaningful side effect. It stops short of describing failure modes or error behavior.

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?

Four short sentences, front-loaded with the precondition, then the action, then the constraint, then the sibling routing. Every sentence contributes; the only mild redundancy is 'live or not' versus 'On a live business it can be booked at once', which are complementary rather than duplicative.

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?

For a two-parameter mutation on a deeply nested object, the description covers auth, scope, create-vs-update routing, and the immediate-visibility side effect. Since no output schema exists, it does not say what the call returns (e.g. the created offering or its id), which is the one gap an agent would want.

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 nested offering object is thoroughly documented (units, price_unit, quote_only, schedule format), so the schema carries the parameter burden. The description's 'described the same way as in owner_setup' adds a useful cross-reference but no field-level detail beyond the schema. Baseline 3 is appropriate.

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 ('Add a new offering to a business') and scopes it to businesses the owner already has. It also explicitly excludes the sibling case ('to change one that exists use owner_update_offering'), so the agent can distinguish it from owner_update_offering without reading either schema.

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 precondition ('Only for business owners signed in to Awning'), an explicit create-vs-update routing rule, and a workflow constraint ('Confirm the details with the owner first; never invent a price'). This is the full when/when-not/alternatives set.

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