Labsco
bobby060 logo

Anylist MCP

โ˜… 17

from bobby060

MCP Server for connecting to Anylist

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredAdvanced 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