A Model Context Protocol (MCP) server that integrates with the Brewfather API to provide brewing inventory management and recipe analysis capabilities. This server allows MCP clients like Claude to interact with your Brewfather brewing data.
- Inventory Management: List and manage fermentables, hops, yeasts, and miscellaneous brewing supplies
- Recipe Analysis: Access detailed recipe information including ingredients and process details
- Batch Tracking: Monitor brewing batches, update measurements, and track progress
- Brewing Insights: Get brewing process guidance and sensor readings
- Python 3.13 or later
- Brewfather account with API access
- Brewfather API credentials (User ID and API Key)
- Log in to your Brewfather account
- Navigate to Settings → API
- Generate or copy your API User ID and API Key
- Keep these credentials secure - you'll need them for configuration
The easiest way to use this MCP server is with uvx, directly from the GitHub repository:
# Set your credentials as environment variables
export BREWFATHER_API_USER_ID="your-api-user-id"
export BREWFATHER_API_KEY="your-api-key"
# Run the server
uvx --from git+https://github.com/mindsocket/brewfather-mcp.git brewfather-mcpFor debugging:
uvx --from git+https://github.com/mindsocket/brewfather-mcp.git brewfather-mcp --debug- Clone this repository
- Install dependencies:
uv syncTo use this server with Claude Desktop via uvx, add the following to your Claude Desktop configuration file:
Location of config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\\Claude\\claude_desktop_config.json
Configuration:
{
"mcpServers": {
"brewfather": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/mindsocket/brewfather-mcp.git",
"brewfather-mcp"
],
"env": {
"BREWFATHER_API_USER_ID": "your-api-user-id",
"BREWFATHER_API_KEY": "your-api-key"
}
}
}
}To use this server with Claude Desktop from a local clone, use the same config file location as above with this configuration:
{
"mcpServers": {
"brewfather": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/absolute/path/to/brewfather-mcp/src/main.py"
],
"cwd": "/absolute/path/to/brewfather-mcp",
"env": {
"BREWFATHER_API_USER_ID": "your-api-user-id",
"BREWFATHER_API_KEY": "your-api-key"
}
}
}
}Replace:
/absolute/path/to/brewfather-mcpwith the full path to your cloned repositoryyour-api-user-idwith your Brewfather API User IDyour-api-keywith your Brewfather API Key
You may also need to provide the full path to the uv command.
For other MCP clients that support stdio transport, use:
- Command:
uv run --with mcp[cli] mcp run src/main.py - Working Directory: Path to this repository
- Environment Variables:
BREWFATHER_API_USER_IDandBREWFATHER_API_KEY
When developing or testing the server locally, there is the option of providing credentials via a .env file instead:
cp .env.example .env
# Edit .env with your Brewfather API credentialsThe server provides the following MCP tools:
list_fermentables- List all fermentables (malts, adjuncts, grains)get_fermentable_detail(identifier)- Get detailed fermentable informationlist_hops- List all hops with properties like alpha acidsget_hop_detail(identifier)- Get detailed hop informationlist_yeasts- List all yeasts with attenuation and typeget_yeast_detail(identifier)- Get detailed yeast informationlist_misc_items- List miscellaneous brewing suppliesget_misc_detail(item_id)- Get detailed misc item informationinventory_summary- Get comprehensive inventory overview
list_recipes- List all recipesget_recipe_detail(recipe_id)- Get detailed recipe information
list_batches- List all brewing batchesget_batch_detail(batch_id)- Get detailed batch informationupdate_batch(batch_id, ...)- Update batch measurements and statusget_batch_brewtracker(batch_id)- Get brewing process guidanceget_batch_last_reading(batch_id)- Get latest sensor readingsget_batch_readings_summary(batch_id)- Get sensor readings summary
update_fermentable_inventory(item_id, amount)- Update fermentable stockupdate_hop_inventory(item_id, amount)- Update hop stockupdate_yeast_inventory(item_id, amount)- Update yeast stockupdate_misc_inventory(item_id, amount)- Update misc item stock
uv run pytestmcptools can be handy for local testing:
# List available tools
mcpt tools uv run --with 'mcp[cli]' mcp run src/main.py
# Call a specific tool
mcpt call list_inventory_categories uv run --with 'mcp[cli]' mcp run src/main.pyPYTHONPATH=src uv run python src/http_runner.py --port 8000-
Import errors: Make sure you've run
uv syncto install all dependencies -
API authentication errors:
- For MCP clients: Check that credentials are correctly set in your client configuration
- For local development: Ensure your
.envfile exists with valid credentials - Verify your Brewfather API credentials are correct and have the necessary permissions
-
Connection timeouts: Check your internet connection and Brewfather API status
-
Path issues in Claude Desktop: Ensure you're using absolute paths in the configuration file
Enable debug mode to save API responses into a debug folder for troubleshooting:
BREWFATHER_MCP_DEBUG=1 mcpt call get_batch_detail --params '{"batch_id": "your-batch-id"}' uv run --with 'mcp[cli]' mcp run src/main.py