MCP servers › ai.fordeal › price-hunter
MCP server · registry snapshot 2026-10-30 · last tested 2026-10-30
price-hunter MCP server
Registry name ai.fordeal/price-hunter
Fordeal — the publisher's title
by fordeal.ai · domain (the registry's namespace rule)source link does not open (missing or private)Website ↗
Price comparison for CZ/SK: product prices, shops, digital plans via Streamable HTTP. — the publisher's description
Summary
ai.fordeal/price-hunter is a remote MCP server listed in the official MCP registry at version 1.0.0, under the namespace of the domain fordeal.ai. Its linked repository, github.com/banbosh/fordeal, does not open publicly (missing or private). On 2026-10-30 ProtocolProbe connected to it in read-only mode and read its inventory: 55 tools, 2 resources and 0 prompts.
Record checks
1 of 2 record checks met · 7 do not apply
- met: Registry entry is active and says how to run it
- not met: Source repository link opens
- not applicable: Repository is not archived
- not applicable: Code pushed to the repository in the 90 days before our check
- not applicable: Repository publishes a security policy (SECURITY.md)
- not applicable: Package names its licence with a standard (SPDX) identifier
- not applicable: The version the registry lists can be installed and is not withdrawn
- not applicable: npm package carries build provenance (attestation)
- not applicable: No known critical or high advisory in the package or its dependencies
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
From public records, not a safety rating. Each check with its reason · Is it safe to install?
Operate this server? Correct a fact · README badge · Run the checks yourself
Key facts
- Runs
- remote (hosted by the publisher)
- Transport
- streamable HTTP
- Your own values
- none declared (not a guarantee)
- Sign-in
- none needed to open a session
- Repository
- link does not open publicly
- Tools
- 55
- Last tested
- 2026-10-30
Tool list size
37,526 tokens on Claude Opus 5.5
Added to every request that loads this server's tools (55 tools). Counted with Anthropic's token counter on 2026-10-30, from the tool list we read on 2026-10-30. Median across 25,738 counted servers: 2,858 tokens. How it is counted
How a client gets in
Connects without signing in
Read from the server's public metadata on 2026-10-30 (fordeal.ai), in our read-only connection; no tool was called. It may have changed since. How it is read
Tool list at the three APIs
Not sent yet for this version (1.0.0).
Observed fact
This server accepted a session without any credential and lists 16 tools whose name or declaration suggests they change data (cancel_energy_watch, set_price_watch, update_price_watch, delete_price_watch, save_favorite and 11 more). That is our reading of the names; we did not call them. Source: our connection, 2026-10-30.
Worth knowing before you connect it
- The linked repository does not open publicly, so the code cannot be reviewed through it.
Each line comes from a section below, with its source and date.
How fresh this is
- Live-tested
- yes, a real session (not a text-only review)
- Last tested
- 2026-10-30
- Mode
- read-only (no tool calls)
- Latest version
- 1.0.0, published 2026-10-30 (registry, as of the 2026-10-30 snapshot)
- First listed version
- 2026-10-30 (earliest version still in the registry; older removed versions would be earlier)
- Registry data
- snapshot 2026-10-30
- Package and repository
- checked 2026-10-30
- Engine
- mcp-runtime-engine@0.1.0 · sdk@1.32.0
Dead or stale signals
1 found in the records we hold
- The repository link does not open: GitHub answered HTTP 404 (it does not exist, or it is private). — api.github.com · 2026-10-30 · all servers with this fact
Looked for and not found: deprecated in the registry. Does not apply: listed version cannot be installed or is withdrawn; repository archived; no push in over 365 days. Each line is a dated fact from a public record. It does not say whether the server still works, and a record can change after the date shown.
Changes since the last refresh
New in the registry: not in the list of 2026-10-29, listed on 2026-10-30 with version 1.0.0 (published 2026-10-30).
Source: the official MCP Registry list on 2026-10-29 and on 2026-10-30.
What it is
What does this server offer?
Observed inventoryNone of its 55 tools are described as changing anything. For 55 the reading was uncertain, so no mark is shown.
- compare_internet
“Compare provider-level home internet summaries from docs/data/internet.json.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
10 inputs, 1 required
countrystringrequired“ISO 3166-1 alpha-2 country code, e.g.”technologystringmin_speed_mbpsnumbermin_pricenumbermax_pricenumbercommitment_monthsintegerproviderstringsortstringlimitintegeroffsetinteger
- search_productson 290 other servers
“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…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
23 inputs
querystring“Free text; every word must appear in the product name.”qstring“Short name of `query` (the same search; `query` wins when both are given).”categorystring“Category slug (leaf, main category or group).”slugsstring or array“Product slugs (comma-separated or an array): only these products, every filter still applies.”deliver_to_countrystring“ISO 3166-1 alpha-2 country code, e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”limitintegeroffsetinteger“Rows to skip before `limit` (paging).”facetsboolean“true = also answer `facets` over the WHOLE filtered list, not just this page: brands, shops and shop countries with counts, the price range (min/max total), in…”facet_attributesboolean“false = facets without `attributes` (the whole catalogue without a category has about 1 800 attribute keys; the website's /produkty asks without them).”price_minnumber“Lowest product price in the deliver-to currency (the shown offer's goods price, shipping not counted).”price_maxnumber“Highest product price in the deliver-to currency (shipping not counted).”brandstring or array“Brand or brands (comma-separated in a query string).”shopsstring or array“Shop slugs (e.g.”shop_countrystring or array“Country codes of the shops (e.g.”in_stockboolean“Only products whose shown offer is in stock.”on_saleboolean“Only products with a shop discount or a measured drop.”free_shippingboolean“Only products with free delivery at the shown offer.”min_shop_ratingnumber“Lowest rating of the shown shop, 0..1 (0.9 = 90 % / 4.5 stars).”min_product_ratingnumber“Lowest rating of the product itself, 0..1: the shops' own customer reviews and forDeal reviews (0.9 = 90 %).”attrstring or array“Attribute filter as `key:value` pairs (comma-separated in a query string, or repeated).”sortstring“relevance = best match first (the default with `query`; the answer card names the first row), price = lowest product price first (the default without `query`; …”include_shippingboolean“Order by the total with shipping to `deliver_to_country` instead of the product price (sort=total).”
- cheaper_abroad
“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:…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
deliver_to_countrystring“ISO 3166-1 alpha-2 country code, e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”limitinteger
- list_shopson 3 other servers
“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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input
countrystring“ISO 3166-1 alpha-2 country code, e.g.”
- find_best_priceon 2 other servers
“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 eve…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
8 inputs, 1 required
querystringrequired“Product name, model, EAN, or a product URL.”deliver_to_countrystring“Where the buyer wants delivery (ISO 3166-1 alpha-2).”verified_onlyboolean“Only shops with a customer rating.”sortstring“Order of `offers` and the price `best` is chosen by: product = lowest product price (the default; every offer still carries its shipping and total), total = lo…”include_shippingboolean“Same as sort=total: count shipping in the order (the website's "Zahrnout dopravu").”budgetnumber“Budget in the deliver-to currency; a total above it turns the verdict into buy_alternative.”deepboolean“Let the model weigh the verdict and write the explanation (adds seconds).”localestring“BCP 47 locale for human-readable strings, e.g.”
- get_producton 300 other servers
“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 o…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
7 inputs, 1 required
productstringrequired“Product slug (the stable product id), e.g.”deliver_to_countrystring“Where the buyer wants delivery (ISO 3166-1 alpha-2).”verified_onlyboolean“Only shops with a customer rating.”sortstring“Order of `offers` and the price `best` is chosen by: product = lowest product price (the default; every offer still carries its shipping and total), total = lo…”include_shippingboolean“Same as sort=total: count shipping in the order (the website's "Zahrnout dopravu").”aiboolean“Also run the shops live and let the model write the verdict (slower).”localestring“BCP 47 locale for human-readable strings, e.g.”
- product_variants
“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_…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
productstringrequired“Product slug (the stable product id).”deliver_to_countrystring“ISO 3166-1 alpha-2 country code, e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”
- price_historyon 40 other servers
“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 capt…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs, 1 required
productstringrequired“Product slug or id from find_best_price.”daysinteger“Window in days.”currencystring“Currency of the points.”deliver_to_countrystring“Country whose shown price is the last point (today).”
- daily_deals
“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 reductio…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
6 inputs
countrystring“Country of the shops.”categorystring“Category slug of any level of the tree, e.g.”min_percentnumber“Only discounts of at least this many percent.”stated_onlyboolean“Kept for compatibility; every row carries a struck price (the offer's 30-day low or, until 30 days of history exist, the shop's stated price), with or without …”limitintegermax_per_shopinteger“Shop diversity: the first 48 rows take the shops in turns, at most this many rows per shop; the rest follows by saving.”
- list_couponson 12 other servers
“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).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs
countrystring“Country of the shops.”limitinteger
- product_rows
“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;…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
deliver_to_countrystring“ISO 3166-1 alpha-2 country code, e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”datestring“The day the seasonal calendar is read for (default today).”
- trending_new_products
“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 shippin…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
deliver_to_countrystring“ISO 3166-1 alpha-2 country code, e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”limitinteger“Cards to return, at most 12 (default 12).”
Show 43 more tools
- report_issueon 29 other servers
“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: `ki…”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
11 inputs, 3 required
kindstringrequired“What is wrong: the price, the variant or product, the category the product is filed under, the shop or link, or something else.”product_slugstringrequired“Product slug (the stable product id).”messagestringrequired“What you saw, e.g.”offer_idstring“The offer the report is about (offer_id in the card).”shop_slugstring“The shop's slug, when known.”emailstring“Where the answer goes.”localestring“Language of the answer.”page_urlstring“The page the report was made on.”user_agent_hashstring“sha-256 of the reporter's user agent (the website computes it); only for spotting floods.”ip_hashstring“sha-256 of the reporter's address with a daily salt (the website computes it); the per-visitor limit of five reports a minute counts by it.”websitestring“Leave empty (spam trap).”
- report_illegal_content
“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).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
10 inputs, 5 required
content_kindstringrequired“What content the notice is about.”page_urlstring“The exact page of the content (Art.”product_slugstring“Product slug when the content is on a product page.”explanationstringrequired“Why the content is illegal (Art.”namestringrequired“The notifier's name (Art.”emailstringrequired“The notifier's e-mail: the confirmation of receipt and the decision go there.”good_faithbooleanrequired“Confirms the bona fide belief that the information is accurate and complete (Art.”localestring“Language of the confirmation.”ip_hashstring“sha-256 of the notifier's address with a daily salt (the website computes it); counts the per-visitor limit.”websitestring“Leave empty (spam trap).”
- compare_mobile
“Compare the sourced CZ and SK mobile tariff records in docs/data/mobilni-tarify.json.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
13 inputs, 1 required
countrystringrequired“CZ | SK; required so results and currency stay within one market.”operatorstringdata_gbnumber“GB of mobile data a month (default 0).”unlimited_callsboolean“Filter to tariffs with unlimited calls (true), or explicitly finite calls (false).”commitment_monthsintegeresimbooleanfive_gbooleansortstringminutesinteger“Call minutes a month (default 0).”smsintegerno_commitmentboolean“Only tariffs without a contract period.”roaming_eu_gbnumber“EU roaming data needed a month.”limitinteger
- compare_energyon 1 other server
“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…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
23 inputs
countrystring“CZ (default).”commoditystring“electricity (default) | gas”distributorstring“Distributor of the place: electricity cez-distribuce | egd | pre-distribuce; gas gasnet | gas-distribution | ppd.”ratestring“Electricity distribution rate, e.g.”mwhnumber“Yearly consumption in MWh (electricity: high tariff or all; default 2.5 electricity, 10 gas).”nt_mwhnumber“Electricity low-tariff consumption a year in MWh (two-tariff rates only).”breakerstring“Electricity main breaker: 1x25 | 3x10 | 3x16 | 3x20 | 3x25 (default) | 3x32 | 3x40 | 3x50 | 3x63.”postcodestring“Postcode of the supply point (e.g.”current_monthlynumber“What the household pays today a month with VAT (the current advance), in the country's currency.”current_offerstring“Id of the household's current product from `products` (energy v2): today's yearly total is then priced from that price list for the same need, and saving_year …”current_vt_pricenumber“Today's commodity price per MWh from the household's bill or price list (electricity: high tariff or all; gas: the gas price).”current_nt_pricenumber“Today's low-tariff commodity price per MWh (two-tariff electricity rates; required when nt_mwh > 0).”current_fee_monthnumber“Today's monthly fee of the supplier (stálá platba).”current_prices_vatstring“Whether current_*_price and current_fee_month include VAT: excluded (default, as price lists state them) | included (as a bill often shows them).”fixationstring“Filter, one of none | 12 | 24 | 36: none = variable price without fixation; 12 / 24 / 36 = fixed price up to 1 / 2 / 3 or more years.”pricingstring“Filter: fixed | variable (price-list products, ranked) | spot (market-price products: listed in not_ranked without a total, never ranked).”greenstring“Filter, true: only products whose price list states electricity of renewable origin (none stated yet).”no_penaltystring“Filter, true: only products whose terms state no fee for leaving (an indefinite term).”sortstring“score (default: forDeal score, highest first) | price (yearly total, lowest first).”comparestring“Comma-separated offer ids (2–3) for a side-by-side comparison in `comparison`.”localestring“Language of estimate_note: cs | sk | en (default en).”householdstring“Household type (energy v3) instead of rate + consumption: electricity byt | chata | bojler | akumulace | elektromobil | tepelne-cerpadlo | elektricke-topeni; g…”limitinteger
- compare_digital
“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 Nat…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
14 inputs, 1 required
categorystringrequired“ai-chat | ai-api | ai-creative | streaming | music | vpn | cloud | office | creative | passwords”usageobject“How the buyer uses the service; omit for the plain price list.”messages_per_monthinteger“Flat form of usage.messages_per_month (REST query strings).”input_tokensinteger“Flat form of usage.input_tokens.”output_tokensinteger“Flat form of usage.output_tokens.”cache_sharenumber“Flat form of usage.cache_share.”batchstring“Flat form of usage.batch (true / false).”images_per_monthinteger“Flat form of usage.images_per_month.”video_seconds_per_monthinteger“Flat form of usage.video_seconds_per_month.”purposestring“ai-chat: what the buyer needs it for.”tierstring“Only plans of this tier: free | basic | pro | max (AI subscriptions and picture/video tools), basic | standard | premium (streaming, music, VPN, cloud).”deliver_to_countrystring“The buyer's country; decides the currency and the local prices (CZ prices for CZ).”currencystring“Override the currency (e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”
- api_price_breakdown
“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 tota…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
11 inputs
providerstring“Only this provider's models (Anthropic, OpenAI, Google, DeepSeek, Mistral, xAI, AI21 Labs, Amazon...), case-insensitive.”modelsstring“Comma-separated plan ids from /digital/plans (category ai-api), e.g.”messages_per_monthinteger“Requests a month.”input_tokensinteger“Input tokens of one request.”output_tokensinteger“Output tokens of one request.”cache_sharenumber“Share of the input read from the cache (0-1).”cache_write_sharenumber“Share of the input written into the cache (0-1, with cache_share at most 1).”batchstring“Batch processing at the provider's batch discount, where it offers one.”deliver_to_countrystring“The buyer's country; decides the local currency.”currencystring“Override the local currency.”localestring“BCP 47 locale for human-readable strings, e.g.”
- digital_price_history
“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…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs
planstring“One plan id from /digital/plans.”limitinteger“At most this many changes (default 100).”
- compare_energy_from_bill
“An indicative calculation (verified: false, with estimate_note like compare_energy).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
13 inputs, 3 required
commoditystringrequired“electricity | gas”distributorstringrequired“cez-distribuce | egd | pre-distribuce | gasnet | gas-distribution | ppd”ratestring“Electricity distribution rate, e.g.”breakerstring“Main breaker, e.g.”vt_mwhnumberrequired“Consumption in MWh in the billed period: high tariff or all (gas: all).”nt_mwhnumber“Low-tariff consumption in MWh in the billed period.”period_daysinteger“Days of the billed period (default 365).”vt_price_mwhnumber“Supplier's commodity price per MWh without VAT.”nt_price_mwhnumber“Supplier's low-tariff price per MWh without VAT.”fee_monthnumber“Supplier's monthly fee without VAT.”monthly_advancenumber“Monthly advance with VAT (used when the prices are missing).”localestring“Language of estimate_note: cs | sk | en (default en).”limitinteger
- energy_unit_prices
“An indicative calculation, not yet checked by an independent expert (verified: false); show estimate_note with the result.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs
countrystring“CZ (default)”ratestring“Electricity distribution rate, default D02d.”mwhnumber“Yearly electricity consumption for all_in_kwh, default 2.5.”gas_mwhnumber“Yearly gas consumption for all_in_kwh, default 9.”localestring“Language of estimate_note: cs | sk | en (default en).”
- energy_price_history
“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 a…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs
countrystring“CZ (default)”commoditystring
- energy_suppliers
“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 …”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
countrystring“CZ (default)”idstring“Supplier id from the list, e.g.”localestring“Language of the bill guide steps: cs | sk | en (default en).”
- estimate_appliance_energy
“An estimate (verified: false, estimate_note with the day of the prices).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
13 inputs, 1 required
kindstringrequiredlabel_kwh_yearnumberkwh_per_100_cyclesnumberwashes_per_weeknumberarea_m2numberheat_need_kwh_m2numbersourcestringscopnumberefficiencynumberdistributorstring“Distributor area for the price (default: the first area with priced offers).”price_per_kwhnumber“Own price of one kWh with VAT instead of ours.”countrystring“CZ (default)”localestring“Language of estimate_note: cs | sk | en (default en).”
- watch_energy_fixation
“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 f…”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
13 inputs, 3 required
emailstringrequired“The person's e-mail (they confirm it themselves).”fixation_endstringrequired“Last day of the fixed price, YYYY-MM-DD.”commoditystringrequireddistributorstring“cez-distribuce | egd | pre-distribuce | gasnet | gas-distribution | ppd: without it the alert is a reminder without prices.”ratestring“Electricity rate, default D02d.”mwhnumber“Yearly consumption MWh (high tariff or all).”nt_mwhnumbersupplier_idstringcurrent_offer_idstringcountrystring“CZ (default)”localestring“Language of the e-mails: cs | sk | en.”ip_hashstring“sha-256 of the visitor's address with a daily salt (the website computes it).”websitestring“Leave empty (spam trap).”
- energy_watch_status
“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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
tokenstringrequired
- confirm_energy_watch
“The double opt-in click: the confirmation token from the first watcher e-mail turns the watch on.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
1 input, 1 required
tokenstringrequired
- cancel_energy_watch
“Deletes the watch behind a token from any watcher e-mail (confirmation or alert).”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
1 input, 1 required
tokenstringrequired
- insurance_guide
“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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
9 inputs
countrystring“CZ (default).”kindstring“Only the insurers of this kind of insurance.”onlinestring“true: only insurers whose official site concludes the asked kind (or any kind) online.”assistancestring“true: only insurers whose site states a nonstop (24/7) assistance line.”appstring“true: only insurers with an official mobile app for clients.”claim_onlinestring“true: only insurers whose site takes a claim report online.”sortstring“name (default) | rating | kinds.”comparestring“Comma-separated insurer ids (2–3) for `comparison`.”localestring“Language of the guide URLs (cs | sk | en …, default cs).”
- list_my_price_watches
“Every price watch of the person whose Supabase access token is sent (Authorization: Bearer <token>; an agent API key is refused).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input
localestring“BCP 47 locale for human-readable strings, e.g.”
- set_price_watch
“Creates (or resets) the signed-in person's watch of one product (one per product).”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
4 inputs, 1 required
product_slugstringrequired“The product's slug (search_products, find_best_price).”target_totalnumber“Mail when the total falls to or under this amount, in the currency of deliver_to_country.”deliver_to_countrystring“ISO 3166-1 alpha-2 country code, e.g.”localestring“Language of the alert mails.”
- update_price_watch
“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).”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
4 inputs, 1 required
watch_idstringrequired“The watch's id from list_my_price_watches.”pausedbooleantarget_totalnumber or nulllocalestring“BCP 47 locale for human-readable strings, e.g.”
- delete_price_watch
“Deletes one of the signed-in person's watches; no more mails for it.”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
1 input, 1 required
watch_idstringrequired“The watch's id from list_my_price_watches.”
- list_my_favoriteson 2 other servers
“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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
Takes no inputs.
- save_favoriteon 1 other server
“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.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
2 inputs, 2 required
kindstringrequiredidstringrequired
- remove_favoriteon 4 other servers
“Removes a product or a digital plan from the signed-in person's favourites.”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
2 inputs, 2 required
kindstringrequiredidstringrequired
- list_my_comparisons
“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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input
localestring“BCP 47 locale for human-readable strings, e.g.”
- save_comparison
“Saves 2 to 4 digital plans (plan ids from compare_digital / compare_mobile) as a private comparison in the signed-in person's account.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
3 inputs, 1 required
itemsarrayrequirednamestringlocalestring“BCP 47 locale for human-readable strings, e.g.”
- share_comparison
“`shared: true` makes a read-only link (a new random token; an older link stops working); `shared: false` removes the link.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
3 inputs, 2 required
comparison_idstringrequired“The comparison's id from list_my_comparisons.”sharedbooleanrequiredlocalestring“BCP 47 locale for human-readable strings, e.g.”
- delete_comparison
“Deletes one of the signed-in person's saved comparisons; its share link stops working.”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
1 input, 1 required
comparison_idstringrequired“The comparison's id from list_my_comparisons.”
- list_my_listson 1 other server
“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 products (newest first, the private note a…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input
localestring“BCP 47 locale for human-readable strings, e.g.”
- create_liston 14 other servers
“Creates an empty private list (e.g.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
2 inputs, 1 required
namestringrequired“The list's name, e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”
- update_liston 5 other servers
“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.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
4 inputs, 1 required
list_idstringrequired“The list's id from list_my_lists.”namestring“The list's name, e.g.”sharedbooleanlocalestring“BCP 47 locale for human-readable strings, e.g.”
- delete_liston 10 other servers
“Deletes one of the signed-in person's lists with its products; its share link stops working.”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
1 input, 1 required
list_idstringrequired“The list's id from list_my_lists.”
- add_to_liston 4 other servers
“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 saved_total (for "the price changed since …”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
5 inputs, 2 required
list_idstringrequired“The list's id from list_my_lists.”product_slugstringrequired“The product's slug (search_products, find_best_price).”notestring or null“A private note to the product (at most 280 characters); never shown on the share link.”deliver_to_countrystring“ISO 3166-1 alpha-2 country code, e.g.”localestring“BCP 47 locale for human-readable strings, e.g.”
- remove_from_liston 2 other servers
“Removes a product from one of the signed-in person's lists; `removed: false` when it was not there.”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
3 inputs, 2 required
list_idstringrequired“The list's id from list_my_lists.”product_slugstringrequiredlocalestring“BCP 47 locale for human-readable strings, e.g.”
- check_shop_feed
“Before or instead of registering: reads one product feed and answers whether Fordeal can use it.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
8 inputs, 1 required
feed_urlstring“The feed's public address (Heureka, Zboží, Google Merchant, Ceneo, Idealo, Árukereső XML or CSV).”feed_contentstring“The feed file as text (XML or CSV), at most 8 MB.”feed_base64string“The feed file's bytes as base64, for a gzip-packed file (.xml.gz).”filenamestring“The file's name, echoed back.”countrystringrequired“The shop's delivery country (ISO code from GET /api/v1/deals/countries): its currency and the shipping the total uses.”domainstring“The shop's host, e.g.”formatstring“The feed format when known; detected from the content otherwise.”preview_itemsinteger“How many items the preview shows (default 6, at most 24).”
- register_shop
“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 ac…”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
14 inputs, 7 required
shop_namestringrequired“The shop's name as it should appear in the comparison.”domainstringrequired“The shop's domain or URL, e.g.”countrystringrequired“Delivery country of the shop, ISO 3166-1 alpha-2 from GET /api/v1/deals/countries.”emailstringrequired“Contact e-mail of the shop; it receives the confirmation link and the decision.”feed_urlstring“The product feed (Heureka, Zboží, Google Merchant, Ceneo, Idealo, Árukereső XML or CSV).”feed_contentstring“The feed as a file instead of an address: the XML or CSV text itself (at most 8 MB).”feed_base64string“The feed file's bytes as base64, for a gzip-packed file (.xml.gz, .csv.gz).”feed_filenamestring“The uploaded file's name, kept with its fingerprint.”affiliatestringrequired“How commission is paid: "own" = forDeal's own programme (5 % of the net order value, partner portal), a network name the country lists (ehub, cj, awin, dognet,…”terms_versionstringrequired“The partner terms version being accepted; today 2026-10-09 (the terms are at /partner/smlouva).”accept_termsbooleanrequired“true = the contact accepts the partner terms of the given version.”localestring“Language of the mails (cs, sk, en, …); the country's default language when absent.”notestringwebsitestring“Leave empty (spam trap: a filled value is discarded quietly).”
- get_shop_registration
“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, th…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
idstringrequired“The request id from the registration answer.”
- verify_shop_domain
“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 w…”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
2 inputs, 2 required
domainstringrequired“The shop's domain as registered.”tokenstringrequired“The token from verification.ownership of the registration answer.”
- get_shop_feed_diagnostics
“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, f…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
slugstringrequired“The shop's slug from list_shops or GET /api/v1/deals/shops.”
- list_my_shops
“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`; …”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
Takes no inputs.
- get_shop_statistics
“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 deli…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
shopstringrequired“The shop's slug from list_my_shops.”fromstring“First UTC day (YYYY-MM-DD); 29 days before `to` by default.”tostring“Last UTC day (YYYY-MM-DD); today by default.”
- send_cooperation_inquiry
“The cooperation forms (docs/texty/formulare.md 2–4) without the website.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
14 inputs, 4 required
kindstringrequired“Who writes: partner | media | creator.”namestringrequired“The contact person (partner, media) or the name of the channel (creator).”emailstringrequired“Where the confirmation and the answer go; never shown.”messagestringrequired“The offer and its terms (partner), the topic or the information needed (media), the idea (creator).”organizationstring“The company or network (partner, required), the newsroom or medium (media, required).”websitestring“The partner's website or the creator's main channel (required for both).”marketsarray or string“Markets the offer is about, ISO codes (partner, required): an array or a comma-separated string.”cooperation_typestring“What a partner offers (required for a partner).”topicstring“The creator's topic and audience (required for a creator).”deadlinestring“The day the media need an answer by (YYYY-MM-DD).”linksstring“Documentation, a feed, the article, other channels or a media kit (links as text).”localestring“Language of the confirmation (cs, sk, en; others get English).”ip_hashstring“sha-256 of the sender's address with a daily salt (the website computes it); counts the per-visitor limit.”nicknamestring“Leave empty (spam trap: a filled value is discarded quietly).”
- send_contact_message
“The /kontakt form without the website: `name`, `email` (where the answer goes), `topic` general | support | cooperation | privacy and `message` (10 to 4 000 characters).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
7 inputs, 4 required
namestringrequired“Who writes (a name or how to address the person).”emailstringrequired“Where the answer goes; never shown, never mailed by the form itself.”topicstringrequired“general = a question about Fordeal, a price or a shop; support = a problem with the website or the account; cooperation = partners, media, creators (shops regi…”messagestringrequired“The message itself, 10 to 4 000 characters.”localestring“Language of the page the person wrote from (cs, sk, en, …).”ip_hashstring“sha-256 of the sender's address with a daily salt (the website computes it); counts the per-visitor limit.”nicknamestring“Leave empty (spam trap: a filled value is discarded quietly).”
Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-30.
How well are its tools described?
Features #4 and #5
How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.
Descriptions
AI reading of each description
No AI reading was available for this server's tools (the two runs did not agree, or the listing was not reviewed).
Counted from the listing
- Parameters with a description
- 83% of 306
- Tools with a description
- 100% of 55
- Typical description length
- 732 characters
The tool set
Counted from the listing
- Tools
- 55
- Size of the list
- about 27,070 tokens for an agent to load (characters ÷ 4)
- Naming
- 55 of 55 names use snake_case
AI reading: easy to mix up
No pair found.
The AI items cover 0 of 55 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.
How do I add it to my client?
Config from the registry entry
From the remote endpoint (Streamable HTTP)
We connected to this URL on 2026-10-30 (a read-only session: no tool was called).
Add to CursorAn install link in the format Cursor documents, holding the Cursor config below.
Claude Desktop or claude.ai
Settings → Connectors → Add custom connector, then paste: https://fordeal.ai/mcp
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
"mcpServers": {
"price-hunter": {
"url": "https://fordeal.ai/mcp"
}
}
}VS Code · .vscode/mcp.json
{
"servers": {
"price-hunter": {
"type": "http",
"url": "https://fordeal.ai/mcp"
}
}
}VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"price-hunter","type":"http","url":"https://fordeal.ai/mcp"}'Claude Code
claude mcp add --transport http price-hunter https://fordeal.ai/mcp
Cline · cline_mcp_settings.json (Cline CLI: ~/.cline/data/settings/; in the editor: MCP Servers → Configure → Configure MCP Servers)
{
"mcpServers": {
"price-hunter": {
"type": "streamableHttp",
"url": "https://fordeal.ai/mcp",
"disabled": false,
"autoApprove": []
}
}
}Gemini CLI · ~/.gemini/settings.json, or .gemini/settings.json in a project
{
"mcpServers": {
"price-hunter": {
"httpUrl": "https://fordeal.ai/mcp"
}
}
}OpenAI Codex · ~/.codex/config.toml, or .codex/config.toml in a trusted project
[mcp_servers.price-hunter] url = "https://fordeal.ai/mcp"
Zed · Zed settings file (command: zed: open settings file)
{
"context_servers": {
"price-hunter": {
"url": "https://fordeal.ai/mcp"
}
}
}Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 --server-url https://fordeal.ai/mcp --transport http
- Optional settings the entry also lists (left out above): Authorization.
- The server runs on the operator's infrastructure; it may ask you to sign in when you first connect.
- Zed's docs we read on 2026-10-26 describe remote servers by URL and do not name the transport.
- The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.
Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21; Cline, Gemini CLI, OpenAI Codex and Zed 2026-10-26). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.
Does the registry listing match what we found?
Feature #6The registry checks an entry when it is published (each new version), and nothing re-checks it on a schedule. A difference below is about the listing, not a judgement of the publisher.
| Registry says | We found | Result | Source · date |
|---|---|---|---|
| Remote endpoint fordeal.ai/mcp | Session opened | matches | our test · 2026-10-30 |
| No credential declared as required | Opened a session without any credential | matches | our test · 2026-10-30 |
| Repository github.com/banbosh/fordeal | Does not open (not found or private) | differs | api.github.com · 2026-10-30 |
Who made it?
Feature #7 · lineage
Facts about the publisher. We do not turn them into a trust score.
- Namespace
- ai.fordeal
- Repository
- github.com/banbosh/fordeal — does not open publicly
Source: the registry entry and api.github.com · 2026-10-30.
Publish this server? Run these checks against it yourself before release, from your own machine: a server the command starts, or your own server at its URL after a one-time proof that you control it: npx protocolprobe-selftest.
Choosing
Record checks
Public records · not a safety rating1 of 2 record checks met · 7 do not apply
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
- MetRegistry entry is active and says how to run itActive, with a package or a remote address.
- Not metSource repository link opensThe linked repository returned HTTP 404: it does not exist or is private.What changes this check: This check opens the repository link in the registry entry. GitHub's documentation describes changing a repository's visibility in its Settings, under Danger Zone, Change visibility. GitHub: setting repository visibility
- Does not applyRepository is not archivedNo public GitHub repository to read.
- Does not applyCode pushed to the repository in the 90 days before our checkNo public GitHub repository to read.
- Does not applyRepository publishes a security policy (SECURITY.md)No public GitHub repository to read.
- Does not applyPackage names its licence with a standard (SPDX) identifierRemote server: it ships no package.
- Does not applyThe version the registry lists can be installed and is not withdrawnRemote server: it ships no package.
- Does not applynpm package carries build provenance (attestation)Remote server: it ships no package.
- Does not applyNo known critical or high advisory in the package or its dependenciesRemote server: it ships no package.
Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-30. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating, and the same rules apply to every server. How each check works · Leaderboards · How we stay neutral
Common questions about ai.fordeal/price-hunter
Answered from the data aboveWho publishes ai.fordeal/price-hunter?
The registry ties the namespace ai.fordeal to the domain fordeal.ai; only its owner can publish under it. Its linked repository, github.com/banbosh/fordeal, does not open publicly (missing or private). These are facts from the registry and GitHub, not a rating.
Is ai.fordeal/price-hunter safe to install?
We do not rate servers as safe or unsafe. 1 of its 2 applicable record checks are met (facts from public records, each listed on this page). What the records show: The repository it links to does not open publicly, so its code cannot be inspected through that link. These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.
Does ai.fordeal/price-hunter need an API key or sign-in?
It opened a session without any credential on 2026-10-30. The registry entry declares no required credential; no declaration is not a guarantee.
Has ai.fordeal/price-hunter been security tested?
Partly. 3 of the 14 checks that apply to it were exercised. It accepted a session without any credential and lists tools whose names suggest they change data. We did not call them. ProtocolProbe publishes no security verdict for a named server.
Where is the source code of ai.fordeal/price-hunter?
The registry links to github.com/banbosh/fordeal, but that link does not open publicly, so the code cannot be inspected through it.
Found this page useful?
Anonymous · no sign-inA quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.
Compare with another server
Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.
Security testing
What did we test, and what did we leave out?
18 checks · features #1, #2
Open without sign-in
It accepted a session without any credential and lists tools whose names suggest they change data. We did not call them. No security score is given; a check we did not run is never counted as passed.
- Inventory: exercised
- Hidden instructions: exercised
- Real execution: not run · our policy
- Secret leak: not run · nothing to check it against
- Internal addresses: not run · our policy
- Unconfirmed changes: not run · our policy
- Bad input: not run · our policy
- Model requests: not run · nothing to check it against
- Sensitive questions: not run · nothing to check it against
- Folder boundary: not run · our policy
- Log leaks: not run · nothing to check it against
- Hidden content: exercised
- Fake assistant turns: not applicable
- Token passthrough: not applicable
- Token audience: not applicable
- Sign-in redirect: not run · our policy
- Consent handling: not testable from outside
- Sign-in metadata: not applicable
3 exercised11 not run (reason given)4 not applicable
Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 3 of the 14 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.
- 1Inventory
tool-listReads the declared tools, resources and prompts.exercised - 2Hidden instructions
description-poisoningLooks for hidden instructions in tool descriptions.exercised - 12Hidden content
audience-hidingChecks resources that hide content from the user.exercised
- 3Real execution
real-executionCalls a tool and checks what really happens.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 4Secret leak
canary-leakPlants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 5Internal addresses
ssrfChecks whether a tool can be steered to internal addresses.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 6Unconfirmed changes
write-without-confirmationChecks whether tools that change data act without asking.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 7Bad input
error-handlingSends bad input and watches how the server answers.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 8Model requests
samplingChecks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 9Sensitive questions
elicitation-sensitive-dataChecks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 10Folder boundary
root-boundaryChecks whether the server reaches outside the folders it was given.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 11Log leaks
logging-side-channelChecks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 16Sign-in redirect
open-redirectChecks the sign-in redirect for abuse.Testing the sign-in redirect means sending probes to the operator's sign-in service, which we do not do.not run · our policy - 17Consent handling
confused-deputyChecks consent handling when one service acts for another.Depends on the operator's own consent screen, which differs per server and cannot be tested from outside.not testable from outside
- 13Fake assistant turns
fake-assistant-turnChecks prompts that pose as the assistant's own words.The server exposes no prompts.not applicable - 14Token passthrough
token-passthroughChecks whether the server forwards a user's token to other services.The server opened a session without sign-in, so there is no token flow to check.not applicable - 15Token audience
token-audience-validationChecks whether tokens meant for another service are accepted.The server opened a session without sign-in, so there is no token flow to check.not applicable - 18Sign-in metadata
oauth-url-schemeChecks the published sign-in metadata for unsafe URLs.No sign-in (OAuth) metadata is published, so there are no sign-in addresses to check.not applicable
Source: our own test, 2026-10-30, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.
What happened during the test?
Feature #8
The steps in order, as the test record holds them.
- 0 msStarted a read-only session with the server's remote endpoint
- 1,406 msConnected after 0 redirects. No credential was sent or needed.
- Read the inventory: 55 tools, 2 resources, 0 prompts.
- 8,823 msFinished: 3 checks exercised.
Reference
How is it classified?
18 fields
One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.
“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.
Cite or correct this page
Sources and corrections
Suggested citation
ProtocolProbe. “ai.fordeal/price-hunter: MCP server record.” Data checked 2026-10-30. https://protocolprobe.com/mcp/servers/ai.fordeal/price-hunter
Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.
As JSON: this record in the API · API documentation.
Badge for your README
[](https://protocolprobe.com/mcp/servers/ai.fordeal/price-hunter)
It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.
Something wrong, or is this yours?
If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.
Write to hello@protocolprobe.com · corrections log · methodology