Index / MCP servers / ShotPulled

ShotPulled MCP server

ShotPulled is a remote MCP server that gives an AI agent 34 tools, among them compute_age, delete_shot, diagnose_preview. It answers at https://mcp.shotpulled.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 10 September 2026; the last check, on 19 October 2026, succeeded.

Status
Answering
Tools
34
Official
yes, served from shotpulled.com
Reliability
6 of 6 checks
Response time
258 ms
Transport
streamable HTTP
Last checked
19 October 2026

Espresso dialing: log a shot, say how it tasted, get one change in your grinder's own clicks.

Description as the publisher wrote it.

The 34 tools ShotPulled offers

ToolWhat it does
compute_ageCompute coffee age in days off roast and resting/staling verdict.
Inputs: bean_id
delete_shotDelete a logged shot from history. Restores the bean's remaining weight (which is derived from logged doses). Hard delete — there is no undo. To fix a mistake on an otherwise-valid shot, prefer update_shot over delete-and-relog.
Inputs: shot_id
diagnose_previewSandbox-only diagnosis, writes nothing (no verdict, no recommendation-trail entry). Two modes: pass shot_id to dry-run a LOGGED shot (optionally overriding its sensory_tags — the "what would this read as?" preview; the shot's own bean and i
Inputs: shot_id, bean_id, grinder_id, machine_id, grind_label, dose_g
diagnose_shotEvaluate shot metrics to provide ranked hypotheses (C6) and warn on flip-flops (G2) or fatigue (G6). Resolves the SHOT's own bean — age computed at the shot's pulled_at — never the active profile, and echoes it as bean_context, so diagnosin
Inputs: shot_id
get_dial_stateRetrieve current dialing state, active context, recent shots, recommendations, and locked recipes.
get_kb_versionRetrieve the current version of the knowledge base.
get_ruleRetrieve the detailed text of a specific rule from the knowledge base by its rule ID.
Inputs: rule_id
get_statsGet compact flat usage stats for a grinder, machine, or bean.
Inputs: scope, id
grinder_mathDetermine steps/clicks difference and directions between setting labels (C3).
Inputs: grinder_id, from_label, to_label
kb_changelogRetrieve the changelog showing updates and version differences for the knowledge base.
list_beansList coffee beans registered for the account, with status filter. 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.
Inputs: status
list_grindersList grinders registered for the account, with status filter. 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.
Inputs: status
list_machinesList machines registered for the account, with status filter. 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.
Inputs: status
list_recipesList recipes (all or filtered by equipment and status). 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.
Inputs: bean_id, grinder_id, machine_id, status
list_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.
Inputs: status
list_shotsList shot history with support for pagination and filtering. Every shot carries a derived taste_pending flag (1 = logged with no sensory tags, no rating, and no tasted flip — the tasting is still owed and can be backfilled with update_shot)
Inputs: filters, limit, offset
list_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.
Inputs: status
lock_recipeLock a successful shot as the reference dialing recipe for this equipment profile.
Inputs: from_shot_id, drink_intent
log_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 th
Inputs: equipment_kind, equipment_id, task, performed_at, note, disturbs_zero
log_recommendationLog a recommended dialing change to allow contradiction/oscillation checking (G2).
Inputs: lever, direction, rationale, confidence, cited_rules, based_on_shot
log_shotLog an espresso or alternative shot/brew attempt. Uses the active context (bean/grinder/machine/program) unless overridden via bean_id/grinder_id/machine_id/program_id — ALWAYS pass bean_id explicitly when the user names a specific coffee,
Inputs: dose_g, yield_g, time_s, bean_id, grinder_id, machine_id
register_coffeeRegister a new bag of coffee beans.
Inputs: name, roast_date, roast_level, process_type, roaster, origin
register_grinderRegister a manual or electric grinder with its dial settings scheme.
Inputs: name, motor_type, burr_type, setting_scheme, direction_convention, nominal_step
register_machineRegister an espresso or alternative preparation machine.
Inputs: name, control_type, basket_size_grams, boiler_type, notes, prep_type
register_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.
Inputs: machine_id, program_number, program_type, target_volume_g, target_time_s, volume_source
register_scaleRegister a brewing scale — the instrument that weighs the dose and the yield.
Inputs: name, scale_type, resolution_g, resolution_banded, capacity_g, width_mm
register_waterRegister a custom or commercial water formulation.
Inputs: name, type, tds, gh, kh, sodium
set_activeSwitch the active bean, grinder or machine for this account. The numbers come from list_beans, list_grinders and list_machines. Registering something already makes it active, so use this to switch back to something that exists, not after re
Inputs: bean_id, grinder_id, machine_id, program_id
set_equipment_archivedArchive or restore a grinder, machine, water, or scale.
Inputs: kind, id, archived
set_grinder_positionSet the current grinder collar position. source="measured" resets verification freshness.
Inputs: grinder_id, setting_label, source
set_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 re
Inputs: entry_id, offset_value, source, evidence
suggest_next_stepRetrieve the single next experiment step from the reasoning engine.
Inputs: bean_id
update_beanUpdate coffee bag fields. Changing dial_category changes what the engine advises (G5, C10), so say why in the optional note.
Inputs: bean_id, fields, reason
update_shotCorrect fields on an already-logged shot in place — no need to delete and re-log. Use for fixing a wrong dose/yield/time or grind label, re-filing a shot onto the right bean (bean_id), backfilling rating/tasting notes, or fixing the timesta
Inputs: shot_id, fields

Add ShotPulled to your AI client

Every block below points at https://mcp.shotpulled.com/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http shotpulled https://mcp.shotpulled.com/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "shotpulled": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.shotpulled.com/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "shotpulled": {
      "url": "https://mcp.shotpulled.com/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "shotpulled": {
      "type": "http",
      "url": "https://mcp.shotpulled.com/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "shotpulled": {
      "url": "https://mcp.shotpulled.com/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "shotpulled": {
      "serverUrl": "https://mcp.shotpulled.com/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "shotpulled": {
      "url": "https://mcp.shotpulled.com/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: ShotPulled
version: 0.0.1
schema: v1
mcpServers:
  - name: ShotPulled
    type: streamable-http
    url: https://mcp.shotpulled.com/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "shotpulled": {
      "httpUrl": "https://mcp.shotpulled.com/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "shotpulled": {
      "type": "http",
      "url": "https://mcp.shotpulled.com/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "shotpulled": {
      "url": "https://mcp.shotpulled.com/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fmcp.shotpulled.com%2Fmcp&type=streamable_http&id=shotpulled&name=ShotPulled

Is ShotPulled up right now?

It answered our last check on 19 October 2026 in 258 ms. Over 6 checks since 10 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to ShotPulled

Questions about ShotPulled

Is there an official ShotPulled MCP server?

Yes. It is published by shotpulled.com and served from mcp.shotpulled.com, the vendor's own domain: https://mcp.shotpulled.com/mcp.

How many tools does ShotPulled have?

34, as returned by the server's own tools/list on 11 September 2026: compute_age, delete_shot, diagnose_preview, diagnose_shot, get_dial_state, get_kb_version, get_rule, get_stats, and 26 more.

Is ShotPulled down?

It answered our last check on 19 October 2026 in 258 ms. Over 6 checks since 10 September 2026 it answered 6.

How do I add ShotPulled to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.shotpulled.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does ShotPulled need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: com.shotpulled. Endpoint host: mcp.shotpulled.com. ARD identifier: urn:air:com.shotpulled:mcp:shotpulled. First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.