MCP.Market

Kronan MCP server

by sandsower·io.github.sandsower/kronan-mcp·v1.0.1·15 stars

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

B72/100grade B
What users say
No reviews yet
Be the first
Safety scan
B72/100

full report

Adoption
New

15 stars

Reviews

Write one

Nobody has reviewed Kronan yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Kronan tools (33, 17 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_checkout_lines

    Add product lines to the active checkout. Set replace=true to replace all existing lines.

  • add_shopping_note_line

    Add a line to the shopping note. Provide exactly one of text (freeform) or sku (linked product), not both.

  • apply_store_product_orderwrite action

    Reorder shopping note lines to match the store's aisle layout for efficient in-store shopping

  • change_shopping_note_linewrite action

    Update the text or quantity of an existing shopping note line

  • check_store_order_eligibilitywrite action

    Check if the shopping note contains products that can be ordered from a store

  • clear_product_listwrite action

    Remove all items from a product list without deleting the list itself

  • clear_shopping_notewrite action

    Delete all lines from the shopping note (the note itself is preserved)

  • create_product_listwrite action

    Create a new product list

  • delete_archived_linewrite action

    Remove a specific archived shopping note line

  • delete_order_lineswrite action

    Remove specific lines from an order by their IDs. Service lines and the last remaining line cannot be deleted.

  • delete_product_listwrite action

    Permanently delete a product list and all its items

  • delete_shopping_note_linewrite action

    Remove a line from the shopping note

  • get_category_products

    Get paginated product listing for a category (48 per page)

  • get_checkout

    Get the active smart checkout (auto-creates if none exists)

  • get_me

    Get the current authenticated identity (user or customer group)

  • get_orderwrite action

    Get full order details including lines with product thumbnails

  • get_product

    Get full product details including price, discounts, tags, availability

  • get_product_list

    Get a product list with all items including product details and pricing

  • get_shopping_note

    Get the shopping note (auto-creates if none exists)

  • list_archived_lines

    List previously completed and archived shopping note lines

  • list_categories

    Get the full 3-level category tree

  • list_orders

    List orders, most recent first

  • list_product_lists

    List saved product lists

  • list_purchase_statswrite action

    List previously purchased products with frequency data, ordered by most recent purchase

  • lower_order_quantitywrite action

    Reduce the quantity of specific order lines. Quantity can only be lowered. Set to 0 to remove.

  • reorder_shopping_note_lines

    Reorder shopping note lines by passing their tokens in desired order

  • search_products

    Search for products in the smart store selection. Returns products available for home delivery.

  • set_line_completion

    Mark a shopping note line as completed or uncompleted.

  • set_order_substitutionwrite action

    Set whether substitution is allowed for specific order lines.

  • set_purchase_stat_ignoredwrite action

    Hide or unhide a product from purchase history

  • sort_product_list

    Sort items in the product list by store departments

  • update_product_listwrite action

    Update the name or description of a product list

  • update_product_list_itemwrite action

    Add a product by SKU or update its quantity in a product list. Set quantity to 0 to remove.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan7 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 161 days ago8/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 72/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Kronan compares

Against every graded E-commerce MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
72/100
higher than 45% of 2,174 E-commerce servers
Tools
33
the typical E-commerce server has 6
Tools that change things
52%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
15
more than 91% of 1,047 E-commerce servers

What its tools let an agent do: 13 read · 3 create · 12 change · 4 delete · 1 run or deploy

Install Kronan in Claude Code, Cursor or VS Code

Runs npx -y kronan-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add kronan-mcp -- npx -y kronan-mcp
Add to Cursor

What the publisher says

From the Kronan repository's README, as published. We do not edit it. Read it on GitHub

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:

Install

npm install -g kronan-mcp

Or run directly with npx (no install needed):

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:

{
  "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

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 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.

setordersubstitution and setlinecompletion 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

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.

npm test

Nothing above is checked by us. What we check is on the safety report.

Kronan: common questions

Is Kronan MCP server safe?
Mostly: it is graded B (72/100). Read the Kronan safety report
How do I install Kronan?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Kronan need an API key?
Yes. The registry entry asks for KRONAN_ACCESS_TOKEN.
Is Kronan maintained?
The last commit was 198 days ago (2026-04-19). The latest release is v1.0.1.
What can I use instead of Kronan?
Servers from other publishers that do the same job: Apify MCP server, Mneme Memory MCP server and Heimdall MCP server.
How does Kronan compare with other E-commerce MCP servers?
safety score 72/100 (higher than 45% of 2,174 E-commerce servers); tools 33 (the typical E-commerce server has 6); tools that change things 52% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Kronan

Same job from other publishers: the closest match first, then the best rated.

  • Apify
    Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
    A
  • Mneme Memory
    Cross-session memory for AI coding agents via six tools; local-first SQLite store.
    A
  • Heimdall
    Every App Store Connect + StoreKit 2 endpoint. 929 tools in 13 profiles, narrow to 27.
    B
  • Buywhere
    Agent-native product catalog: 300M+ products, 150,000+ stores, deliver_to ranking.
    A
  • NativeKeel
    React Native and Expo health check: upgrade blockers, store rules, crash risks, security findings
    A