Skip to main content
Glama
untappd-mcp

untappd-mcp

by chrischall

Get Untappd user check-ins

untappd_user_checkins
Read-onlyIdempotent

Retrieve a user's recent Untappd check-ins with beer, rating, comment, venue, and toast/comment counts; page older results with max_id. Own history pages fully; other users return ~50 check-ins.

Instructions

Get a user's recent check-ins (most recent first): the beer, rating, comment, venue, and toasts/comments. Page backwards with max_id (the pagination.max_id from a prior call). Only your OWN history pages fully: for any other user Untappd returns just the ~50 most recent check-ins and ignores max_id — use untappd_user_beers (has had) or untappd_user_venues (has been) for their full history. Omit username for your own. Read-only.

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)
usernameNoUntappd username. Omit to use your own configured account (UNTAPPD_USERNAME).

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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"
  2. 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"
      +}
  3. 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"
      +}
  4. First observedv0.0.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/openWorldHint, so the 'Read-only' tagline is largely redundant. What the description uniquely adds is the non-obvious API quirk: for any user other than yourself Untappd returns only ~50 recent check-ins and silently ignores max_id, which prevents an agent from looping on max_id forever. It stops short of noting rate limits or how paging termination is detected, so it is strong rather than exhaustive.

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

Conciseness5/5

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

Four compact sentences, front-loaded with what the tool returns, then paging, then the scoping caveat, then the alternative route. Every sentence carries operational information; the only filler is the trailing 'Read-only' already covered by annotations.

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

Completeness5/5

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

For a list tool with no output schema, the description covers what comes back, the ordering, paging mechanics, the cross-user limitation, and the fallback tools. The view enum's compact/full projection detail lives in the schema, so the description need not repeat it.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: max_id must be fed the 'pagination.max_id from a prior call' (the schema only says 'return check-ins older than this id'), and it warns that max_id is ignored for other users. That linkage between a request param and a response field is real added value.

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?

Names a specific verb and resource ('Get a user's recent check-ins') and enumerates the returned fields (beer, rating, comment, venue, toasts/comments) plus ordering ('most recent first'). It also explicitly separates itself from the sibling history tools untappd_user_beers and untappd_user_venues, so an agent can pick correctly without opening other schemas.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (recent check-ins, own history with paging) and when-not-to-use (other users' full history is unreachable here, so use untappd_user_beers or untappd_user_venues instead). The 'omit username for your own' instruction removes the main ambiguity in calling it.

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