# Brie — Recipe MCP, Meal Plans & Groceries

> Save and adapt recipes, plan household dinners for review, and manage shared grocery lists.

- name: app.withbrie/brie
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/app.withbrie%2Fbrie
- tools: https://api.protogrid.dev/v1/servers/app.withbrie%2Fbrie/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "brie": {
      "type": "http",
      "url": "https://api.withbrie.app/mcp",
      "headers": {
        "X-Brie-Capabilities": "planning-preview"
      }
    }
  }
}
```


## Trust

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

## Quality 91/100 (strong)

### 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`: 8 of 8 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,746 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 8, about 2,746 tokens to load them all
- tool set hash: 4e5af93a595b9b90065d4e4e8587614e
- badge: [![protogrid quality](https://protogrid.dev/badge/app.withbrie/brie.svg)](https://protogrid.dev/servers/app.withbrie/brie)
- 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://api.withbrie.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `add_grocery_item`: Add a grocery item to the connected household's private grocery list in Brie.
- `create_recipe`: Save a complete new recipe only after the user asks to save it. Supply ingredients, servings, times, and ordered directions; keep unknown, qualitative, or ranged quantities null and preserve their wording in raw_text. Never invent source facts or macros. Returns the saved recipe immediately; external services prepare its image and optional estimated nutrition in the background. Use get_recipe to check readiness.
- `get_grocery_list`: Read the connected household's grocery list. shop-now covers Upcoming; all-planned includes future planned meals. Returns paginated results; follow next_offset until null to retrieve the complete list.
- `get_import_status`: Check an import job by ID. Report its status; if it needs more information, direct the user to the import in Brie. Poll this job rather than importing again.
- `get_recipe`: Read a recipe from the connected household, including ingredients, directions, and source. Supply version_id for a specific saved version or omit it for the current recipe. Display display_text as the current ingredient wording; raw_text is original source wording. Keep version_id, version_revision, and ingredient_id values for update_recipe.
- `import_recipe`: Import a public recipe URL or supplied recipe text when the user asks to save it, preserving its creator and source. Returns a background job; check it with get_import_status. Use create_recipe for a new recipe developed in the conversation.
- `search_recipes`: Search the connected household's saved recipes. Returns matches with sources and saved version IDs. Use get_recipe for ingredients and directions.
- `update_recipe`: Update an existing recipe as a named version only after the user reviews the changes and asks to save them. First use get_recipe; copy version_id and version_revision into the expected fields. Submit the complete revised recipe: omitted ingredients and directions are removed. Map existing ingredient_id values to source_ingredient_id; use null for new ingredients. Keep current display_text and preserve qualitative or ranged quantities as null. Retains the recipe ID, image, source, earlier versions, and versions used by planned meals. External services may prepare optional nutrition and search updates. On version_conflict, read and review again before a new operation; never silently rebase or create a duplicate.
