ShotPulled
Works in Claude & ChatGPT

Espresso tastes sour, bitter or thin? Get one change — and the reason.

Say how the shot tasted. ShotPulled ranks what’s likely wrong and tells you the one thing to change next, in your grinder’s own clicks. Free, on iPhone and Android, on the web, and inside Claude or ChatGPT.

Free while we grow. If we ever charge, it will be for new things, never for what you already have. Setting up your machine, grinder and first bag takes about two minutes.

Next action
Amandin Blend · Kinu M47
Verified
Settle & lock this recipeBalanced — 18g → 36g in 30s, 1:2.00
1.2.230s1.20 g/sHIGH CONFIDENCE
Every shot you have pulled, with notes and filters.
Grinder math for clicks, compound rings and named settings.
66 grinders · 124 machines · 17 scales — each checked against its own manualBluetooth scales from 6 brandsA deterministic rulebook, not an LLM guessing

Three places, one account

Everything lives on the server. Start a bag in the chat, log the shot on your phone, read the history on the web.

In your assistant
Claude & ChatGPT · MCP
Ask what to change. You get one adjustment and the reason for it.
Log a shot now, taste it later, lock the recipe that worked.
It reads your real inventory, not what you remember.
On your phone
Cockpit, log sheet, equipment
The next action, right on the home screen.
Log a shot in a few taps, while the cup is still hot.
A Bluetooth scale fills in the dose, the yield and the time.
In the browser
The full dashboard
Every shot you have pulled, with notes and filters.
Grinder math for clicks, compound rings and named settings.
Your grinders, machines, waters and scales, in one place.

A bag that counts itself

Register it once, with the roast date and the weight. Every shot you log takes its dose off the top.

You see the date it turnsEvery bag has a peak window. ShotPulled shows the countdown and the day itself, not just “day 11”.
Grams, in shots178 g left is also about 11 shots, at the dose this bag actually uses. The basis sits next to the number.
The same number everywhereCockpit, bean list, phone. The server does the arithmetic, so nothing drifts apart.
Amandin Blend
Roasted 30 Jul · Ethiopia / Brazil
PEAK
Day 11 of 306 days of peak left · to 18 Aug
178 g leftof 250 g
≈ 1115.4 g dose · locked recipe
14last pulled 2 days ago

The app on the bench

Espresso happens standing up, with wet hands. If your scale speaks Bluetooth, it fills the numbers in for you.

Your whole bench, first thing

The cockpit opens on the bag in use: how many shots are left, and a track showing where today sits in its peak window and the day it turns. Under it, the grinder's setting, anything maintenance needs, and your last shots.

Two weighings, one card

Weigh the dose in. Weigh the shot out. The card moves from Dose to Yield and Time on its own. Scales with their own clock send the time; the rest get a timer the app runs. Either way, it never starts itself.

Only if the scale says so

A scale gets a Connect button when its own record says it has Bluetooth. Nothing about your hardware is assumed, and manual entry is always there.

Bookoo · two-wayTimemore · listen-onlyManual entry, always
Download on the App Store

Free on the App Store · iPhone, iOS 26.1 or later.

Android
Download on Google Play

Free on Google Play · Android 8.0 or later.

Add it to Claude or ChatGPT

Your beans, shots and recipes, in the conversation. Same account, same data as the dashboard.

Dialing in from ChatGPT — 3 min 40, unedited.
ChatGPTLISTED

ShotPulled is in ChatGPT’s plugin directory. Install it, sign in with your ShotPulled account, and mention @ShotPulled in any chat.

Works on a free ChatGPT account. A workspace or a region can still block it — Connect is greyed out when it does.

Add to ChatGPT
Try asking
@ShotPulled what should I change on my next shot?@ShotPulled log 18g in, 36g out, 30 seconds — tasted sour@ShotPulled how old is the bag I am pulling?
Other MCP clients and advanced settings
CHECKING HEALTHhttps://mcp.shotpulled.com/mcp

Any MCP client reaches the same endpoint. Sign-in is OAuth 2.1 through Clerk and is discovered from the server, so leave any client ID and client secret fields empty — in Claude those sit under Advanced settings.

Prefer a UI? Open the web dashboard →