Pinoyshki Bakery
Server Details
Browse Pinoyshki Bakery's menu, check an order against its rules, and get the checkout link.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: check_order validates an order, get_menu/search_menu/show_item handle menu discovery at different levels, and start_checkout produces the payment link. Even though check_order and start_checkout both evaluate the order, their phases are clearly separated and described.
All tool names follow a consistent snake_case verb_noun pattern: check_order, get_menu, search_menu, show_item, start_checkout. The verbs are semantically appropriate to each action, and there is no mixing of naming conventions.
Five tools is well-scoped for a bakery ordering assistant. Each tool covers a necessary step in the workflow without redundancy or bloat.
The set covers the full customer ordering journey: browse/search menu, inspect item details, validate an order against business rules, and initiate checkout. There are no obvious dead ends or missing operations for the stated domain.
Available Tools
5 toolscheck_orderCheck an orderARead-onlyIdempotentInspect
Check a basket against the bakery's ordering rules BEFORE any checkout. Returns the lane (same day on Toast, or catering on Shopify), the priced lines, the subtotal, any problems, and the dates and times the bakery can serve. Rules it applies: closed Mondays and blocked dates; same day = only today's counter items, up to 6 full-size, pickup, while open; catering = 3 days' notice for up to 24 full-size or 4 dozen bite-size (pickup), a week ahead (by Saturday) for anything larger, any delivery and custom cakes; delivery within 15 miles on orders over $100 or with a cake of $75 or more. Show the customer the lines and the subtotal, and never promise a date or time the result did not allow.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Delivery ZIP code (delivery is within 15 miles). | |
| date | No | The date as YYYY-MM-DD ('today' also works). Work it out from the customer's words using today's date in Seattle (Pacific time). If their words could mean two dates, like 'next Friday' said earlier in the same week, ask them which before calling. Needed for catering. | |
| time | No | 12-hour time like '1:00 pm'. Needed for catering. | |
| items | Yes | What to order. Use item names exactly as get_menu or search_menu gave them. | |
| notes | No | Optional note for the bakery. | |
| channel | No | Optional. 'today' = same day from the counter menu, paid on Toast; 'catering' = ordered ahead, paid on Shopify. Left out, the basket decides. | |
| utensils | No | Catering: include utensils. Default true. | |
| fulfillment | No | Default pickup. Delivery is catering, week-ahead only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | True when the order is allowed as asked. |
| view | Yes | |
| when | No | |
| lines | Yes | |
| title | No | |
| today | No | Today's date in Seattle, like 'Thursday, September 24'. |
| channel | No | |
| problems | Yes | |
| lane_label | No | |
| date_choices | No | Present when the date asked for could mean either of these; ask the customer which. |
| allowed_dates | No | |
| allowed_times | No | |
| earliest_date | No | |
| subtotal_cents | Yes | Before tax; the checkout page shows the final total. |
| delivery_allowed | No | |
| allowed_date_labels | No | allowed_dates with weekdays, like 'Fri Oct 2'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint:false, so the description need not restate safety. It adds valuable behavioral context: the exact rules applied (closed Mondays, same-day and catering constraints), the return of problems and available times, and the explicit directive to never promise a date/time the result did not allow. This goes beyond annotations and helps the agent set expectations and act on results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but highly structured: it leads with the core purpose and output, then lists the applied rules in a compact block, and closes with actionable guidance for customer interaction. Every sentence adds necessary information for correct tool usage—no filler. The logical flow (purpose → rules → usage instruction) makes it easy to parse even for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, intricate business rules), the description is remarkably complete. It specifies what rules are enforced, what the result contains, and how to use the result (show lines/subtotal, never promise disallowed times). With an output schema present, the description does not need to detail return formats. It covers all necessary guidance for an agent to invoke it correctly and interpret the outcome, leaving no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema coverage is 100%, the schema already explains each parameter's format and purpose. The description adds significant semantic value by linking parameters to business rules (e.g., delivery within 15 miles via zip, delivery is week-ahead only, same-day items are always full-size). This clarifies parameter interplay and helps the agent infer correct values (e.g., when to pass 'channel'). It enriches, rather than repeats, the schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact purpose: 'Check a basket against the bakery's ordering rules BEFORE any checkout.' It also enumerates what it returns (lane, priced lines, subtotal, problems, available dates/times), clearly distinguishing itself from menu-lookup tools (get_menu, search_menu, show_item) and the actual checkout (start_checkout). The 'BEFORE' keyword explicitly positions it as a pre-check step, making its role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly directs 'BEFORE any checkout', implying it should be used prior to start_checkout. It also provides detailed business rules that dictate when each lane applies (same-day vs catering), giving the agent context to decide if this tool is appropriate. It does not explicitly name alternatives like 'use get_menu for menu items', but the sibling names and the clear scope make the appropriate use case evident. The instruction to 'show the customer the lines and the subtotal' also guides post-call behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_itemShow a menu itemARead-onlyIdempotentInspect
One menu item with its photo, description, sizes and prices, and the allergens the bakery lists. Use it when the customer asks what something is or wants to see it. The photo is included in the result. When allergens are not listed or the customer has an allergy, point them to (206) 322-2820.
| Name | Required | Description | Default |
|---|---|---|---|
| lane | No | Optional: only this menu. | |
| name | Yes | The item's name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| also | No | |
| item | Yes | |
| view | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, idempotent, and non-destructive hints. The description adds meaningful behavioral context beyond annotations: the photo is included, allergen details are surfaced, and the agent is told to direct allergy concerns to a phone number. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, then usage, then an important allergen note. Minor redundancy exists—'The photo is included in the result' repeats what the first sentence already states—but overall it is efficient and earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the annotations cover safety traits, and both parameters are fully documented, the description supplies the remaining essential context: when to invoke it and how to handle allergen-related customer concerns. Nothing critical is missing for correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'name' and optional 'lane' are already documented in the schema. The description does not add additional parameter-level semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: shows one menu item with photo, description, sizes, prices, and allergens. This clearly differentiates it from likely siblings like get_menu (whole menu) or search_menu (finding items) by scoping it to a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger: 'Use it when the customer asks what something is or wants to see it.' It does not name alternatives or exclusions, but the usage context is clear enough for an agent to select it appropriately among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_checkoutGet the checkout linkAInspect
Only after check_order came back allowed and the customer confirmed the lines and subtotal: checks the same order again and returns the link the customer pays on. Same day: the bakery's order page with the tray loaded and a Pay with Toast button (good for 3 hours). Catering: the Pinoyshki cart with the date, time and pickup or delivery filled in. No payment happens here. If a rule is broken it returns the problems instead of a link.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Delivery ZIP code (delivery is within 15 miles). | |
| date | No | The date as YYYY-MM-DD ('today' also works). Work it out from the customer's words using today's date in Seattle (Pacific time). If their words could mean two dates, like 'next Friday' said earlier in the same week, ask them which before calling. Needed for catering. | |
| time | No | 12-hour time like '1:00 pm'. Needed for catering. | |
| items | Yes | What to order. Use item names exactly as get_menu or search_menu gave them. | |
| notes | No | Optional note for the bakery. | |
| channel | No | Optional. 'today' = same day from the counter menu, paid on Toast; 'catering' = ordered ahead, paid on Shopify. Left out, the basket decides. | |
| utensils | No | Catering: include utensils. Default true. | |
| fulfillment | No | Default pickup. Delivery is catering, week-ahead only. | |
| customer_name | No | Optional: the name the order is for. | |
| customer_email | No | Optional: an email for the bakery. | |
| customer_phone | No | Optional: a phone number for the bakery. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | True when the order is allowed as asked. |
| url | Yes | The link the customer opens to pay. Give it to them as-is. |
| view | Yes | |
| when | No | |
| lines | Yes | |
| title | No | |
| today | No | Today's date in Seattle, like 'Thursday, September 24'. |
| button | No | |
| channel | No | |
| pays_on | No | |
| problems | No | |
| lane_label | No | |
| date_choices | No | Present when the date asked for could mean either of these; ask the customer which. |
| allowed_dates | No | |
| allowed_times | No | |
| earliest_date | No | |
| subtotal_cents | Yes | Before tax; the checkout page shows the final total. |
| delivery_allowed | No | |
| allowed_date_labels | No | allowed_dates with weekdays, like 'Fri Oct 2'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that no payment happens, that same-day links expire after 3 hours, that the order is re-validated, and that rule violations return problems rather than a link. This gives the agent a strong model of side effects and failure outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense and front-loaded with the precondition, and the same-day/catering contrast is efficient. It is slightly long and contains some redundancy ('checks the same order again' after mentioning check_order), but it is not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 11-parameter tool with an output schema, the description covers the workflow gate, channel variants, link validity, no-payment behavior, and failure mode. There is no missing context an agent needs to decide whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 11 parameters with 100% coverage, so the description need not repeat them. It adds contextual flavor for date/time/fulfillment in catering but no parameter-level detail beyond the schema, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('checks the same order again and returns the link the customer pays on') and a clear resource, distinguishing it from check_order. The same-day/catering branches make the tool's function concrete without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening clause gives an explicit precondition: only call after check_order returned allowed and the customer confirmed lines/subtotal. It also states the failure behavior (returns problems instead of a link), which tells the agent when the result is not usable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
check_order4 fields changed- changed
Input schema / properties / date / descriptionPrevious value: -"YYYY-MM-DD, 'today', or plain words like 'next Friday'. Needed for catering."New value: +"The date as YYYY-MM-DD ('today' also works). Work it out from the customer's words using today's date in Seattle (Pacific time). If their words could mean two dates, like 'next Friday' said earlier in the same week, ask them which before calling. Needed for catering." - added
Output schema / properties / allowed_date_labelsAdded value: +{ + "description": "allowed_dates with weekdays, like 'Fri Oct 2'.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / date_choicesAdded value: +{ + "description": "Present when the date asked for could mean either of these; ask the customer which.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / todayAdded value: +{ + "description": "Today's date in Seattle, like 'Thursday, September 24'.", + "type": "string" +}
- Changed
start_checkout4 fields changed- changed
Input schema / properties / date / descriptionPrevious value: -"YYYY-MM-DD, 'today', or plain words like 'next Friday'. Needed for catering."New value: +"The date as YYYY-MM-DD ('today' also works). Work it out from the customer's words using today's date in Seattle (Pacific time). If their words could mean two dates, like 'next Friday' said earlier in the same week, ask them which before calling. Needed for catering." - added
Output schema / properties / allowed_date_labelsAdded value: +{ + "description": "allowed_dates with weekdays, like 'Fri Oct 2'.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / date_choicesAdded value: +{ + "description": "Present when the date asked for could mean either of these; ask the customer which.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / todayAdded value: +{ + "description": "Today's date in Seattle, like 'Thursday, September 24'.", + "type": "string" +}
5 tool updates
- First observed
check_order - First observed
get_menu - First observed
search_menu - First observed
show_item - First observed
start_checkout
Related MCP Connectors
Order food from Cordering white-label restaurants: browse menus, confirm, then place an order.
BakeryOS bakery-management MCP — recipes, costs, production; propose changes via OAuth.
Send real gifts to 190+ countries: search, check delivery, get a secure checkout link.
Per-restaurant MCP servers: menu, hours, delivery terms; live example below
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to query a local bakery's hours, menu, custom-order availability, and submit demo inquiries through a clean MCP interface.421 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables ordering from McDonald's through an interactive UI: selecting stores, browsing menus, managing a cart, applying coupons, placing orders, paying, and tracking orders.225 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables any AI agent to discover, query, and order from a restaurant's storefront via MCP tools. It handles menu lookup, modifier validation, and enforces a mandatory confirmation gate before payment, replacing the human-operated phone line.-
- AlicenseAqualityCmaintenanceEnables AI assistants to search products, manage a cart, and place orders with Yandex Lavka, requiring explicit human confirmation before charging.1718MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.