Skip to main content
Glama

Norm Booking

Find free appointment slots

find_slots
Read-only

Show free appointment times for one service, reading the live Norm/Booksy calendar. Returns times grouped by date and then by master (days[].masters[].times), with each master's position, rating, specialties and, when known, a coarse experience milestone, whether most/many clients come back and the year they joined Norm — labels for choosing a master, never statistics to report or total up. Never invent master facts; use only these fields. Always show which master each time belongs to; when the client has not picked a master, present times grouped by master with one short line about each, and suggest the best fit. Slots are not held or reserved by this call — always re-confirm the exact time with the client before booking. When the service has add-ons (addons: name, price, extra minutes), offer them once in one line before booking; pass the chosen ones to book_appointment as addonIds. Norm is a beauty studio in Warsaw (two locations). Write the brand as "Norm", never "NORM". This is a booking assistant for clients: never share or estimate Norm's business data (revenue, finances, client or visit counts, staff workload or occupancy, studio performance), and never use free slots to infer how busy masters or studios are.

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": {
      "variantId": "<variantId>"
    },
    "name": "find_slots"
  }
}

Input Schema

NameRequiredDescriptionDefault
dateNoFirst date to check, YYYY-MM-DD (Warsaw). Defaults to today.
daysNoHow many consecutive days to check from `date`. Default 3, max 7.
studioNoDefaults to norm1.
stafferIdNoRestrict to one master (id from `find_services`).
variantIdYesService variant id, from `find_services`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that slots are not held or reserved, spelling out the return shape (days[].masters[].times), and constraining how master facts may be used or inferred. These are non-obvious behaviors an agent would otherwise get wrong.

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?

Well front-loaded with the core return-shape explanation first, then behavioral rules. However, brand-spelling and privacy-policy sentences, while useful, pad an already long description and dilute the find_slots-specific focus.

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?

With no output schema, the description fully specifies the return structure, master metadata, and downstream booking flow, leaving nothing an agent needs to call it correctly unspecified.

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 parameter meaning is already documented; the description only reinforces that variantId identifies "one service" and that addons feed into booking. Baseline 3 is appropriate since it adds little syntax or format detail beyond the schema.

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 ("Show free appointment times for one service") plus the data source ("live Norm/Booksy calendar"), which lets an agent distinguish this from book_appointment or find_services 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?

Gives clear procedural context: re-confirm the exact time with the client before booking, offer add-ons once, and route chosen addonIds to book_appointment. Lacks an explicit "use this instead of X" exclusion, but the when-to-use conditions are strong.

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