Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server exposing Untappd API tools for AI agents — full v4 read API coverage
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
UNTAPPD_CLIENT_ID, UNTAPPD_CLIENT_SECRET, UNTAPPD_ACCESS_TOKEN, UNTAPPD_USERNAME, UNTAPPD_REDIRECT_URL, UNTAPPD_TOKEN_PATHValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into 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"
}
}
}
}Run this in your terminal
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-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.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"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"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"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
UNTAPPD_USERNAME envUNTAPPD_REDIRECT_URL envUNTAPPD_TOKEN_PATH envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account darrenjrobinson, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: UNTAPPD_CLIENT_ID, UNTAPPD_CLIENT_SECRET, UNTAPPD_ACCESS_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.1.0) reached the registry 11 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Signoff
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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
Only the beginning is shown; read the rest in the repo