Grind-setting conversion between 77 coffee grinders, plus dial-in charts for every model.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Translate a grind setting from one coffee grinder to another. Use whenever a recipe quotes a setting for a grinder the user does not own — "the recipe says 18 clicks on a Comandante, what is that on my Encore?". Grinder names can be written however the user said them ("Fellow Ode", "1Zpresso J-Max"); exact slugs are not required.
The grinder to convert to, e.g. "Baratza Encore"
The grinder the setting is quoted for, e.g. "Comandante C40 MK4"
The setting on the source grinder as written on it, e.g. 18. On Fellow dials the digit after the point counts marks (4.2 on an Ode is the second mark after 4); a Baratza Forte is macro number and micro letter, e.g. "4R".
Translate a grind setting from one coffee grinder to another. Use whenever a recipe quotes a setting for a grinder the user does not own — "the recipe says 18 clicks on a Comandante, what is that on my Encore?". Grinder names can be written however the user said them ("Fellow Ode", "1Zpresso J-Max"); exact slugs are not required.
| Argument | Type | Description |
|---|---|---|
| to* | string | The grinder to convert to, e.g. "Baratza Encore" |
| from* | string | The grinder the setting is quoted for, e.g. "Comandante C40 MK4" |
| setting* | number | string | The setting on the source grinder as written on it, e.g. 18. On Fellow dials the digit after the point counts marks (4.2 on an Ode is the second mark after 4); a Baratza Forte is macro number and micro letter, e.g. "4R". |
{
"type": "object",
"required": [
"from",
"setting",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "The grinder to convert to, e.g. \"Baratza Encore\""
},
"from": {
"type": "string",
"description": "The grinder the setting is quoted for, e.g. \"Comandante C40 MK4\""
},
"setting": {
"type": [
"number",
"string"
],
"description": "The setting on the source grinder as written on it, e.g. 18. On Fellow dials the digit after the point counts marks (4.2 on an Ode is the second mark after 4); a Baratza Forte is macro number and micro letter, e.g. \"4R\"."
}
}
}The next grind setting to try after the user brewed and tasted: "I used 18 on my Encore and it was sour", "my espresso is bitter at 4.5 on the Ode". Sour, weak or fast means grind finer; bitter, harsh or slow means coarser. Returns one move on that grinder's own dial. Call again after each cup, and with result "good" once it tastes right, which also adds an anonymous report (grinder, method, setting, taste, coffee) to BrewMark's per-coffee data.
| Argument | Type | Description |
|---|---|---|
| roast | string | Optional roast level of that coffee, if known. Recorded with the report; it does not change the suggestion. |
| coffee | string | The coffee as the user named it, roaster and name: "Stumptown Hair Bender". Only the coffee: never the user's name or other personal details. Leave out if they have not said. |
| method | string | Brew method, e.g. "espresso", "V60", "Kalita Wave". Pass it whenever the user has said it; the card shows that method's recipe. |
| result* | string | How it tasted: sour (also weak, thin, ran fast), bitter (also harsh, dry, ran slow), or good |
| grinder* | string | Grinder name as the user said it, e.g. "Baratza Encore" |
| setting* | number | string | The setting they brewed at as written on the grinder, e.g. 18. On Fellow dials 4.2 is the second mark after 4; a Baratza Forte is macro number and micro letter, e.g. "4R". |
Shortlist coffee grinders for someone deciding which one to buy: "which grinder should I get for pour over under $200?", "a quiet grinder for espresso", "best hand grinder for travel". Ranks BrewMark's grinder finder by how they brew, budget, hand or electric, and must-haves, and returns each pick with an approximate US price, why it fits, and a link to its BrewMark buying guide. BrewMark does not sell grinders: do not use this to place an order, and for a grinder the user already owns use get_grinder_chart instead.
| Argument | Type | Description |
|---|---|---|
| power | string | Hand grinder, electric, or either (default). |
| budget | number | Most they want to spend, in US dollars. Leave out for any price. |
| methods | array | Brew methods they will use. Leave out if they did not say. |
| must_have | array | Only if the user asked for it. |
{
"type": "object",
"properties": {
"power": {
"enum": [
"either",
"hand",
"electric"
],
"type": "string",
"description": "Hand grinder, electric, or either (default)."
},
"budget": {
"type": "number",
"description": "Most they want to spend, in US dollars. Leave out for any price."
},
"methods": {
"type": "array",
"items": {
"enum": [
"pourover",
"aeropress",
"drip",
"french",
"cold",
"moka",
"espresso"
],
"type": "string"
},
"description": "Brew methods they will use. Leave out if they did not say."
},
"must_have": {
"type": "array",
"items": {
"enum": [
"quiet",
"travel",
"single-dose"
],
"type": "string"
},
"description": "Only if the user asked for it."
}
}
}Grind settings for one grinder across every brew method. Use this for any question of the form "what grind should I use for my <grinder>", "what setting for French press on a <grinder>", or "how do I dial in my <grinder>". Returns the recommended setting and usable range for espresso, moka pot, AeroPress, pour over, siphon, steep-and-release (Clever Dripper, Hario Switch), drip, cupping, Chemex, French press and cold brew. When the user names a brew method, pass it as `method`: the answer then leads with that method, plus a starting recipe (ratio, dose, water temperature, time). The grinder can be named however the user said it.
| Argument | Type | Description |
|---|---|---|
| roast | string | Optional roast level of the coffee the user is brewing. If they name a coffee rather than a roast ("Stumptown Hair Bender", "Lavazza Super Crema"), use what you know of it; leave out when unsure. Lighter roasts move the starting setting finer, darker ones coarser. |
| method | string | Optional brew method the user asked about, as they said it: "V60", "pour over", "French press", "espresso", "AeroPress", "cold brew", "Chemex", "drip", "moka pot", "siphon", "Clever Dripper", "cupping" |
| grinder* | string | Grinder name as the user said it, e.g. "Fellow Ode", "Baratza Encore", or a slug |
{
"type": "object",
"required": [
"grinder"
],
"properties": {
"roast": {
"enum": [
"light",
"medium-light",
"medium",
"medium-dark",
"dark"
],
"type": "string",
"description": "Optional roast level of the coffee the user is brewing. If they name a coffee rather than a roast (\"Stumptown Hair Bender\", \"Lavazza Super Crema\"), use what you know of it; leave out when unsure. Lighter roasts move the starting setting finer, darker ones coarser."
},
"method": {
"type": "string",
"description": "Optional brew method the user asked about, as they said it: \"V60\", \"pour over\", \"French press\", \"espresso\", \"AeroPress\", \"cold brew\", \"Chemex\", \"drip\", \"moka pot\", \"siphon\", \"Clever Dripper\", \"cupping\""
},
"grinder": {
"type": "string",
"description": "Grinder name as the user said it, e.g. \"Fellow Ode\", \"Baratza Encore\", or a slug"
}
}
}Every grinder BrewMark supports. Use this to check whether a grinder is covered, or to disambiguate when another tool reports more than one match. Not needed just to look up a name — the other tools accept ordinary names directly.
| Argument | Type | Description |
|---|---|---|
| search | string | Optional case-insensitive filter on brand or model name |
{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Optional case-insensitive filter on brand or model name"
}
}
}{
"type": "object",
"required": [
"grinder",
"setting",
"result"
],
"properties": {
"roast": {
"enum": [
"light",
"medium-light",
"medium",
"medium-dark",
"dark"
],
"type": "string",
"description": "Optional roast level of that coffee, if known. Recorded with the report; it does not change the suggestion."
},
"coffee": {
"type": "string",
"description": "The coffee as the user named it, roaster and name: \"Stumptown Hair Bender\". Only the coffee: never the user's name or other personal details. Leave out if they have not said."
},
"method": {
"type": "string",
"description": "Brew method, e.g. \"espresso\", \"V60\", \"Kalita Wave\". Pass it whenever the user has said it; the card shows that method's recipe."
},
"result": {
"enum": [
"sour",
"bitter",
"good"
],
"type": "string",
"description": "How it tasted: sour (also weak, thin, ran fast), bitter (also harsh, dry, ran slow), or good"
},
"grinder": {
"type": "string",
"description": "Grinder name as the user said it, e.g. \"Baratza Encore\""
},
"setting": {
"type": [
"number",
"string"
],
"description": "The setting they brewed at as written on the grinder, e.g. 18. On Fellow dials 4.2 is the second mark after 4; a Baratza Forte is macro number and micro letter, e.g. \"4R\"."
}
}
}