Labsco
bobby060 logo

Organized Cooking

from bobby060

Build grocery lists, get dinner ideas, and more using the recipes you have collected using Organized Cooking.

๐Ÿ”ฅ๐Ÿ”ฅFreeQuick setup

Unofficial AnyList MCP Server

An MCP server that integrates with AnyList โ€” shopping lists, recipes, and meal planning โ€” exposed via the Model Context Protocol. Works with Claude Desktop, Claude Code, Claude Web/Mobile, or any MCP-compatible client like Home Assistant.

Two deployment modes:

  • Local (stdio) โ€” runs on your machine alongside Claude Desktop or Claude Code. Fastest setup, no server required.
  • HTTP server โ€” runs in Docker behind a Cloudflare Tunnel. Required for Claude Web, Claude Mobile, or home assistant and useful for sharing access across devices or users.

Tools Overview

The MCP server provides 5 domain-grouped tools rather than 18+ individual ones:

  • shopping โ€” Manage shopping lists and items: add, check off, delete, organize by category and store, and browse favorites
  • recipes โ€” Browse, create, and import recipes from URLs; includes ingredient and step parsing
  • meal_plan โ€” Schedule meals on a calendar with optional links to recipes
  • recipe_collections โ€” Organize recipes into curated named collections
  • health_check โ€” Verify your connection to AnyList and access to target lists

These tools work together to enable typical workflows: browse or create recipes โ†’ plan meals โ†’ add ingredients to your shopping list. See docs/tools.md for the complete reference including all actions and parameters.


Generating OAuth Client Credentials (for Home Assistant / headless clients)

Some MCP clients โ€” like Home Assistant โ€” require a pre-registered client_id and client_secret rather than dynamic client registration. You create a confidential client once, then enter the credentials in your integration. Home Assistant will still send you through a one-time browser login (authorization code flow) to link your account.

Prerequisites: the HTTP server must already be running and you must have an account on it.

# Run inside the Docker container (the server must be up)
docker compose exec anylist-mcp node scripts/create-client.js you@example.com "Home Assistant"

This prints a client_id and client_secret. Save the secret immediately โ€” it is hashed in the database and cannot be retrieved later.

The server URL (what you enter in HA) is:

https://<your-tunnel-domain>

See docs/home-assistant.md for step-by-step Home Assistant setup.


Development

# Unit tests (mocked, no credentials needed)
npm test

# Integration tests (requires .env with real credentials)
npm run test:integration

# Inspect with the MCP inspector
npx @modelcontextprotocol/inspector node src/server.js

Building the desktop extension

npm run pack   # produces anylist-mcp.mcpb

Roadmap

  • Google OAuth โ€” allow users to sign in to the HTTP MCP server with their Google account instead of a separate password.
  • Web gui-based workflow for created oauth client credentials