untappd-mcp 1.3.1 → 1.4.0
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +15 -6
- package/SKILL.md +5 -5
- package/dist/bundle.js +236 -138
- package/dist/cache/db.js +36 -264
- package/dist/cache/store.js +333 -0
- package/dist/cache/sync.js +11 -11
- package/dist/index.js +12 -4
- package/dist/tools/cache.js +24 -30
- package/dist/tools/diagnostics.js +33 -0
- package/dist/tools/utilities.js +10 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "MCP server for Untappd — beers, breweries, venues, check-ins, wishlists, and your friend feed",
|
|
10
|
-
"version": "1.
|
|
10
|
+
"version": "1.4.0"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "Untappd",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "MCP server for Untappd — search beers/breweries/venues, read profiles/check-ins/wishlists, and post check-ins, toasts, and comments",
|
|
18
|
-
"version": "1.
|
|
18
|
+
"version": "1.4.0",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "untappd-mcp",
|
|
3
3
|
"displayName": "Untappd",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"description": "MCP server for Untappd — search beers/breweries/venues, read check-ins and wishlists, and post check-ins, toasts, and comments",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
package/README.md
CHANGED
|
@@ -82,18 +82,19 @@ Writes (confirm-gated — return a dry-run preview unless called with
|
|
|
82
82
|
`untappd_wishlist_add`, `untappd_wishlist_remove`, `untappd_delete_checkin`,
|
|
83
83
|
`untappd_add_friend`, `untappd_accept_friend`, `untappd_reject_friend`, `untappd_remove_friend`.
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
the remote connector): `untappd_sync_checkins`, `untappd_cache_has_had`,
|
|
85
|
+
Check-in cache: `untappd_sync_checkins`, `untappd_cache_has_had`,
|
|
87
86
|
`untappd_cache_has_had_many`, `untappd_cache_query`.
|
|
88
87
|
|
|
89
|
-
##
|
|
88
|
+
## Check-in cache
|
|
90
89
|
|
|
91
90
|
The Untappd API only exposes paged, most-recent-first check-in lists (50 per
|
|
92
91
|
page) and has **no** "has this user ever had beer X?" lookup — answering that
|
|
93
92
|
from the API alone means paging an entire history (often 11k+ check-ins) against
|
|
94
|
-
a tight ~100-calls/hour rate limit. These tools maintain a
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
a tight ~100-calls/hour rate limit. These tools maintain a SQLite mirror of a
|
|
94
|
+
user's check-ins so the question is answered instantly, offline, with zero API
|
|
95
|
+
calls. The mirror is a local file on the stdio/desktop server (`node:sqlite`,
|
|
96
|
+
path via `UNTAPPD_CACHE_DB`) and a per-user Durable Object on the remote
|
|
97
|
+
connector — the tools and behaviour are identical either way.
|
|
97
98
|
|
|
98
99
|
**Recommended workflow — sync first, then query:**
|
|
99
100
|
|
|
@@ -126,6 +127,14 @@ Syncing **another** user goes through the same authed endpoint as
|
|
|
126
127
|
account is public or your friend. Otherwise the sync returns a clear error
|
|
127
128
|
telling you to add them as a friend first.
|
|
128
129
|
|
|
130
|
+
On the remote connector each logged-in user gets their **own** durable cache
|
|
131
|
+
(keyed by their account), holding only the check-ins their account was allowed
|
|
132
|
+
to fetch — one user can never read another's cache. See
|
|
133
|
+
[`docs/DEPLOY-CONNECTOR.md`](docs/DEPLOY-CONNECTOR.md) for the one-time deploy
|
|
134
|
+
step this adds. `untappd_healthcheck` reports the running version and the exact
|
|
135
|
+
tool set (count + names + a stable hash), so you can confirm which build a
|
|
136
|
+
connector is serving.
|
|
137
|
+
|
|
129
138
|
## Development
|
|
130
139
|
|
|
131
140
|
```sh
|
package/SKILL.md
CHANGED
|
@@ -46,13 +46,13 @@ Each returns a dry-run preview and makes NO network call unless called with
|
|
|
46
46
|
|
|
47
47
|
Photo attachment and wishlist add/remove are not yet supported.
|
|
48
48
|
|
|
49
|
-
##
|
|
49
|
+
## Check-in cache
|
|
50
50
|
|
|
51
51
|
The API can't answer "has this user ever had beer X?" without paging their whole
|
|
52
|
-
history (50/page, rate-limited). These tools keep a
|
|
53
|
-
question is answered instantly with **no** API calls.
|
|
54
|
-
|
|
55
|
-
connector
|
|
52
|
+
history (50/page, rate-limited). These tools keep a SQLite mirror so that
|
|
53
|
+
question is answered instantly with **no** API calls. On the stdio server the
|
|
54
|
+
mirror is a local file (`UNTAPPD_CACHE_DB`, default `~/.untappd-mcp/checkins.db`);
|
|
55
|
+
on the remote connector it's a per-user Durable Object. Same tools either way.
|
|
56
56
|
|
|
57
57
|
**Sync first, then query:**
|
|
58
58
|
|