# PostThisDeal Deal Evidence

> Deals with their evidence: price, conditions, eligibility, freshness and whether it was checked.

- name: com.postthisdeal/deal-evidence
- version: 1.2.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%2Fdeal-evidence
- tools: https://api.protogrid.dev/v1/servers/com.postthisdeal%2Fdeal-evidence/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "deal-evidence": {
      "type": "http",
      "url": "https://postthisdeal.com/wp-json/ptd-evidence/v1/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`: 8 of 8 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,950 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: 8, about 1,950 tokens to load them all
- tool set hash: 4218031ab63c8c8782fd28306475d8b9
- tools last changed: 2026-11-09T21:04:41.053Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.postthisdeal/deal-evidence.svg)](https://protogrid.dev/servers/com.postthisdeal/deal-evidence)
- 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-09 `get_comparison` added
  - One published comparison: the exact product, every approved offer with its seller, price, stated shipping, known total, evidence status and last automated check, whether the price changed since the editors' review, sourced end dates, and the editorial verdict. last_human_review and last_price_check are separate facts. The lowest known total is named only among the offers PostThisDeal checked; commission is never a ranking input.
- 2026-11-09 `search_comparisons` added
  - Published price comparisons built and reviewed by PostThisDeal editors: one exact product (model, kit, condition) compared across retailers. Only editor-approved offers are included; unreviewed AI findings never are. Each result has a stable comparison_id for get_comparison.

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

## Remotes

- https://postthisdeal.com/wp-json/ptd-evidence/v1/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `check_eligibility`: Evaluate whether a shopper can get an offer’s price, given what you know about them: memberships, location, app or store purchase, first order, coupon clipping, Subscribe & Save and order total. Anything not supplied stays unknown and makes the verdict "uncertain" rather than "eligible".
- `get_changes`: Offers updated, verified or withdrawn since a cursor (or a time). Each change has a category: initial (a first record — not a check), check (a completed check confirmed the price), price_check (a completed check found a different price), availability, freshness, publication (withdrawn, restored, expired), listing (an edit to the listing — stated, not checked). Pass next_cursor back as since to continue.
- `get_comparison`: One published comparison: the exact product, every approved offer with its seller, price, stated shipping, known total, evidence status and last automated check, whether the price changed since the editors' review, sourced end dates, and the editorial verdict. last_human_review and last_price_check are separate facts. The lowest known total is named only among the offers PostThisDeal checked; commission is never a ranking input.
- `get_offer`: The full evidence record for one offer: exact product identity, price and its conditions, the verification ledger, freshness, price context and recent changes.
- `get_price_context`: How the offer’s price compares with independent checks of the same exact product, and how strong that comparison is (coverage: strong, limited or none). Repeat the coverage alongside any conclusion.
- `search_comparisons`: Published price comparisons built and reviewed by PostThisDeal editors: one exact product (model, kit, condition) compared across retailers. Only editor-approved offers are included; unreviewed AI findings never are. Each result has a stable comparison_id for get_comparison.
- `search_deals`: Find current offers PostThisDeal tracks that match a need and budget. Results are the best of the offers PostThisDeal tracks, not every store. Each carries its freshness (confirmed, due, overdue or not independently verified), a status block with the separate facts (verification: independent|merchant|none; freshness; availability; price: matched|changed|variable|unknown; publication), conditions and unknowns. Withdrawn offers are never returned. Give memberships to leave out prices the shopper cannot get.
- `verify_offer`: Request a fresh check of the offer at the retailer, and report exactly what could and could not be confirmed. request_status says whether a check was made (completed, attempted_no_result, cached, in_progress, refused); verification_established is true only when a completed check read a price. A failed or unreadable check verifies nothing. A page check confirms a listed price and availability at most — never that a coupon code works. Needs a PostThisDeal agent key; repeated requests for the same offer within minutes return the last result.
