Search / com.kitsdeals/deals
deals
R0· no sign-inCurated, human-reviewed deal feed for AI agents — live deal search + price watches. No auth.
v1.0.0 · active · website · descriptor JSON · versions
Search / com.kitsdeals/deals
R0· no sign-inCurated, human-reviewed deal feed for AI agents — live deal search + price watches. No auth.
v1.0.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"deals": {
"type": "http",
"url": "https://mcp.kitsdeals.com"
}
}
}claude mcp add --transport http deals https://mcp.kitsdeals.com[mcp_servers.deals]
url = "https://mcp.kitsdeals.com"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"deals": {
"type": "remote",
"url": "https://mcp.kitsdeals.com",
"enabled": true
}
}
}{
"mcpServers": {
"deals": {
"type": "http",
"url": "https://mcp.kitsdeals.com"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=deals&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmtpdHNkZWFscy5jb20ifQ%3D%3D"
}{
"servers": {
"deals": {
"type": "http",
"url": "https://mcp.kitsdeals.com"
}
}
}{
"mcpServers": {
"deals": {
"httpUrl": "https://mcp.kitsdeals.com"
}
}
}extensions:
"deals":
enabled: true
name: "deals"
type: streamable_http
uri: "https://mcp.kitsdeals.com"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations7 of 7 tools declare readOnlyHint or destructiveHinttools.directory_hints3 of 7 tools declare all four hints; missing: latest_deals (destructiveHint, idempotentHint); check_watch (destructiveHint, idempotentHint); get_deal (destructiveHint, idempotentHint); …tools.token_costabout 2,676 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes15 tool changes in 30 daysstability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagereport_outcomechangedinput schemacancel_watchchangedinput schemacheck_watchchangedinput schemaregister_watchchangedinput schemaget_dealchangedinput schemalatest_dealschangedinput schemasearch_dealschangedinput schemareport_outcomechangedinput schemacancel_watchchangedinput schemacheck_watchchangedinput schemaShowing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% ~updated-97d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.kitsdeals.com streamable-http | none | yes | 100% | 319 ms | 2026-07-28 | 2026-10-20 |
cancel_watchdestructive | 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. |
check_watchread-only | 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 supported specs. Confirm the replacement is eligible and monitoring is configured before cancelling the old watch. Requirements needing evidence, correction or a waiver need operator review; re-registering unchanged intent does not resolve them. `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. Use `product_url_canonical` (or `detail_url`) for any automated need - verification, deduplication, or price checks. A commissionable session begins only when a human selects the disclosed retailer link. Convey the `disclosure` string alongside the link. Cancelled watches return WATCH_CANCELLED; unknown ids return NOT_FOUND. |
get_dealread-only | 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. Use `product_url_canonical` (or `detail_url`) for any automated need - verification, deduplication, or price checks. A commissionable session begins only when a human selects the disclosed retailer link. Convey the `disclosure` string alongside the link. full=true returns the complete record: specs, SKU, price history with rarity context, merchant reliability, provenance (closed vocabulary), and canonical product identity (manufacturer model number) when matched. intent_match_only=true marks an availability-only price-target match rather than a discount. |
latest_dealsread-only | 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 know what to watch; never enable it automatically. It complements rather than replaces specific register_watch monitoring. Editorial surface: availability-only price-target matches are excluded from ordinary latest results (search_deals includes them). |
register_watch | 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 concrete model_number usually auto-promotes; family intents can require review. conditions defaults to new and open_box. |
report_outcome | Records what happened after a deal was acted on, including anything that looked wrong (price, stock, dead link, checkout). Reports are saved and read by a human operator. Returns a feedback_id. |
search_dealsread-only | 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 for time-scarce inventory; the response then includes a no_match block describing the register_watch alternative. |
Schemas: list_tools.
{
"name": "com.kitsdeals/deals",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
"remotes": [
{
"url": "https://mcp.kitsdeals.com",
"type": "streamable-http"
}
],
"version": "1.0.0",
"websiteUrl": "https://kitsdeals.com",
"description": "Curated, human-reviewed deal feed for AI agents — live deal search + price watches. No auth."
}