Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Dagligvarer fra nemlig.com og BilkaToGo. Beder brugeren om en madplan eller ugens indkøb af mad, så kald ugeplan_forloeb først og følg forløbet trin for trin. Er Telegram sat op, foregår al snak med husstanden der, ikke i chatten. Du kan søge, se tilbud og opskrifter, sammenligne priser og ændre antal i kurven. Du kan også huske, hvad brugerne har hjemme (beholdning), og tage højde for det i madplaner. Til madplaner: læs vis_profil (personer, ugebudget, præferencer, ting at undgå), vælg helst retter fra vis_opskrifter (retter brugerne stoler på), og sig til, hvis prisen går over ugebudgettet. Vær grundig, når du vælger varer: tag ikke bare første bedste eller opskriftens standardvare. Skriv mængden med i søgningen, prøv flere søgetekster, gå alternativerne igennem og vælg ud fra pris, mængde og kvalitet (rå varer, økologi hvis profilen siger det, ikke ultraforarbejdet). Fortæl kort, hvorfor du valgte som du gjorde. Du kan ALDRIG bestille, betale eller vælge leveringstid: det gør brugeren selv på butikkens hjemmeside. Spørg altid brugeren, før du ændrer kurven, og vis bagefter hvad der ligger i den.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
soeg_varerA

Søg efter varer i én butik (nemlig eller bilka). Giver pris, enhedspris, tilbud og lager. Butikken sorterer efter popularitet, så de billigste varer er tit ikke i toppen. Sæt billigst_foerst=True for at gennemsøge flere hits og ugens tilbud og få de relevante varer på lager sorteret efter det billigste køb. Står der en mængde i teksten ("500 g hakket oksekød"), sorteres efter prisen for at dække den. Brug det, når prisen betyder noget, og prøv flere søgetekster (fx "kyllingebryst øko", "kyllingeinderfilet"), før du vælger.

ugens_tilbudC

Ugens tilbud i én butik. nemlig: Skarp pris, Priskup, Dagstilbud og Undgå madspild.

soeg_opskrifterA

Søg i nemligs opskrifter. Giver navn og link. Brug hent_opskrift for varer og pris.

hent_opskriftB

Varerne til en nemlig-opskrift (link eller id) for et antal personer, med pris. Varer markeret har_hjemme (salt, olie osv.) er ikke med i prisen.

sammenlign_listeA

Prissæt en indkøbsliste i flere butikker, med gebyrer, og find den billigste. varer er fx ["500 g hakket oksekød", "1 l letmælk", "2 stk løg", "pasta"]. Skriv mængden med, når du kender den: så vælges de pakker, der dækker behovet billigst, i stedet for den laveste kg-pris (som kan være en alt for stor pakke). antal ganger hele linjen (standard 1). oekologisk=True lader økovarer koste op til 50 % mere og stadig blive valgt. Hver linje har op til 4 alternativer. Valget er kun et forslag ud fra pris og ord: GÅ ALTERNATIVERNE IGENNEM og vælg selv ud fra kvalitet (rå vare frem for færdigret, ikke ultraforarbejdet, rigtig vare frem for smagsvariant, profilens præferencer). Usikre linjer skal altid tjekkes, evt. med en bedre søgetekst, før kurven fyldes. anbefaling siger, hvor det samlet er billigst med levering, pakning og minimumskøb: én butik, eller begge, når det kan betale sig. Følg den, medmindre kvaliteten taler imod.

vis_kurvC

Kurvens linjer, gebyrer, total, minimumskøb og valgt leveringstid.

saet_antal_i_kurvA

Sæt antal af varer i kurven: {"varenummer": antal}. Antallet er det samlede antal (ikke et tillæg), og 0 fjerner varen. Ændrer KUN kurven. Spørg brugeren først.

vis_beholdningA

Det I har hjemme (køleskab, fryser, skab), som I sidst har fortalt det. noteret er hvornår hver vare sidst blev opdateret: gamle varer kan være brugt eller for gamle. Brug den til madplaner og indkøbslister, så I ikke køber det, I allerede har.

opdater_beholdningA

Gem hvad I har hjemme. Ændrer kun en lokal liste, aldrig butikkernes kurv. tilfoej: [{"navn": "løg", "maengde": "2 stk", "sted": "køleskab"}]. Findes navnet, rettes det. fjern: navne på varer der er brugt op. erstat_alt=True: listen er hele beholdningen (fx efter et kig i køleskabet), og alt andet slettes. Spørg, hvis det er uklart om noget er brugt op, og vis bagefter den nye beholdning.

koebsmoensterA

Hvad husstanden faktisk køber, ud fra gemte kvitteringer (i dag fra Coop/Brugsen): basisvarer med typisk interval og dage siden sidst (snart_tom), favoritter pr. madkategori, hvad pengene går til, øko-andel og forbrug pr. uge. andel_af_indkoeb er hvor stor en del af indkøbene kvitteringerne dækker (se profilens note, fx 0.7), så det samlede budget kan skønnes. Brug det til madplaner (retter med det, de kan lide), til at foreslå basisvarer der snart er tomme, og til at sammenligne ugebudgettet med det faktiske forbrug.

vis_profilA

Husstandens profil (personer, ugebudget, præferencer, ønsker til varer og måltider m.m.). felter i svaret forklarer hvert felt. Alle felter gælder. Læs den, før du laver madplan eller indkøbsliste.

opdater_profilA

Ret husstandens profil. aendringer er kun de felter, der skal ændres, fx {"ugebudget_kr": 1500} eller {"varepraeferencer": [...], "fra_husstanden": []}. De mulige felter står under felter i vis_profil. Lister erstattes helt, så send hele den nye liste. Brug den, når husstanden siger, at noget skal huskes til fremover.

vis_opskrifterA

Jeres egen opskriftssamling: retter I kender og stoler på. Vælg retter herfra til madplaner, før du foreslår nye. tag fx "hverdag" eller "vegetar", soeg et ord i navn, ingredienser eller note.

gem_opskriftA

Gem en ret i jeres opskriftssamling. Findes navnet, erstattes den. Brug link til nemlig-opskrifter (hent_opskrift kan så give varerne). Ingredienser er fri tekst, fx "500 g hakket oksekød". Gem kun det, brugeren beder om.

fjern_opskriftB

Fjern en ret fra opskriftssamlingen. Spørg brugeren først.

ugeplan_forloebA

KALD DENNE FØRST, når brugeren beder om en madplan eller ugens indkøb af mad (fx "lav madplan"). Er Telegram sat op, sender den selv det første spørgsmål til husstanden på Telegram. Giver det faste forløb trin for trin: køleskab, menu med prisskøn, pris i den billigste butik eller fordeling, og "bestil". Følg det præcist.

vent_paa_svarA

Vent på svar fra husstanden på Telegram (højst 55 sekunder pr. kald). Giver de nye svar, eller {"ingen_svar_endnu": true}. Kald den igen, mens I venter. Svar fra "handle-botten" fortæller, at kurven er fyldt efter et "bestil" (eller hvorfor den ikke blev det).

hent_opskrift_fra_linkA

Hent en opskrift fra et link på husstandens opskriftssider: Valdemarsro, Arla, DR Mad, Madens Verden, HelloFresh og Årstiderne. Giver navn, antal personer, tid og ingredienser med mængder. Find linket med websøgning på de sider. Gem retter, de kan lide, med gem_opskrift.

send_beskedA

Send en besked til husstandens telefoner via jeres Telegram-bot (kun tilkoblede telefoner). Brug den til ugeplanen: spørgsmålet om køleskabet, og planens sms_tekst til godkendelse. Send ikke andet, og ikke flere gange end nødvendigt. Højst 4000 tegn.

vis_beskederC

Svar fra husstanden via Telegram (fx hvad der er i køleskabet), nyeste sidst. Markerer dem som læst. "OK UGE-xxxx" står ikke her: dem klarer lytteren selv ved at fylde kurven.

