Skip to main content
Glama
mhlavac

loewen-menu-mcp

by mhlavac

loewen-menu-mcp

MCP (Model Context Protocol) server for the Löwen Menü IBS5 school-lunch ordering system. Lets an LLM browse weekly menus, manage a shopping cart, and place meal orders via the IBS5 web portal at ibs.loewen-menue.de.

Features

  • Browse weekly meal plans by calendar week

  • View order history

  • Add/remove meals from the shopping cart

  • Confirm orders

  • Multi-profile support (order for multiple children from one server)

Related MCP server: foodvisor-mcp

Requirements

  • Python 3.10+

  • uv package manager

  • A Löwen Menü IBS5 account

Setup

# Clone and install
git clone https://github.com/yourusername/loewen-menu-mcp.git
cd loewen-menu-mcp
uv sync

Configuration

Credentials are passed via the PROFILES environment variable:

PROFILES=child1:CUSTOMER_ID:PASSWORD

For multiple children:

PROFILES=child1:S000001:1234,child2:S000002:5678

If only one profile is configured, it is used as the default and the profile parameter can be omitted from all tool calls.

Usage with Claude Desktop

Add to your Claude Desktop MCP config (~/.claude/settings.json or a project-level MCP file):

{
  "mcpServers": {
    "loewen-menu": {
      "command": "/bin/bash",
      "args": ["-c", "cd /path/to/loewen-menu-mcp && uv run server.py"],
      "env": {
        "PROFILES": "child1:S000001:1234,child2:S000002:5678"
      }
    }
  }
}

MCP Tools

Tool

Description

list_profiles

List configured profiles (children)

get_weekly_menu

Browse meals for a given calendar week

get_order_history

View past orders (filterable by days back and search text)

get_cart_status

Check shopping cart contents and balance

add_to_cart

Add a meal to the cart (does not finalize the order)

confirm_order

Finalize and submit all items in the cart

remove_meal

Remove a meal from the cart

Ordering flow

  1. get_weekly_menu — see what's available

  2. add_to_cart — add meals (repeat for each day/meal)

  3. get_cart_status — verify the cart

  4. confirm_order — submit the order

How it works

The server authenticates to IBS5 using a Base64-encoded Bearer token built from the customer ID and password. Credentials are configured server-side via environment variables and never pass through the LLM.

Weekly menus and order history are scraped from server-rendered HTML pages. Cart operations and order confirmation use JSON API endpoints.

License

MIT

Available Tools

7 tools
add_to_cartA

Add a meal to the shopping cart. Does NOT place the order yet.

You MUST call confirm_order afterwards to finalize the order.

Note: Orders must be placed at least 1 day before the delivery date.

Args:
    serve_date: Delivery date in YYYY-MM-DD format (e.g. "2026-02-25")
    menu_line_id: Menu line ID (8=GS1, 9=GS2, 10=GS3 — shown in get_weekly_menu output)
    profile: Profile name (e.g. "child1"). Optional if only one profile is configured.
    quantity: Number of portions (default 1, usually max 2)
    menu_group_id: Menu group ID (default "2", shown in get_weekly_menu output)

Returns:
    Cart status. Remember to call confirm_order to finalize.
ParametersJSON Schema
NameRequiredDescriptionDefault
profileNo
quantityNo
serve_dateYes
menu_line_idYes
menu_group_idNo2

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden, and it does well by stating that the order is not finalized, that confirmation is required later, and that there is a delivery lead-time constraint. It also conveys practical limits like quantity usually maxing at 2, which is useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured with a purpose statement, caveats, an Args list, and a Returns note. It is slightly repetitive about calling confirm_order, but the organization is clean and information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and 5 parameters, the description is remarkably complete: it covers required parameters, defaults, valid formats, workflow follow-up, and delivery constraints. The presence of an output schema reduces the need to detail return values further, and 'Returns: Cart status' is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source of parameter meaning. It explains all five parameters: serve_date format, menu_line_id meaning with examples, profile optionality, quantity default/max, and menu_group_id default. This fully compensates for the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a specific verb ('Add') and resource ('meal to the shopping cart'), and explicitly says it does NOT place the order, which distinguishes it from confirm_order. This makes the tool's role immediately clear in the context of the sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states that confirm_order must be called afterwards and that orders must be placed at least 1 day before delivery. It does not explicitly discuss alternatives like remove_meal or get_cart_status, but the workflow guidance is strong enough for an agent to know when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confirm_orderA

Confirm and finalize all items currently in the shopping cart.

This submits the order. Items must first be added with add_to_cart.
Call get_cart_status first to verify what will be ordered.

Args:
    profile: Profile name (e.g. "child1"). Optional if only one profile is configured.

Returns:
    Confirmation message from the server.
