Private Grocy MCP
Provides tools for interacting with a household's Grocy instance, covering stock management, shopping lists, recipes, meal plans, chores, tasks, batteries, equipment, master data, workflows, calendar, and files/printing. It supports reading and, when enabled, writing changes such as booking receipts, consuming stock, ticking off shopping lists, and planning meals.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Private Grocy MCPwhat's expiring in my pantry this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Private Grocy MCP (pv-grocy)
An MCP server for a household's Grocy: stock, shopping lists, recipes, meal plan, chores, tasks, batteries and equipment. Ask an assistant what is expiring, what you can cook tonight, or what to buy; with writes switched on, have it book a receipt into stock, tick off the shopping list or plan the week's meals.
Read-only by default. Writes need a deployment switch and a token with
writeorfullaccess; irreversible operations arefullonly (ADR-0002).No silent data errors. A write is never sent twice, and never lands on a record you did not name exactly (ADR-0003). Every stock change returns a
transaction_idthatstock_undoreverts.Typed tools. 76 tools with JSON Schema arguments, structured results and paging.
Hardened container. Non-root, read-only root filesystem, no local state.
Tested with Grocy 4.7.1; needs Grocy 4.4.1 or later. Not affiliated with the Grocy project.
What it does
Area | Read tools | Write tools ( |
Stock |
|
|
Shopping |
|
|
Recipes |
|
|
Meal plan |
|
|
Chores |
|
|
Tasks |
|
|
Batteries |
|
|
Equipment |
|
|
Master data |
|
|
Workflows |
|
|
Calendar |
|
|
Files, printing |
|
|
System |
|
Names. Tools take an id or an exact name ("Milk", "milk", " MILK " all work). A name that
matches nothing or several things fails with up to five candidates; use search or
stock_search to find the right one. Nothing is ever resolved by partial match.
Batch changes come in two halves: a preview that matches and proposes (and never guesses),
then an apply that takes only ids. For example, for a receipt: workflow_stock_intake_preview
→ confirm with the user → workflow_stock_intake_apply with the preview's apply_items.
Related MCP server: grocy-mcp
Security model
Plain HTTP with bearer tokens: run it on a private network next to Grocy, and put a TLS proxy or tunnel with its own authentication in front of it for anything remote. Never publish the port to the internet.
Tokens are stored as SHA-256 hashes; one token per client, each with its own access level and write limit, so each can be revoked alone.
Give pv-grocy its own Grocy API key (Grocy → Manage API keys), so it can be revoked independently. The key has full access to Grocy; pv-grocy is what limits it.
Grocy data is untrusted: results are marked
content_trust: "untrusted", and the model is told never to follow instructions found in them.
Details: SECURITY.md.
Quick start (Docker Compose)
cp compose.example.yml compose.yml
cp config/pv-grocy.example.yaml config/pv-grocy.yaml
docker run --rm ghcr.io/happycynic/pv-grocy:latest hash-token # put the sha256 in pv-grocy.yaml
echo "PV_GROCY_API_KEY=<a dedicated Grocy API key>" > pv-grocy.env && chmod 600 pv-grocy.env
docker compose up -d
curl -s http://127.0.0.1:8772/healthz?deep=1 # {"status":"ok","grocy_version":"4.7.1"}Point MCP clients at http://<host>:8772/mcp with Authorization: Bearer <token>.
Configuration
config/pv-grocy.yaml (see the example): Grocy's URL and
the tokens with their access levels. Environment:
Variable | Default | |
| (required) | Grocy API key |
| off |
|
|
| Config file |
|
| Bind address |
|
| Port |
|
| |
| unset | Proxies whose |
Each tool call writes one JSON audit line to stdout (tool, token label, outcome, latency; free-text arguments by size only).
Development
uv python install 3.14 && uv sync --frozen --all-groups
uv run pytest && uv run ruff check . && uv run ruff format --check . && uv run mypyThe tests use an in-process fake of the Grocy API; pytest -m live runs against a real one.
See CONTRIBUTING.md and docs/design.md.
License
Apache License 2.0. Copyright 2026 Happy Cynic Software LLC.
This server cannot be deployed
Maintenance
Related MCP Connectors
Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.
Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables interaction with Grocy's API through MCP, allowing management of grocery inventory, shopping lists, and household tasks via natural language.62 npm28MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage household operations including groceries, inventory, chores, recipes, and shopping lists through the Grocy self-hosted ERP system.4MIT
- AlicenseAqualityBmaintenanceMCP server for Grocy that enables AI assistants to read and manage pantry stock, product catalogs, and shopping lists, with safety checks against common errors.27MIT
- FlicenseNot gradedqualityBmaintenanceEnables MCP-compatible clients like ChatGPT and Claude to manage a household's shared food inventory, meal plans, recipes, and preferences through natural language, with atomic updates and audit logging.-