Kronan MCP logo

Kronan MCP

MCP server for the Krónan grocery store API (Iceland)

Install Kronan MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "kronan-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "kronan-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 33 tools correctly (8d ago).

Overview

Tools33

What Kronan MCP lets your agent do. Expand a tool for its parameters.

Verified live~2.8k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

7/7 checks healthy over the last 46d

What it can do

From the 33 tools this server returned when we ran it.

Can delete or modify data · 8Handles credentials · 1Read-only tools · 25
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age188 days
Maintainers1

Observed 2026-10-15 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 10d ago via OSV.dev · kronan-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars16Stargazers on the source repository.
npm downloads214Package downloads in the last 30 days.
Last commit19d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed33Callable tools this server registers over MCP.
Directory activity3 viewsConfig copies, upvotes, and views on AllMCPs.

From the project README

kronan-mcp

MCP server for the Krónan grocery store API. Claude can browse products, manage shopping notes, handle checkout, and track orders from Krónan's Snjallverslun (smart store) in Iceland.

Tools

25 tools over the Model Context Protocol:

CategoryTools
Productssearch_products, get_product, get_category_products, list_categories
Checkoutget_checkout, add_checkout_lines
Orderslist_orders, get_order, delete_order_lines, set_order_substitution, lower_order_quantity
Shopping notesget_shopping_note, add_shopping_note_line, change_shopping_note_line, reorder_shopping_note_lines, delete_shopping_note_line, set_line_completion, clear_shopping_note, check_store_order_eligibility, apply_store_product_order, list_archived_lines, delete_archived_line
Product listslist_product_lists, create_product_list, get_product_list, update_product_list, delete_product_list, clear_product_list, sort_product_list, update_product_list_item
Purchase statslist_purchase_stats, set_purchase_stat_ignored
Accountget_me

Install

Terminal
npm install -g kronan-mcp

Or run directly with npx (no install needed):

Terminal
npx kronan-mcp

Getting a token

Tokens are created in the Krónan Snjallverslun user settings. You need an account with Audkenni (Iceland's electronic ID) login. Go to your user or customer group settings page and create an access token. Tokens are prefixed with act_.

Usage with Claude Code

Add to your project's .claude/settings.local.json or global ~/.claude/settings.json:

config.json
{
  "mcpServers": {
    "kronan": {
      "command": "npx",
      "args": ["kronan-mcp"],
      "env": {
        "KRONAN_ACCESS_TOKEN": "act_your_token_here"
      }
    }
  }
}

Then ask Claude things like:

  • "Search for milk on Krónan"
  • "What's in my shopping note?"
  • "Add 2x of SKU 02500188 to my checkout"
  • "Show my recent orders"

Architecture

Code
src/
├── client.ts   HTTP client wrapping all Krónan API endpoints
├── index.ts    MCP server registering tools via @modelcontextprotocol/sdk
└── types.ts    TypeScript interfaces matching the OpenAPI schema

Auth is Authorization: AccessToken <token> on every request. Rate limit is 200 requests per 200 seconds per user. The client detects 429 responses and tells the caller to wait.

All prices are integers in ISK (no decimals). 230 means 230 kr.

Errors go through a typed KronanApiError with status codes. The token is scrubbed from error messages so it doesn't leak to the LLM. Auth failures and rate limits get their own user-facing messages.

set_order_substitution and set_line_completion use read-then-toggle patterns. They're not idempotent. Don't retry on timeout without checking current state first.

API reference

Full OpenAPI schema at openapi-schema.yaml.

Development

Terminal
npm install && npm run build   # Build from source
npm run dev                    # Watch mode (recompiles on change)
npm test                       # Run tests
npm run test:watch             # Watch mode tests

Tests

31 tests on the HTTP client: constructor validation, error paths (429, timeouts, JSON parse failures), token scrubbing, toggle method validation, eligibility endpoint edge cases.

Terminal
npm test

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Kronan MCP

kronan-mcp is an MCP server that connects Claude to the Krónan grocery store API in Iceland. It provides tools for browsing products, managing shopping notes, handling checkout, tracking orders, maintaining product lists, and viewing purchase statistics through the Model Context Protocol. It requires a Krónan access token for authenticated operations.

Install kronan-mcp globally with `npm install -g kronan-mcp`, or run it without installation using `npx kronan-mcp`. Configure it as an MCP server in Claude Code with the `kronan-mcp` command and provide the `KRONAN_ACCESS_TOKEN` environment variable.

Create an access token in the Krónan Snjallverslun user settings or customer group settings. You need a Krónan account with Audkenni electronic ID login, and the resulting token is prefixed with `act_`.

kronan-mcp can search and retrieve products, list categories, manage checkout lines, view and manage orders, handle shopping notes, maintain product lists, check store-order eligibility, view purchase statistics, and retrieve account information through its MCP tools.

The Krónan API allows 200 requests per 200 seconds per user, and kronan-mcp reports when a request is rate-limited. `set_order_substitution` and `set_line_completion` use read-then-toggle behavior, so they are not idempotent; check the current state before retrying after a timeout.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewKronan MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/kronan-mcp?style=directory)](https://allmcps.com/mcp/kronan-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/kronan-mcp"><img src="https://allmcps.com/api/badge/kronan-mcp?style=directory" alt="Kronan MCP on AllMCPs" /></a>