Fordeal
ai.fordeal/price-hunterPrice comparison for CZ/SK: product prices, shops, digital plans via Streamable HTTP.
Score: 100/100
Handshake verified by our own probe.
Tools · 63
Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment duration, or provider; sort by price, ind…
The website's category and search grid for an agent: products with the product price of their shown offer (`lowest_goods`, in the `deliver_to_country` currency; its shipping `lowest_shipping` and the …
Products whose cheapest total (goods + shipping + FX to `deliver_to_country`) comes from a shop abroad and beats the cheapest domestic offer, with the saving in the deliver-to currency (`saving_kind: …
The shops whose prices flow today for a delivery country (with their rating 0..1, rating source and trust label) and the shops still waiting for their feed. Use it to answer "can I trust shop X" or "d…
Where to buy a product cheapest today: offers ranked by the real product price (converted to the buyer's currency with a dated rate), the shipping to the buyer's country shown as its own value on ever…
The same card as find_best_price and the website's product page /{locale}/p/{product}, for a product id you already hold (`product.slug` / `product.variant.id` from search_products, find_best_price or…
The variants of one product, each with a stable `id` (its product slug), `current` (true for the one asked for, always listed), storage, size, colour and `color_id`, its lowest total for `deliver_to_c…
Daily lowest price of a product across compared shops for up to 365 days (the last point, today, is the product price the product page shows as its main price), plus every current offer with its captu…
Discounts at rated shops today, biggest absolute saving first: with 30 days of our own history for the offer, the discount is measured only against its lowest price in the 30 days before the reduction…
Coupon codes and promotions of compared shops, valid today, from the affiliate network eHUB (refreshed every 3 hours; never from newsletters or e-mails, never a shop on a risk list). For one country (…
The rows the website shows above the full product list (/produkty) for a buyer country, each a list of up to 12 products with the same summary fields as search_products: `deals` (today's price drops; …
The products the home page's first row shows, found by the data and not by a list of model names: new products people look for, up to 12, each a summary like search_products (total price with shipping…
The 30 most searched product queries of one delivery country, recomputed once a day by the worker from three free sources: Google Trends' public daily-trends RSS of the country (about ten queries of t…
When an offer on a product page is wrong (the shop's page shows another price, the offer is another variant or product, the link leads to the wrong shop or page, or anything else), file a report: `kin…
A notice under Article 16 of the Digital Services Act that content on fordeal.ai is illegal (a user review, product information, an offer, an image or anything else). Give `content_kind` review | prod…
Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, commitment, eSIM and 5G; legacy needs filte…
An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show estimate_note (the sentence with the day of …
Prices of digital services for a buyer's country, cheapest first, from the providers' official price lists (each row has source_url and verified_on) converted to the buyer's currency by the Czech Nati…
What a month of AI API use costs per bill item for every model we compare (or one provider / chosen models): fresh input, input read from the cache, input written into the cache, output, and the total…
Every recorded change of a digital plan's price, newest first: plan_id, verified_on (the day it changed), from and to (price and currency), source (person = confirmed against the official page in our …
An indicative calculation (verified: false, with estimate_note like compare_energy). Pass the values from the household's electricity or gas bill (as read by POST /api/v1/digital/energy/bill, by yours…
An indicative calculation, not yet checked by an independent expert (verified: false); show estimate_note with the result. Price of one kWh with VAT for households of a country (Czechia for now), per …
Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common consumption band), with the dataset link an…
Facts from the suppliers' official price lists (verified: false: the yearly calculation built on them is not yet checked by an independent expert; estimate_note gives the sentence and the day of the p…
An estimate (verified: false, estimate_note with the day of the prices). kind fridge: label_kwh_year from the EU energy label (kWh/annum). kind washer: kwh_per_100_cycles from the EU energy label and …
A household gives its e-mail and the last day of its fixed electricity or gas price (fixation_end YYYY-MM-DD, today to 5 years ahead); optionally the distributor area, today's supplier (supplier_id fr…
The watch behind a token from a watcher e-mail (the `t` of the link): status pending | confirmed, the end date, the day of the alert, the e-mail masked. Answers not_found when the watch was cancelled …
The double opt-in click: the confirmation token from the first watcher e-mail turns the watch on. Only the person who received the e-mail holds the token.
Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working.
An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no premium and recommends no policy. For a co…
Every price watch of the person whose Supabase access token is sent (Authorization: Bearer <token>; an agent API key is refused). Each row: id, product, status (active | paused), target_total and save…
Creates (or resets) the signed-in person's watch of one product (one per product). Fordeal mails the person when the recommended total for `deliver_to_country` (goods + shipping, same meaning as on th…
Changes one of the signed-in person's watches: `paused: true` stops the mails until `paused: false`; `target_total` sets a new limit (null = any real drop under the saved total). Only the token's own …
Deletes one of the signed-in person's watches; no more mails for it. Only the token's own watches; another id answers not_found.
Products (kind product, by slug, with the total saved at that time) and digital plans (kind digital, by plan id) the person saved with the heart, newest first. Needs the person's access token. Live pr…
Adds a product (kind product, `id` = slug) or a digital plan (kind digital, `id` = plan id from compare_digital or compare_mobile) to the signed-in person's favourites. For a product its total for `de…
Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there.
Comparisons the person saved (2 to 4 digital plans each), newest first, with the page address and, when the person chose to share one, its share link. Private unless `shared: true`.
Saves 2 to 4 digital plans (plan ids from compare_digital / compare_mobile) as a private comparison in the signed-in person's account. Private: nobody else can open it until share_comparison makes a l…
`shared: true` makes a read-only link (a new random token; an older link stops working); `shared: false` removes the link. The link shows the plans at today's prices and the name, never the owner.
Deletes one of the signed-in person's saved comparisons; its share link stops working.
Every named list of the person whose Supabase access token is sent (Authorization: Bearer <token>; an agent API key is refused), oldest first, each with its items (newest first): products (kind produc…
Creates an empty private list (e.g. Narozeniny, Nová kuchyň) in the signed-in person's account; add products with add_to_list. At most 50 lists per person.
Changes one of the signed-in person's lists: `name` renames it; `shared: true` makes a read-only link (a new random token, an older link stops working), `shared: false` removes the link. The link show…
Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found.
Adds a product (`product_slug`) or a digital service plan (`digital_id`, a plan id of compare_digital / compare_mobile, e.g. claude-pro) to one of the signed-in person's lists with an optional private…
Removes a product (`product_slug`) or a digital plan (`digital_id`) from one of the signed-in person's lists; send exactly one of the two. `removed: false` when it was not there. Another person's list…
The profile of the person whose Supabase access token is sent (an agent API key is refused): id, email, name (shown with reviews), locale (language of our e-mails), country (market: the delivery count…
Changes only the fields sent: name (at most 40 characters, empty string clears it), locale (language tag of our e-mails, e.g. cs), country (one of the markets of get_my_profile, null clears it), watch…
Signs the person out: scope global (default) revokes every session of the account on every device, local only the session of this token. The access token is refused from then on; the person needs a ne…
Deletes the signed-in person's account and cannot be undone. Ask the person first and pass `confirm` = the account's e-mail exactly as they type it; without it nothing happens (validation, confirmatio…
No account (UX-72): the person gives an e-mail and Fordeal mails them when the recommended total for `deliver_to_country` (goods + shipping, the product page's meaning) falls under `target_total` (def…
What the link in a price-watch mail opens (/{locale}/hlidac?t=…), without an account: the product, status (pending | active | paused | cancelled), target_total and saved_total in the watch's currency,…
The buttons of /{locale}/hlidac, one action on the one watch the signed token names, no sign-in: `confirm` (only the confirmation token of watch_product_price: the person's double opt-in click, an age…
Before or instead of registering: reads one product feed and answers whether Fordeal can use it. Give the feed's public address in `feed_url` (read through the SSRF guard: public hosts only, FordealBo…
One call registers a shop (P01): name, domain, delivery country, contact e-mail, the feed (its address in `feed_url`, or the file in `feed_content` / `feed_base64`), how commission is paid and the acc…
What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | active, whether the contact confirmed, the…
After register_shop: publish <meta name="fordeal-verification" content="TOKEN"> on the shop's home page, or the token as the whole content of https://DOMAIN/fordeal-verification.txt, then call this wi…
The report of a compared shop's last feed read (P04): health ok | warn | fail, counts (items, with EAN, price, picture, availability, shipping, category), and coded issues (no_items, items_skipped, fe…
The shops whose numbers the signed-in person may read: a contact of a shop in Fordeal's own affiliate programme whose partnership the operator approved and whose domain is proven (`access: partner`; a…
How many people Fordeal sent to the shop in a window of UTC days (`from`/`to` YYYY-MM-DD, both included; the last 30 days by default, at most 366): the total, every day (zero days included), per deliv…
The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organization, website, markets as ISO codes, …
The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 characters). The message goes as one notice…
Resources · 2
Every category slug with its localized names (en, cs, sk), pillar, whether price estimation is available and the verification level providers must pass (none, id_verified, criminal_record, license).
fordeal://categories
Short English summary of the commercial terms an agent is agreeing to: commission, escrow, auto-confirmation and disputes.
fordeal://terms
How to use
Claude Desktop or claude.ai: add a custom connector (Customize → Connectors; on Team and Enterprise plans an owner adds it under Organization settings → Connectors) with this server URL: https://fordeal.ai/mcp
Cursor or Cline: add to your MCP config:
{
"mcpServers": {
"fordeal": {
"url": "https://fordeal.ai/mcp",
"transport": "streamable-http"
}
}
}
Source: github.com/banbosh/fordeal/tree/HEAD/apps/mcp (apps/mcp)