MCP server for managing a K-Ruoka shopping cart for one K-Plussa account
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"k-ruoka-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# k-ruoka-mcp [](./README.md) [](./README.fi.md) [](./README.sv.md) An MCP server that manages the shopping cart of one [K-Ruoka](https://www.k-ruoka.fi) (Finnish grocery) account: read the cart, add items, change quantities, remove items, clear it. Checkout is deliberately out of scope. Nothing here can place an order or spend money. > [!IMPORTANT] > Use with caution, and only against your own account. K-Ruoka's terms limit the service > to a customer's *own personal private use*, and Kesko may restrict or close an account > at its discretion; the risk you take on is your own. Read the > [terms of service notes](#terms-of-service--use-with-caution) first. ## How it works K-Ruoka has no public API. The cart lives behind `/kr-api/basket/...`, which is private, undocumented, and authenticated purely by browser cookies. There is no bearer token or API key to hold. So this server drives a real, installed Chrome via the DevTools Protocol ([chromiumoxide](https://github.com/mattsse/chromiumoxide)), keeps a persistent profile on disk, and makes each API call as a same-origin `fetch()` from inside the loaded page. The browser attaches the cookies itself. The site sits behind Cloudflare. Getting through needs exactly one thing: a User-Agent that doesn't contain the token `HeadlessChrome`. No stealth plugin, no challenge-solving, no interstitial to wait out. That single fact is why this is pure Rust with no browser-automation sidecar. ## Requirements - **Google Chrome** at `/usr/bin/google-chrome` (override with `K_RUOKA_CHROME`). Not optional and not bundled: the whole design is "drive a real browser", because the cookies are the only credential the private API accepts. - `xvfb-run`, only for `login` on a machine with no display - Rust (built with 1.94), only to build from source ## Install Published to P…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.