# se.glowjakt/glowjakt

> Nordic beauty price comparison: 500k+ EAN-matched products, 70+ stores, true landed-cost pricing.

- name: se.glowjakt/glowjakt
- version: 1.2.1
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 82/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/se.glowjakt%2Fglowjakt
- tools: https://api.protogrid.dev/v1/servers/se.glowjakt%2Fglowjakt/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "glowjakt": {
      "type": "http",
      "url": "https://mcp.glowjakt.se/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% ~updated-75d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 82/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: find_deals (idempotentHint); get_product_details (idempotentHint); search_beauty_prices (idempotentHint); …
- pass `tools.token_cost`: about 2,293 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 2,293 tokens to load them all
- tool set hash: 8edc89e5929685574815f595d02ea47b
- badge: [![protogrid quality](https://protogrid.dev/badge/se.glowjakt/glowjakt.svg)](https://protogrid.dev/servers/se.glowjakt/glowjakt)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.glowjakt.se/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `compare_product_prices`: Compare one product's price across all stores that sell it.

Use when the user asks where to buy a specific product or wants to see
every store's price for it. Get product_slug from search_beauty_prices.

Returns every store offer with item price, stock status and a buy link,
sorted by item price. Offers from stores where the product is currently
sold out are included, so store_count matches search_beauty_prices;
in_stock_store_count counts offers that can ship now.

Each in-stock offer also includes shipping_cost, free_shipping_threshold
and price_incl_shipping (item price plus that store's shipping for a
single-item order). cheapest_store_incl_shipping names the store with the
lowest delivered price; is_cheapest marks the lowest item price. Stores
whose minimum order value exceeds the item price are marked
below_min_order.

Args:
    product_slug: The product_slug value from search_beauty_prices.
    country: Market - "se" (Sweden), "no" (Norway), "dk" (Denmark), "fi" (Finland). More markets may be added over time;
        get_service_info returns the current list.
- `find_deals`: List beauty products currently discounted in a market, largest discount first.

Use when the user asks for current sales, offers or discounts, optionally
within a category.

discount_percent is calculated from each store's own previous list price
(original_price), not from historical prices. Large percentages can be
one-off clearance prices; get_price_history shows the actual price
trajectory for a product. Prices exclude shipping.

Args:
    country: Market - "se" (Sweden), "no" (Norway), "dk" (Denmark), "fi" (Finland). More markets may be added over time;
        get_service_info returns the current list.
    category: Optional filter: skincare, makeup, haircare, fragrance, nails, body, accessories.
    min_discount: Optional minimum discount percent (e.g. 30). Applied to
        the fetched top deals; the returned count reflects it, total_on_sale
        does not.
    limit: Maximum number of results (1-20).
- `get_price_history`: Return the recent price history for one product (lowest price per day over the last 30 days).

Use when the user asks whether a price has changed recently, whether a
current discount is new, or whether today's price is typical for the
product. Get product_slug from search_beauty_prices.

Args:
    product_slug: The product_slug value from search_beauty_prices.
    country: Market - "se" (Sweden), "no" (Norway), "dk" (Denmark), "fi" (Finland). More markets may be added over time;
        get_service_info returns the current list.
- `get_product_details`: Return full details for one product: INCI ingredient list, key ingredients, description, images, and brand-level certifications and claims.

Use when the user asks what a product contains, whether it includes or
avoids a specific ingredient, or whether a brand's vegan, cruelty-free or
organic status is certified. Get product_slug from search_beauty_prices.

Most cosmetic products have an INCI list; devices and accessories
(mirrors, straighteners, brushes) do not.

certifications lists third-party certifications (e.g. Ecocert, Leaping
Bunny, The Vegan Society). brand_claims_unverified lists statements made
by the brand itself; present them as the brand's own claims.

Args:
    product_slug: The product_slug value from search_beauty_prices.
    country: Market - "se" (Sweden), "no" (Norway), "dk" (Denmark), "fi" (Finland). More markets may be added over time;
        get_service_info returns the current list.
- `get_service_info`: Return service information: operator, supported markets with live catalog statistics, how prices are matched, and an overview of the available tools.

Use when you need to know which markets are supported or how the service
works before calling other tools.
- `list_key_ingredients`: List the 67 ingredient groups accepted by key_ingredient and exclude_ingredient in search_beauty_prices.

Use when you need a valid ingredient slug, or to show the user which
ingredients can be filtered on. Slugs are the same in every market;
display names are localized.

Groups in the "Controversial" category are the ones removed by
exclude_controversial=True.

Args:
    country: Market for localized display names - "se" (Sweden), "no" (Norway), "dk" (Denmark), "fi" (Finland). More markets
        may be added over time; get_service_info returns the current list.
- `search_beauty_prices`: Search the beauty catalog and return the lowest current price per product.

Use when the user wants to find a beauty product, see what it costs, or
browse products by category, price, ingredients or brand values.

Results are grouped by EAN barcode: each product appears once, at the
lowest price among stores that currently have it in stock (or the lowest
listed price if it is sold out everywhere). Prices exclude shipping;
compare_product_prices returns shipping cost and total delivered price
per store for one product.

A non-empty query is required unless at least one filter (category,
key_ingredient, exclude_ingredient, exclude_controversial, attribute or
max_price) is set; an empty query with filters browses the catalog.

Each product carries two stock figures:
  store_count           - stores that list the product, including sold out
  in_stock_store_count  - stores that have it in stock right now

Ingredient filters map from natural language like this:
- "moisturizer with retinol" -> key_ingredient="retinol"
- "serum with retinol or vitamin C" -> key_ingredient="retinol,vitamin-c" (OR)
- "shampoo without sulfates and silicones" -> exclude_ingredient="sls,silicones"
- "fragrance-free / clean formulation" -> exclude_controversial=True
  (excludes fragrance/parfum, parabens, silicones, SLS, mineral oil,
  formaldehyde, phenoxyethanol, propylene glycol, denatured alcohol)

Args:
    query: Product, brand or product type, e.g. "cerave foaming cleanser".
    country: Market - "se" (Sweden), "no" (Norway), "dk" (Denmark), "fi" (Finland). More markets may be added over time;
        get_service_info returns the current list.
    category: Optional filter: skincare, makeup, haircare, fragrance, nails, body, accessories.
    max_price: Optional maximum price in the market's local currency.
    key_ingredient: Ingredient-group slug(s) the product must contain.
        Comma-separated = OR (contains any of them), e.g. "retinol" or
        "retinol,niacinamide". list_key_ingredients returns all valid slugs.
    exclude_ingredient: Ingredient-group slug(s) the product must not
        contain, e.g. "fragrance" or "sls,silicones".
    exclude_controversial: Exclude all commonly avoided ingredients at once
        (the list above).
    attribute: Brand-level values filter. Slugs: "vegansk" (vegan),
        "djurtestfri" (cruelty-free), "ekologisk" (organic/natural),
        "skonsam" (gentle/free-from), "hallbar" (sustainable).
        Comma-separated = AND (brand must match all). A brand matches on
        either a third-party certification or its own stated claim;
        get_product_details shows which applies.
    limit: Maximum number of results (1-20).
