Kitchen MCP
by craftpip
README.md
# π³ Kitchen MCP
Your digital kitchen, powered by AI. Track what you have, discover what you can cook, and get guided through every recipe β step by step, timer by timer.
Whether you're a home cook managing a busy kitchen or a developer building AI-powered cooking assistants, Kitchen MCP gives you the structured foundation to make it real.
---
## π What is this?
Kitchen MCP is a **local-first Model Context Protocol server** that connects an AI assistant to your kitchen. It knows your inventory, your recipes, your equipment, your restrictions, and your preferences β and it helps you cook better with all of it.
The AI never guesses. The server is always the source of truth.
---
## β¨ Features
| Feature | Status | Description |
|---------|--------|-------------|
| π¦ Inventory Management | β
| Track food by lot, location, expiry, and state (sealed, opened, cooked, frozen) |
| π Recipe Engine | β
| Create, version, scale, and validate recipes with ingredients, steps, and equipment |
| π― Smart Matching | β
| Find the best recipes based on what you have, your restrictions, and your taste |
| π¨βπ³ Cooking Sessions | β
| Start a session, follow guided steps, track ingredient usage, get help when things go wrong |
| β±οΈ Kitchen Timers | β
| Create, pause, resume, and extend timers tied to cooking steps |
| π« Dietary Restrictions | β
| Set allergies, intolerances, religious and ethical restrictions; server blocks unsafe recipes |
| πΆοΈ Taste Preferences | β
| Set spice heat, saltiness, sweetness on a 0-10 scale; recipes scored to match |
| π Equipment Catalog | β
| Register stoves, pressure cookers, mixers, refrigerators; server checks compatibility |
| βοΈ Unit Conversion | β
| Convert between grams, kilograms, milliliters, teaspoons, tablespoons, cups, and more |
| π Shopping Lists | π | Generate shopping needs from recipes and current inventory |
| π
Meal Planning | π | Plan meals for the week based on preferences, expiry, and inventory |
| β° Expiry Tracking | π | Get notified before food goes bad, use expiring items first |
---
## π Quick Start
### π Prerequisites
- Node.js >= 20
- npm
### β¬οΈ Install
```bash
git clone https://github.com/craftpip/kitchen-mcp.git
cd kitchen-mcp
npm install
```
### βΆοΈ Run (stdio)
```bash
npm start
```
### π Run (HTTP)
```bash
npm run dev -- --http
```
Server listens on `http://0.0.0.0:3100/mcp`.
### π³ Docker
```bash
docker compose build && docker compose up -d
```
Data persists in the `kitchen-mcp_kitchen-data` volume.
---
## π€ Usage with AI Assistants
Add to your MCP client (like OpenCode, Claude Desktop, etc.):
```json
{
"mcp": {
"kitchen": {
"type": "remote",
"url": "http://localhost:3100/mcp"
}
}
}
```
Once connected, the AI can:
| | Ask | What happens |
|---|-----|--------------|
| ποΈ | "What do I have?" | Checks inventory, shows what's in stock |
| π½οΈ | "What can I cook for lunch?" | Matches recipes to your inventory and preferences |
| π¨βπ³ | "Start cooking the egg curry" | Creates session, guides through each step |
| β±οΈ | "Set a 10-minute timer" | Creates kitchen timer, tracks it |
| π¦ | "Add 1kg of rice to the pantry" | Adds inventory lot with full tracking |
| π« | "I'm allergic to peanuts" | Blocks all peanut-containing recipes |
---
## π οΈ 66 Tools
| Category | π§ | What it does |
|----------|-----|--------------|
| π System | 2 | Health check, capabilities |
| πΊοΈ Locations | 3 | Rooms, shelves, cabinets, drawers |
| π₯ Ingredients | 4 | Catalog, aliases, search |
| π¦ Inventory | 7 | Lots, transactions, expiry tracking |
| π Equipment | 6 | Appliances, calibration, availability |
| βοΈ Measurements | 3 | Unit conversion, household containers |
| π Recipes | 9 | CRUD, versioning, scaling, availability |
| π« Restrictions | 3 | Allergies, intolerances, dietary rules |
| πΆοΈ Preferences | 3 | Spice heat, saltiness, sweetness |
| π― Matching | 1 | Recipe scoring engine |
| π¨βπ³ Sessions | 16 | Cooking lifecycle, step tracking |
| β±οΈ Timers | 9 | Kitchen timers with full control |
---
## ποΈ Architecture
Kitchen MCP follows a strict principle: **the server is the authority**.
- ποΈ SQLite with WAL mode for reliability
- π All state changes go through structured tools
- π Recipe versions are immutable once used in sessions
- π¦ Inventory deductions happen via transactions, never direct overwrites
- π Every action is audit-logged
The AI interprets natural language, picks the right tools, and explains results. The server stores facts, validates requests, and enforces rules. Neither side does the other's job.
---
## π§βπ» Development
```bash
# Typecheck
npx tsc --noEmit
# Build
npm run build
# Test
npm test
# Dev (HTTP mode)
npm run dev -- --http
```
---
## π Project Structure
```
src/
βββ π οΈ server/tools/ # 13 tool files, 66 tools
βββ ποΈ domain/ # Services and types per domain
βββ βοΈ infrastructure/ # Database, audit, idempotency, logging
βββ π¦ shared/ # Response envelope, errors, IDs, time
```
---
## π License
MIT
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues