Back to Directory/Developer Tools

io.github.ArturLys/listonic-mcp

Let your AI manage your real grocery list — unofficial Listonic MCP server

Developer ToolsPythonv0.1.0

listonic-mcp

PyPI CI Python 3.10+ License: MIT

An MCP (Model Context Protocol) server that gives AI agents — Claude, Cursor, or any MCP client — hands on your real Listonic grocery list. Read it, add to it, check things off, across every device Listonic syncs to.

The obvious win: meal planning that ends in a shopping list. Ask your agent to plan the week's dinners, and the missing ingredients land straight on the list on your phone — quantities and all. Or paste a recipe and say "add what I don't have": the server tells the agent which items are checked (already at home) and which aren't.

You:   plan me 3 cheap high-protein dinners and put the ingredients on my list
Agent: [reads your list — sees you already have rice, eggs, frozen spinach]
       [adds: 1 kg chicken thighs, 400 g lentils, greek yogurt ×2, ...]

Unofficial. Not affiliated with Listonic. Built on their web app's API (reverse-engineered — fully documented in API.md). It may break if Listonic changes their API.

Install

Requires Python 3.10+ and a Listonic account (free):

pip install listonic-mcp

Add to your agent

Point command at listonic-mcp and pass your Listonic login:

{
  "mcpServers": {
    "listonic": {
      "command": "listonic-mcp",
      "env": {
        "LISTONIC_EMAIL": "you@example.com",
        "LISTONIC_PASSWORD": "your-listonic-password"
      }
    }
  }
}

The same values can be passed as --email / --password args instead — whichever your client makes easier.

Claude Code
claude mcp add listonic -e LISTONIC_EMAIL=you@example.com -e LISTONIC_PASSWORD=your-password -- listonic-mcp
Cursor

Cursor Settings → MCP → New MCP Server, paste the JSON config above.

Google Antigravity

Add the JSON config above to .gemini/antigravity/mcp_config.json.

Then just ask:

What's on my grocery list? Check off the milk, I just bought it.

Launch params

ParamEnv varDefaultWhat it does
--emailLISTONIC_EMAIL—Listonic account email (required).
--passwordLISTONIC_PASSWORD—Listonic account password (required).
--list-idLISTONIC_LIST_IDfirst listPin a default list; see get_lists for the ids.

Tools

ToolWhat it does
get_listsAll your shopping lists with their ids.
get_itemsItems on a list — checked (already have) vs unchecked (to buy).
add_itemsAdd one or many items in a single call (name, quantity, unit).
edit_itemsCheck/uncheck, rename, or re-quantity items — batched.
delete_itemsRemove items entirely.

Every tool takes an optional list_id, so multiple lists ("weekend BBQ", "pharmacy") work naturally.

Good to know

  • Your password goes to Listonic only. The server logs in against api.listonic.com directly and talks to nothing else — no telemetry, nothing stored beyond an in-memory session token (auto-refreshed when it expires).
  • The client id/secret in the source are Listonic's own web-app credentials, embedded in their public JS bundle and shared by every web user — they are not personal secrets.
  • The full reverse-engineered API is documented in API.md — lists, items, categories, account endpoints — if you want to extend the server.

Make it yours

A single readable file with no framework magic. Fork it and edit anything — add price tracking, category sorting, a recipe parser. Run from source:

git clone https://github.com/ArturLys/listonic-mcp.git
cd listonic-mcp
pip install -e .
listonic-mcp --email you@example.com --password your-password

Credits

  • Listonic — the shopping list app this talks to. Go pay them for premium if you live off it.

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx listonic-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-arturlys-listonic-mcp": {
      "command": "uvx",
      "args": [
        "listonic-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

listonic-mcppypi

Compatible MCP Clients

io.github.ArturLys/listonic-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More