Skip to content

fi.rakentajaoutlet/rakentaja-outlet

by rakentajaoutlet.fi · remote · no sign-in to list tools · v1.1.0 · published by fi.rakentajaoutlet

Finnish e-commerce for electrical & construction supplies. Read-only MCP with 4 tools.

Changes · 1

5 tools: 1 change things and 4 only read.

Scanned Oct 21, 2026

4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http rakentaja-outlet https://rakentajaoutlet.fi/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn3 info
  • The server marks "create_cart_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "create_cart_link" says "create": a word for a change.

    What this check looks for
  • The description is 2,604 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...o cart. - Use `get_product_details(id)` for full description and stock check."

    What this check looks for
  • The description is 2,604 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...o cart. - Use `get_product_details(id)` for full description and stock check."

    What this check looks for
  • The description is 2,147 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...l": "https://rakentajaoutlet.fi/mcp-backend/lisaa-kori?items=9437:2,4927:1", ...}"

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Changes things 1Claude Code: ask
Only reads 4Claude Code: allow
  • get_product_detailsGet full details for a single Rakentaja Outlet product.No findings

    Why it is in this group

    • The name "get_product_details" says "get": a word for reading.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_catalogSearch Rakentaja Outlet product catalog.1 finding

    Why it is in this group

    • The name "search_catalog" says "search": a word for reading.

    Findings

    • Info

      The description is 2,604 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...o cart. - Use `get_product_details(id)` for full description and stock check."

      What this check looks for
    Description, as the server wrote it
    Search Rakentaja Outlet product catalog. Rakentaja Outlet (rakentajaoutlet.fi) is a Finnish online store specializing in electrical and construction supplies at outlet prices (~4000 products). All prices in EUR including 25.5% Finnish VAT. Args: query: Free-text search — matches product name, SKU, EAN code, or category name. Leave empty to browse without a search term. category_id: Filter to products in a specific category (integer ID). The full list of categories is available at https://rakentajaoutlet.fi/api/categories — this is a public REST endpoint, not an MCP tool. Combines with query if both given. in_stock_only: If True (default), only show products currently in stock (either in own warehouse or at supplier). Set to False to include out-of-stock products in results. sort: Sort order — "name" (default), "price_asc", "price_desc", or "newest". Ignored when query is given; search results are ordered by relevance instead. limit: Maximum products to return (1-50, default 10). Use a small limit for interactive queries; larger for bulk listing. page: Page number for paginated results (default 1). Combine with `limit` to page through results larger than the limit. Returns: JSON with keys: - products: list of product summaries with: - id, name, category, brand, sku, ean, unit - price_gross (incl. 25.5% VAT), price_net, currency - description (max 200 chars, description_truncated=true for longer) - available_for_order: boolean — can the customer place an order? (TRUE if in own stock OR supplier stock available) - availability_status: "in_stock" | "supplier_stock" | "out_of_stock" - estimated_delivery_min_days / _max_days: delivery estimate (or null) - in_stock, stock_quantity, supplier_in_stock, supplier_stock_quantity (raw fields — prefer available_for_order + availability_status) - product_url, image_url - total: total matching products across all pages - page: current page number - per_page: products per page (== limit) - total_pages: total pages available - disclaimer: legal notice that prices are indicative and confirmed at checkout Notes: - Prices include Finnish 25.5% VAT (price_gross) and net price (price_net) is shown for VAT-registered business buyers. - product_url is a direct link to the product page — pass this to the user for viewing or adding to cart. - Use `get_product_details(id)` for full description and stock check.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_shop_catalogSearch Rakentaja Outlet product catalog.1 finding

    Why it is in this group

    • The name "search_shop_catalog" says "search": a word for reading.

    Findings

    • Info

      The description is 2,604 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...o cart. - Use `get_product_details(id)` for full description and stock check."

      What this check looks for
    Description, as the server wrote it
    Search Rakentaja Outlet product catalog. Rakentaja Outlet (rakentajaoutlet.fi) is a Finnish online store specializing in electrical and construction supplies at outlet prices (~4000 products). All prices in EUR including 25.5% Finnish VAT. Args: query: Free-text search — matches product name, SKU, EAN code, or category name. Leave empty to browse without a search term. category_id: Filter to products in a specific category (integer ID). The full list of categories is available at https://rakentajaoutlet.fi/api/categories — this is a public REST endpoint, not an MCP tool. Combines with query if both given. in_stock_only: If True (default), only show products currently in stock (either in own warehouse or at supplier). Set to False to include out-of-stock products in results. sort: Sort order — "name" (default), "price_asc", "price_desc", or "newest". Ignored when query is given; search results are ordered by relevance instead. limit: Maximum products to return (1-50, default 10). Use a small limit for interactive queries; larger for bulk listing. page: Page number for paginated results (default 1). Combine with `limit` to page through results larger than the limit. Returns: JSON with keys: - products: list of product summaries with: - id, name, category, brand, sku, ean, unit - price_gross (incl. 25.5% VAT), price_net, currency - description (max 200 chars, description_truncated=true for longer) - available_for_order: boolean — can the customer place an order? (TRUE if in own stock OR supplier stock available) - availability_status: "in_stock" | "supplier_stock" | "out_of_stock" - estimated_delivery_min_days / _max_days: delivery estimate (or null) - in_stock, stock_quantity, supplier_in_stock, supplier_stock_quantity (raw fields — prefer available_for_order + availability_status) - product_url, image_url - total: total matching products across all pages - page: current page number - per_page: products per page (== limit) - total_pages: total pages available - disclaimer: legal notice that prices are indicative and confirmed at checkout Notes: - Prices include Finnish 25.5% VAT (price_gross) and net price (price_net) is shown for VAT-registered business buyers. - product_url is a direct link to the product page — pass this to the user for viewing or adding to cart. - Use `get_product_details(id)` for full description and stock check.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_shop_policies_and_faqsSearch Rakentaja Outlet shop policies, FAQ, and store info.No findings

    Why it is in this group

    • The name "search_shop_policies_and_faqs" says "search": a word for reading.
    Description, as the server wrote it
    Search Rakentaja Outlet shop policies, FAQ, and store info. Searches across 8 pages: About Us (tietoa-meista), FAQ (usein-kysyttya), Delivery terms (toimitusehdot), Privacy Policy (tietosuoja), Terms of Use (kayttoehdot), Return Form (peruutuslomake), Payment Methods (maksutavat), AI Agent Guide (ai). Use this tool when the user asks about: - Delivery times and costs ("toimitusaika", "toimituskulu") - Returns and refunds ("palautus", "peruutus", "hyvitys") - Payment methods ("maksutavat", "lasku") - Privacy or GDPR ("tietosuoja", "GDPR") - Terms of use ("käyttöehdot") - Company information ("Sanere Oy", "yhteystiedot", "Y-tunnus") - Any general question about buying from the store Args: query: Free-text search term (Finnish). Case-insensitive. Leave empty to get an overview of all policy pages. limit: Maximum sections to return (1-10, default 5). Each section is a paragraph or Q&A pair; longer content is truncated. Returns: JSON with: - sections: list of matching sections, each with: - page_slug: e.g. "usein-kysyttya" - page_title: e.g. "Usein kysyttyä" - page_url: full URL to the page - heading: section heading if any - text: matching text content (may be truncated) - is_faq: True if this is a Q&A from the FAQ page - total_matches: total sections matched - query: echoed query - available_pages: list of all policy page slugs - disclaimer: legal reminder to check the full page Notes: - Policies are the authoritative source; if unclear, direct the user to the page_url for the full text. - Some FAQ entries are marked with FAQPage schema.org markup — these show up as Google rich results.

    Annotations the server declares

    • 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 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http rakentaja-outlet https://rakentajaoutlet.fi/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__rakentaja-outlet__search_catalog",
      "mcp__rakentaja-outlet__search_shop_catalog",
      "mcp__rakentaja-outlet__get_product_details",
      "mcp__rakentaja-outlet__search_shop_policies_and_faqs"
    ],
    "ask": [
      "mcp__rakentaja-outlet__create_cart_link"
    ],
    "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 rakentaja-outlet. Review it before you use it.