# Zovo Meal Planner

> Plan a week of meals and turn it into one grocery list grouped by store section.

- name: io.github.theluckystrike/meal-planner
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.theluckystrike%2Fmeal-planner
- tools: https://api.protogrid.dev/v1/servers/io.github.theluckystrike%2Fmeal-planner/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "meal-planner": {
      "type": "http",
      "url": "https://meal-planner.zovo.one/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-100% +updated-6d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,189 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 6 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 2, about 2,189 tokens to load them all
- tool set hash: d2efdf363704dcda9b0e1d4df9c5e83f
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.theluckystrike/meal-planner.svg)](https://protogrid.dev/servers/io.github.theluckystrike/meal-planner)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://meal-planner.zovo.one/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (2)

- `generate_grocery_list`: Use this when the user wants one combined grocery list or shopping list from several recipes or a pasted list of ingredients, without a weekly grid. First turn what the user pasted (a list, recipe, store order, receipt or e-mail) into items with name, quantity and unit, plus meal and servings for recipe lines; leave out prices, totals, headers and e-mail text. Put the original text in recipes only when you cannot do that. Merges the same ingredient with unit conversion inside one dimension, scales servings, groups by store section, leaves off items the user already has, and keeps unreadable lines as written. Returns a printable checklist PDF, CSV and text. Does not give nutrition or diet advice.
- `generate_meal_plan`: Use this when the user wants a weekly meal plan, a meal planner template filled in, or a grocery list from their meal plan or meal prep. First turn what the user pasted (a plan, recipe, spreadsheet or e-mail) into meals: one entry per day and slot with its name, recipe servings and ingredient lines, one meal per day for lines like "Mon-Fri lunch". Put the original text in plan only when you cannot do that. If you propose the meals, pass them the same way. The tool parses quantities and units, scales servings to the number of people, merges the same ingredient across the week (volume with volume, weight with weight, not volume to weight), groups the list by store section, removes items the user already has, and returns a PDF (week grid plus checklist), CSV and text. Does not give nutrition, calorie or diet advice and does not order groceries.
