get_product_details
Get full details for a single Rakentaja Outlet product.
Fetches both the product record and a real-time availability check
in parallel. Use this after search_catalog returns a product ID
to show the user complete information (full description, all images,
current stock).
Args:
product_id: Product ID from search_catalog results (integer).
Returns: JSON with product details: - id, name, sku, ean, brand, category - description (full HTML/text), description_short - price_gross (incl. 25.5% VAT), price_net, vat_percent, currency - available_for_order (bool), availability_status ("in_stock" | "supplier_stock" | "out_of_stock"), estimated_delivery_min_days, estimated_delivery_max_days - in_stock, stock_quantity, supplier_in_stock, supplier_stock_quantity (raw fields — prefer available_for_order + availability_status) - weight_kg, unit - product_url (direct link to product page) - image_url (main image), images (list of all image URLs) - availability: fresh stock check result (may be more current than stock_quantity if inventory changed since catalog was cached) - disclaimer: legal notice that prices are indicative
On error, raises MCP ToolError → response has isError:true with
structured JSON: {"error": {"code": "not_found" | "invalid_argument"
| "backend_unavailable", "message": "...", "field": null|str,
"retryable": true|false}}. The StructuredErrorMiddleware ensures
the format is consistent across all tools.Notes:
- Prices include Finnish 25.5% VAT. Business buyers see price_net
for VAT-registered net price.
- Pass product_url to the user for viewing or adding to cart —
do not attempt to add to cart via this tool (use create_cart_link).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID from search_catalog results |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID (use with get_product_details for full info) | |
| ean | No | ||
| sku | No | ||
| name | Yes | ||
| unit | No | kpl | |
| brand | No | ||
| images | No | All product image URLs | |
| category | No | ||
| currency | No | EUR | |
| in_stock | Yes | ||
| image_url | No | ||
| price_net | Yes | Net price for VAT-registered business buyers | |
| weight_kg | No | ||
| disclaimer | Yes | ||
| description | Yes | Full product description (may contain HTML) | |
| price_gross | Yes | Gross price incl. 25.5% Finnish VAT | |
| product_url | Yes | Direct link to product page — pass this to the user | |
| vat_percent | No | ||
| availability | No | Fresh availability check (may be more current than stock_quantity) | |
| stock_quantity | Yes | ||
| description_short | No | ||
| supplier_in_stock | Yes | ||
| availability_status | Yes | Detailed status: in_stock = own warehouse, supplier_stock = from supplier | |
| available_for_order | Yes | Whether customer can order this — TRUE if in own stock OR supplier stock available | |
| supplier_stock_quantity | Yes | ||
| estimated_delivery_max_days | No | Hitain toimitusarvio arkipäivinä (null = ei saatavilla) | |
| estimated_delivery_min_days | No | Nopein toimitusarvio arkipäivinä (null = ei saatavilla) |