Skip to main content
Glama
untappd-mcp

untappd-mcp

by chrischall

Get recent check-ins at a venue

untappd_venue_activity
Read-only

Retrieve recent public check-ins at an Untappd venue by ID to see who visited, what they drank, and their ratings; page older activity with max_id.

Instructions

Get the recent public check-ins at a venue by its id — who was there, what they drank, and their ratings. Page backwards with max_id (the pagination.max_id from a prior call). Cached locally for 6 hours per venue + limit + max_id (cache.hit, fetched_at, expires_at); refresh:true re-fetches. Read-only.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "venue_id": "<venue_id>"
    },
    "name": "untappd_venue_activity"
  }
}

Input Schema

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact projects each check-in to {id, user, beer, brewery, venue, rating, comment, toast/comment counts}; "full" returns Untappd's whole ~5 KB record.
limitNoMax check-ins (1–50, default 25)
max_idNoReturn check-ins older than this id (for paging)
refreshNoBypass the 6-hour local cache and call Untappd (default false)
venue_idYesUntappd venue id

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.6.1
    • addedInput schema / properties / refresh
      Added value: +{
      +  "description": "Bypass the 6-hour local cache and call Untappd (default false)",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changedv2.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. Changed2 schema fields changedv1.10.1
    • removedInput schema / properties / compact
      Removed value: -{
      -  "description": "Project each check-in to a slim summary to save context (default false)",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact projects each check-in to {id, user, beer, brewery, venue, rating, comment, toast/comment counts}; \"full\" returns Untappd's whole ~5 KB record.",
      +  "enum": [
      +    "compact",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  4. Changed1 schema field changedv1.1.0
    • addedInput schema / properties / compact
      Added value: +{
      +  "description": "Project each check-in to a slim summary to save context (default false)",
      +  "type": "boolean"
      +}
  5. Addedv1.0.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely new behavior: a 6-hour local cache keyed on venue + limit + max_id, the cache.hit/fetched_at/expires_at fields returned, and how to force a re-fetch. It stops short of noting rate limits or how much data a refresh pulls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the purpose before paging and cache mechanics. Every sentence carries information, though the parenthetical cache-field list is terse enough that an unfamiliar agent may need a second read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description does useful work describing the shape of returned check-ins (user, beer, rating, comment) and the cache metadata block. Coverage is strong for a read tool; only cross-tool routing to venue_info or venue_menu is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, but the description earns more by explaining the provenance of max_id (it comes from a prior call's pagination.max_id) and the cache-key semantics of refresh and limit, which the schema does not state. It does not describe the view enum's projection, though the schema already covers that thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (recent public check-ins at a venue by id) and enumerates what the caller gets back: who was there, what they drank, ratings. This distinguishes it from untappd_user_checkins and untappd_activity_feed, which are user- and feed-scoped, without the agent needing to open either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational guidance on paging (walk backwards with max_id from a prior response's pagination.max_id) and on cache bypass (refresh:true). It does not, however, say when to prefer untappd_venue_info or untappd_venue_menu over this tool, so the alternative-selection guidance stops short of explicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.