Initial commit: Mealie MCP server

Ports a working Hermes agent skill to an MCP server. The skill's value was not
its Mealie endpoints but ~25 operational rules found by running imports against
the live instance; those are now code with tests rather than prompt text.

The server owns deterministic mechanics — auth, the non-default User-Agent
Cloudflare requires, the `extension` field on cover uploads, PATCH instead of
the 500-ing bulk-action endpoints, decimal-comma normalization, and restoring
Swedish display text after parsing. Language and taste judgement stay with the
model, fed by the four reference notes shipped as MCP resources.

verify_recipe runs the finished-import definition as code so an agent cannot
report success on a recipe with an English ingredient line, a missing cover, or
ingredients still in the "Click Parse" state.

Home Assistant is optional and isolated; the Obsidian meal plan is out of scope.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-31 07:31:10 +02:00
committed by fredamn76
commit f2d233b430
17 changed files with 1643 additions and 0 deletions
@@ -0,0 +1,91 @@
# Fredrik + familjens smakprofil för Mealie-import
Den här profilen är tänkt att användas när nya recept ska väljas, prioriteras, importeras eller filtreras för Fredrik och familjen.
## Baslinje från nuvarande Mealie-bibliotek
Analysen bygger på cirka 198 recept i Mealie.
Tydliga mönster i befintliga recept:
- mycket **kyckling**, **lax**, **pasta**, **ris**, **grytor** och **ugnsrätter**
- stark dragning åt **medelhav/italienskt** och **asiatiskt**
- återkommande smaker: **citron**, **vitlök**, **parmesan**, **feta**, **örter**, **chili**, **kokos**, **curry**
- tydlig acceptans för både **vardagsmat** och **helgigare rätter**
- familjen verkar gilla rätter som är **krämiga**, **smakrikt kryddade**, **syrliga/friska** och ofta har tydlig sälta/umami
Exempel på representativa recept i biblioteket:
- Grönkålssoppa med grön curry
- Svamp- och salsicciapasta med tryffel
- Kycklingcurry med ris
- Citron- och örtris med halloumi
- Grillad lax med krämig citron- och spenatsås
- Asiatiska köttbullar i krämig kokos- och panengcurrysås
- Persisk biff/ärtgryta Khoresh Gheymeh
- Djoje Kebab saffransdoftande persiska kycklingspett
- Fesenjan - Kycklinggryta med valnötter och granatäpple
## Smaker att prioritera
Prioritera recept med en eller flera av dessa egenskaper:
### Proteiner
- kyckling
- lax och annan mild fisk
- lamm i rätt sammanhang
- nöt i gryta, kebab, spett eller färsrätter
- korv i smakrika vardagsrätter
- vegetariskt när det är tydligt smakdrivet, t.ex. halloumi, feta, örter, citron, svamp eller baljväxter
### Smakprofil
- syrligt och fräscht: citron, lime, granatäpple, yoghurt, örter
- varmt och kryddigt: curry, chili, saffran, spiskummin, paprika, vitlök
- runt och krämigt: kokosmjölk, yoghurt, ost, gräddiga eller sammetslena såser
- umami och sälta: parmesan, feta, brynt/rostad smak, tomat, lök
### Rätttyper
- grytor
- soppor
- ugnsrätter och gratänger
- risrätter
- pastarätter
- grillat/spett/kebab
- familjevänliga plock- eller brickrätter
## Persisk/iransk prioritering
Eftersom Carin/familjen vill ha in mer iranskt ska iranska recept ges **extra hög prioritet** även om de är underrepresenterade i nuvarande bibliotek.
### Särskilt önskvärda iranska rätter
- khoresh-rätter, t.ex. ghormeh sabzi, gheymeh, fesenjan
- kebab, koobideh, joojeh/djoojeh, barg
- risrätter/polo, särskilt med saffran, dill, bär eller tahdig
- ash och andra persiska soppor
- rätter med granatäpple, valnötter, saffran, torkad lime, sumak, mynta eller mycket örter
- vardagsvänliga iranska kyckling-, ris- och grytrecept
### Iranska recept ska gärna vara
- autentiska eller tydligt iranskinspirerade, inte bara "mellanöstern" i största allmänhet
- familjevänliga och möjliga att laga hemma utan alltför specialiserad restaurangutrustning
- smakrika men inte beroende av extrem hetta
- skrivna/importerade på svenska i Mealie
## Negativa signaler / lägre prioritet
Prioritera ned recept som är:
- torra och lågintensiva utan syra, örtighet eller krydddjup
- väldigt söta utan balans
- ultraprocessade/snackiga snarare än riktiga middagsrecept
- alltför amerikanska dessert-/fastfoodkopior om de inte är ovanligt bra
- starkt fokuserade på beige buffémat utan friskhet, örter, syra eller kryddkaraktär
## Praktisk rankingregel för importbevakning
När flera kandidater finns, prioritera i ungefär denna ordning:
1. iranskt/persiskt som verkar gott och trovärdigt
2. recept med kyckling, lax, gryta, ris, citron, örter, yoghurt, saffran, vitlök eller curry
3. familjevänliga vardagsrätter med tydlig smakprofil
4. vegetariska recept om de fortfarande känns smakrika och "riktiga" som middag
5. övrigt
## Instruktion för framtida importjobb/cron
När ett automatiskt jobb ska välja recept att importera:
- välj hellre **färre men mer träffsäkra** recept än många svaga
- favorisera svenska eller lättöversatta recept med tydliga ingredienser och steg
- om två recept verkar lika bra: välj det som är mer **iranskt**, mer **familjevänligt**, eller mer i linje med **kyckling/lax/gryta/ris/citron/örter**
- undvik dubletter mot befintliga Mealie-recept
- om iranska recept hittas: var mer generös med import även om exakt smakmatch är något osäkrare, eftersom biblioteket aktivt ska breddas åt det hållet