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

AI-generated 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.
Before you install
Read-only and stores nothing, but it relies on the sites' private JSON endpoints rather than a public API, so one half can break when a site changes. Store links are the sites' own, so purchases still credit them. The hosted variant is protected only by a secret URL path token, which anyone holding the link can use.

Installation

In SourceWeft

  1. Open Billigast in the dashboard and add it to a workspace.
  2. 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.

[License: MIT] [MCP]

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:

sh
claude mcp add billigast -- docker run -i --rm ghcr.io/idoo/billigast-mcp

Cursor and Codex take the same command and args in their MCP config. Without Docker, build it with Node 20 or newer:

sh
npm ci && npm run build:stdionode dist/billigast-mcp.js

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:

sh
openssl rand -hex 24

Then deploy:

sh
git clone https://github.com/idoo/billigast-mcp && cd billigast-mcpnpm cinpx wrangler loginnpx wrangler deploynpx wrangler secret put MCP_PATH_TOKEN    # paste the token

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:

sh
claude mcp add --transport http billigast https://…/mcp/<token>codex mcp add billigast --url https://…/mcp/<token>

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

MIT

Source: README.md at commit 6ccc0bf

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  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