Shelfatlas Catalog

io.github.SlambertDKPublished by GitHub account SlambertDKv1.0.0Updated Oct 24, 2026

Danish grocery catalog as MCP tools: live offers across all major chains, stores, EAN lookup, stock.

VerifiedStreamable HTTPWeb executableLocation & LifestyleBusiness & Commerce

Overview

AI-generated overview

Remote MCP server for a Danish grocery catalog: live offers across major chains, store lookup, product name and EAN search, and cheapest-price answers.

What you can do
  • List retail chains and their slugs
  • List stores, paginated or nearest-first by latitude/longitude with optional radius
  • Search catalog offers by chain, product id or EAN, live-only by default
  • Find the cheapest currently valid offers for one product, cheapest first with chain names resolved
  • Resolve a product name to its id and EAN, or look a product up by EAN barcode
When to use it
Useful when an assistant should answer questions about Danish grocery prices, promotions and store locations, such as where a product is cheapest right now or which nearby store carries an offer.
Requirements
Remote Streamable HTTP endpoint; no local runtime needed for clients with native support, while Claude Desktop goes through mcp-remote and stdio-only clients can run the Node.js 20+ or Docker version. An API key is sent in the Authorization header as a Bearer token; listing tools works without a key, calling them does not.
Before you install
Requires an API key sent in the Authorization header; keep it out of shared configs and logs. Data covers Danish retail chains and self-serve keys may see only published campaign offers, so results can be partial. Read-only lookups, but queries reveal which products and locations you search for to the service.

Installation

In SourceWeft

  1. Open Shelfatlas Catalog in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.SlambertDK%2Fshelfatlas-catalog/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "shelfatlas-catalog": {
      "type": "http",
      "url": "https://api.shelfatlas.com/api/v1/mcp"
    }
  }
}

README

ShelfAtlas MCP server

[shelfatlas-mcp MCP server – quality and maintenance score on Glama]

Danish grocery catalog and shelf data as MCP tools. Ask "where is Pepsi Max cheapest right now?" and get live, structured answers: current offers across every major Danish chain, nearest-store geo search, product name and EAN lookup, and a purpose-built find_cheapest_offers tool. Community shelf-stock signals are included where approved, with confirmation counts.

Tools

ToolWhat it answers
search_productsResolve a product name to id + EAN before calling other tools
get_product_by_eanLook up a product by EAN-13 barcode
find_cheapest_offers"Where is this product cheapest right now?" — live offers, cheapest first, chain resolved
search_catalog_offersCatalog offers with price and validity window (live-only by default; chain/EAN/product filters)
get_storesPaginated store list, or nearest-first geo search
list_chainsAll retail chains (id, slug, name)

Claude Desktop

Claude Desktop reaches remote servers through mcp-remote:

json
{  "mcpServers": {    "shelfatlas": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://api.shelfatlas.com/api/v1/mcp"],      "env": {        "MCP_REMOTE_HEADER_AUTHORIZATION": "Bearer sa_live_<your-key>"      }    }  }}

Clients with native Streamable HTTP support connect directly to the endpoint with the Authorization header.

Run locally (stdio)

For clients that only speak stdio, this repository is also a small local server that serves the hosted tools over stdio (Node.js 20+):

bash
git clone https://github.com/SlambertDK/shelfatlas-mcp && cd shelfatlas-mcpnpm ciSHELFATLAS_API_KEY=sa_live_<your-key> node index.js

Or with Docker: docker build -t shelfatlas-mcp . and docker run -i --rm -e SHELFATLAS_API_KEY=sa_live_<your-key> shelfatlas-mcp.

Listing the tools works without a key; calling them needs SHELFATLAS_API_KEY. server.json is the manifest for the official MCP registry.

Source: README.md at commit 842fa12

Tools

6

list_chains

List all retail chains available in the ShelfAtlas catalog.

Takes no parameters.

get_stores

List stores in the ShelfAtlas catalog. Filter by chain slug, or pass lat/lng for a nearest-first geo search (optionally capped by radius_km; geo results are not paginated).

Parameterslatlnglimitcursorradius_kmchain_slug

search_catalog_offers

Search catalog offers (promotions and listed products) from Danish retail chains. Returns ONLY currently-valid offers unless include_expired is set. Filter by chain slug, product id, or EAN. Offers carry chainId — resolve names via list_chains. Self-serve keys see published campaign offers (tilbudsaviser, month-campaigns) only — not everyday shelf prices, which are Salling-only and restricted to partner keys.

Parameterseanlimitcursorchain_slugproduct_idinclude_expired

find_cheapest_offers

Answer 'where is this product cheapest right now?' in one call: the currently-valid offers for one product (by EAN or product id), cheapest first, with chain slug and name resolved. Combine with get_stores(lat/lng, chain_slug) to find the nearest store carrying the winning chain's offer. Self-serve keys see published campaign offers only — not everyday shelf prices, which are Salling-only and restricted to partner keys.

Parameterseanlimitproduct_id

get_product_by_ean

Look up a product in the ShelfAtlas catalog by its EAN barcode.

Parameterseanrequired

search_products

Resolve a product NAME to its ShelfAtlas id and EAN — use this BEFORE calling find_cheapest_offers or search_catalog_offers when you only have a product name (e.g. from a user question) and not an id or barcode. Matches on the canonical product name, case-insensitive, substring match. Returns id, name, ean (null for self-serve keys — every EAN is Salling-sourced and restricted to partner keys), and size (volumeMl/unitCount/quantityUnit) where known.

Parametersqrequiredlimit

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts