{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_7sg5n4gnvgfk","handle":"fordeal","url":"https://wellknown.network/agents/fordeal","links":{"self":"https://wellknown.network/agents/fordeal/record.json","html":"https://wellknown.network/agents/fordeal","markdown":"https://wellknown.network/agents/fordeal/record.md","api":"https://wellknown.network/api/v1/agents/fordeal","status":"https://wellknown.network/api/v1/agents/fordeal/status","claim":"https://wellknown.network/agents/fordeal/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/fordeal/claim.json","badge":"https://wellknown.network/agents/fordeal/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/fordeal/history","tools":"https://wellknown.network/api/v1/agents/fordeal/tools"},"ard":{"identifier":"urn:air:fordeal.ai:server:fordeal","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Fordeal","summary":"Price comparison for CZ/SK: product prices, shops, digital plans via Streamable HTTP.","description":"Price comparison for CZ/SK: product prices, shops, digital plans via Streamable HTTP.","publisher":{"name":"ai.fordeal","url":null},"homepage":"https://fordeal.ai","repository":"https://github.com/banbosh/fordeal","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://fordeal.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-30T07:33:32.320502Z","publishedAt":"2026-10-30T07:33:32.320502Z","registryName":"ai.fordeal/price-hunter"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":0.583,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":0.525,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.525,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content","data","security"],"language":"fr"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-11-02T11:27:22.540Z","lastProbedAt":"2026-11-02T11:27:22.540Z","statusComputedAt":"2026-11-02T11:31:19.904Z","reliability30d":{"probes":6,"successRate":1,"p50Ms":238,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":6,"ok":6,"authBoundaryOk":0,"serviceOk":6,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-02T11:27:22.540Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":329,"error":null,"detail":{"tools":[{"name":"compare_internet","description":"Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment d"},{"name":"search_products","description":"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;"},{"name":"cheaper_abroad","description":"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"},{"name":"list_shops","description":"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"},{"name":"find_best_price","description":"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'"},{"name":"get_product","description":"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` "},{"name":"product_variants","description":"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"},{"name":"price_history","description":"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),"},{"name":"daily_deals","description":"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 p"},{"name":"list_coupons","description":"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"},{"name":"product_rows","description":"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_"},{"name":"trending_new_products","description":"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 se"},{"name":"report_issue","description":"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"},{"name":"report_illegal_content","description":"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 "},{"name":"compare_mobile","description":"Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, com"},{"name":"compare_energy","description":"An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show esti"},{"name":"compare_digital","description":"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 t"},{"name":"api_price_breakdown","description":"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 writt"},{"name":"digital_price_history","description":"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 = con"},{"name":"compare_energy_from_bill","description":"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 PO"},{"name":"energy_unit_prices","description":"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 househo"},{"name":"energy_price_history","description":"Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common con"},{"name":"energy_suppliers","description":"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"},{"name":"estimate_appliance_energy","description":"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_"},{"name":"watch_energy_fixation","description":"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 distributo"},{"name":"energy_watch_status","description":"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"},{"name":"confirm_energy_watch","description":"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."},{"name":"cancel_energy_watch","description":"Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working."},{"name":"insurance_guide","description":"An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no pr"},{"name":"list_my_price_watches","description":"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 "},{"name":"set_price_watch","description":"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` "},{"name":"update_price_watch","description":"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"},{"name":"delete_price_watch","description":"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."},{"name":"list_my_favorites","description":"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. "},{"name":"save_favorite","description":"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 fav"},{"name":"remove_favorite","description":"Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there."},{"name":"list_my_comparisons","description":"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 u"},{"name":"save_comparison","description":"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 "},{"name":"share_comparison","description":"`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 p"},{"name":"delete_comparison","description":"Deletes one of the signed-in person's saved comparisons; its share link stops working."},{"name":"list_my_lists","description":"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 pro"},{"name":"create_list","description":"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."},{"name":"update_list","description":"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"},{"name":"delete_list","description":"Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found."},{"name":"add_to_list","description":"Adds a product (by slug) to one of the signed-in person's lists with an optional private note; the product's total for `deliver_to_country` today is kept as sav"},{"name":"remove_from_list","description":"Removes a product from one of the signed-in person's lists; `removed: false` when it was not there. Another person's list answers not_found."},{"name":"check_shop_feed","description":"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 "},{"name":"register_shop","description":"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_base"},{"name":"get_shop_registration","description":"What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | ac"},{"name":"verify_shop_domain","description":"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/for"},{"name":"get_shop_feed_diagnostics","description":"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 c"},{"name":"list_my_shops","description":"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 whos"},{"name":"get_shop_statistics","description":"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, e"},{"name":"send_cooperation_inquiry","description":"The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organ"},{"name":"send_contact_message","description":"The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 cha"}],"toolCount":55,"toolsHash":"5ae2dcdf59bee63caa47de4211f35cff24494e7cd85112908c165c40257cc900","serverName":"fordeal","capabilities":["tools","resources"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-02T03:27:29.913Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":442,"error":null,"detail":{"tools":[{"name":"compare_internet","description":"Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment d"},{"name":"search_products","description":"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;"},{"name":"cheaper_abroad","description":"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"},{"name":"list_shops","description":"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"},{"name":"find_best_price","description":"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'"},{"name":"get_product","description":"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` "},{"name":"product_variants","description":"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"},{"name":"price_history","description":"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),"},{"name":"daily_deals","description":"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 p"},{"name":"list_coupons","description":"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"},{"name":"product_rows","description":"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_"},{"name":"trending_new_products","description":"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 se"},{"name":"report_issue","description":"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"},{"name":"report_illegal_content","description":"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 "},{"name":"compare_mobile","description":"Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, com"},{"name":"compare_energy","description":"An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show esti"},{"name":"compare_digital","description":"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 t"},{"name":"api_price_breakdown","description":"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 writt"},{"name":"digital_price_history","description":"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 = con"},{"name":"compare_energy_from_bill","description":"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 PO"},{"name":"energy_unit_prices","description":"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 househo"},{"name":"energy_price_history","description":"Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common con"},{"name":"energy_suppliers","description":"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"},{"name":"estimate_appliance_energy","description":"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_"},{"name":"watch_energy_fixation","description":"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 distributo"},{"name":"energy_watch_status","description":"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"},{"name":"confirm_energy_watch","description":"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."},{"name":"cancel_energy_watch","description":"Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working."},{"name":"insurance_guide","description":"An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no pr"},{"name":"list_my_price_watches","description":"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 "},{"name":"set_price_watch","description":"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` "},{"name":"update_price_watch","description":"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"},{"name":"delete_price_watch","description":"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."},{"name":"list_my_favorites","description":"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. "},{"name":"save_favorite","description":"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 fav"},{"name":"remove_favorite","description":"Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there."},{"name":"list_my_comparisons","description":"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 u"},{"name":"save_comparison","description":"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 "},{"name":"share_comparison","description":"`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 p"},{"name":"delete_comparison","description":"Deletes one of the signed-in person's saved comparisons; its share link stops working."},{"name":"list_my_lists","description":"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 pro"},{"name":"create_list","description":"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."},{"name":"update_list","description":"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"},{"name":"delete_list","description":"Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found."},{"name":"add_to_list","description":"Adds a product (by slug) to one of the signed-in person's lists with an optional private note; the product's total for `deliver_to_country` today is kept as sav"},{"name":"remove_from_list","description":"Removes a product from one of the signed-in person's lists; `removed: false` when it was not there. Another person's list answers not_found."},{"name":"check_shop_feed","description":"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 "},{"name":"register_shop","description":"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_base"},{"name":"get_shop_registration","description":"What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | ac"},{"name":"verify_shop_domain","description":"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/for"},{"name":"get_shop_feed_diagnostics","description":"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 c"},{"name":"list_my_shops","description":"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 whos"},{"name":"get_shop_statistics","description":"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, e"},{"name":"send_cooperation_inquiry","description":"The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organ"},{"name":"send_contact_message","description":"The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 cha"}],"toolCount":55,"toolsHash":"5ae2dcdf59bee63caa47de4211f35cff24494e7cd85112908c165c40257cc900","serverName":"fordeal","capabilities":["tools","resources"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T18:26:31.554Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":517,"error":null,"detail":{"tools":[{"name":"compare_internet","description":"Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment d"},{"name":"search_products","description":"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;"},{"name":"cheaper_abroad","description":"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"},{"name":"list_shops","description":"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"},{"name":"find_best_price","description":"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'"},{"name":"get_product","description":"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` "},{"name":"product_variants","description":"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"},{"name":"price_history","description":"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),"},{"name":"daily_deals","description":"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 p"},{"name":"list_coupons","description":"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"},{"name":"product_rows","description":"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_"},{"name":"trending_new_products","description":"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 se"},{"name":"report_issue","description":"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"},{"name":"report_illegal_content","description":"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 "},{"name":"compare_mobile","description":"Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, com"},{"name":"compare_energy","description":"An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show esti"},{"name":"compare_digital","description":"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 t"},{"name":"api_price_breakdown","description":"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 writt"},{"name":"digital_price_history","description":"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 = con"},{"name":"compare_energy_from_bill","description":"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 PO"},{"name":"energy_unit_prices","description":"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 househo"},{"name":"energy_price_history","description":"Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common con"},{"name":"energy_suppliers","description":"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"},{"name":"estimate_appliance_energy","description":"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_"},{"name":"watch_energy_fixation","description":"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 distributo"},{"name":"energy_watch_status","description":"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"},{"name":"confirm_energy_watch","description":"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."},{"name":"cancel_energy_watch","description":"Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working."},{"name":"insurance_guide","description":"An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no pr"},{"name":"list_my_price_watches","description":"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 "},{"name":"set_price_watch","description":"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` "},{"name":"update_price_watch","description":"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"},{"name":"delete_price_watch","description":"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."},{"name":"list_my_favorites","description":"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. "},{"name":"save_favorite","description":"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 fav"},{"name":"remove_favorite","description":"Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there."},{"name":"list_my_comparisons","description":"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 u"},{"name":"save_comparison","description":"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 "},{"name":"share_comparison","description":"`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 p"},{"name":"delete_comparison","description":"Deletes one of the signed-in person's saved comparisons; its share link stops working."},{"name":"list_my_lists","description":"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 pro"},{"name":"create_list","description":"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."},{"name":"update_list","description":"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"},{"name":"delete_list","description":"Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found."},{"name":"add_to_list","description":"Adds a product (by slug) to one of the signed-in person's lists with an optional private note; the product's total for `deliver_to_country` today is kept as sav"},{"name":"remove_from_list","description":"Removes a product from one of the signed-in person's lists; `removed: false` when it was not there. Another person's list answers not_found."},{"name":"check_shop_feed","description":"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 "},{"name":"register_shop","description":"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_base"},{"name":"get_shop_registration","description":"What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | ac"},{"name":"verify_shop_domain","description":"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/for"},{"name":"get_shop_feed_diagnostics","description":"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 c"},{"name":"list_my_shops","description":"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 whos"},{"name":"get_shop_statistics","description":"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, e"},{"name":"send_cooperation_inquiry","description":"The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organ"},{"name":"send_contact_message","description":"The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 cha"}],"toolCount":55,"toolsHash":"5ae2dcdf59bee63caa47de4211f35cff24494e7cd85112908c165c40257cc900","serverName":"fordeal","capabilities":["tools","resources"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T10:28:18.695Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":219,"error":null,"detail":{"tools":[{"name":"compare_internet","description":"Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment d"},{"name":"search_products","description":"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;"},{"name":"cheaper_abroad","description":"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"},{"name":"list_shops","description":"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"},{"name":"find_best_price","description":"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'"},{"name":"get_product","description":"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` "},{"name":"product_variants","description":"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"},{"name":"price_history","description":"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),"},{"name":"daily_deals","description":"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 p"},{"name":"list_coupons","description":"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"},{"name":"product_rows","description":"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_"},{"name":"trending_new_products","description":"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 se"},{"name":"report_issue","description":"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"},{"name":"report_illegal_content","description":"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 "},{"name":"compare_mobile","description":"Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, com"},{"name":"compare_energy","description":"An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show esti"},{"name":"compare_digital","description":"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 t"},{"name":"api_price_breakdown","description":"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 writt"},{"name":"digital_price_history","description":"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 = con"},{"name":"compare_energy_from_bill","description":"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 PO"},{"name":"energy_unit_prices","description":"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 househo"},{"name":"energy_price_history","description":"Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common con"},{"name":"energy_suppliers","description":"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"},{"name":"estimate_appliance_energy","description":"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_"},{"name":"watch_energy_fixation","description":"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 distributo"},{"name":"energy_watch_status","description":"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"},{"name":"confirm_energy_watch","description":"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."},{"name":"cancel_energy_watch","description":"Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working."},{"name":"insurance_guide","description":"An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no pr"},{"name":"list_my_price_watches","description":"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 "},{"name":"set_price_watch","description":"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` "},{"name":"update_price_watch","description":"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"},{"name":"delete_price_watch","description":"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."},{"name":"list_my_favorites","description":"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. "},{"name":"save_favorite","description":"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 fav"},{"name":"remove_favorite","description":"Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there."},{"name":"list_my_comparisons","description":"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 u"},{"name":"save_comparison","description":"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 "},{"name":"share_comparison","description":"`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 p"},{"name":"delete_comparison","description":"Deletes one of the signed-in person's saved comparisons; its share link stops working."},{"name":"list_my_lists","description":"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 pro"},{"name":"create_list","description":"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."},{"name":"update_list","description":"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"},{"name":"delete_list","description":"Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found."},{"name":"add_to_list","description":"Adds a product (by slug) to one of the signed-in person's lists with an optional private note; the product's total for `deliver_to_country` today is kept as sav"},{"name":"remove_from_list","description":"Removes a product from one of the signed-in person's lists; `removed: false` when it was not there. Another person's list answers not_found."},{"name":"check_shop_feed","description":"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 "},{"name":"register_shop","description":"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_base"},{"name":"get_shop_registration","description":"What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | ac"},{"name":"verify_shop_domain","description":"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/for"},{"name":"get_shop_feed_diagnostics","description":"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 c"},{"name":"list_my_shops","description":"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 whos"},{"name":"get_shop_statistics","description":"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, e"},{"name":"send_cooperation_inquiry","description":"The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organ"},{"name":"send_contact_message","description":"The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 cha"}],"toolCount":55,"toolsHash":"5ae2dcdf59bee63caa47de4211f35cff24494e7cd85112908c165c40257cc900","serverName":"fordeal","capabilities":["tools","resources"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T02:26:18.657Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":72,"error":null,"detail":{"tools":[{"name":"compare_internet","description":"Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment d"},{"name":"search_products","description":"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;"},{"name":"cheaper_abroad","description":"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"},{"name":"list_shops","description":"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"},{"name":"find_best_price","description":"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'"},{"name":"get_product","description":"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` "},{"name":"product_variants","description":"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"},{"name":"price_history","description":"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),"},{"name":"daily_deals","description":"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 p"},{"name":"list_coupons","description":"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"},{"name":"product_rows","description":"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_"},{"name":"trending_new_products","description":"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 se"},{"name":"report_issue","description":"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"},{"name":"report_illegal_content","description":"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 "},{"name":"compare_mobile","description":"Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, com"},{"name":"compare_energy","description":"An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show esti"},{"name":"compare_digital","description":"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 t"},{"name":"api_price_breakdown","description":"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 writt"},{"name":"digital_price_history","description":"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 = con"},{"name":"compare_energy_from_bill","description":"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 PO"},{"name":"energy_unit_prices","description":"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 househo"},{"name":"energy_price_history","description":"Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common con"},{"name":"energy_suppliers","description":"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"},{"name":"estimate_appliance_energy","description":"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_"},{"name":"watch_energy_fixation","description":"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 distributo"},{"name":"energy_watch_status","description":"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"},{"name":"confirm_energy_watch","description":"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."},{"name":"cancel_energy_watch","description":"Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working."},{"name":"insurance_guide","description":"An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no pr"},{"name":"list_my_price_watches","description":"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 "},{"name":"set_price_watch","description":"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` "},{"name":"update_price_watch","description":"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"},{"name":"delete_price_watch","description":"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."},{"name":"list_my_favorites","description":"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. "},{"name":"save_favorite","description":"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 fav"},{"name":"remove_favorite","description":"Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there."},{"name":"list_my_comparisons","description":"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 u"},{"name":"save_comparison","description":"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 "},{"name":"share_comparison","description":"`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 p"},{"name":"delete_comparison","description":"Deletes one of the signed-in person's saved comparisons; its share link stops working."},{"name":"list_my_lists","description":"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 pro"},{"name":"create_list","description":"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."},{"name":"update_list","description":"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"},{"name":"delete_list","description":"Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found."},{"name":"add_to_list","description":"Adds a product (by slug) to one of the signed-in person's lists with an optional private note; the product's total for `deliver_to_country` today is kept as sav"},{"name":"remove_from_list","description":"Removes a product from one of the signed-in person's lists; `removed: false` when it was not there. Another person's list answers not_found."},{"name":"check_shop_feed","description":"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 "},{"name":"register_shop","description":"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_base"},{"name":"get_shop_registration","description":"What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | ac"},{"name":"verify_shop_domain","description":"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/for"},{"name":"get_shop_feed_diagnostics","description":"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 c"},{"name":"list_my_shops","description":"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 whos"},{"name":"get_shop_statistics","description":"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, e"},{"name":"send_cooperation_inquiry","description":"The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organ"},{"name":"send_contact_message","description":"The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 cha"}],"toolCount":55,"toolsHash":"5ae2dcdf59bee63caa47de4211f35cff24494e7cd85112908c165c40257cc900","serverName":"fordeal","capabilities":["tools","resources"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T18:25:57.885Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":108,"error":null,"detail":{"tools":[{"name":"compare_internet","description":"Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment d"},{"name":"search_products","description":"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;"},{"name":"cheaper_abroad","description":"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"},{"name":"list_shops","description":"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"},{"name":"find_best_price","description":"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'"},{"name":"get_product","description":"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` "},{"name":"product_variants","description":"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"},{"name":"price_history","description":"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),"},{"name":"daily_deals","description":"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 p"},{"name":"list_coupons","description":"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"},{"name":"product_rows","description":"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_"},{"name":"trending_new_products","description":"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 se"},{"name":"report_issue","description":"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"},{"name":"report_illegal_content","description":"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 "},{"name":"compare_mobile","description":"Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, com"},{"name":"compare_energy","description":"An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show esti"},{"name":"compare_digital","description":"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 t"},{"name":"api_price_breakdown","description":"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 writt"},{"name":"digital_price_history","description":"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 = con"},{"name":"compare_energy_from_bill","description":"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 PO"},{"name":"energy_unit_prices","description":"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 househo"},{"name":"energy_price_history","description":"Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common con"},{"name":"energy_suppliers","description":"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"},{"name":"estimate_appliance_energy","description":"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_"},{"name":"watch_energy_fixation","description":"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 distributo"},{"name":"energy_watch_status","description":"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"},{"name":"confirm_energy_watch","description":"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."},{"name":"cancel_energy_watch","description":"Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working."},{"name":"insurance_guide","description":"An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no pr"},{"name":"list_my_price_watches","description":"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 "},{"name":"set_price_watch","description":"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` "},{"name":"update_price_watch","description":"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"},{"name":"delete_price_watch","description":"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."},{"name":"list_my_favorites","description":"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. "},{"name":"save_favorite","description":"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 fav"},{"name":"remove_favorite","description":"Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there."},{"name":"list_my_comparisons","description":"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 u"},{"name":"save_comparison","description":"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 "},{"name":"share_comparison","description":"`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 p"},{"name":"delete_comparison","description":"Deletes one of the signed-in person's saved comparisons; its share link stops working."},{"name":"list_my_lists","description":"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 pro"},{"name":"create_list","description":"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."},{"name":"update_list","description":"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"},{"name":"delete_list","description":"Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found."},{"name":"add_to_list","description":"Adds a product (by slug) to one of the signed-in person's lists with an optional private note; the product's total for `deliver_to_country` today is kept as sav"},{"name":"remove_from_list","description":"Removes a product from one of the signed-in person's lists; `removed: false` when it was not there. Another person's list answers not_found."},{"name":"check_shop_feed","description":"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 "},{"name":"register_shop","description":"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_base"},{"name":"get_shop_registration","description":"What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | ac"},{"name":"verify_shop_domain","description":"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/for"},{"name":"get_shop_feed_diagnostics","description":"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 c"},{"name":"list_my_shops","description":"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 whos"},{"name":"get_shop_statistics","description":"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, e"},{"name":"send_cooperation_inquiry","description":"The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organ"},{"name":"send_contact_message","description":"The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 cha"}],"toolCount":55,"toolsHash":"5ae2dcdf59bee63caa47de4211f35cff24494e7cd85112908c165c40257cc900","serverName":"fordeal","capabilities":["tools","resources"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"compare_internet","description":"Compare provider-level home internet summaries from docs/data/internet.json. Filter by country, technology, advertised speed, listed monthly price, commitment d"},{"name":"search_products","description":"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;"},{"name":"cheaper_abroad","description":"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"},{"name":"list_shops","description":"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"},{"name":"find_best_price","description":"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'"},{"name":"get_product","description":"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` "},{"name":"product_variants","description":"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"},{"name":"price_history","description":"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),"},{"name":"daily_deals","description":"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 p"},{"name":"list_coupons","description":"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"},{"name":"product_rows","description":"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_"},{"name":"trending_new_products","description":"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 se"},{"name":"report_issue","description":"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"},{"name":"report_illegal_content","description":"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 "},{"name":"compare_mobile","description":"Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json. Filter by country (required), operator, minimum data, unlimited calls, com"},{"name":"compare_energy","description":"An indicative calculation, not yet checked by an independent expert (verified: false): present the result as an estimate, never as a guaranteed price; show esti"},{"name":"compare_digital","description":"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 t"},{"name":"api_price_breakdown","description":"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 writt"},{"name":"digital_price_history","description":"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 = con"},{"name":"compare_energy_from_bill","description":"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 PO"},{"name":"energy_unit_prices","description":"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 househo"},{"name":"energy_price_history","description":"Development of household electricity and gas prices per kWh (Czechia), as published by Eurostat (semi-annual, all taxes and levies included, the most common con"},{"name":"energy_suppliers","description":"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"},{"name":"estimate_appliance_energy","description":"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_"},{"name":"watch_energy_fixation","description":"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 distributo"},{"name":"energy_watch_status","description":"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"},{"name":"confirm_energy_watch","description":"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."},{"name":"cancel_energy_watch","description":"Deletes the watch behind a token from any watcher e-mail (confirmation or alert). The row is gone at once; the token stops working."},{"name":"insurance_guide","description":"An information comparison, not a ranking (prices: false, ranking: false, score: null): Fordeal is not an insurance intermediary, sells no insurance, shows no pr"},{"name":"list_my_price_watches","description":"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 "},{"name":"set_price_watch","description":"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` "},{"name":"update_price_watch","description":"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"},{"name":"delete_price_watch","description":"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."},{"name":"list_my_favorites","description":"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. "},{"name":"save_favorite","description":"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 fav"},{"name":"remove_favorite","description":"Removes a product or a digital plan from the signed-in person's favourites. `removed: false` when it was not there."},{"name":"list_my_comparisons","description":"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 u"},{"name":"save_comparison","description":"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 "},{"name":"share_comparison","description":"`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 p"},{"name":"delete_comparison","description":"Deletes one of the signed-in person's saved comparisons; its share link stops working."},{"name":"list_my_lists","description":"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 pro"},{"name":"create_list","description":"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."},{"name":"update_list","description":"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"},{"name":"delete_list","description":"Deletes one of the signed-in person's lists with its products; its share link stops working. Another id answers not_found."},{"name":"add_to_list","description":"Adds a product (by slug) to one of the signed-in person's lists with an optional private note; the product's total for `deliver_to_country` today is kept as sav"},{"name":"remove_from_list","description":"Removes a product from one of the signed-in person's lists; `removed: false` when it was not there. Another person's list answers not_found."},{"name":"check_shop_feed","description":"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 "},{"name":"register_shop","description":"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_base"},{"name":"get_shop_registration","description":"What happened to a registration (register_shop answers `id`; the id is the key, nothing else is needed): status diagnosing | received | approved | rejected | ac"},{"name":"verify_shop_domain","description":"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/for"},{"name":"get_shop_feed_diagnostics","description":"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 c"},{"name":"list_my_shops","description":"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 whos"},{"name":"get_shop_statistics","description":"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, e"},{"name":"send_cooperation_inquiry","description":"The cooperation forms (docs/texty/formulare.md 2–4) without the website. `kind` partner (an affiliate network, a feed provider or a technical integration: organ"},{"name":"send_contact_message","description":"The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 cha"}],"package":null,"toolSurface":{"id":"ts_6jy4xg9qavpu","endpointId":"ep_ttvqbawaum46","hash":"5ae2dcdf59bee63caa47de4211f35cff24494e7cd85112908c165c40257cc900","toolCount":55,"serverName":"fordeal","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-31T18:25:57.899Z","lastSeenAt":"2026-11-02T11:27:22.536Z","observations":6,"toolNames":["compare_internet","search_products","cheaper_abroad","list_shops","find_best_price","get_product","product_variants","price_history","daily_deals","list_coupons","product_rows","trending_new_products","report_issue","report_illegal_content","compare_mobile","compare_energy","compare_digital","api_price_breakdown","digital_price_history","compare_energy_from_bill","energy_unit_prices","energy_price_history","energy_suppliers","estimate_appliance_energy","watch_energy_fixation","energy_watch_status","confirm_energy_watch","cancel_energy_watch","insurance_guide","list_my_price_watches","set_price_watch","update_price_watch","delete_price_watch","list_my_favorites","save_favorite","remove_favorite","list_my_comparisons","save_comparison","share_comparison","delete_comparison","list_my_lists","create_list","update_list","delete_list","add_to_list","remove_from_list","check_shop_feed","register_shop","get_shop_registration","verify_shop_domain","get_shop_feed_diagnostics","list_my_shops","get_shop_statistics","send_cooperation_inquiry","send_contact_message"],"distinctSurfaces":1},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.fordeal/price-hunter","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.fordeal%2Fprice-hunter","firstSeenAt":"2026-10-31T16:22:55.549Z","fetchedAt":"2026-10-31T16:22:55.549Z","normalizedAt":"2026-10-31T16:22:55.549Z"}]},"firstSeenAt":"2026-10-31T16:22:55.549Z","updatedAt":"2026-11-02T11:33:07.980Z"}