mcp-server-brewfather
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BREWFATHER_API_KEY | Yes | Your Brewfather API key, generated in Brewfather under Settings → API → Generate API Key. Its scopes are the trust boundary (e.g. batches.read, recipes.read, inventory.read, and optionally batches.write, recipes.write, inventory.write). | |
| BREWFATHER_USER_ID | Yes | Your Brewfather User ID, shown alongside the API key in Brewfather under Settings → API. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_batchesA | Find batches by name (case-insensitive substring) and/or status. |
| get_batchA | Read one batch: summary, fermentation/bottling dates, estimated targets (OG, FG, IBU, color), all measured values, and the embedded recipe (target stats + ingredient bill). Units are metric (SG, L, °C). |
| get_readingsA | Read a batch's sensor readings (hydrometer, e.g. Tilt/iSpindel), newest last. |
| get_brewtrackerA | Read a batch's brew-day tracker: current stage (e.g. Mash, Boil) and step, time left on the stage timer, the steps still to come, and the next stage. |
| update_batchB | Update a batch's status and/or measured values. |
| find_recipesA | Find recipes by name (case-insensitive substring; empty returns all). |
| get_recipeA | Read one recipe: summary, target stats (batchSize, og, fg, abv, ibu, color, …) and ingredient bill (fermentables, hops, miscs, yeasts). Units are metric. Stats are as last saved in the Brewfather app, so they can be stale after update_recipe. |
| create_recipeA | Create a new recipe. |
| update_recipeA | Edit a recipe's settings and/or ingredient bill. |
| list_inventoryA | List inventory items of one |
| set_inventoryA | Change the stock of one inventory item. |
| create_inventory_itemA | Add a new item to the inventory. |
| update_inventory_itemA | Edit an inventory item's details (not its stock — use set_inventory). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool targets a distinct resource+action: recipes (find/get/create/update), batches (find/get/update/readings/brewtracker), and inventory (list/set/create/update). The only potentially confusable pair, set_inventory vs update_inventory_item, is explicitly disambiguated in the descriptions (stock vs details).
Names are uniformly snake_case verb_noun (get_batch, create_recipe, update_inventory_item), which is predictable and readable. Minor deviation: enumeration-style operations mix 'find' (find_recipes, find_batches) and 'list' (list_inventory), and single-item reads use 'get', which is a slight inconsistency but semantically motivated.
13 tools is well within the ideal range and each one earns its place, mapping cleanly onto the three domains (recipes, batches, inventory) without redundancy. No thin single-tool areas and no bloat.
Read/update coverage is strong across recipes, batches, and inventory, including specialized reads (readings, brewtracker) and careful split of inventory stock vs details. Gaps: no delete operations for recipes or inventory items, and no batch creation or log/event writing, though these are minor for a primarily read-and-adjust workflow.