Research a new coffee bean and propose starting extraction parameters. Use when: (1) user shares a new bag of coffee (photo, name, or description), (2) user says "new beans", "dialing in a new coffee", (3) user asks "where should I start with this coffee". Accepts bag photos (extracts info via vision) or text descriptions. Researches origin, process, roast level via web search, then recommends temperature, grind, ratio, and profile.
Systematically research a coffee and propose starting extraction parameters.
Adapted from gaggimate-barista by Charlie Hall.
If photo provided:
If text provided:
Before researching externally, check what we already know:
manage_brewing_insights(action="read")manage_grind_map(action="read")Search for the specific coffee to find:
See: read_knowledge(action="read", filename="research/RESEARCH_CHECKLIST") for detailed research patterns, origin profiles, and variety extraction guidance.
Load the relevant knowledge files via MCP tools and build recommendations:
read_knowledge(action="read", filename="ESPRESSO_BREWING_BASICS") roast guidelinesread_knowledge(action="read", filename="PRESSURE_GUIDE") roast × processing matrixread_knowledge(action="read", filename="PROFILE_LIBRARY") by roast/process, adjusted for correct pressureBefore finalizing, ask:
"This [process] [origin] typically shines with [approach]. Would you like to start there, or prefer a more conservative/adventurous approach?"
Options to offer:
Use MCP tool to upload:
manage_profile(action="create", profile_name="[Coffee Name] [AI]", temperature=X, phases=[...])
Always add [AI] suffix to profile names.
After researching and setting up a new coffee, create a coffee tracking file via MCP:
manage_coffee(
action="create",
coffee_name="[coffee-name]",
roaster="[roaster]",
origin="[country, region]",
process="[washed/natural/honey/anaerobic]",
roast_level="[light/medium/dark]",
variety="[if known]",
roast_date="YYYY-MM-DD",
bag_size="[e.g. 250g]",
roaster_notes="[tasting notes from bag/roaster]",
freshness_note="[e.g. 10 days off roast, in peak window]",
approach="[Profile name] at [temp]. [Pressure logic from PRESSURE_GUIDE]. Starting at grind [X], [dose]g in, targeting 1:[ratio]. [Why this approach suits this bean — connect origin, process, and roast level to the profile choice. If similar to a previous coffee, reference that experience.]"
)
The approach field is a narrative paragraph — not a table of numbers. It should explain
why you chose this profile/params for this specific bean, connecting the research to
the recommendation. Reference brewing insights from similar coffees if applicable.
This creates a persistent tracking file accessible in all future sessions via manage_coffee(action="read", coffee_name="<name>").
## Coffee Research: [Name]
### Bean Profile
- **Roaster:** [roaster]
- **Origin:** [country, region]
- **Process:** [washed/natural/honey/anaerobic]
- **Roast Level:** [light/medium/dark]
- **Variety:** [if known]
- **Tasting Notes:** [from roaster]
- **Days Off Roast:** [X days, or "unknown"]
### Recommended Starting Parameters
| Parameter | Value | Reasoning |
|-----------|-------|-----------|
| Temperature | X°C | [roast level rationale] |
| Grind | Start at [general guidance] | [reasoning] |
| Ratio | 1:X | [process rationale] |
| Profile | [name] | [why this profile] |
| Dose | Xg in → Xg out | [basket size rationale] |
### What to Watch For
- [Specific guidance for first shot based on bean characteristics]
- [What taste outcomes to expect]
- [When to adjust and in which direction]
User says: "I got a new bag of [coffee]" Action: Extract info → research → recommend → confirm → upload profile
User shares photo: Action: Vision extract → research → recommend → confirm → upload profile