
Untappd
io.github.darrenjrobinson由 GitHub 账号 darrenjrobinson 发布v2.1.0更新于 Oct 29, 2026
MCP server exposing Untappd API tools for AI agents — full v4 read API coverage
概览
只读的 Untappd 啤酒 API MCP 服务器,让助手搜索啤酒、酒厂和场所,读取签到动态并汇总用户统计。
- 可以做什么
- 搜索并查询啤酒、酒厂和场所,场所搜索可带位置信息
- 读取场所、啤酒、酒厂及单条签到的详情与近期签到动态
- 查看用户资料、动态、去重啤酒、心愿单、徽章和好友
- 读取全球、本地和好友签到动态,以及热门啤酒
- 汇总统计,如用户的风格与酒厂分布、徽章摘要或某场所的签到情况
- 管理 Untappd OAuth 登录并报告认证状态
- 适用场景
- 适合让助手基于 Untappd 数据回答啤酒、酒厂、酒吧现场动态或某用户饮酒记录的问题,例如查看某场所最近有哪些啤酒被签到,或总结某人的口味偏好。
- 运行要求
- 通过 npx 在本地运行,需要 Node.js 20 或更高版本。需要 Untappd API 的 client ID 与 client secret(UNTAPPD_CLIENT_ID、UNTAPPD_CLIENT_SECRET);若两者和访问令牌都未配置,服务器启动即退出。OAuth 访问令牌(UNTAPPD_ACCESS_TOKEN 或交互式 authenticate_untappd 流程)可解锁好友动态和更丰富的用户数据。可选 UNTAPPD_USERNAME、UNTAPPD_REDIRECT_URL、UNTAPPD_TOKEN_PATH。需要访问 Untappd API 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Untappd,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
untappd-mcp-server
[npm version] [npm downloads] [license]
A Model Context Protocol (MCP) server that exposes the Untappd API as tools for AI agents — 27 tools covering the full Untappd v4 read API, plus built-in interactive OAuth authentication. Search venues, breweries, and beers; check what's on tap via check-in feeds; explore user badges, friends, wish lists, and drinking history; and aggregate stats — all from any MCP-compatible client.
Prerequisites
- Node.js 20+
- Untappd API credentials (
client_idandclient_secret) from untappd.com/api - Optional: an Untappd OAuth access token to unlock authenticated tools — obtainable in-chat via the
authenticate_untappdtool ornpx untappd-mcp-server auth(see Interactive Authentication)
Quick Start
Via npx (zero install)
PowerShell
Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
Tools
Tools marked 🔑 token require an access token (UNTAPPD_ACCESS_TOKEN env var or interactive authentication).
Authentication Tools
authenticate_untappd
Interactively authenticate with Untappd via OAuth: opens your browser to Untappd's approve page, captures the redirect on a temporary localhost listener, and saves the access token — the 🔑 tools work immediately, no restart. Prerequisite: your Untappd app's Callback URL must be set to exactly http://localhost:8737/callback (or your UNTAPPD_REDIRECT_URL).
get_auth_status
Report authentication status: token presence, source (env var or token file), file path, and whether the 🔑 tools are unlocked. Free by default; validate: true verifies the token with one API call.
Search & Lookup
venue_search
Search for venues (breweries, bars, restaurants) by name with optional location awareness.
search_brewery
Search for breweries by name.
search_beer
Search for beers by name.
Venue
get_venue_info
Retrieve detailed information and recent check-ins for a venue.
get_venue_checkins
Retrieve the recent check-in feed for a venue. This is the primary tool for determining what's currently on tap — recent check-ins act as a live signal for available beers.
get_venue_foursquare_lookup
Resolve a Foursquare venue ID to its Untappd venue — the bridge between Foursquare/location data and Untappd venue tools.
Beer
get_beer_info
Retrieve detailed information for a specific beer.
get_beer_checkins
Retrieve the recent public check-in feed for a specific beer — what people are saying about it right now, and where they're drinking it.
get_trending_beers
Retrieve globally trending beers (macro and micro brew lists, by recent check-in velocity). No parameters.
Brewery
get_brewery_info
Retrieve detailed information, beer list, and recent check-ins for a brewery.
get_brewery_checkins
Retrieve the recent public check-in feed for a brewery — all its beers being checked in globally.
User
get_user_info
Retrieve profile and stats for an Untappd user.
get_user_activity
Retrieve the recent check-in activity feed for a user.
get_user_distinct_beers
Retrieve the unique beers a user has checked in, with flexible sort ordering. sort=checkin with limit=1 is the single-call pattern for "most-checked-in beer".
get_user_wishlist
Retrieve beers on a user's wish list.
get_user_badges
Retrieve a user's earned badges (pages of 50, most recent first).
get_user_friends
Retrieve a user's friend list (public accounts only).
Activity Feeds
get_global_feed
Retrieve the global public check-in feed (The Pub). High rate-limit cost for the data returned — prefer min_id polling to fetch only new check-ins. Note: standard API keys are typically not authorized for /thepub — Untappd returns "You are not authorized to call this method from this key" unless your key has elevated access (get_local_feed is not restricted).
get_local_feed
Retrieve the public check-in feed near a geographic point.
get_friend_feed 🔑 token
Retrieve the friend check-in feed for the authenticated user.
Checkin
get_checkin_info
Retrieve extended details for a specific check-in, including badges earned, toasts, and comments.
Composite / Aggregation
These tools make multiple API calls (1 per page scanned — 50 beers/badges, 25 check-ins). They pre-check the remaining rate limit before starting and stop early — setting truncated: true in the response — if the budget runs low.
get_user_stats_at_venue
Get a user's check-in stats at a specific venue — visit count, last visit, average rating, top beers — by scanning their recent check-in feed. Untappd's API has no venue-history endpoint, so the stats cover the scanned window (max_pages × 25 check-ins), not all time.
search_venue_then_get_user_stats
Search for a venue by name, then get the user's check-in stats at the top match.
get_user_beer_stats
Aggregate a user's distinct beer history into style, brewery, and rating breakdowns — top styles, top breweries, average personal vs global ratings, highest-rated, and most-checked-in.
get_user_badge_summary
Retrieve all badges for a user (paginating to completion) with a structured summary.
Rate Limiting
The Untappd API allows 100 calls per hour per API key (per access token when authenticated). Every tool response includes the current rate limit status:
Composite tools call assertRateLimitSufficient before starting pagination and stop early with truncated: true rather than exhausting the budget. If the limit is exceeded, the Untappd API returns a 429 error which is surfaced as: Rate limit exceeded. Limit: 100, Remaining: 0. Resets hourly.
Authentication
When an access token is configured (env var or saved token file), the server prefers it for all calls — rate limits become user-scoped and /user endpoints return richer data. UNTAPPD_USERNAME provides a default username for authenticated user tools.
The server exits on startup if neither a client id/secret pair nor an access token is configured.
Interactive Authentication
You don't need to obtain an access token manually — the server can run Untappd's OAuth flow for you.
One-time prerequisite: in your Untappd app settings at untappd.com/api, set the Callback URL to exactly:
(or the value of UNTAPPD_REDIRECT_URL if you override it — it must be a localhost http URL, and the two must match exactly or Untappd rejects the flow).
In chat: ask your agent to run the authenticate_untappd tool. Your browser opens to Untappd's approve page; once you approve, the token is saved and the 🔑 tools work immediately — no restart needed.
In a terminal:
(In the repo: npm run auth.)
Storage & precedence: the token is saved to ~/.untappd-mcp-server/token.json (override with UNTAPPD_TOKEN_PATH). If UNTAPPD_ACCESS_TOKEN is set it always wins over the file. Untappd tokens do not expire.
Security note: the token is stored in plaintext with 0600 permissions on macOS/Linux; on Windows protection relies on your user-profile ACLs. Delete it any time with auth --clear. Tool outputs only ever include a masked form of the token.
Development
The smoke test uses your UNTAPPD_* env vars, skips authenticated tools when no access token is set, and aborts if the remaining rate limit drops below 5. Filter to a single tool with npm run smoke -- --only=tool_name.
Testing with MCP Inspector
Known Limitations
- No tap list data — actual tap lists require an Untappd for Business subscription. Venue check-in feeds serve as a real-time proxy.
- No venue events — Untappd's public API has no events endpoint, and the Eventbrite search API that could have bridged the gap was discontinued; deferred to v3.
- No venue-history endpoint — the v4 API has no per-user venue history;
get_user_stats_at_venuescans the recent check-in feed instead, so its stats cover a window (max_pages× 25 check-ins), not all time. - Rate limit: 100/hour — minimise redundant calls; every response surfaces
rateLimit.remaining. - Feed limit caps — tools accept
limitup to 50, but the API caps some feeds at 25 server-side. - Global feed requires an elevated key —
/thepub(get_global_feed) is not authorized for standard API keys; the local feed works with any key. - Foursquare lookup requires v2 IDs — the MD5-hash format; Foursquare v3 numeric IDs will not work.
- Venue IDs required — use
venue_searchfirst to resolve a venue name to an ID. - Public check-ins only — private user accounts are not visible.
- Read-only — write operations (check-in, toast, comment, wish-list management) are deferred to v3.
- MCP client timeouts — some MCP clients cap tool-call duration below the
authenticate_untappddefault of 180s; pass a smallertimeout_secondsif your client times out first, or usenpx untappd-mcp-server authin a terminal instead.
License
MIT
来源:README.md,提交 457aaa9
工具
0版本历史
2- v2.1.0最新Oct 29, 2026
- v2.0.1Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分