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
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม 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": "ใส่ค่าของคุณ",
"UNTAPPD_CLIENT_SECRET": "ใส่ค่าของคุณ",
"UNTAPPD_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"UNTAPPD_USERNAME": "ใส่ค่าของคุณ",
"UNTAPPD_REDIRECT_URL": "ใส่ค่าของคุณ",
"UNTAPPD_TOKEN_PATH": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add untappd --env UNTAPPD_CLIENT_ID='ใส่ค่าของคุณ' --env UNTAPPD_CLIENT_SECRET='ใส่ค่าของคุณ' --env UNTAPPD_ACCESS_TOKEN='ใส่ค่าของคุณ' --env UNTAPPD_USERNAME='ใส่ค่าของคุณ' --env UNTAPPD_REDIRECT_URL='ใส่ค่าของคุณ' --env UNTAPPD_TOKEN_PATH='ใส่ค่าของคุณ' -- npx -y untappd-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"untappd": {
"command": "npx",
"args": [
"-y",
"untappd-mcp-server"
],
"env": {
"UNTAPPD_CLIENT_ID": "ใส่ค่าของคุณ",
"UNTAPPD_CLIENT_SECRET": "ใส่ค่าของคุณ",
"UNTAPPD_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"UNTAPPD_USERNAME": "ใส่ค่าของคุณ",
"UNTAPPD_REDIRECT_URL": "ใส่ค่าของคุณ",
"UNTAPPD_TOKEN_PATH": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"untappd": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"untappd-mcp-server"
],
"env": {
"UNTAPPD_CLIENT_ID": "ใส่ค่าของคุณ",
"UNTAPPD_CLIENT_SECRET": "ใส่ค่าของคุณ",
"UNTAPPD_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"UNTAPPD_USERNAME": "ใส่ค่าของคุณ",
"UNTAPPD_REDIRECT_URL": "ใส่ค่าของคุณ",
"UNTAPPD_TOKEN_PATH": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
UNTAPPD_USERNAME envUNTAPPD_REDIRECT_URL envUNTAPPD_TOKEN_PATH envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub darrenjrobinson ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: UNTAPPD_CLIENT_ID, UNTAPPD_CLIENT_SECRET, UNTAPPD_ACCESS_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.1.0) เข้า registry 11 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Starreel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า 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.
Turn a script into a finished, downloadable short-drama episode — via MCP or REST.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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
ตัดมาแค่ช่วงต้น อ่านต่อใน repo