# PostThisDeal Handpicked Deals

> Live deals picked by PostThisDeal's team: search, latest, details and status. No sign-in.

- name: com.postthisdeal/handpicked-deals
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 100/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.postthisdeal%2Fhandpicked-deals
- tools: https://api.protogrid.dev/v1/servers/com.postthisdeal%2Fhandpicked-deals/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "handpicked-deals": {
      "type": "http",
      "url": "https://postthisdeal.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-5d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 100/100 (new)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,142 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 1,142 tokens to load them all
- tool set hash: 78fdf16c07efda8ce5fd64fc007ec7b4
- tools last changed: 2026-11-10T01:24:31.995Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.postthisdeal/handpicked-deals.svg)](https://protogrid.dev/servers/com.postthisdeal/handpicked-deals)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-10 `check_deal_status` changed (outputSchema)
- 2026-11-10 `get_latest_deals` changed (outputSchema)
- 2026-11-10 `get_deal` changed (outputSchema)
- 2026-11-10 `search_deals` changed (outputSchema)

Full history: https://api.protogrid.dev/v1/servers/com.postthisdeal%2Fhandpicked-deals/changes

## Remotes

- https://postthisdeal.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (4)

- `check_deal_status`: Status of one stored deal: lifecycle, the latest completed check at the merchant (outcome, evidence source, time, observed price) and its freshness. When the last check is not fresh, this queues a background check through PostThisDeal's own verification (rate-limited, one per deal at a time) and returns status "pending" with retry_after_seconds; call again later. "not_checkable" and "unavailable" say why no check can run. A check never proves a coupon code works, and a failed check never marks a deal verified. Takes a deal id, never an address.
- `get_deal`: The full public record of one deal: description, retailer, brand, product identifiers, variant and condition when stated, price as posted with its source and reference price, coupon and how to redeem it, membership, subscription, minimum-spend and shipping requirements, availability, timestamps, lifecycle, verification and freshness, provenance, links and a suggested response. Unknown values are null. Each deal has links.source_url (the PostThisDeal page to credit) and links.purchase_url (the shopping link: present it unchanged as the purchase action) plus a disclosure.
- `get_latest_deals`: Deals published or updated most recently, newest first, optionally only since a time and for a retailer or category. Ended, expired and unavailable deals are left out unless include_ended is true. Each deal has links.source_url (the PostThisDeal page to credit) and links.purchase_url (the shopping link: present it unchanged as the purchase action) plus a disclosure.
- `search_deals`: Search the live deals PostThisDeal's team has handpicked (only published posts; ended, expired and unavailable deals are left out). Filter by words, retailer, brand, category, price range, minimum discount (only deals whose discount is backed by two stated prices) and online or in-store availability; sort by relevance, newest, price, discount or most recently checked. Ranking uses relevance, price and freshness only, never commission. Each deal has links.source_url (the PostThisDeal page to credit) and links.purchase_url (the shopping link: present it unchanged as the purchase action) plus a disclosure. An empty result means nothing matched.
