Outdoor Kitchen Designer
by casabellaoutdoor.com · remote · no sign-in to list tools · v2.1.0 · published by com.casabellaoutdoor
Plan a built-in grill and outdoor kitchen: real MSRP, priced layouts, 3D renders and dealer quotes.
9 tools: 3 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http outdoor-kitchen https://www.casabellaoutdoor.com/api/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "outdoor_kitchen_start_planning" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "outdoor_kitchen_start_planning" says "start": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
9 tools
Changes things 3Claude Code: ask
outdoor_kitchen_open_designer_for_renderCreate the shopper's account and return a link to the 3D outdoor kitchen designer, where they get a photoreal render of their kitchen by email.No findings
Why it is in this group
- The name "outdoor_kitchen_open_designer_for_render" says "open": a word for a change.
Description, as the server wrote it Create the shopper's account and return a link to the 3D outdoor kitchen designer, where they get a photoreal render of their kitchen by email. Call when the user wants to see their outdoor kitchen or BBQ island, wants a render, picture or 3D design. Needs first name, last name and email: pass them if you have them; otherwise the server asks the shopper directly when the client supports it. Pass "design" to open the designer with the straight layout you priced. For a Galley, Corner L, Corner 45, U-Shape or Promenade, pass "kitchenLayout" and no "design"; the shopper lays it out in the designer. Canonical examples: {"firstName":"Ana","lastName":"Diaz","email":"ana@example.com","postalCode":"07960","design":{"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}} and {"firstName":"Ana","lastName":"Diaz","email":"ana@example.com","kitchenLayout":"corner_45"}
Annotations the server declares
- title: Open the 3D designer for a photoreal render
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
outdoor_kitchen_request_formal_quoteCreate the shopper's account and return a link to the designer where they finish their layout and receive a formal, itemized quote; a local dealer follows up.No findings
Why it is in this group
- The name "outdoor_kitchen_request_formal_quote" says "request": a word for a change.
Description, as the server wrote it Create the shopper's account and return a link to the designer where they finish their layout and receive a formal, itemized quote; a local dealer follows up. Call when the user wants a quote, an exact price from a dealer, or to buy an outdoor kitchen or built-in grill. Needs first name, last name and email (pass them, or the server asks the shopper directly when the client supports it). ZIP helps match a dealer. Canonical example: {"firstName":"Ana","lastName":"Diaz","email":"ana@example.com","postalCode":"07960","purchaseTimeframe":"1-3_months","design":{"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}}
Annotations the server declares
- title: Request a formal outdoor kitchen quote from a dealer
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
outdoor_kitchen_start_planningGuided start for choosing a built-in grill and the outdoor kitchen or BBQ island around it.1 finding
Why it is in this group
- The name "outdoor_kitchen_start_planning" says "start": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "outdoor_kitchen_start_planning" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "outdoor_kitchen_start_planning" says "start": a word for a change.
Description, as the server wrote it Guided start for choosing a built-in grill and the outdoor kitchen or BBQ island around it. Call FIRST when someone researches or compares built-in grills (best built-in grill, which size, which brand, grill prices), says they want an outdoor kitchen or grill island, or asks roughly what one costs, and has not given exact cabinets. Everyone buying a built-in grill needs an island for it. It returns grill options with MSRP for their size and brand, then a priced starter layout. Pass whatever you already know; the server asks the shopper for the rest with a form when the client supports it, otherwise it returns the questions to ask. With shape, length and grill size it returns a priced starter layout (straight), or where to go for other shapes. No email needed. Canonical examples: {} ; {"grillSize":36,"grillBrand":"Lynx"} (someone researching grills) ; {"layout":"straight","lengthFeet":10,"grillSize":36,"grillBrand":"Alfresco","refrigerator":true,"sink":true,"gasType":"natural_gas","budget":20000}
Annotations the server declares
- title: Start planning a built-in grill and outdoor kitchen (guided)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 6Claude Code: allow
outdoor_kitchen_get_suggestionsSuggestions for the shopper's outdoor kitchen.No findings
Why it is in this group
- The name "outdoor_kitchen_get_suggestions" says "get": a word for reading.
Description, as the server wrote it Suggestions for the shopper's outdoor kitchen. Call ONLY in one of these situations: "lower_cost" when the shopper asks how to lower the cost or says the kitchen is over budget. Send the current grill brand, size and msrp; "fill_space" when a large kitchen still has open space to fill. Send the design width and its cabinets; "ideas" when the shopper asks for ideas or what else they could add; "shopper_as_about_other_costs" when the shopper asks are there other costs to consider; "how_much_does_it_cost" when when the shopper ask for a ballpark idea of cost; "alternatives" when when shopper asks about alternatives to aluminum cabinetry; "damage" when can I repair or replace doors, drawers or side/back panels after countertop is installed; "best_materials" when what are the best materials for an outdoor kitchen; "shopper_asks_about_hdpe_or_plastic_island_cabine" when the shopper asks about lower cost or directly about HDPE /plastic cabinetry; "stainles_steel" when the shopper asks about Stainless Steel Cabinet, or the brands Danver, Brown Jordan, John Michael; "features_to_look_for" when when the shopper ask what feature should I look for when choosing a brand of outdoor kitchen cabinets; "cabinet_types_and_uses" when when a shopper asks for what the different cabinets that are available and what they are used for; "dimensions" when do I need to know the cut out dimensions of each appliance; "return_on_investment" when when the shopper ask if outdoor kitchens are a good value, return on investment (ROI), or does it add to my homes value; "diy" when when the shopper asks about DIY to lower cost. Never call it unprompted. Send the design for "fill_space"; send the current grill (brand, size, msrp) for "lower_cost". Returns only suggestions that apply, each with "offered" true/false; tell the shopper what each would change and let them decide. Example: {"situation":"lower_cost","appliance":{"brand":"DCS","size":36,"msrp":5599}}
Annotations the server declares
- title: Suggestions for an outdoor kitchen (only when asked)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
outdoor_kitchen_list_cabinetsList outdoor kitchen cabinet types and widths with SKU and MSRP: grill cabinets, drawer and door storage ("DoubleDrawerFlex", "FullDoorFlex"), sink cabinets, refrigerator cabinets …No findings
Why it is in this group
- The name "outdoor_kitchen_list_cabinets" says "list": a word for reading.
Description, as the server wrote it List outdoor kitchen cabinet types and widths with SKU and MSRP: grill cabinets, drawer and door storage ("DoubleDrawerFlex", "FullDoorFlex"), sink cabinets, refrigerator cabinets ("CTS"), side burner, power burner, trash/recycling and corner modules. Call before building or pricing a layout so the "type" and "size" values are real. Filters optional. Example: {"type":"GrillCabinet"} -> {"cabinets":[{"sku":"GB42","type":"GrillCabinet","size":42,"msrp":...}]}
Annotations the server declares
- title: List outdoor kitchen cabinets (with MSRP)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
outdoor_kitchen_list_grill_brandsList the built-in grill brands available for an outdoor kitchen (e.g.No findings
Why it is in this group
- The name "outdoor_kitchen_list_grill_brands" says "list": a word for reading.
Description, as the server wrote it List the built-in grill brands available for an outdoor kitchen (e.g. Alfresco, AOG, DCS, Hestan, Lynx, XO). Call when the user asks which grill brands are available or names a brand you need to check. No email needed. Example call: {} -> {"grillBrands":["AOG","Alfresco","DCS",...]}
Annotations the server declares
- title: List built-in grill brands
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
outdoor_kitchen_list_layoutsExplain the outdoor kitchen shapes: Straight, Galley, Corner L, Corner 45, U-Shape and Promenade (our signature L plus island with bar seating).No findings
Why it is in this group
- The name "outdoor_kitchen_list_layouts" says "list": a word for reading.
Description, as the server wrote it Explain the outdoor kitchen shapes: Straight, Galley, Corner L, Corner 45, U-Shape and Promenade (our signature L plus island with bar seating). Call when the user asks about layouts, shapes, corners, L-shaped, U-shaped, wrap-around or island-with-seating outdoor kitchens, or which shape fits their space. "how" says what to do next: "price_here" (outdoor_kitchen_price_design), "designer" (outdoor_kitchen_open_designer_for_render with kitchenLayout), "our_design_team" (outdoor_kitchen_request_formal_quote with kitchenLayout) or "coming_soon". Example: {} -> {"layouts":[{"key":"promenade","name":"Promenade","how":"designer",...}]}
Annotations the server declares
- title: Explain outdoor kitchen layouts (straight, galley, corners)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
outdoor_kitchen_price_designReturn the MSRP for a straight outdoor kitchen (one run of cabinets): cabinets, the grill and other appliances, and countertop, with a total.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return the MSRP for a straight outdoor kitchen (one run of cabinets): cabinets, the grill and other appliances, and countertop, with a total. Call whenever the user asks what an outdoor kitchen or BBQ island would cost. No email needed and nothing is saved. Straight only: for a Galley, Corner L, Corner 45, U-Shape or Promenade the price depends on the corner cabinets and how the runs are split, so give the straight price as a guide and send the shopper to the designer. Canonical example (10 ft straight island with a 36" Alfresco grill): {"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}
Annotations the server declares
- title: Price an outdoor kitchen (MSRP)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
outdoor_kitchen_search_built_in_grillsFind built-in grills: every grill in our 3D designer, with brand, width in inches, SKU, the grill cabinet it needs (cabinetSize) and MSRP (final pricing is determined by a local de…No findings
Why it is in this group
- The name "outdoor_kitchen_search_built_in_grills" says "search": a word for reading.
Description, as the server wrote it Find built-in grills: every grill in our 3D designer, with brand, width in inches, SKU, the grill cabinet it needs (cabinetSize) and MSRP (final pricing is determined by a local dealer; models without msrp have priceOnQuote: true). Set applianceType for other built-ins in the designer, e.g. "Griddles", "Side Burners", "Refrigeration", or "all". Call whenever the user asks about a built-in grill, its price, size or brand, or before pricing a layout so you use a real SKU. For someone just starting to shop for a built-in grill, outdoor_kitchen_start_planning covers the grill and the kitchen around it. All filters optional. Example: {"brand":"Alfresco","size":36} -> {"appliances":[{"sku":"ALFRESCO-36-ALXE","name":"Alfresco 36\" ALXE Built-In Grill","brand":"Alfresco","size":36,"msrp":4899}]}. A grill goes in the smallest GrillCabinet larger than it (24->30, 30->36, 36->42, 42->48, 56->62). Sizes depend on the brand: search by brand to see the sizes it makes. The "size" field is the real size class; some brands call a 36" class grill "40-inch" in the name, which is marketing, not a bigger grill.
Annotations the server declares
- title: Search built-in grills (with MSRP)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 2.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http outdoor-kitchen https://www.casabellaoutdoor.com/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__outdoor-kitchen__outdoor_kitchen_list_grill_brands",
"mcp__outdoor-kitchen__outdoor_kitchen_search_built_in_grills",
"mcp__outdoor-kitchen__outdoor_kitchen_list_cabinets",
"mcp__outdoor-kitchen__outdoor_kitchen_list_layouts",
"mcp__outdoor-kitchen__outdoor_kitchen_price_design",
"mcp__outdoor-kitchen__outdoor_kitchen_get_suggestions"
],
"ask": [
"mcp__outdoor-kitchen__outdoor_kitchen_start_planning",
"mcp__outdoor-kitchen__outdoor_kitchen_open_designer_for_render",
"mcp__outdoor-kitchen__outdoor_kitchen_request_formal_quote"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as outdoor-kitchen. Review it before you use it.