Skip to content

Loafy: Sourdough Bread Baking

by loafy.ai · remote · no sign-in to list tools · v1.1.0 · published by ai.loafy

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

Deletes · 3Changes · 7

19 tools: 3 can delete or cancel things, 7 change things and 9 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

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

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "start_sourdough_journey" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "start_sourdough_journey" says "start": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

19 tools

Deletes or cancels 3Claude Code: deny
  • update_bakeChange 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 ol…No findings

    Why it is in this group

    • The name "update_bake" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Change a bake in my Loafy journal
  • update_containerChange 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 findings

    Why it is in this group

    • The name "update_container" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Change a container in Loafy
  • update_starterChange 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 findings

    Why it is in this group

    • The name "update_starter" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Change a starter in Loafy
Changes things 7Claude Code: ask
  • add_containerAdd 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.No findings

    Why it is in this group

    • The name "add_container" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Add a container to Loafy
  • add_starterAdd a sourdough starter to the baker's Loafy account: its name, the day it was started, notes and its story.No findings

    Why it is in this group

    • The name "add_starter" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Add a starter to Loafy
  • calculate_bread_doughCalculate a sourdough bread recipe in grams from loaf count, loaf size and hydration.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Bread dough calculator
  • calculate_pizza_doughCalculate pizza dough in grams from the number of pizzas, the ball weight and hydration, with either fresh yeast or sourdough starter.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Pizza dough calculator
  • log_bakeAdd 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.No findings

    Why it is in this group

    • The name "log_bake" says "log": a word for reading.
    • The description's first verb is "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Add a bake to my Loafy journal
  • plan_sourdough_bakePlan 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 s…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Sourdough bake planner
  • start_sourdough_journeyStart one of Loafy's guided journeys and get the link that opens it at the first step.1 finding

    Why it is in this group

    • The name "start_sourdough_journey" says "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "start_sourdough_journey" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "start_sourdough_journey" says "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Start a guided journey
Only reads 9Claude Code: allow
  • find_sourdough_answerSearch 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.No findings

    Why it is in this group

    • The name "find_sourdough_answer" says "find": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Find a sourdough answer
  • get_sourdough_book_contentsThe 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.No findings

    Why it is in this group

    • The name "get_sourdough_book_contents" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Contents of The Sourdough Framework
  • get_sourdough_journey_stepLook 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 op…No findings

    Why it is in this group

    • The name "get_sourdough_journey_step" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Look up a journey step
  • list_my_bakesThe 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.No findings

    Why it is in this group

    • The name "list_my_bakes" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: My Loafy bake journal
  • list_my_containersThe 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.No findings

    Why it is in this group

    • The name "list_my_containers" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: My Loafy containers
  • list_my_startersThe 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.No findings

    Why it is in this group

    • The name "list_my_starters" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: My Loafy starters
  • list_sourdough_journeysList Loafy's guided sourdough journeys: making a starter, baking a loaf, scoring, and more.No findings

    Why it is in this group

    • The name "list_sourdough_journeys" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List guided journeys
  • read_sourdough_bookRead 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.No findings

    Why it is in this group

    • The name "read_sourdough_book" says "read": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Read The Sourdough Framework
  • search_sourdough_bookSearch 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 …No findings

    Why it is in this group

    • The name "search_sourdough_book" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Search The Sourdough Framework

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

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

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__loafy__list_sourdough_journeys",
      "mcp__loafy__get_sourdough_journey_step",
      "mcp__loafy__find_sourdough_answer",
      "mcp__loafy__search_sourdough_book",
      "mcp__loafy__get_sourdough_book_contents",
      "mcp__loafy__read_sourdough_book",
      "mcp__loafy__list_my_bakes",
      "mcp__loafy__list_my_starters",
      "mcp__loafy__list_my_containers"
    ],
    "ask": [
      "mcp__loafy__calculate_bread_dough",
      "mcp__loafy__calculate_pizza_dough",
      "mcp__loafy__plan_sourdough_bake",
      "mcp__loafy__start_sourdough_journey",
      "mcp__loafy__log_bake",
      "mcp__loafy__add_starter",
      "mcp__loafy__add_container"
    ],
    "deny": [
      "mcp__loafy__update_bake",
      "mcp__loafy__update_starter",
      "mcp__loafy__update_container"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as loafy. Review it before you use it.