Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
MCP server exposing Untappd API tools for AI agents — full v4 read API coverage
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
UNTAPPD_CLIENT_ID, UNTAPPD_CLIENT_SECRET, UNTAPPD_ACCESS_TOKEN, UNTAPPD_USERNAME, UNTAPPD_REDIRECT_URL, UNTAPPD_TOKEN_PATH标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"untappd": {
"command": "npx",
"args": [
"-y",
"untappd-mcp-server"
],
"env": {
"UNTAPPD_CLIENT_ID": "your-value",
"UNTAPPD_CLIENT_SECRET": "your-value",
"UNTAPPD_ACCESS_TOKEN": "your-value",
"UNTAPPD_USERNAME": "your-value",
"UNTAPPD_REDIRECT_URL": "your-value",
"UNTAPPD_TOKEN_PATH": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add untappd --env UNTAPPD_CLIENT_ID=your-value --env UNTAPPD_CLIENT_SECRET=your-value --env UNTAPPD_ACCESS_TOKEN=your-value --env UNTAPPD_USERNAME=your-value --env UNTAPPD_REDIRECT_URL=your-value --env UNTAPPD_TOKEN_PATH=your-value -- npx -y untappd-mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"untappd": {
"command": "npx",
"args": [
"-y",
"untappd-mcp-server"
],
"env": {
"UNTAPPD_CLIENT_ID": "your-value",
"UNTAPPD_CLIENT_SECRET": "your-value",
"UNTAPPD_ACCESS_TOKEN": "your-value",
"UNTAPPD_USERNAME": "your-value",
"UNTAPPD_REDIRECT_URL": "your-value",
"UNTAPPD_TOKEN_PATH": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"untappd": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"untappd-mcp-server"
],
"env": {
"UNTAPPD_CLIENT_ID": "your-value",
"UNTAPPD_CLIENT_SECRET": "your-value",
"UNTAPPD_ACCESS_TOKEN": "your-value",
"UNTAPPD_USERNAME": "your-value",
"UNTAPPD_REDIRECT_URL": "your-value",
"UNTAPPD_TOKEN_PATH": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
UNTAPPD_USERNAME envUNTAPPD_REDIRECT_URL envUNTAPPD_TOKEN_PATH env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 darrenjrobinson 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:UNTAPPD_CLIENT_ID, UNTAPPD_CLIENT_SECRET, UNTAPPD_ACCESS_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(2.1.0)于11天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, ProAgentStore
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
MCP-first control plane for ProAgentStore agents and private instances.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
client_id and client_secret) from untappd.com/apiauthenticate_untappd tool or npx untappd-mcp-server auth (see Interactive Authentication)UNTAPPD_CLIENT_ID=xxx UNTAPPD_CLIENT_SECRET=yyy npx untappd-mcp-server
$env:UNTAPPD_CLIENT_ID = "your_client_id"
$env:UNTAPPD_CLIENT_SECRET = "your_client_secret" npx untappd-mcp-server
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": { "untappd": { "command": "npx", "args": ["untappd-mcp-server"], "env": { "UNTAPPD_CLIENT_ID": "your_client_id", "UNTAPPD_CLIENT_SECRET": "your_client_secret", "UNTAPPD_ACCESS_TOKEN": "optional_oauth_token", "UNTAPPD_USERNAME": "optional_default_username" } } } }
Tools marked 🔑 token require an access token (UNTAPPD_ACCESS_TOKEN env var or interactive authentication).
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).
| Parameter | Type | Required | Description |
|---|---|---|---|
timeout_seconds | integer | No | How long to wait for browser approval (default 180, max 600) |
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.
| Parameter | Type | Required | Description |
|---|---|---|---|
validate | boolean | No | Verify the token against the API with one call (default false) |
Search for venues (breweries, bars, restaurants) by name with optional location awareness.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | Yes | Search query (venue name) |
lat | number | No | Latitude for location-aware results |
lng | number | No | Longitude for location-aware results |
Search for breweries by name.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | Yes | Brewery name search query |
offset | integer | No | Offset for pagination |
Search for beers by name.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | Yes | Beer name search query |
offset | integer | No | Pagination offset |
sort | string | No | Sort order: checkin (default), name, count |
Retrieve detailed information and recent check-ins for a venue.
| Parameter | Type | Required | Description |
|---|---|---|---|
venue_id | integer | Yes | Untappd venue ID |
compact | boolean | No | If true, returns venue info only (no checkins, media, top beers) |
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.
| Parameter | Type | Required | Description |
|---|---|---|---|
venue_id | integer | Yes | Untappd venue ID |
limit | integer | No | Number of results (max 25, default 25) |
max_id | integer | No | Return results older than this checkin ID |
min_id | integer | No | Return only checkins newer than this ID |
Resolve a Foursquare venue ID to its Untappd venue — the bridge between Foursquare/location data and Untappd venue tools.
| Parameter | Type | Required | Description |
|---|---|---|---|
foursquare_id | string | Yes | Foursquare venue ID in v2 MD5-hash format (v3 numeric IDs will not work) |
Retrieve detailed information for a specific beer.
| Parameter | Type | Required | Description |
|---|---|---|---|
bid | integer | Yes | Untappd beer ID |
compact | boolean | No | If true, returns beer info only |
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.
| Parameter | Type | Required | Description |
|---|---|---|---|
bid | integer | Yes | Untappd beer ID |
limit | integer | No | Results per page (max 50, default 25) |
max_id | integer | No | Return results older than this checkin ID |
min_id | integer | No | Return only checkins newer than this ID |
Retrieve globally trending beers (macro and micro brew lists, by recent check-in velocity). No parameters.
Retrieve detailed information, beer list, and recent check-ins for a brewery.
| Parameter | Type | Required | Description |
|---|---|---|---|
brewery_id | integer | Yes | Untappd brewery ID |
compact | boolean | No | If true, returns brewery info only |
Retrieve the recent public check-in feed for a brewery — all its beers being checked in globally.
| Parameter | Type | Required | Description |
|---|---|---|---|
brewery_id | integer | Yes | Untappd brewery ID |
limit | integer | No | Results per page (max 50, default 25) |
max_id | integer | No | Return results older than this checkin ID |
min_id | integer | No | Return only checkins newer than this ID |
Retrieve profile and stats for an Untappd user.
| Parameter | Type | Required | Description |
|---|---|---|---|
username | string | Yes | Untappd username |
compact | boolean | No | If true, returns user info only (no checkins, media, recent brews) |
Retrieve the recent check-in activity feed for a user.
| Parameter | Type | Required | Description |
|---|---|---|---|
username | string | Yes | Untappd username |
limit | integer | No | Number of results (max 25, default 25) |
max_id | integer | No | Return results older than this checkin ID |
min_id | integer | No | Return only checkins newer than this ID |
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".
| Parameter | Type | Required | Description |
|---|---|---|---|
username | string | Yes | Untappd username |
offset | integer | No | Pagination offset |
limit | integer | No | Results per page (max 50, default 25) |
sort | string | No | date (default), checkin, highest_rated, lowest_rated, highest_rated_you, lowest_rated_you |
Retrieve beers on a user's wish list.
| Parameter | Type | Required | Description |
|---|---|---|---|
username | string | Yes | Untappd username |
offset | integer | No | Pagination offset |
limit | integer | No | Results per page (max 50, default 25) |
sort | string | No | date (default), checkin, highest_rated, lowest_rated |
Retrieve a user's earned badges (pages of 50, most recent first).
| Parameter | Type | Required | Description |
|---|---|---|---|
username | string | Yes | Untappd username |
offset | integer | No | Pagination offset (pages of 50) |
Retrieve a user's friend list (public accounts only).
| Parameter | Type | Required | Description |
|---|---|---|---|
username | string | Yes | Untappd username |
offset | integer | No | Pagination offset |
limit | integer | No | Results per page (max 50, default 25) |
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).
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Results per page (max 50, default 25) |
max_id | integer | No | Return results older than this checkin ID |
min_id | integer | No | Return only checkins newer than this ID |
Retrieve the public check-in feed near a geographic point.
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | number | Yes | Latitude |
lng | number | Yes | Longitude |
radius | integer | No | Radius in miles (default 25, max 50) |
limit | integer | No | Results per page (max 50, default 25) |
max_id | integer | No | Return results older than this checkin ID |
min_id | integer | No | Return only checkins newer than this ID |
Retrieve the friend check-in feed for the authenticated user.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Results per page (max 50, default 25) |
max_id | integer | No | Return results older than this checkin ID |
min_id | integer | No | Return only checkins newer than this ID |
Retrieve extended details for a specific check-in, including badges earned, toasts, and comments.
| Parameter | Type | Required | Description |
|---|---|---|---|
checkin_id | integer | Yes | Untappd check-in ID |
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 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
venue_id | integer | Yes | Untappd venue ID |
username | string | No | Untappd username (defaults to UNTAPPD_USERNAME) |
| max_pages | intege
只显示了开头部分;其余内容请在仓库中阅读