ParametersJSON Schema
NameRequiredDescriptionDefault
profileNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It does state 'This submits the order,' implying a finalizing, likely irreversible action, and it notes prerequisites. However, it does not disclose side effects such as whether the cart is cleared, whether the order can be changed after submission, or what happens if the cart is empty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main description is two clear sentences followed by concise Args and Returns sections. The Returns line is somewhat redundant given an output schema exists, but the overall length is appropriate and information is front-loaded. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and this is a simple one-parameter tool, the description covers the essential prerequisites, the workflow order, and parameter meaning. It could be more explicit about the consequences of submitting (e.g., irreversibility, cart clearing), but it is largely sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description fully compensates. The Args section explains the sole parameter: 'profile: Profile name (e.g. "child1"). Optional if only one profile is configured.' This provides type, an example, and conditionality that the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Confirm and finalize all items currently in the shopping cart' and 'This submits the order.' This is a specific verb (confirm/finalize) and resource (the shopping cart/order). It is easily distinguished from siblings like add_to_cart, get_cart_status, and remove_meal, as it is the final submission step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides workflow context: 'Items must first be added with add_to_cart. Call get_cart_status first to verify what will be ordered.' This tells the agent when to use this tool relative to sibling alternatives and mentions a prerequisite check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cart_statusA

Check the current shopping cart status and balance.

Args:
    profile: Profile name (e.g. "child1"). Optional if only one profile is configured.

Returns:
    Cart item count, total price, and credit balance.
ParametersJSON Schema
NameRequiredDescriptionDefault
profileNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior itself. It does so by explicitly listing the returns (item count, total price, credit balance) and by noting the profile parameter is optional when only one profile is configured. The word 'check' implies a read-only operation, which is appropriate for this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-line purpose, then Args, then Returns. No redundant text or filler. The most important information is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with an output schema, the description covers purpose, parameters, and return content. The only minor gap is behavior when multiple profiles exist and no profile is supplied, but this is an edge case and the tool remains simple enough that the description is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only provides a string type and default for 'profile', with no description. The description compensates by explaining that profile is a profile name, giving an example ('child1'), and clarifying the optionality condition. This adds meaningful semantic context beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Check the current shopping cart status and balance,' a specific verb and resource that clearly identifies the tool's purpose. It is naturally distinguished from siblings like add_to_cart, remove_meal, and confirm_order, which are mutations, and get_order_history, which is historical rather than current.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing 'Check the current...' provides clear context for when to use this tool: whenever current cart status or balance is needed. It does not explicitly name alternatives or exclusions, but the purpose itself is unambiguous, giving a clear usage context without needing further routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_order_historyA

Get past order history.

Args:
    profile: Profile name (e.g. "child1"). Optional if only one profile is configured.
    days_back: How many days back to look (default 60)
    search: Optional search text to filter orders

Returns:
    List of past orders with dates, descriptions, and quantities.
ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
profileNo
days_backNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It usefully discloses defaults, the optional-profile rule, and the return shape, but it does not explicitly state that the operation is read-only and has no side effects. The verb 'Get' plus 'Returns' makes this largely inferable, but not fully explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The structure is efficient: a one-sentence purpose, then Args and Returns sections. Every line contributes parameter or return semantics, with no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only three optional scalar parameters and an output schema already present, the description covers all invocation-relevant details: parameter meaning, defaults, the optional-profile condition, and the returned fields. An agent has enough to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source of parameter meaning. It fully compensates by defining profile, days_back, and search, including the important conditional behavior for profile and the default for days_back.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'Get past order history' uses a specific verb and resource, and clearly positions this tool as the historical-order lookup among siblings like get_cart_status, confirm_order, and add_to_cart. It is immediately distinguishable without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the tool's context clear—past orders rather than current cart or menu—but it does not explicitly state when to prefer this tool over alternatives or when not to use it. The usage is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_weekly_menuA

Get the weekly meal plan for a given week.

Args:
    profile: Profile name (e.g. "child1"). Optional if only one profile is configured.
    year: Year (defaults to current year)
    week: Calendar week number (defaults to current week)

Returns:
    Formatted menu for the week with all available meals grouped by date
    and menu line (GS 1, GS 2, GS 3).
