untappd-mcp 2.1.3 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/chrischall/untappd-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "2.1.3",
9
+ "version": "2.2.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "untappd-mcp",
14
- "version": "2.1.3",
14
+ "version": "2.2.1",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -42,7 +42,7 @@ Most user tools default `username` to your configured account when omitted.
42
42
 
43
43
  ## Response shape (`view`)
44
44
 
45
- Thirteen of this server's 45 tools take `view: "compact" | "full"`, and
45
+ Thirteen of this server's 46 tools take `view: "compact" | "full"`, and
46
46
  **`compact` is the DEFAULT** — the slim rung is what you get without asking
47
47
  for it.
48
48
 
@@ -104,14 +104,14 @@ silently manufactured.
104
104
  `full` already IS the upstream response and a third value would silently alias
105
105
  one that exists.
106
106
 
107
- ### The 32 tools without `view`
107
+ ### The 33 tools without `view`
108
108
 
109
109
  Each for its own reason — and none of them will tell you it ignored the
110
110
  parameter, because an undeclared key is dropped by zod without a warning:
111
111
 
112
- - **The 11 confirm-gated writes** (`untappd_checkin`, `untappd_toast`,
112
+ - **The 12 confirmation-gated writes** (`untappd_checkin`, `untappd_toast`,
113
113
  `untappd_add_comment`, the two deletes, the wishlist pair, the four friend
114
- actions) answer with a dry-run preview or a receipt. Nothing in a receipt is
114
+ actions, and the local `untappd_cache_forget`) answer with a confirmation preview or a receipt. Nothing in a receipt is
115
115
  decoration.
116
116
  - **`untappd_sync_checkins` / `untappd_sync_user_beers`** answer with sync
117
117
  PROGRESS — pages walked, `another_run_needed`, `backfill_complete`. Slimming
@@ -140,10 +140,15 @@ parameter, because an undeclared key is dropped by zod without a warning:
140
140
  (#161) — it takes a `view` now, and its field shape is documented with the
141
141
  other projections above.
142
142
 
143
- ## Write tools (confirm-gated — these post to your public account)
143
+ ## Write tools (confirmation-gated — these post to your public account)
144
144
 
145
- Each returns a dry-run preview and makes NO network call unless called with
146
- `confirm: true`:
145
+ Each asks the user to confirm first. Where the client can show a confirmation
146
+ prompt, it does. Otherwise the first call makes NO network call and returns
147
+ `status: "confirmation-required"` with a `preview` of the exact request and a
148
+ `confirmToken`; show the preview to the user, and only after they approve call
149
+ the tool again with the same arguments plus `confirmToken`. A token works once
150
+ and only for those arguments (a change returns `DRAFT_CHANGED` with a fresh
151
+ preview). `MCP_CONFIRM_MODE` on the server can make this `auto` or `refuse`.
147
152
 
148
153
  - `untappd_toast` — toast/like a check-in (this endpoint is a toggle).
149
154
  - `untappd_add_comment` — comment on a check-in.
@@ -185,6 +190,12 @@ Query tools (has-had ones consult BOTH sources — a hit in either = had):
185
190
  - `untappd_cache_query` — filter cached check-ins by brewery, style, `min_rating`,
186
191
  venue, and date range.
187
192
 
193
+ **Retention.** The cache keeps what you sync until you remove it — including
194
+ friends' dated check-ins, comments and venues. `untappd_cache_forget` (confirmation-gated)
195
+ deletes one user's check-ins, distinct beers and sync state from the LOCAL cache
196
+ only; Untappd is untouched and a later sync can re-fetch. The file is created
197
+ owner-only (dir `0700`, file `0600`).
198
+
188
199
  Every cache read returns a `freshness` block reporting each source's completeness
189
200
  separately (plus `coverage_complete` and a `caveat` when incomplete), so you can
190
201
  flag a "not found" as possibly a false negative until the relevant sync finishes.