get_restock_date
ChatGPTReports when a product is next expected to be replenished at the nearest Byggmax store to the given coordinates, and any nearby stores that already have enough in stock. Call this any time restock timing is relevant — not only when get_stock_availability reported a shortfall. A customer asking "when will you get more?" about an item that is already technically in stock is a valid reason to call this directly, independent of any prior stock check. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
get_stock_availability
ChatGPTRetrieves the current stock availability of a product in a specific Byggmax store using the provided product name or article number. When the store's stock is below quantity — whether that's zero or just not enough for what the customer wants — the response also includes (best-effort): the next expected restock date/quantity for this store, and up to 3 nearby stores (within 50 km) that already have enough. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
get_store_opening_hours_by_location
ChatGPTRetrieve opening hours for the Byggmax store nearest to a specific location. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
get_timber_lengths
ChatGPTRetrieves available timber lengths for cut-to-length timber (trall, plankor etc.) at a Byggmax store. Stock levels are updated in real-time so the information is always up to date. Use list_stores_in_city to obtain the store_id (Store ID field). WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
list_stores_in_city
ChatGPTFinds Byggmax stores in or near a city, and is the ONLY source of the store identifiers every other store-aware tool needs. Call this first. Nothing else in this server can look a store up by name, so a store ID or a store's coordinates can only come from here. Each store is returned with its name, street address, city, postcode, latitude, longitude and store ID. Two different tools want two different parts of that: Store ID — `retrieve_products` and `get_timber_lengths` take a store ID directly. Latitude and longitude — get_stock_availability, get_restock_date and get_store_opening_hours_by_location take coordinates instead. Use the ones returned here rather than your own estimate for the city, which points at the city centre and not at the store. IMPORTANT: The store ID is for tool calls only. Do not show it to the customer, and do not ask the customer for one — they will not know it. Refer to stores by name. Args: latitude (float): Latitude to search near. Derive this from the city or area the customer named; never ask the customer for coordinates. longitude (float): Longitude to search near. city (str): The city or area to search for stores in. Returns: str: One line per store, each with name, address, city, postcode, latitude, longitude and store ID. If there is no store in the city itself, nearby stores are returned instead, with a sentence saying so. On failure, a human-readable error message is returned rather than raising. Stores are returned for every country. retrieve_products and get_stock_availability also take a market; pass the country the chosen store is in, or the product lookup will run against the wrong catalogue. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
report_agent_frustration
ChatGPTRecords, for Byggmax's product team, something the tools on this MCP server could not do. This is an internal feedback channel, not a customer-facing action. Nothing you send here reaches the customer, changes their order, or creates a support ticket. It only tells Byggmax which gaps to close. WHEN TO CALL IT No tool on the MCP server can answer what the customer is asking. A tool answered, but the information was too thin, stale or contradictory to act on. You have tried the same thing more than once and keep getting nowhere. The customer is clearly frustrated and the tools are the reason. Call it at most once for a given problem, then get on with helping as best you can. It is not a substitute for answering: report the gap AND give the customer the most useful reply you can manage. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in either argument. Do not paste the customer's messages verbatim. Describe the problem in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL FEEDBACK, NOT AN ESCALATION There is no need to mention this tool to the customer. It is product feedback for Byggmax, not something done on the customer's behalf. Do not describe it as an escalation or a report the customer can follow up on: nothing is escalated and nobody replies. Never say "I have reported this" or "I have escalated this". * Do not pause your answer or tell the customer to wait while you call it.
retrieve_faq
ChatGPTRetrieve information from the Byggmax FAQ for the given market. Content is sourced from agent-management's Text Content (`cms/faq-<market>) and is editable by non-engineers in the browser. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: * Why the customer is asking, and what they are ultimately trying to achieve. * The situation around the request: the project, the stage they are at, what they have already tried or already been told. * Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA * Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. * Do not paste the customer's messages verbatim. Describe the situation in your own words instead. * Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". * This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION * There is no need to mention user_context` to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
retrieve_products
ChatGPTRetrieves up to 5 of the most relevant products from Byggmax's product catalog based on the provided article number or product name and optional attribute filters. The results may not include all available products in stock. If the results seem incomplete, consider refining the query or asking the customer for more specific details. Use this tool when the customer is asking for product recommendations or is interested in a specific type of product. This is the primary tool for fetching detailed, up-to-date product information for customers. Args: article (str): A short and specific name of the product or article number to search for. - Avoid vague or project-level terms like "altan" or "badrum". - Use specific product types like "trallvirke", "regel", or "impregnerad skruv". - If the customer mentions a product name explicitly, use it exactly as they wrote it. attributeFilters (list[str]): A list of keyword filters to apply on the product description field. Leave empty to not filter. - These should be short keywords such as "impregnerad", "rundad", or "trä". - Use this to narrow the search results when the customer specifies desired characteristics. store_id (int | None): The Byggmax store number the customer is asking about (e.g. 1201). - Optional. Use 'list_stores_in_city' to look it up if known. - When provided, Price and Price_unit come from the authoritative, store-correct PAPI price/unit lookup instead of the (sometimes stale or non-store-specific) price surfaced by product search. Comparison_price/Comparison_unit (a normalized per-m²/per-m price) are also included - only use these if the customer explicitly asks for a price-per-area/length comparison. Returns: str: A JSON-formatted string containing the most relevant products, structured and formatted for inclusion in a response to the customer. If no relevant products are found or an error occurs, a descriptive message string is returned instead. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
retrieve_project_guide
ChatGPTRetrieves a project guide from the Byggmax project guide vector database using the provided project guide name or keywords. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.
retrieve_terms
ChatGPTUse this tool to retrieve information from Terms and Conditions (Köpvillkor) database for Byggmax using the provided keywords and market. Content is sourced from agent-management's Text Content (cms/terms-<market>) and is editable by non-engineers in the browser. WHY THE CUSTOMER IS ASKING — the user_context argument (optional) This tool also takes an optional user_context. Byggmax's product team reads it to understand what customers are actually trying to do, so that the tools can be improved. It does not change what this tool returns. Fill it in when you know why the customer is asking; leave it out when you do not. What to write: Why the customer is asking, and what they are ultimately trying to achieve. The situation around the request: the project, the stage they are at, what they have already tried or already been told. Plain language, one or two sentences. "customer is building a terrace and wants to know if the decking is in stock before driving to the store" is useful; "stock check" is not. NEVER INCLUDE PERSONAL DATA Do not put names, phone numbers, email addresses, postal addresses, order numbers, personal identity numbers or payment details in user_context. Do not paste the customer's messages verbatim. Describe the situation in your own words instead. Write about the situation, not the person: "customer asked for a delivery date the tools cannot give", not "Anna on 070-1234567 asked about order B12345". This is a product-improvement log read by Byggmax staff, not a record of the conversation. Nothing here needs to identify anyone. INTERNAL, NOT A CUSTOMER ACTION There is no need to mention user_context to the customer; it is product feedback, not something done on their behalf. * Just fill it in from what you already know and get on with answering.