About
Unofficial MCP Server for Anylist
README
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.
Installation: Claude Desktop
The fastest way to get started is to download the latest anylist-mcp.mcpb from the releases page.
- Open Claude Desktop → Settings → Extensions
- Drag and drop the
.mcpbfile, or click "Advanced settings" → Install extension - Enter your configuration when prompted:
- AnyList Email — your AnyList account email
- AnyList Password — your AnyList account password
- Default Shopping List — optional, defaults to "Groceries"
Installation: Claude Code / Claude Desktop (from source)
Prerequisites
Setup
git clone --recurse-submodules https://github.com/bobby060/anylist-mcp.git
cd anylist-mcp
npm install
Add to your MCP config (~/.claude/claude_desktop_config.json or equivalent):
{
"mcpServers": {
"anylist": {
"command": "node",
"args": ["/absolute/path/to/anylist-mcp/src/server.js"],
"env": {
"ANYLIST_USERNAME": "[email protected]",
"ANYLIST_PASSWORD": "yourpassword",
"ANYLIST_LIST_NAME": "Groceries"
}
}
}
}
Installation: Claude Web / Claude Mobile
Claude Web and Mobile require an HTTP MCP server accessible over HTTPS. This project includes a Docker-based HTTP server designed to run behind a Cloudflare Tunnel. The server is designed for self-hosting, but can theoretically support any number of users. You can (should?) restrict what email addresses are allowed to create accounts in the allowed-emails.txt file.
See docs/cloudflare-setup.md for the full setup guide, including:
- Quick tunnel for development (no Cloudflare account needed)
- Named tunnel for production (stable URL on your own domain)
Quick start:
git clone --recurse-submodules https://github.com/bobby060/anylist-mcp.git
cd anylist-mcp
# Configure
cp .env.http.example .env # fill in SERVER_SECRET_KEY and SESSION_SECRET
mkdir -p config
cp allowed-emails.example.txt config/allowed-emails.txt # add your email
# Start server + Cloudflare quick tunnel
docker compose --profile cloudflare-temp up --build
# Watch logs for the trycloudflare.com URL, then add it as an MCP server in Claude Settings/Connectors
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 [email protected] "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
Credits
AnyList API from a fork of anylist by @codetheweb.
Contributions welcome — feel free to open issues and pull requests.
Installing Anylist
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/bobby060/anylist-mcpFAQ
Is Anylist MCP free?
Yes, Anylist MCP is free — one-click install via Unyly at no cost.
Does Anylist need an API key?
No, Anylist runs without API keys or environment variables.
Is Anylist hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Anylist in Claude Desktop, Claude Code or Cursor?
Open Anylist on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Anylist with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
