Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"kronan": {
"env": {
"KRONAN_ACCESS_TOKEN": "act_your_token_here"
},
"args": [
"kronan-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
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.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'kronan-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked kronan-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in ecommerce
A command line tool for setting up commercetools MCP server
35+ AI tools for TCG card grading, Monte Carlo pricing, 370K+ product search. BYOK.
Shopify store intelligence: apps, tech stack, CDN, and market data over a 19K-store corpus.
MCP server for Chestniy ZNAK (Честный ЗНАК) API — product marking verification. No auth needed for
MCP Security Weekly
Get CVE alerts and security updates for io.github.sandsower/kronan-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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.
25 tools over the Model Context Protocol:
| Category | Tools |
|---|---|
| Products | search_products, get_product, get_category_products, list_categories |
| Checkout | get_checkout, add_checkout_lines |
| Orders | list_orders, get_order, delete_order_lines, set_order_substitution, lower_order_quantity |
| Shopping notes | get_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 lists | list_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 stats | list_purchase_stats, set_purchase_stat_ignored |
| Account | get_me |
npm install -g kronan-mcp
Or run directly with npx (no install needed):
npx kronan-mcp
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_.
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:
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.
Full OpenAPI schema at openapi-schema.yaml.
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
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