https://mcp.shotpulled.com/mcp ↗
Espresso dialing: log a shot, say how it tasted, get one change in your grinder's own clicks.
ShotPulled is a remote MCP server published at mcp.shotpulled.com. It has been probed 6 times since 9/12/2026. It answered in 6 of them (100.0%), a near-uninterrupted record. Median response time is 918 ms, a delay an agent will notice. It exposes a broad tool surface of 37 tools. On the protocol side it still runs 2025-11-25 and has not moved to the newer spec.
Can an LLM agent pick the right tool here — names, descriptions and parameter clarity are assessed.
grinder_math — Name doesn't clearly indicate it calculates grinder step differencescompute_age — Name is too generic without context about coffee agingdiagnose_shot — Description lacks clear error conditions for invalid shot datasuggest_next_step — No documentation on how recommendations are prioritizedlog_recommendation — Missing validation rules for 'confidence' parameter formatRisk: low
tools/list structure, inputSchema validity, and a functional smoke test — the components of the 0-100 score.
Tools the server advertised in the latest measurement — measured, not catalog-claimed.
register_grinderRegister a manual or electric grinder with its dial settings scheme.
namestringrequiredmotor_typestringrequiredburr_typestringrequiredsetting_schemestringrequireddirection_conventionstringrequirednominal_stepnumberrequiredcomponents_specstringmin_valuenumbermax_valuenumbermicrons_per_stepnumbernotesstringarchivedintegerphotostringset_grinder_positionSet the current grinder collar position. source="measured" resets verification freshness.
grinder_idintegerrequiredsetting_labelstringrequiredsourcestringrequiredregister_machineRegister an espresso or alternative preparation machine.
namestringrequiredcontrol_typestringrequiredbasket_size_gramsnumberboiler_typestringnotesstringprep_typestringprep_stylestringarchivedintegerphotostringtoolsstringconnected_devicestringbuilt_in_grinder_idintegerset_equipment_archivedArchive or restore a grinder, machine, water, or scale.
kindstringrequiredidintegerrequiredarchivedintegerrequiredlog_maintenanceLog a cleaning or maintenance job against a piece of equipment. A task that takes the thing apart opens a calibration epoch, and every recipe locked before it is read through that epoch's offset — so record the offset here if you counted the clicks while reassembling, which is the one moment anybody actually knows it. Read the available tasks, their intervals and their due state from list_grinders.
equipment_kindstringrequiredequipment_idintegerrequiredtaskstringrequiredperformed_atstringnotestringdisturbs_zerointegeroffset_valuenumberoffset_sourcestringevidencestringdetailsobjectset_maintenance_offsetRecord how far a maintenance job moved the reference, on an entry that opened a calibration epoch. Takes an ENTRY, not a piece of equipment: the offset belongs to the event that caused it, which is what lets several of them compose for a recipe locked before all of them. Zero is a legitimate measurement and means "measured, and it had not moved" — omit offset_value entirely to clear it back to unmeasured.
entry_idintegerrequiredoffset_valuenumbersourcestringevidencestringregister_waterRegister a custom or commercial water formulation.
namestringrequiredtypestringtdsnumberghnumberkhnumbersodiumnumbercalciumnumbermagnesiumnumbernotesstringlist_watersList registered waters for the account. The `id` on each row is the number this account knows that record by, counting from 1 — safe to show, and what other tools expect back.
statusstringregister_scaleRegister a brewing scale — the instrument that weighs the dose and the yield.
namestringrequiredscale_typestringrequiredresolution_gnumberresolution_bandedintegercapacity_gnumberwidth_mmnumberdepth_mmnumberheight_mmnumberwater_resistancestringconnectivitystringflow_rate_displayintegerauto_tareintegerauto_timerintegerpowerstringnotesstringlist_scalesList registered scales for the account. The `id` on each row is the number this account knows that record by, counting from 1 — safe to show, and what other tools expect back.
statusstringregister_programRegister a programmed shot button on a machine. A program cuts the shot off either by weight (program_type "volumetric", set target_volume_g) or by time (program_type "timed", set target_time_s). One machine can have a mix of both.
machine_idintegerrequiredprogram_numberintegerrequiredprogram_typestringtarget_volume_gnumbertarget_time_snumbervolume_sourcestringdescriptionstringregister_coffeeRegister a coffee that is NOT yet in list_beans, together with its first bag, and make it the active coffee. The coffee is the roaster's product (roaster, origins, variety, process, roast level, roasting type, cupping score, aromatics, roaster notes, rest window); the bag is this purchase (roast date, weight, price, state). For another bag of a coffee already on file call register_bag instead — it keeps the recipes and notes. Returns bean_id and the first bag's bag_id.
namestringrequiredroast_datestringrequiredroast_levelstringrequiredprocess_typestringrequiredroasterstringoriginstringvarietystringdial_categorystringbag_notesstringrest_window_days_minintegerrest_window_days_maxintegerstatestringopened_datestringstoragestringbuy_datestringbag_weight_gnumbercostnumbercurrencystringdecaffeinatedintegerbean_mixstringroast_rangestringroast_customstringroasting_typestringaromaticsstringcupping_pointsnumberDerived by comparing consecutive probes — changes in era, protocol version, build and reachability.
Add this badge to your README — it updates automatically as measurements change.
[](https://mcpmetrics.io/servers/com-shotpulled-shotpulled)<a href="https://mcpmetrics.io/servers/com-shotpulled-shotpulled"><img src="https://mcpmetrics.io/badge/com.shotpulled/shotpulled/era.svg" alt="mcpmetrics"></a>You are seeing the last 7 days. Sign up for the full history. Which check failed and why is in the dashboard.
Sign up free to seeThe catalog entries whose name and description are closest to this one, found with the same index the search box uses.
Yapp turns "build me a page and publish it" into a live URL. Connect once (browser OAuth, or a token for terminal clients) and your AI can publish a webpage from HTML, or host a PDF, image, or ZIP exactly as-is to a public `<slug>.yapp.page` URL in seconds, then update, password-protect, set expiry, attach a custom domain, or read form submissions, all by asking. Free to start; no local install. **Tools (15):** `publish_page`, `publish_file`, `update_page`, `delete_page`, `get_page_stats`, `list_my_pages`, `rename_page`, `change_page_slug`, `set_page_expiry`, `set_page_password`, `list_submissions`, `add_custom_domain`, `list_custom_domains`, `check_custom_domain`, `remove_custom_domain`.
Design your site's AI avatar in the ASMI studio; your coding agent ships it into your repo.
Carrier MCP — natural language control of your MVNO/eSIM fleet. 52 tools (43 OCS API wrappers + 8 AI intelligence + 1 OCS event history), 5 prompts, OAuth 2.1 + PKCE. Streamable HTTP on Cloudflare Workers.
Your personal data for AI — Telegram, bank, courses, Zoom & more, scoped to you.
Global shipping labels for AI agents via AfterShip with your own carrier accounts.
Let your AI assistant build pages and courses, manage contacts, and run email campaigns in AXL.
| Run | Era | Modern | ms | Legacy | ms | Versions |
|---|---|---|---|---|---|---|
| 2026-09-13 01:33:33 | Legacy | 401 | 1142 | 200 | 1160 | 2025-06-18 |
| 2026-09-12 23:31:36 | Legacy | 401 | 727 | 200 | 744 | 2025-06-18 |
| 2026-09-12 21:29:15 | Legacy | 401 | 1625 | 200 | 1623 | 2025-06-18 |
| 2026-09-12 19:27:29 | Legacy | 401 | 543 | 200 | 543 | 2025-06-18 |
| 2026-09-12 17:24:09 | Legacy | 401 | 572 | 200 | 548 | 2025-06-18 |
| 2026-09-12 15:21:42 | Legacy | 401 | 918 | 200 | 922 | 2025-06-18 |
Each block is one measurement round. Green: working response. Amber: responded but the server was returning errors (5xx). Red: no response at all.
Each cell is one probe run. Faded cells are incomplete probes — one leg did not answer, so the era is inconclusive.
The two probe legs separately: modern server/discover and legacy initialize.
Comments
Sign in to write a comment
No comments yet. Be the first.