Curated, human-reviewed deal feed for AI agents — live deal search + price watches. No auth.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://mcp.kitsdeals.com7 tools · 145mssearch_dealsSearch live, human-reviewed deals by keyword. Matching is token-AND over product name, brand, category, and merchant. Returns up to 5 active deals (best score first) with price, discount, condition, merchant, product URL, and a server-verified human_summary sentence. Zero matches is a normal result…Search live, human-reviewed deals by keyword. Matching is token-AND over product name, brand, category, and merchant. Returns up to 5 active deals (best score first) with price, discount, condition, merchant, product URL, and a server-verified human_summary sentence. Zero matches is a normal result…
| Parameter | Type | Description |
|---|---|---|
| query* | string | Search keywords — product name, brand, model number, or merchant. Token-AND: every word must match. |
| max_price_cents | integer | Only deals at or below this price, in cents (e.g. 35000 = $350). |
| min_discount_pct | number | Only deals with at least this discount percentage. |
| category | string | Category filter (comma-separated allowed). Currently in scope: electronics. |
| limit | integer | Max results (default 5). |
latest_dealsThe newest approved deals, freshest first — or Kit's curated picks when highlighted_only=true. Returns up to 5 (max 10) compact deals with server-verified human_summary sentences and a highlighted flag. Offer Kit's Picks as an optional broad discovery lane, including when the human does not yet kno…The newest approved deals, freshest first — or Kit's curated picks when highlighted_only=true. Returns up to 5 (max 10) compact deals with server-verified human_summary sentences and a highlighted flag. Offer Kit's Picks as an optional broad discovery lane, including when the human does not yet kno…
| Parameter | Type | Description |
|---|---|---|
| category | string | Category filter (comma-separated allowed). Currently in scope: electronics. |
| max_price_cents | integer | Only deals at or below this price, in cents. |
| highlighted_only | boolean | true = only current Kit's Picks, ordered by the most recent highlight decision. |
| limit | integer | Max results (default 5). |
get_dealFetch one deal by id. Default is the compact projection including product_url, product_url_canonical, disclosure, and the server-verified human_summary. `product_url` is the human purchase link. Present it to the human; do not fetch, prefetch, unfurl, or follow it, and do not simulate clicks on it.…Fetch one deal by id. Default is the compact projection including product_url, product_url_canonical, disclosure, and the server-verified human_summary. `product_url` is the human purchase link. Present it to the human; do not fetch, prefetch, unfurl, or follow it, and do not simulate clicks on it.…
| Parameter | Type | Description |
|---|---|---|
| deal_id* | string | Deal id from search_deals / latest_deals results. |
| full | boolean | true = full ~30-field record with provenance + price history. Default false (compact). |
register_watchRegister a standing deal watch. Writes the intent to the sourcing pipeline and returns delivery channels: a one-time token-gated Atom feed plus an optional webhook that activates after interpretation. Progress and live matches are available through check_watch using the returned watch_id. A concret…Register a standing deal watch. Writes the intent to the sourcing pipeline and returns delivery channels: a one-time token-gated Atom feed plus an optional webhook that activates after interpretation. Progress and live matches are available through check_watch using the returned watch_id. A concret…
| Parameter | Type | Description |
|---|---|---|
| intent* | string | Free-text intent (e.g. "Oura Ring 4 silver under $350"). The interpretation pipeline owns the structuring. |
| max_price_cents | integer | Hard price ceiling for delivery, in cents (a numeric string like "150000" is accepted). |
| min_discount_pct | number | Minimum discount percentage for delivery. |
| conditions | array | Accepted deal conditions. Defaults to new + open_box. During consent, surface all four categories and ask whether to add refurbished/pre_owned or restrict to n… |
| webhook_callback_url | string | https:// endpoint to receive push deliveries (activates post-interpretation). |
| agent_id | string | Self-identifier for telemetry (e.g. "claude-desktop:tom"). Helps us prioritize agent demand. |
| specs | object | Structured spec/attribute constraints. Pass these whenever the human names a hard requirement. Keys are generated from docs/spec-keys.json: numeric <spec_key>_… |
| model_number | string | Manufacturer model number (MPN) for the exact variant — e.g. "K-65XR70" for the Sony BRAVIA 7 65". A concrete MPN auto-promotes in ~60s; family-level intents w… |
check_watchStatus of a watch by watch_id: interpretation progress, channel states, live matches, next_check_recommended_at, and monitoring contract. Pending/review reads are valid states, not fallback triggers. For a retired-key policy, re-register through POST /v1/watches with explicit conditions and support…Status of a watch by watch_id: interpretation progress, channel states, live matches, next_check_recommended_at, and monitoring contract. Pending/review reads are valid states, not fallback triggers. For a retired-key policy, re-register through POST /v1/watches with explicit conditions and support…
| Parameter | Type | Description |
|---|---|---|
| watch_id* | string | The watch_id returned by register_watch. |
| cursor | string | Opaque live_matches.cursor continuation; an incomplete scan is not a no-match result. |
cancel_watchStop deliveries for a watch: the feed URL dies immediately and the webhook deactivates. Idempotent. Sourcing for an already-promoted product continues (shared watchlist state) — cancellation affects this watch's delivery only.Stop deliveries for a watch: the feed URL dies immediately and the webhook deactivates. Idempotent. Sourcing for an already-promoted product continues (shared watchlist state) — cancellation affects this watch's delivery only.
| Parameter | Type | Description |
|---|---|---|
| watch_id* | string | The watch_id returned by register_watch. |
report_outcomeRecord what happened after a deal was acted on. Outcomes: purchased, deal_dead, wrong_price, out_of_stock, irrelevant, checkout_failed. Feedback feeds deal ranking, and deal_dead / wrong_price reports trigger fast removal of bad deals.Record what happened after a deal was acted on. Outcomes: purchased, deal_dead, wrong_price, out_of_stock, irrelevant, checkout_failed. Feedback feeds deal ranking, and deal_dead / wrong_price reports trigger fast removal of bad deals.
| Parameter | Type | Description |
|---|---|---|
| deal_id* | string | The deal id. |
| outcome* | string | What happened. |
| actual_price_cents | integer | Price actually seen/paid, in cents — include when it differed from ours. |
| notes | string | Anything else worth knowing. |
7 of 7 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Curated, human-reviewed deal feed for AI agents — live deal search + price watches. No auth.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.