
Billigast
io.github.idooPublished by GitHub account idoov1.0.0Updated Nov 8, 2026
Read-only MCP server: find the cheapest store for a product across Prisjakt and PriceRunner.
Overview
Read-only MCP server that finds the cheapest store for a product by querying Prisjakt and PriceRunner and merging their listings.
- What you can do
- Search a product on both price-comparison sites at once and get merged results with each site's lowest price, store count and which is cheaper
- Compare every store's price for one product, cheapest first, from a search key, a site link or a plain product name
- See cheapest new, in-stock, and used or refurbished offers, with sold-out rows pushed to the bottom
- Read Prisjakt price history with a plain sentence on where today's price sits versus the 90-day low
- When to use it
- Useful when you want to check what a product costs across Swedish retailers and whether now is a good time to buy, without opening both comparison sites yourself. Suits shopping research and price checks rather than purchasing.
- Requirements
- Runs locally over stdio: a Claude Desktop extension bundle, a Docker image, or a Node 20+ build from source. No accounts, tokens or API keys for local use. The optional hosted setup for ChatGPT or claude.ai needs a Cloudflare Worker deployment and a secret path token set as MCP_PATH_TOKEN.
Installation
In SourceWeft
- Open Billigast in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Billigast
Prisjakt and PriceRunner rarely agree, so I made one MCP server that asks both.
This morning I checked AirPods Pro 2. Prisjakt's lowest was 2 755 kr. PriceRunner had OnBuy at 2 530 kr, and Refurbed had a refurbished pair for 1 765 kr. Prisjakt's history also showed them at 1 670 kr in the middle of October, so I'm waiting. Same store, different numbers: CDON listed a Dyson V15 at 8 763 kr on Prisjakt and 8 122 kr on PriceRunner at the same moment.
It's read-only. No accounts, no alerts, nothing stored.
Tools
search looks up a product on both sites at once and folds the two listings into one result when they're the same thing. That part is stricter than you'd think. An iPhone 16 128 GB never gets merged with the 256 GB one, Pro stays apart from Pro Max, and AirPods with Lightning aren't the USB-C pair. PriceRunner splits colours into separate products, Prisjakt mostly doesn't, so a colour only has to match when both name one. When the server isn't sure, it keeps two results rather than guessing. Each result shows both sites' lowest price and store count, and which one is cheaper.
compare gives every store's price for one product, from both sites, cheapest first. Hand it a key from search, a Prisjakt or PriceRunner link, or just a name like "playstation 5 slim". With a link from one site it finds the same product on the other by itself. A store listed on both becomes one row with both prices. Sold-out rows go to the bottom and never count as the cheapest, because they often carry an old price. You get the cheapest new offer, the cheapest that's in stock, and the cheapest used or refurbished one even when you only asked for new. Prisjakt's price history comes along with a plain sentence on where today's price sits, like "8 990 kr today is 16% above the 90-day low of 7 749 kr on 2026-08-20."
In ChatGPT both tools also show a small card view, and tapping a product opens its store list.
On your own computer
Claude Desktop, Claude Code, Cursor and Codex can run the server locally over stdio. No token, no hosting.
For Claude Desktop, download billigast-mcp-<version>.mcpb from Releases and double-click it.
Other clients can start it with Docker. In Claude Code:
Cursor and Codex take the same command and args in their MCP config. Without Docker, build it with Node 20 or newer:
Hosted, for ChatGPT and claude.ai
ChatGPT and claude.ai can't reach your laptop, so they need a public HTTPS address. I run mine as a Cloudflare Worker, and the free plan is plenty.
ChatGPT's custom connectors offer OAuth or no auth at all. For public prices OAuth seemed like too much, so the endpoint sits behind a secret path, /mcp/<token>, and everything else gets a 404. Make up a long random token:
Then deploy:
Wrangler prints a workers.dev URL. Add /mcp/<token> to it. wrangler.jsonc caps it at 120 calls a minute.
For local dev put MCP_PATH_TOKEN=dev in .dev.vars, run npm run dev and use http://localhost:8787/mcp/dev.
Connect
ChatGPT on the web: Plugins, Add, "Add custom MCP server". Paste the endpoint, pick no authentication. After that, @Billigast in any chat. Both tools are marked read-only, so ChatGPT doesn't ask before each call.
claude.ai: Settings → Connectors → Add custom connector.
Claude Code and Codex:
How it works
Neither site has a public API. The server calls the same JSON endpoints their own pages use, a handful of requests per tool call, only when you ask. It doesn't touch the paths their robots.txt rules out: no HTML search pages, no shop redirects, and no PriceRunner price history. The store links you get are the sites' own, so they still get credit when you buy. If either site changes its endpoints, that half stops working until someone fixes it, and the other half keeps answering. PRs welcome.
Not affiliated with Prisjakt or PriceRunner.
License
Source: README.md at commit 6ccc0bf
Tools
0Version history
1- v1.0.0LatestNov 8, 2026
Score
50% 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 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts