# Loafy: Sourdough Bread Baking (remote · loafy.ai)

Sourdough baking: dough calculators, a bake planner, The Sourdough Framework and your bake journal

- Trust score: 75/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `loafy.ai`: 75/100 (this document), [markdown](https://verifymcp.io/servers/ai-loafy-loafy/loafy.md), [page](https://verifymcp.io/servers/ai-loafy-loafy/loafy)

## Channel facts

- Endpoint: `https://loafy.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_bake).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 5203 tokens (~247/item across 21 items; 20 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 63/100
  - Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (90% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 20 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the Loafy: Sourdough Bread Baking MCP server?

Loafy: Sourdough Bread Baking is a hosted endpoint at https://loafy.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http ai-loafy-loafy 'https://loafy.ai/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "ai-loafy-loafy": {
      "url": "https://loafy.ai/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ai-loafy-loafy": {
      "type": "http",
      "url": "https://loafy.ai/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.ai-loafy-loafy]
url = "https://loafy.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-loafy-loafy": {
      "type": "remote",
      "url": "https://loafy.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-loafy-loafy --url 'https://loafy.ai/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-loafy-loafy:
    url: "https://loafy.ai/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "ai-loafy-loafy": {
      "Transport": "http",
      "Url": "https://loafy.ai/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add ai-loafy-loafy -t streamable-http -u 'https://loafy.ai/mcp'
```

### Other

```json
{
  "mcpServers": {
    "ai-loafy-loafy": {
      "type": "http",
      "url": "https://loafy.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-03 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 74, 0)

- [cosmetic] “log_bake” added an optional parameter “ph_readings”
- [cosmetic] “update_bake” added an optional parameter “ph_readings”

### 2026-11-01 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 72, +1)

- [cosmetic] “log_bake” added an optional parameter “loaf_shape”
- [cosmetic] “update_bake” added an optional parameter “loaf_shape”

### 2026-10-26 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 70, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “estimate_bulk_fermentation” rewrote its description, which is the text the model reads
- [security] Tool “plan_sourdough_bake” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 180 → 235
- [cosmetic] “log_bake” added an optional parameter “autolyse_minutes”
- [cosmetic] “log_bake” added an optional parameter “bake_level”
- [cosmetic] “log_bake” added an optional parameter “baking_method”
- [cosmetic] “log_bake” added an optional parameter “dough_rise_percent”
- [cosmetic] “log_bake” added an optional parameter “dry_yeast_percent”
- [cosmetic] “log_bake” added an optional parameter “flours”
- [cosmetic] “log_bake” added an optional parameter “fresh_yeast_percent”
- [cosmetic] “log_bake” added an optional parameter “other_bake_type_description”
- [cosmetic] “log_bake” added an optional parameter “piece_weight_grams”
- [cosmetic] “log_bake” added an optional parameter “pieces”
- [cosmetic] “log_bake” added an optional parameter “pre_rest”
- [cosmetic] “log_bake” added an optional parameter “preheat_level”
- [cosmetic] “log_bake” added an optional parameter “preheat_temp_celsius”
- [cosmetic] “log_bake” added an optional parameter “proof_rise_percent”
- [cosmetic] “log_bake” added an optional parameter “second_bake_minutes”
- [cosmetic] “log_bake” added an optional parameter “second_bake_temp_celsius”
- [cosmetic] “log_bake” added an optional parameter “stretch_fold_count”
- [cosmetic] “update_bake” added an optional parameter “autolyse_minutes”
- [cosmetic] “update_bake” added an optional parameter “bake_level”
- [cosmetic] “update_bake” added an optional parameter “baking_method”
- [cosmetic] “update_bake” added an optional parameter “dough_rise_percent”
- [cosmetic] “update_bake” added an optional parameter “dry_yeast_percent”
- [cosmetic] “update_bake” added an optional parameter “flours”
- [cosmetic] “update_bake” added an optional parameter “fresh_yeast_percent”
- [cosmetic] “update_bake” added an optional parameter “other_bake_type_description”
- [cosmetic] “update_bake” added an optional parameter “piece_weight_grams”
- [cosmetic] “update_bake” added an optional parameter “pieces”
- [cosmetic] “update_bake” added an optional parameter “pre_rest”
- [cosmetic] “update_bake” added an optional parameter “preheat_level”
- [cosmetic] “update_bake” added an optional parameter “preheat_temp_celsius”
- [cosmetic] “update_bake” added an optional parameter “proof_rise_percent”
- [cosmetic] “update_bake” added an optional parameter “second_bake_minutes”
- [cosmetic] “update_bake” added an optional parameter “second_bake_temp_celsius”
- [cosmetic] “update_bake” added an optional parameter “stretch_fold_count”
- [cosmetic] “log_bake” reworded the description of “bake_minutes”
- [cosmetic] “log_bake” reworded the description of “bake_temp_celsius”
- [cosmetic] “log_bake” reworded the description of “notes”
- [cosmetic] “log_bake” reworded the description of “problems”
- [cosmetic] “update_bake” reworded the description of “bake_minutes”
- [cosmetic] “update_bake” reworded the description of “bake_temp_celsius”
- [cosmetic] “update_bake” reworded the description of “notes”
- [cosmetic] “update_bake” reworded the description of “problems”
- [cosmetic] Tool “estimate_bulk_fermentation” changed its title: Bulk fermentation estimate → Bake Planner: bulk fermentation estimate
- [cosmetic] Tool “plan_sourdough_bake” changed its title: Sourdough bake planner → Bake Planner

### 2026-10-24 (score 70, 0)

- [security] Tool “plan_sourdough_bake” rewrote its description, which is the text the model reads
- [functional] New tool “estimate_bulk_fermentation”

## MCP tools (20)

### `calculate_bread_dough` (~228 tokens)

Bread dough calculator

Calculate a sourdough bread recipe in grams from loaf count, loaf size and hydration. Returns flour, water, starter and salt, plus a link to the same recipe on loafy.ai where the baker can adjust it and run the timers. Pizza dough is calculate_pizza_dough, and when to start a bake is plan_sourdough_bake. A value outside its range is corrected, and notes name it.

Input parameters:

- `hydration_percent` (integer): Water as a percentage of flour. The book recommends around 60 % for most flours; higher is more open but stickier.
- `loaf_size_g` (integer): Flour per loaf in grams, not the dough weight: 500 g of flour makes one standard loaf of about 860 g of dough. For a loaf of a given dough weight, the flour is about 58 % of it at 60 % hydration.
- `loaves` (integer): How many loaves to bake.
- `whole_grain_percent` (integer): Share of the flour that is whole grain, the rest is bread flour.

Output parameters:

- `dough_per_loaf_g` (number): The dough of one loaf, in grams.
- `ingredients` (object)
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `tool` (string): The tool that answered.
- `total_dough_g` (number): All the dough, in grams.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `calculate_pizza_dough` (~214 tokens)

Pizza dough calculator

Calculate pizza dough in grams from the number of pizzas, the ball weight and hydration, with either fresh yeast or sourdough starter. Returns flour, water, salt, leavening and toppings, plus a link to the same recipe on loafy.ai. A loaf of bread is calculate_bread_dough. A value outside its range is corrected, and notes name it.

Input parameters:

- `dough_type` (string): Leavened with fresh yeast or with sourdough starter.
- `hydration_percent` (integer): Water as a percentage of flour. 55-65 is easy to handle, above 70 is expert.
- `oven` (string): home is a domestic oven, pizza an Ooni or Roccbox, wood a wood-fired oven.
- `pizzas` (integer): How many pizzas.
- `weight_per_pizza_g` (integer): Dough ball weight in grams. Left out, it follows the oven: 250 g home, 270 g pizza oven, 280 g wood-fired.

Output parameters:

- `ingredients` (object): Flour, water, salt and the leavening (fresh yeast or starter), in grams.
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `tool` (string): The tool that answered.
- `toppings` (object): Toppings for all the pizzas: grams, and basil as leaves and pots.
- `total_dough_g` (number): All the dough, in grams.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `plan_sourdough_bake` (~274 tokens)

Bake Planner

Loafy's Bake Planner. Plan a sourdough bake backwards from when the bread should come out of the oven: when to feed the starter, mix, shape, proof in the fridge, preheat and bake, and how much starter suits the kitchen's temperature according to The Sourdough Framework. Returns the times and a link to the same plan in the Bake Planner on loafy.ai. The time is the baker's local date and time, such as 2026-10-24T10:00. The amounts of flour, water and starter are calculate_bread_dough; how long bulk fermentation takes at a given dough temperature and starter amount is estimate_bulk_fermentation.

Input parameters:

- `bulk_hours` (integer): Hours of bulk fermentation, if the baker knows their dough. Without it, the book's figure for the kitchen's temperature.
- `cold_proof_hours` (integer): Hours the shaped loaf proofs in the fridge. The book says 8 to 12.
- `kitchen_temperature_c` (integer): Kitchen temperature in °C, which sets how much starter to use.
- `ready_at` (string, required): When the bread should come out of the oven, as the baker's local date and time, e.g. "2026-10-24T10:00".

Output parameters:

- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `ready_at` (string): When the bread comes out of the oven.
- `starter` (object)
- `steps` (array): The bake, step by step, in order.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `estimate_bulk_fermentation` (~287 tokens)

Bake Planner: bulk fermentation estimate

Loafy's Bake Planner. Estimate how long the bulk fermentation of a sourdough bread dough (from mixing until shaping) takes at a given dough temperature and starter amount. Returns a range from several models with each model's figure and source: Bill Wraith's rise-time model (2007/08), the Loafy bakers (his model scaled by how long the bulk fermentations Loafy's bakers logged took) and, where the book names one, the figure from The Sourdough Framework. Every time is theoretical: the dough is done when it has grown, as the result's note says. For a whole bake planned backwards from when the bread should be ready, use plan_sourdough_bake.

Input parameters:

- `dough_temperature_c` (number, required): The dough's temperature in °C, measured in the dough. Convert °F: 72 °F is 22 °C.
- `salt` (string): "yes" for a bread dough with about 2 % salt, "no" for a levain or the starter itself.
- `starter_hydration_percent` (integer): The starter's hydration in %: 100 for equal flour and water, 50 for a stiff one.
- `starter_percent` (number, required): Starter as a percentage of the flour weight: 100 g of starter on 500 g of flour is 20.

Output parameters:

- `dough_temperature_c` (number): The dough temperature the estimate is for, in °C.
- `from_hours` (number): The shortest time any model gives: when to start checking the dough.
- `inoculation_percent` (number): The flour already fermented, the flour in the starter, as a share of all the flour: what Bill Wraith's model counts.
- `input` (object): The arguments as the tool used them, after any correction.
- `models` (array): Every model that has a figure for this dough.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `range` (string): The range in words, such as "6 h 30 min to 10 h".
- `salt` (boolean): Whether the dough has salt.
- `starter_hydration_percent` (integer): The starter's hydration, in %.
- `starter_percent` (number): Starter as a share of the flour, in %.
- `to_hours` (number): The longest time any model gives: when it should be done.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `list_sourdough_journeys` (~69 tokens)

List guided journeys

List Loafy's guided sourdough journeys: making a starter, baking a loaf, scoring, and more. Each one is a timed, step-by-step walkthrough on loafy.ai. Returns each journey's slug, title, duration, difficulty, number of steps and link.

Output parameters:

- `input` (object): The arguments as the tool used them, after any correction.
- `journeys` (array): Every guided journey.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `start_sourdough_journey` (~86 tokens)

Start a guided journey

Start one of Loafy's guided journeys and get the link that opens it at the first step. The journey runs on loafy.ai, where each fold, proof and bake is timed for the baker.

Input parameters:

- `slug` (string, required): Journey identifier from list_sourdough_journeys, e.g. "sourdough-bread", or the journey's title.

Output parameters:

- `first_step` (object)
- `input` (object): The arguments as the tool used them, after any correction.
- `journey` (object)
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `get_sourdough_journey_step` (~136 tokens)

Look up a journey step

Look up one step of a guided journey by its id, its title or its position: its title, where it sits in the journey, its timer in minutes when the step has one, and the link that opens it. The instructions themselves are on the page, where the timer for that step runs.

Input parameters:

- `slug` (string, required): Journey identifier, e.g. "sourdough-bread", or the journey's title.
- `step` (string): Step identifier (e.g. "mix"), its title, or position ("5" is the fifth step). Left out, the first step is returned.

Output parameters:

- `input` (object): The arguments as the tool used them, after any correction.
- `journey` (object)
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `step` (object)
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `find_sourdough_answer` (~222 tokens)

Find a sourdough answer

Search Loafy's library of answers to real questions from bakers, written by Hendrik Kleinwächter of The Bread Code and grounded in his book The Sourdough Framework. Returns the answers that match, each with the book chapter behind it and a link. When none matches, returns the closest passages from the book instead. The library covers starters, fermentation, dough, flour, baking and storage, and it is in English. The book itself is search_sourdough_book for passages and read_sourdough_book for a whole chapter. Without a Loafy account, reading and searching the book and the answers is limited to 3 questions a day, every lookup within 15 minutes counting as one question; with an account it has no limit. The calculators, the guides and the book's table of contents need no account.

Input parameters:

- `limit` (integer): How many answers to return. Defaults to 3.
- `query` (string, required): What the baker wants to know, in English, e.g. "my starter smells like vinegar".

Output parameters:

- `answers` (array): The answers that match.
- `input` (object): The arguments as the tool used them, after any correction.
- `license` (string): The licence of the book's text: CC BY-SA 4.0, with attribution.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `passages` (array): When no answer matches, the closest passages from the book.
- `suggestion` (string): Where to look next when nothing fits.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `search_sourdough_book` (~224 tokens)

Search The Sourdough Framework

Search Hendrik Kleinwächter's open-source book The Sourdough Framework and get the passages that answer a question, each with its chapter, a link and the part of the book it comes from, which read_sourdough_book returns in full. The book covers starters, fermentation, flour, hydration, shaping, baking and troubleshooting. It is written in English, and the search matches English words. Hendrik's published answers to common questions are find_sourdough_answer, and a whole chapter is read_sourdough_book. Without a Loafy account, reading and searching the book and the answers is limited to 3 questions a day, every lookup within 15 minutes counting as one question; with an account it has no limit. The calculators, the guides and the book's table of contents need no account.

Input parameters:

- `limit` (integer): How many passages to return. Defaults to 3.
- `query` (string, required): What to look up, in English, e.g. "starter smells like acetone" or "bulk fermentation temperature".

Output parameters:

- `input` (object): The arguments as the tool used them, after any correction.
- `license` (string): The licence of the book's text: CC BY-SA 4.0, with attribution.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `passages` (array): The passages that answer the question.
- `suggestion` (string): Where to look next when nothing fits.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `get_sourdough_book_contents` (~77 tokens)

Contents of The Sourdough Framework

The table of contents of Hendrik Kleinwächter's open-source book The Sourdough Framework: every chapter and section with its number and each chapter's length in words. read_sourdough_book returns any of them in full. The book covers starters, fermentation, flour, hydration, shaping, baking and troubleshooting.

### `read_sourdough_book` (~195 tokens)

Read The Sourdough Framework

Read a chapter or section of Hendrik Kleinwächter's open-source book The Sourdough Framework in full, by its number from get_sourdough_book_contents or by its title. Returns the text with its chapter, link and licence; a chapter longer than about 40,000 characters comes in pages. Without a Loafy account, reading and searching the book and the answers is limited to 3 questions a day, every lookup within 15 minutes counting as one question; with an account it has no limit. The calculators, the guides and the book's table of contents need no account.

Input parameters:

- `page` (integer): Which page of a long chapter. Most parts have one.
- `part` (string, required): A chapter or section: its number from get_sourdough_book_contents, e.g. "8" or "8.3", or its title, e.g. "Bulk fermentation".

### `list_my_bakes` (~117 tokens)

My Loafy bake journal

The baker's own bakes from their Loafy bake journal, newest first: what was baked and when, the recipe figures, rating, problems and notes, each with its id and a link. A new bake is log_bake, a change to one is update_bake with its id. Needs the baker's Loafy account.

Input parameters:

- `bake_type` (string): Only bakes of this kind, e.g. sourdough_bread or pizza.
- `limit` (integer): How many bakes, newest first.

Output parameters:

- `bakes` (array): Newest first.
- `in_journal` (integer): All bakes in the journal.
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `log_bake` (~1065 tokens)

Add a bake to my Loafy journal

Add a bake to the baker's Loafy bake journal: what was baked and when, the recipe figures, how it went and what to try next time. Returns the new entry with a link, where photos are added. The same bake sent again within two minutes returns the first entry instead of a second one, and a bake already in the journal changes with update_bake. Needs the baker's Loafy account.

Input parameters:

- `autolyse_minutes` (integer): Minutes the flour and water rested before mixing, with the starter in for a fermentolyse.
- `bake_level` (integer): On a stove: the dial's level while baking.
- `bake_minutes` (integer): Minutes in the oven, whole minutes (90 seconds is 2); with two phases, the first.
- `bake_temp_celsius` (integer): Oven temperature in °C; with two phases, the first (in a Dutch oven, with the lid on). A value above 300 °C is only plausible in a pizza or wood-fired oven.
- `bake_type` (string): What was baked.
- `baked_on` (string): The day of the bake, as YYYY-MM-DD; today if left out.
- `baking_method` (string): What it was baked in: home_oven also for a Dutch oven, a stone or a tray in it.
- `bulk_hours` (number): Hours of bulk fermentation.
- `bulk_temp_celsius` (number): Dough or room temperature during bulk, in °C.
- `dough_rise_percent` (integer): How much the dough grew during bulk fermentation, in percent.
- `dry_yeast_percent` (number): Dry or instant yeast as a percentage of flour.
- `flours` (string): The flours, comma-separated, each as its kind and grams, such as "bread_flour 450, rye 50", or its kind alone when no grams were given; kinds: bread_flour, all_purpose, whole_wheat, rye, spelt, einko…
- `fresh_yeast_percent` (number): Fresh yeast as a percentage of flour.
- `fridge_proof_hours` (number): Hours the shaped dough proofed in the fridge.
- `hydration_percent` (integer): Water as a percentage of flour.
- `loaf_shape` (string): How a sourdough bread was shaped: boule (round) or batard (oval). A baguette or a loaf pan bread is a bake_type of its own.
- `next_time_notes` (string): What to try differently next time.
- `notes` (string): How the bake went, in the baker's words: only what no other parameter takes.
- `other_bake_type_description` (string): What was baked, in the baker's words, when bake_type is other.
- `ph_readings` (string): What the baker's pH meter read, comma-separated, each as its step and value, such as "end_of_bulk 4.1, starter_ready 4.2"; steps: starter_ready, mixing, end_of_bulk, shaping, before_proof, after_proo…
- `piece_weight_grams` (integer): What one piece weighed when it was divided, in grams.
- `pieces` (integer): How many pieces the dough was divided into: loaves, rolls or pizza balls.
- `pre_rest` (string): That rest: an autolyse, flour and water only, or a fermentolyse, with the starter in.
- `preheat_level` (integer): On a stove: the dial's level while the pan heated.
- `preheat_temp_celsius` (integer): How hot the oven was preheated, in °C. A value above 300 °C is only plausible in a pizza or wood-fired oven.
- `problems` (string): What went wrong, comma-separated, from: dense_crumb, gummy_interior, no_oven_spring, flat_loaf, burnt_crust, pale_crust, bland_flavor, too_sour, didnt_rise, sticky_dough; anything else goes in the no…
- `proof_rise_percent` (integer): How much more the shaped dough grew during the proof, in percent.
- `rating` (integer): How it turned out, 1 to 5 stars.
- `room_temp_proof_hours` (number): Hours the shaped dough proofed at room temperature.
- `salt_percent` (number): Salt as a percentage of flour.
- `second_bake_minutes` (integer): Minutes of that second phase, whole minutes.
- `second_bake_temp_celsius` (integer): Oven temperature in °C of a second phase: with the lid off, or turned down. A value above 300 °C is only plausible in a pizza or wood-fired oven.
- `starter` (string): The name of the baker's starter that went in, if any.
- `starter_percent` (number): Starter as a percentage of flour.
- `stretch_fold_count` (integer): Sets of stretch and folds during bulk.

Output parameters:

- `bake` (object): A bake in the baker's journal.
- `card` (object): The figures the bake card in Claude shows (ui://loafy/bake-card).
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `photos` (string): Where photos are added.
- `saved` (string): What was saved, in one sentence.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `update_bake` (~1063 tokens)

Change a bake in my Loafy journal

Change a bake in the baker's Loafy bake journal, by its id from list_my_bakes or log_bake: only the figures and notes given change, the rest stays, and a text given replaces the old text. No bake is deleted. Returns the bake with a link. Needs the baker's Loafy account.

Input parameters:

- `autolyse_minutes` (integer): Minutes the flour and water rested before mixing, with the starter in for a fermentolyse.
- `bake_level` (integer): On a stove: the dial's level while baking.
- `bake_minutes` (integer): Minutes in the oven, whole minutes (90 seconds is 2); with two phases, the first.
- `bake_temp_celsius` (integer): Oven temperature in °C; with two phases, the first (in a Dutch oven, with the lid on). A value above 300 °C is only plausible in a pizza or wood-fired oven.
- `bake_type` (string): What was baked.
- `baked_on` (string): The day of the bake, as YYYY-MM-DD.
- `baking_method` (string): What it was baked in: home_oven also for a Dutch oven, a stone or a tray in it.
- `bulk_hours` (number): Hours of bulk fermentation.
- `bulk_temp_celsius` (number): Dough or room temperature during bulk, in °C.
- `dough_rise_percent` (integer): How much the dough grew during bulk fermentation, in percent.
- `dry_yeast_percent` (number): Dry or instant yeast as a percentage of flour.
- `flours` (string): The flours, comma-separated, each as its kind and grams, such as "bread_flour 450, rye 50", or its kind alone when no grams were given; kinds: bread_flour, all_purpose, whole_wheat, rye, spelt, einko…
- `fresh_yeast_percent` (number): Fresh yeast as a percentage of flour.
- `fridge_proof_hours` (number): Hours the shaped dough proofed in the fridge.
- `hydration_percent` (integer): Water as a percentage of flour.
- `id` (string, required): The bake's id, from list_my_bakes or log_bake.
- `loaf_shape` (string): How a sourdough bread was shaped: boule (round) or batard (oval). A baguette or a loaf pan bread is a bake_type of its own.
- `next_time_notes` (string): What to try differently next time.
- `notes` (string): How the bake went, in the baker's words: only what no other parameter takes.
- `other_bake_type_description` (string): What was baked, in the baker's words, when bake_type is other.
- `ph_readings` (string): What the baker's pH meter read, comma-separated, each as its step and value, such as "end_of_bulk 4.1, starter_ready 4.2"; steps: starter_ready, mixing, end_of_bulk, shaping, before_proof, after_proo…
- `piece_weight_grams` (integer): What one piece weighed when it was divided, in grams.
- `pieces` (integer): How many pieces the dough was divided into: loaves, rolls or pizza balls.
- `pre_rest` (string): That rest: an autolyse, flour and water only, or a fermentolyse, with the starter in.
- `preheat_level` (integer): On a stove: the dial's level while the pan heated.
- `preheat_temp_celsius` (integer): How hot the oven was preheated, in °C. A value above 300 °C is only plausible in a pizza or wood-fired oven.
- `problems` (string): What went wrong, comma-separated, from: dense_crumb, gummy_interior, no_oven_spring, flat_loaf, burnt_crust, pale_crust, bland_flavor, too_sour, didnt_rise, sticky_dough; anything else goes in the no…
- `proof_rise_percent` (integer): How much more the shaped dough grew during the proof, in percent.
- `rating` (integer): How it turned out, 1 to 5 stars.
- `room_temp_proof_hours` (number): Hours the shaped dough proofed at room temperature.
- `salt_percent` (number): Salt as a percentage of flour.
- `second_bake_minutes` (integer): Minutes of that second phase, whole minutes.
- `second_bake_temp_celsius` (integer): Oven temperature in °C of a second phase: with the lid off, or turned down. A value above 300 °C is only plausible in a pizza or wood-fired oven.
- `starter` (string): The name of the baker's starter that went in, if any.
- `starter_percent` (number): Starter as a percentage of flour.
- `stretch_fold_count` (integer): Sets of stretch and folds during bulk.

Output parameters:

- `bake` (object): A bake in the baker's journal.
- `card` (object): The figures the bake card in Claude shows (ui://loafy/bake-card).
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `photos` (string): Where photos are added.
- `saved` (string): What was saved, in one sentence.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `list_my_starters` (~76 tokens)

My Loafy starters

The baker's own sourdough starters in Loafy: name, birthday and age, notes and story, how many bakes each went into and when last, each with its id and a link. A new starter is add_starter, a change to one is update_starter. Needs the baker's Loafy account.

Output parameters:

- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `starters` (array): By name.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `add_starter` (~156 tokens)

Add a starter to Loafy

Add a sourdough starter to the baker's Loafy account: its name, the day it was started, notes and its story. Returns it with its id and a link, where photos are added. A name the baker already uses is not added again; that starter comes back, and update_starter changes it. Needs the baker's Loafy account.

Input parameters:

- `birthday` (string): The day the starter was started, as YYYY-MM-DD; today if left out.
- `name` (string, required): The starter's name.
- `notes` (string): Notes on the starter, e.g. its flour and how it is fed.
- `story` (string): Where the starter comes from, in the baker's words.

Output parameters:

- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `saved` (string): What was saved, in one sentence.
- `starter` (object): One of the baker's starters.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `update_starter` (~150 tokens)

Change a starter in Loafy

Change one of the baker's starters, by its id from list_my_starters: only the name, birthday, notes or story given change, and a text given replaces the old text. No starter is deleted. Needs the baker's Loafy account.

Input parameters:

- `birthday` (string): The day the starter was started, as YYYY-MM-DD.
- `id` (string, required): The starter's id, from list_my_starters or add_starter.
- `name` (string): The starter's name.
- `notes` (string): Notes on the starter, e.g. its flour and how it is fed.
- `story` (string): Where the starter comes from, in the baker's words.

Output parameters:

- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `saved` (string): What was saved, in one sentence.
- `starter` (object): One of the baker's starters.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `list_my_containers` (~72 tokens)

My Loafy containers

The baker's own containers in Loafy: name and empty weight in grams, which Loafy takes off when dough is weighed in them, with notes, each with its id and a link. A new container is add_container, a change to one is update_container. Needs the baker's Loafy account.

Output parameters:

- `containers` (array): By name.
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `add_container` (~123 tokens)

Add a container to Loafy

Add a container to the baker's Loafy account with its empty weight in grams, so Loafy can take it off when dough is weighed in it. Returns it with its id and a link. A name the baker already uses is not added again; that container comes back, and update_container changes it. Needs the baker's Loafy account.

Input parameters:

- `name` (string, required): The container's name, e.g. "Glass bowl".
- `notes` (string): Notes on the container.
- `weight_grams` (integer, required): The empty container's weight in grams.

Output parameters:

- `container` (object): One of the baker's containers.
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `saved` (string): What was saved, in one sentence.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

### `update_container` (~122 tokens)

Change a container in Loafy

Change one of the baker's containers, by its id from list_my_containers: only the name, weight or notes given change, and a text given replaces the old text. No container is deleted. Needs the baker's Loafy account.

Input parameters:

- `id` (string, required): The container's id, from list_my_containers or add_container.
- `name` (string): The container's name, e.g. "Glass bowl".
- `notes` (string): Notes on the container.
- `weight_grams` (integer): The empty container's weight in grams.

Output parameters:

- `container` (object): One of the baker's containers.
- `input` (object): The arguments as the tool used them, after any correction.
- `note` (string): A remark on the whole result, such as why nothing was found.
- `notes` (array): What was corrected or left out, such as a value outside its range.
- `saved` (string): What was saved, in one sentence.
- `tool` (string): The tool that answered.
- `url` (string): The same answer, recipe or entry on loafy.ai.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ai-loafy-loafy/loafy#diagnostics

## Score history

- 2026-11-05: 75
- 2026-11-04: 75
- 2026-11-03: 75
- 2026-11-02: 74
- 2026-11-01: 74
- 2026-10-31: 73
- 2026-10-30: 73
- 2026-10-29: 72
- 2026-10-28: 72
- 2026-10-27: 71
- 2026-10-26: 71
- 2026-10-25: 70
- 2026-10-24: 70
- 2026-10-23: 70
- 2026-10-22: 69
- 2026-10-21: 69
- 2026-10-20: 68
- 2026-10-19: 68
- 2026-10-18: 67
- 2026-10-17: 66

## Common questions

### What is the Loafy: Sourdough Bread Baking MCP server?

Loafy: Sourdough Bread Baking is an MCP server listed in the public MCP registry as ai.loafy/loafy. Sourdough baking: dough calculators, a bake planner, The Sourdough Framework and your bake journal. This page covers its hosted endpoint (https://loafy.ai/mcp).

### Is the Loafy: Sourdough Bread Baking MCP server safe to use?

Loafy: Sourdough Bread Baking scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Loafy: Sourdough Bread Baking MCP server expose?

Loafy: Sourdough Bread Baking exposes 20 tools: calculate_bread_dough, calculate_pizza_dough, plan_sourdough_bake, estimate_bulk_fermentation, list_sourdough_journeys, and 15 more. Their descriptions and schemas cost roughly 4,956 tokens of context every time the server is loaded.

### Does the Loafy: Sourdough Bread Baking MCP server require authentication?

No. We connected to Loafy: Sourdough Bread Baking without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Loafy: Sourdough Bread Baking MCP server still maintained?

Loafy: Sourdough Bread Baking is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://loafy.ai/mcp
- Website: https://loafy.ai/claude
- Changelog RSS feed: https://verifymcp.io/servers/ai-loafy-loafy/loafy.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-loafy-loafy/loafy.json
- HTML version of this page: https://verifymcp.io/servers/ai-loafy-loafy/loafy
