ullage
Click on "Install 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., "@ullageAdd a Barolo 2016."
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.
ullage
Your wine cellar, run by your AI agent — OpenClaw, Hermes, or any MCP client.
What it does
Chat with your agent to manage your cellar: add, list, update, consume (rating + notes), hold, release, recommend, export.
Share a wine label or receipt photo — your agent reads it and saves confirmed wines in one batch. ullage runs no OCR; your agent's own vision does it.
Idempotent confirmed writes — repeated chat/button actions can use the same idempotency key without creating duplicates.
Hold protection — mark bottles that should not be opened yet; ordinary consumption and recommendations respect the hold.
Consumption history — every bottle opened is logged with date, rating, and notes.
You own the data — SQLite is the default adapter (
~/.ullage/cellar.db), export anytime. OSS, MIT.
Related MCP server: MCP Gastos
Install — tell your agent
Give OpenClaw / Hermes / any MCP client this one line:
Check https://github.com/nukk-pain/ullage and install it.
The agent reads docs/agent-install.md, installs the MCP server for your runner (SQLite default adapter — no token, no Docker), starts a fresh session, and then manages your cellar per that runbook.
Agent reading this repo: follow docs/agent-install.md to install and then operate the cellar. You need a shell with
gitand Node.js 20+.
Then just talk:
"Add a Barolo 2016." — or share a wine label photo; it reads the label and adds the bottle.
Share a receipt photo — it confirms the wine rows, saves all of them atomically, captures price / purchase date / store, and skips non-wine items.
"I drank the Chablis tonight — 2/5, too light." — logged with your rating and note.
"Hold the Barolo for our anniversary." — marked so it will not be opened accidentally.
"What should I drink with fried chicken?" — it recommends from your cellar.
How it works
ullage is the system of record — a wine cellar your agent reads and writes through MCP tools. The intelligence (reading labels, pairing, "what should I drink") is your agent's own LLM working over that data. By default there is no server, no token, and no Docker — just a local SQLite adapter file you own.
The public install path is intentionally independent of any external wine API. Experimental alternate storage adapters are selected only by environment variable and are not needed for normal agent setup.
Optional safety mode: set ULLAGE_APPEND_ONLY=true with SQLite to prevent direct edits to saved
wine identity/purchase fields. Later changes should be recorded as consume, hold, release, or note
events.
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nukk-pain/ullage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server