Skip to main content
Glama
README.md
# Scraps Kitchen MCP Server

[![scraps-mcp MCP server](https://glama.ai/mcp/servers/mitchmolstad/scraps-mcp/badges/card.svg)](https://glama.ai/mcp/servers/mitchmolstad/scraps-mcp)

**Your AI assistant's cooking brain.** Scraps Kitchen gives any AI agent persistent, household-aware kitchen intelligence — pantry tracking, dietary safety, recipe management, shopping lists, and more.

Unlike generic chatbot memory, Scraps maintains structured cooking data: what's in your fridge, who you cook for, their allergies and preferences, your recipe history with cook notes, and your kitchen equipment. Any MCP-compatible agent can tap into this to have genuinely personalized cooking conversations.

**Live server:** `https://api.scraps.kitchen/mcp` (Streamable HTTP)
**Web app:** [scraps.kitchen](https://scraps.kitchen)

---

## Quick Start

### Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "scraps-kitchen": {
      "type": "streamable-http",
      "url": "https://api.scraps.kitchen/mcp"
    }
  }
}
```

### VS Code / Cursor

Add to your MCP settings:

```json
{
  "servers": {
    "scraps-kitchen": {
      "type": "streamable-http",
      "url": "https://api.scraps.kitchen/mcp"
    }
  }
}
```

On first use, you'll be prompted to authenticate via OAuth. You can create an account directly in the OAuth flow — a one-time code is sent to your email for verification. No need to visit scraps.kitchen separately.

---

## Tools (27)

### Meal Suggestions

| Tool                 | Description                                                            |
| -------------------- | ---------------------------------------------------------------------- |
| `suggest_quick_meal` | Generate a recipe from ingredients. 1 free call per user per 24 hours. |

### Pantry (6 tools)

| Tool                    | Description                                                                                                                   |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `get_pantry`            | List pantry items with category, quantity, stock status, perishability, and storage hints. Filter by in-stock or stale items. |
| `add_pantry_items`      | Add up to 50 items at once. Auto-enriched with food intelligence.                                                             |
| `update_pantry_item`    | Update name, quantity, unit, category, or stock status.                                                                       |
| `remove_pantry_item`    | Permanently delete a pantry item.                                                                                             |
| `mark_ingredients_used` | Mark ingredients as consumed after cooking. Fuzzy name matching. Staples auto-skipped.                                        |
| `confirm_pantry_fresh`  | Reset staleness clock on items the user confirms are still good.                                                              |

### Shopping List (5 tools)

| Tool                           | Description                                                          |
| ------------------------------ | -------------------------------------------------------------------- |
| `get_shopping_list`            | List shopping items with checked status. Filter by bought/remaining. |
| `add_shopping_list_item`       | Add a single item to the list.                                       |
| `add_recipe_to_shopping_list`  | Add all ingredients from a saved recipe at once.                     |
| `check_off_shopping_item`      | Mark items as bought or still needed.                                |
| `remove_shopping_list_item`    | Remove a single item.                                                |
| `clear_checked_shopping_items` | Remove all checked-off items at once (post-shopping cleanup).        |

### Household (4 tools)

| Tool            | Description                                                                                         |
| --------------- | --------------------------------------------------------------------------------------------------- |
| `get_household` | List household members with allergens, restrictions, preferences, dislikes, goals, and life stages. |
| `add_diner`     | Add a household member with dietary profile.                                                        |
| `update_diner`  | Update dietary details. Array fields replace entirely — send the full list.                         |
| `remove_diner`  | Remove a member and their recipe ratings.                                                           |

### Equipment (4 tools)

| Tool               | Description                                   |
| ------------------ | --------------------------------------------- |
| `get_equipment`    | List kitchen equipment (tools, appliances).   |
| `add_equipment`    | Add a piece of equipment with optional notes. |
| `update_equipment` | Update equipment name or notes.               |
| `remove_equipment` | Remove equipment from inventory.              |

### Recipes (6 tools)

| Tool                    | Description                                                           |
| ----------------------- | --------------------------------------------------------------------- |
| `get_recipes`           | List saved recipes. Search by keyword, filter by status or favorites. |
| `get_recipe`            | Full recipe detail: ingredients, steps, cook notes, diner ratings.    |
| `update_recipe`         | Update title, status, rating, favorite, or sharing status.            |
| `delete_recipe`         | Permanently delete a recipe and all associated data.                  |
| `add_recipe_note`       | Record cook notes — observations, modifications, per-cook ratings.    |
| `rate_recipe_for_diner` | Track which household members loved which recipes.                    |

---

## Authentication

All tools require authentication. Scraps uses **OAuth 2.1** with PKCE — most MCP clients handle this automatically. You'll see a login prompt on first connection, where you can sign in or create a new account with email OTP verification.

**Scopes:**

| Scope             | Access                         |
| ----------------- | ------------------------------ |
| `read:pantry`     | View pantry inventory          |
| `read:household`  | View household dietary info    |
| `read:recipes`    | View saved recipes             |
| `write:pantry`    | Update pantry                  |
| `write:recipes`   | Save recipes and cooking notes |
| `write:shopping`  | Manage shopping list           |
| `write:household` | Manage household members       |
| `write:equipment` | Manage kitchen equipment       |

**Discovery:** `https://api.scraps.kitchen/.well-known/mcp.json`

---

## How Agents Use Scraps

Scraps is a **data layer**, not a reasoning engine. It stores structured kitchen intelligence that makes any AI assistant better at cooking conversations:

1. **Read the kitchen context** — `get_pantry`, `get_household`, `get_equipment`, `get_recipes`
2. **Use your own LLM** to reason about what to cook, considering allergies, preferences, and available ingredients
3. **Write back results** — `mark_ingredients_used`, `add_recipe_note`, `rate_recipe_for_diner`

Every interaction makes the data richer. More cook history, more diner feedback, more pantry accuracy — which makes the next conversation better.

---

## Example Workflows

**"What should I cook tonight?"**

1. `get_pantry` → see available ingredients
2. `get_household` → check dietary constraints and allergens
3. `get_equipment` → know what tools are available
4. `get_recipes(status: "cooked")` → see what's worked before
5. Agent reasons about a meal suggestion using all this context

**After cooking:**

1. `mark_ingredients_used(["chicken thighs", "ginger", "soy sauce"])` → update pantry
2. `add_recipe_note(recipe_id, "Added extra garlic, seared 2 min longer")` → build cook history
3. `rate_recipe_for_diner(recipe_id, diner_id, { loved_it: true })` → track preferences

**Grocery planning:**

1. `get_pantry(stale_only: true)` → items past freshness window
2. `get_shopping_list` → existing list
3. `add_shopping_list_item("eggs")` → add what's needed
4. After shopping: `add_pantry_items([...])` → restock, `clear_checked_shopping_items` → clean up list

---

## Links

- **Web app:** [scraps.kitchen](https://scraps.kitchen)
- **MCP endpoint:** `https://api.scraps.kitchen/mcp`
- **Discovery:** `https://api.scraps.kitchen/.well-known/mcp.json`
- **Official MCP Registry:** [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io)

---

## License

[MIT](LICENSE)