gem_madplanA

Gem ugens madplan og den præcise indkøbsliste til godkendelse. Giver en kode (fx UGE-4821) og en kort sms_tekst. Ændrer ikke kurven. butik: nemlig, bilka eller begge (så har hver linje "butik"). retter: fx ["Man: Ovnbagt laks med kartofler", "Tir: ..."]. linjer: de varer du har valgt: [{"vare_id": "5026540", "navn": "Hakket grisekød 8-12%", "antal": 2, "pris": 70.0}], hvor antal er antal pakker og pris linjens samlede pris. gebyrer: alle gebyrer i kr. valg: ekstra valg, som madplanens forløb beskriver (fx {"ugebudget_kr": 1286}). Vis planen og sms_tekst for brugeren bagefter.

vis_madplanA

En gemt madplan med varer, pris, status og sms_tekst. Uden kode: den nyeste.

fyld_kurv_fra_madplanA

Læg PRÆCIS varerne fra en godkendt madplan i butikkens kurv. Ændrer kun kurven. Brug det KUN, når brugeren selv har godkendt: med koden ("OK UGE-4821") eller et kort "bestil"/"ok"/"ja", når planen er den eneste ventende. godkendelse er brugerens egne ord, ordret. Er det ikke en klar godkendelse ("ja, men uden laks"), sker der intet. En plan kan kun bruges én gang. Er kurven ikke tom, stopper den, medmindre brugeren har sagt, at det er i orden (kurven_maa_have_andet=True). Bestiller og betaler ALDRIG: brugeren vælger selv leveringstid og betaler i butikkens app. Vis bagefter kurven og evt. advarsler.

leveringstiderB

Ledige leveringstider med pris. Kun til orientering: brugeren vælger selv tiden.

tidligere_ordrerB

Tidligere ordrer. Med ordre_id: varerne i den ordre (godt til 'det vi plejer at købe').

Prompts

Interactive templates invoked by user choice

NameDescription
ugeplanUgens madplan: køleskab, menu, pris og 'bestil' via Telegram

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 25 tools

Disambiguation3/5

Most tools map to a distinct resource+action (beholdning, profil, madplan, kurv), but the recipe cluster is muddy: hent_opskrift (nemlig recipe products) vs hent_opskrift_fra_link (external sites) vs soeg_opskrifter (nemlig search) vs vis_opskrifter (own collection) differ mainly by data source rather than by name. Similarly vent_paa_svar, vis_beskeder and send_besked all revolve around Telegram replies, and soeg_varer vs sammenlign_liste vs ugens_tilbud all answer 'what does this cost', so an agent must read descriptions carefully to pick correctly.

Naming Consistency4/5

The dominant pattern is Danish verb_noun in snake_case (vis_beholdning, opdater_profil, gem_opskrift, fjern_opskrift, soeg_varer, send_besked, saet_antal_i_kurv), applied predictably to CRUD pairs. A handful of tools are noun-only (koebsmoenster, leveringstider, tidligere_ordrer, ugens_tilbud, ugeplan_forloeb), which is a minor deviation but still readable and predictable enough.

Tool Count3/5

25 tools sits at the heavy end of the scale; the domain is genuinely broad (pantry, recipes, price comparison, meal plans, cart, Telegram, profile, receipts), so most tools earn their place. Still, several near-duplicates (hent_opskrift vs hent_opskrift_fra_link, vis_beskeder vs vent_paa_svar) suggest the surface could be consolidated to around 18-20 without losing capability.

Completeness4/5

Coverage is strong: full pantry CRUD, recipe CRUD, profile read/update, meal-plan create/read/fill, cart view/modify/qty-set, price search + offers + delivery slots + past orders, plus the Telegram interaction loop. Gaps are minor and mostly intentional (no checkout/payment by design, no explicit meal-plan delete or cart-clear, recipe search only for nemlig), which agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues