brewers-almanack 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
<a href="https://github.com/gregario/brewers-almanack/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT Licence"></a>
|
|
11
11
|
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg" alt="Node.js 18+"></a>
|
|
12
12
|
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-purple.svg" alt="MCP Compatible"></a>
|
|
13
|
+
<a href="https://glama.ai/mcp/servers/gregario/brewers-almanack"><img src="https://glama.ai/mcp/servers/gregario/brewers-almanack/badges/score.svg" alt="brewers-almanack MCP server"></a>
|
|
13
14
|
</p>
|
|
14
15
|
|
|
15
16
|
---
|
|
@@ -28,7 +28,7 @@ function formatYeast(yeast) {
|
|
|
28
28
|
`## ${yeast.name} (Yeast)`,
|
|
29
29
|
`Producer: ${yeast.producer} | Code: ${yeast.code}`,
|
|
30
30
|
`Type: ${yeast.type} | Form: ${yeast.form}`,
|
|
31
|
-
`Temp: ${yeast.tempMin}-${yeast.tempMax}°
|
|
31
|
+
`Temp: ${yeast.tempMin}-${yeast.tempMax}°C`,
|
|
32
32
|
`Attenuation: ${yeast.attenuationMin}-${yeast.attenuationMax}%`,
|
|
33
33
|
`Flocculation: ${yeast.flocculation}`,
|
|
34
34
|
`Flavour: ${yeast.flavourProfile}`,
|
|
@@ -10,28 +10,99 @@ function findStyle(query) {
|
|
|
10
10
|
return results.length > 0 ? results[0] : null;
|
|
11
11
|
}
|
|
12
12
|
function selectMalts(styleName, category, tags) {
|
|
13
|
-
// Pick a base malt
|
|
13
|
+
// Pick a base malt. For Pilsner/lager-pale styles prefer Pilsner Malt;
|
|
14
|
+
// for English styles prefer Maris Otter; otherwise default to 2-Row.
|
|
15
|
+
// Uses a mix of tag checks (preferred — explicit) and case-insensitive
|
|
16
|
+
// word matches against name+category. Avoid bare substring checks like
|
|
17
|
+
// .includes("red") because they false-match "lagered" etc.
|
|
14
18
|
const baseMalts = MALTS.filter((m) => m.type === "base");
|
|
15
|
-
const
|
|
16
|
-
|
|
19
|
+
const tagsLower = tags.map((t) => t.toLowerCase());
|
|
20
|
+
const nameCat = (styleName + " " + category).toLowerCase();
|
|
21
|
+
const hasWord = (s, word) => new RegExp(`\\b${word}\\b`, "i").test(s);
|
|
22
|
+
const isPilsnerLike = tagsLower.includes("pilsner-family") ||
|
|
23
|
+
tagsLower.includes("pale-lager-family") ||
|
|
24
|
+
hasWord(nameCat, "pilsner") ||
|
|
25
|
+
hasWord(nameCat, "pils") ||
|
|
26
|
+
hasWord(nameCat, "helles") ||
|
|
27
|
+
/k(ö|o)lsch/i.test(nameCat);
|
|
28
|
+
const isEnglish = hasWord(nameCat, "english") ||
|
|
29
|
+
hasWord(nameCat, "british") ||
|
|
30
|
+
hasWord(nameCat, "esb") ||
|
|
31
|
+
/\bmild\b/i.test(styleName);
|
|
32
|
+
const isWheat = tagsLower.includes("wheat-beer-family") ||
|
|
33
|
+
hasWord(nameCat, "wheat") ||
|
|
34
|
+
hasWord(nameCat, "hefeweizen") ||
|
|
35
|
+
hasWord(nameCat, "weiss") ||
|
|
36
|
+
hasWord(nameCat, "weissbier") ||
|
|
37
|
+
hasWord(nameCat, "witbier");
|
|
38
|
+
let base = baseMalts.find((m) => m.name === "2-Row Pale Malt") ?? baseMalts[0];
|
|
39
|
+
if (isPilsnerLike) {
|
|
40
|
+
base = baseMalts.find((m) => m.name === "Pilsner Malt") ?? base;
|
|
41
|
+
}
|
|
42
|
+
else if (isEnglish) {
|
|
43
|
+
base = baseMalts.find((m) => m.name === "Maris Otter") ?? base;
|
|
44
|
+
}
|
|
45
|
+
else if (isWheat) {
|
|
46
|
+
base = baseMalts.find((m) => m.name === "Wheat Malt") ?? base;
|
|
47
|
+
}
|
|
48
|
+
// Pick specialty malts based on style character. Use tag/word checks,
|
|
49
|
+
// not bare substring matches, to avoid picking up "red" inside "lagered".
|
|
17
50
|
const specialtyMalts = MALTS.filter((m) => m.type !== "base");
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
51
|
+
const isDark = tagsLower.includes("dark-color") ||
|
|
52
|
+
tagsLower.includes("stout-family") ||
|
|
53
|
+
tagsLower.includes("dark-lager-family") ||
|
|
54
|
+
hasWord(nameCat, "stout") ||
|
|
55
|
+
hasWord(nameCat, "porter") ||
|
|
56
|
+
hasWord(nameCat, "schwarzbier") ||
|
|
57
|
+
hasWord(nameCat, "dunkel") ||
|
|
58
|
+
hasWord(nameCat, "dunkles");
|
|
59
|
+
if (isDark) {
|
|
60
|
+
// Prefer actual roasted-type malts; fall back to crystals with roast
|
|
61
|
+
// character only if no roasted malts qualify.
|
|
62
|
+
const roasted = specialtyMalts.filter((m) => m.type === "roasted").slice(0, 2);
|
|
63
|
+
return { base, specialty: roasted };
|
|
64
|
+
}
|
|
65
|
+
const isAmber = tagsLower.includes("amber-color") ||
|
|
66
|
+
tagsLower.includes("amber-ale-family") ||
|
|
67
|
+
tagsLower.includes("amber-lager-family") ||
|
|
68
|
+
hasWord(nameCat, "amber") ||
|
|
69
|
+
hasWord(nameCat, "red") ||
|
|
70
|
+
hasWord(nameCat, "brown") ||
|
|
71
|
+
hasWord(nameCat, "märzen") ||
|
|
72
|
+
hasWord(nameCat, "marzen") ||
|
|
73
|
+
hasWord(nameCat, "vienna") ||
|
|
74
|
+
hasWord(nameCat, "altbier");
|
|
75
|
+
if (isAmber) {
|
|
76
|
+
const selected = specialtyMalts.filter((m) => {
|
|
77
|
+
const mLower = (m.name + " " + m.flavour + " " + m.description).toLowerCase();
|
|
26
78
|
return m.type === "crystal" || mLower.includes("caramel");
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
//
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
79
|
+
}).slice(0, 2);
|
|
80
|
+
return { base, specialty: selected };
|
|
81
|
+
}
|
|
82
|
+
if (isWheat) {
|
|
83
|
+
// Wheat styles already have a wheat-malt base; add at most one specialty
|
|
84
|
+
// grain (e.g. flaked wheat or flaked oats) for character.
|
|
85
|
+
const selected = specialtyMalts.filter((m) => {
|
|
86
|
+
const mLower = (m.name + " " + m.flavour + " " + m.description).toLowerCase();
|
|
87
|
+
return mLower.includes("wheat") || mLower.includes("oat");
|
|
88
|
+
}).slice(0, 1);
|
|
89
|
+
return { base, specialty: selected };
|
|
90
|
+
}
|
|
91
|
+
// Pale styles (American IPA, American Pale Ale, Bohemian/German Pils,
|
|
92
|
+
// Helles, Kölsch, Blonde Ale, Cream Ale, etc.): keep it base-malt-led.
|
|
93
|
+
// Crystal malts in IPAs/pilsners are not idiomatic — leave specialty empty
|
|
94
|
+
// and let the consumer scale base to 100%.
|
|
95
|
+
const isPale = tagsLower.includes("pale-color") ||
|
|
96
|
+
hasWord(nameCat, "pale") ||
|
|
97
|
+
hasWord(nameCat, "ipa") ||
|
|
98
|
+
hasWord(nameCat, "blonde") ||
|
|
99
|
+
hasWord(nameCat, "cream") ||
|
|
100
|
+
isPilsnerLike;
|
|
101
|
+
if (isPale) {
|
|
102
|
+
return { base, specialty: [] };
|
|
103
|
+
}
|
|
104
|
+
// Unknown/other styles: default to base-only rather than guessing crystal.
|
|
105
|
+
return { base, specialty: [] };
|
|
35
106
|
}
|
|
36
107
|
function selectHops(styleName) {
|
|
37
108
|
// Find hops whose styles array includes this style
|
|
@@ -73,15 +144,24 @@ function selectWater(styleName) {
|
|
|
73
144
|
styleName.toLowerCase().includes(bf.toLowerCase())));
|
|
74
145
|
return matching.length > 0 ? matching[0] : null;
|
|
75
146
|
}
|
|
147
|
+
// Unit conversions for grain weight calculation.
|
|
148
|
+
// Malt potential is conventionally expressed in PPG (points per pound per
|
|
149
|
+
// gallon at 100% mash efficiency). To work consistently in metric we convert
|
|
150
|
+
// the imperial PPG yield into a metric "points per kg per litre" yield.
|
|
151
|
+
const LITRES_PER_US_GALLON = 3.785411784;
|
|
152
|
+
const KG_PER_POUND = 0.45359237;
|
|
153
|
+
// 37 PPG (typical 2-Row pale malt) → ~308.8 points per kg per litre.
|
|
154
|
+
const POINTS_PER_KG_PER_LITRE_AT_37_PPG = (37 * LITRES_PER_US_GALLON) / KG_PER_POUND;
|
|
76
155
|
function calculateGrainWeight(ogTarget, batchLitres, efficiency = 0.72) {
|
|
77
|
-
//
|
|
78
|
-
// OG points = (OG - 1) * 1000, e.g. 1.065 -> 65
|
|
156
|
+
// OG points: (OG - 1) * 1000. e.g. 1.065 → 65 gravity points per litre.
|
|
79
157
|
const ogPoints = (ogTarget - 1) * 1000;
|
|
80
|
-
//
|
|
158
|
+
// Total gravity-points needed across the whole batch (litre-points).
|
|
81
159
|
const totalPoints = ogPoints * batchLitres;
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
-
|
|
160
|
+
// Effective yield per kg of grain across the whole batch volume,
|
|
161
|
+
// assuming a 37 PPG base malt at the given mash efficiency.
|
|
162
|
+
// Result is in litre-points per kg of grain.
|
|
163
|
+
const yieldPerKg = POINTS_PER_KG_PER_LITRE_AT_37_PPG * efficiency;
|
|
164
|
+
return totalPoints / yieldPerKg;
|
|
85
165
|
}
|
|
86
166
|
export function registerSuggestRecipe(server) {
|
|
87
167
|
server.registerTool("suggest_recipe", {
|
|
@@ -116,15 +196,23 @@ export function registerSuggestRecipe(server) {
|
|
|
116
196
|
const yeast = selectYeast(matchedStyle.name, matchedStyle.tags);
|
|
117
197
|
const water = selectWater(matchedStyle.name);
|
|
118
198
|
const totalGrainKg = calculateGrainWeight(ogTarget, batch_size_litres);
|
|
119
|
-
|
|
199
|
+
// When specialty malts are present, hold base ≈ 85% and split the
|
|
200
|
+
// remaining 15% across specialty grains. With no specialty (e.g. pale
|
|
201
|
+
// styles like American IPA / Pilsner) the base malt provides 100%.
|
|
202
|
+
const baseFraction = malts.specialty.length > 0 ? 0.85 : 1.0;
|
|
203
|
+
const baseKg = (totalGrainKg * baseFraction).toFixed(2);
|
|
120
204
|
const specialtyKg = malts.specialty.length > 0
|
|
121
|
-
? (totalGrainKg * 0.15 / malts.specialty.length).toFixed(
|
|
205
|
+
? (totalGrainKg * 0.15 / malts.specialty.length).toFixed(2)
|
|
122
206
|
: "0";
|
|
123
207
|
// Determine mash temp based on style character
|
|
124
208
|
const tags = matchedStyle.tags.join(" ").toLowerCase();
|
|
125
209
|
const isDry = tags.includes("bitter") || tags.includes("hoppy") || matchedStyle.name.toLowerCase().includes("ipa");
|
|
126
210
|
const mashTemp = isDry ? "65°C (149°F) — lower for drier finish" : "67°C (153°F) — higher for fuller body";
|
|
127
|
-
|
|
211
|
+
// Yeast tempMin/tempMax are stored in °C (see src/data/yeasts.ts —
|
|
212
|
+
// ales 18–23, lagers 9–15, kveik 25–40). Convert °C → °F for display.
|
|
213
|
+
const fermTempFMin = Math.round(yeast.tempMin * 9 / 5 + 32);
|
|
214
|
+
const fermTempFMax = Math.round(yeast.tempMax * 9 / 5 + 32);
|
|
215
|
+
const fermTemp = `${yeast.tempMin}-${yeast.tempMax}°C (${fermTempFMin}-${fermTempFMax}°F)`;
|
|
128
216
|
const lines = [
|
|
129
217
|
`# Recipe: ${matchedStyle.name}`,
|
|
130
218
|
`Batch size: ${batch_size_litres} litres | Target OG: ${ogTarget.toFixed(3)} | IBU: ${ibuTarget} | ABV: ~${abvTarget}%`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest-recipe.js","sourceRoot":"","sources":["../../src/tools/suggest-recipe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"suggest-recipe.js","sourceRoot":"","sources":["../../src/tools/suggest-recipe.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brewers-almanack",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "A brewing knowledge MCP server — beer styles, ingredients, off-flavour diagnosis, water chemistry, and recipe guidance for AI brewing assistants",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|