ParametersJSON Schema
NameRequiredDescriptionDefault
weekNo
yearNo
profileNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose the return format ('Formatted menu for the week... grouped by date and menu line') which is helpful, and 'Get' strongly implies read-only behavior. But it stops short of explicitly stating there are no side effects, what happens for weeks without meals, or any error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a crisp docstring: one sentence of purpose, a concise Args list, and a Returns line. Every sentence adds information, with defaults and optionality front-loaded. No filler or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity read tool with an output schema, the description is nearly complete. It explains what data is returned and how it is grouped, plus all parameter defaults. The only missing piece is a pointer to list_profiles for resolving profile names when more than one profile exists, but that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no description coverage (0%), so the description must compensate. It does so well by explaining all three parameters: profile optionality, year default, and week definition as 'Calendar week number'. This goes beyond the bare schema titles, though it does not mention allowable ranges (e.g., week 1-53) or how profile names relate to list_profiles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pairing: 'Get the weekly meal plan for a given week.' It clearly names the resource (weekly meal plan), the scope (a specific week), and distinguishes the tool from siblings like get_order_history and add_to_cart, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context about defaults ('year defaults to current year', 'week defaults to current week') and when the profile parameter can be omitted ('Optional if only one profile is configured'). However, it does not explicitly state when to use this tool versus alternatives, nor does it direct the agent to list_profiles when multiple profiles exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_profilesA

List all configured profiles (children).

Returns:
    Names of available profiles that can be used with other tools.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose the return value ('Names of available profiles') and that it lists all configured profiles, implying a read-only operation. However, it does not explicitly state that it has no side effects, nor does it mention error or permission behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with the primary action first and the return value clearly stated. There is no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter list tool with an output schema and distinct sibling tools, the description covers purpose and return value adequately. The term 'children' is slightly ambiguous but not blocking, and the presence of an output schema reduces the need to describe return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema description coverage is 100%, so there is no parameter information for the description to add. The zero-parameter case earns the baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('List'), a clear resource ('configured profiles'), and explains that they are 'children' and usable with other tools. This distinguishes it from sibling tools that operate on weekly menus, orders, or cart items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used to discover available profile names before using other tools, but it does not explicitly state when to use it, when not to use it, or provide alternatives. The usage context is present but left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_mealB

Remove a meal from the shopping cart (set quantity to 0).

Args:
    serve_date: Delivery date in YYYY-MM-DD format
    menu_line_id: Menu line ID (8=GS1, 9=GS2, 10=GS3)
    profile: Profile name (e.g. "child1"). Optional if only one profile is configured.
    menu_group_id: Menu group ID (default "2")

Returns:
    Confirmation that the meal was removed from cart.
ParametersJSON Schema
NameRequiredDescriptionDefault
profileNo
serve_dateYes
menu_line_idYes
menu_group_idNo2

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the key behavior (quantity set to 0 rather than deletion) and notes that profile is optional if only one profile is configured, which is useful. However, it does not mention edge cases such as what happens when the meal is not in the cart or whether removal is reversible via re-adding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured with an Args/Returns layout. It front-loads the core behavior and then lists parameters concisely. Slight overhead from the Returns section, which only says a confirmation is returned, but acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, the description covers the main safety-relevant behaviors and parameter meanings. It lacks details about what the confirmation contains, error cases, and whether removal affects an active order or only unconfirmed carts, but the core usage is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains serve_date format, menu_line_id meaning (8=GS1, 9=GS2, 10=GS3), profile optionality, and menu_group_id default, which adds significant value beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove a meal from the shopping cart') and the mechanism ('set quantity to 0'), which distinguishes it from sibling tools like add_to_cart and confirm_order. It lacks a title but the description itself is specific enough to identify the resource and operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like add_to_cart or get_cart_status. The description implies it's for removing meals, but does not mention prerequisites, idempotency, or when removal is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.0
    • First observedadd_to_cart
    • First observedconfirm_order
    • First observedget_cart_status
    • First observedget_order_history
    • First observedget_weekly_menu
    • First observedlist_profiles
    • First observedremove_meal

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation5/5

Each tool addresses a distinct part of the workflow: profiles, menu browsing, cart management, ordering, and history. There is no meaningful overlap between tools, and an agent can confidently select the correct one from its name and description alone.

Naming Consistency4/5

Tool names are predominantly verb_noun in snake_case, such as list_profiles, get_weekly_menu, and confirm_order. Minor inconsistency exists between add_to_cart and remove_meal, but the overall pattern is clear and predictable.

Tool Count5/5

Seven tools is well-scoped for a school-menu ordering server. Each tool covers a necessary step in the workflow without redundancy or unnecessary bloat.

Completeness5/5

The tool surface covers the full ordering lifecycle: browse the menu, add items, remove items, inspect the cart, confirm the order, and review past orders. No obvious gaps exist for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to order food from TGO Yemek by browsing restaurants, managing carts, and completing checkouts. It allows users to handle address selection and order tracking directly through natural language interactions.
    29 npm
    13
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server integrating Foodvisor nutrition API for food search, meal logging, daily summaries, and progress tracking via LLM agents like Claude.
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for MealMastery AI meal planning that enables users to manage meal plans, recipes, and grocery lists through natural language conversation with AI agents like Claude.
    51 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for grocery-related web automation using Playwright, enabling AI assistants to interact with grocery websites.
    -