fridge-mcp
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., "@fridge-mcpwhat's in my fridge?"
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.
fridge-mcp
MCP-сервер: что лежит в холодильнике.
Возможности
Тип | Имя | Описание |
tool |
| Показать всё содержимое |
tool |
| Положить продукт |
tool |
| Взять / съесть / выкинуть |
tool |
| Проверить конкретный продукт |
tool |
| Что скоро испортится |
resource |
| JSON всего холодильника |
prompt |
| Идея ужина из того, что есть |
Данные: data/fridge.json (или FRIDGE_DATA_PATH).
Related MCP server: household-agent
Локально
npm install
npm run buildStdio (Cursor / Claude Desktop)
{
"mcpServers": {
"fridge": {
"command": "node",
"args": ["/absolute/path/to/fridge-mcp/dist/index.js", "--stdio"]
}
}
}HTTP (локально)
npm run start:httpHealth:
GET http://localhost:3000/MCP:
POST http://localhost:3000/mcp
Render
В Web Service:
Поле | Значение |
Build Command |
|
Start Command |
|
Instance | Free ок |
PORT Render выставит сам — сервер поднимет HTTP автоматически.
После деплоя отдай разработчику:
URL: https://<твой-сервис>.onrender.com/mcp
Token: <значение MCP_ACCESS_TOKEN>
Header: Authorization: Bearer <token>В Render → Environment добавь:
MCP_ACCESS_TOKEN=твой_секретный_токенКлиент (пример):
new StreamableHTTPClientTransport(new URL("https://....onrender.com/mcp"), {
requestInit: {
headers: { Authorization: `Bearer ${token}` },
},
});Клиент должен говорить по Streamable HTTP MCP, не по обычному REST.
На Free инстанс засыпает без трафика; диск не персистентный — правки холодильника могут сброситься после рестарта.
Available Tools
5 toolsadd_to_fridgeПоложить в холодильникA
Добавляет продукт в холодильник. Если такой уже есть — увеличивает количество.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Название продукта, например «молоко» | |
| unit | No | Единица измерения: шт, г, мл, л, пачка… (по умолчанию шт) | |
| location | No | Где лежит: полка, дверца, ящик… | |
| quantity | Yes | Сколько положить | |
| expiresAt | No | Срок годности в формате YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses a key behavior: if the product already exists, the quantity is increased rather than creating a duplicate. However, it does not explain what happens to other fields (e.g., unit, location, expiresAt) in that case, nor does it mention error conditions or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant words. It front-loads the core purpose and immediately follows with the most important behavioral nuance. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple add operation, but the description leaves open questions about the behavior of optional fields during an increment, whether any response is returned, and potential errors. Given the lack of output schema and annotations, the description is somewhat under-specified for a complete understanding, though it covers the primary use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-level semantics beyond what the schema already provides; it only refers to 'quantity' indirectly via the increment behavior. No parameter-specific clarification is offered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Добавляет продукт' – adds a product) and the target resource ('в холодильник' – to the fridge). It also distinguishes itself from siblings by noting the existing-item increment behavior, which is unique among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—use this to put products into the fridge or increase their quantity—but it does not explicitly state when to prefer this tool over alternatives like remove_from_fridge or list_fridge. There are no explicit exclusions or alternative references, though the incremental behavior provides some context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_fridge_itemПроверить продуктA
Проверяет, есть ли конкретный продукт в холодильнике.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Название продукта |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action (checks existence) without mentioning whether the tool is read-only, what it returns (e.g., boolean), or any side effects. This leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core action. Every word contributes to clarity, and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a check tool with no output schema, so the description should clarify what the result looks like (e.g., true/false, product details). It does not provide any information about the return value or behavior beyond the basic action, leaving the tool's operational outcome unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the only parameter 'name' as 'Название продукта' (product name), covering 100% of the schema. The tool description adds no extra semantic meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Проверяет, есть ли конкретный продукт в холодильнике' (checks if a specific product is in the fridge). It uses a specific verb and resource, and it is distinguishable from sibling tools like list_fridge (listing all) and add_to_fridge (adding items).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'конкретный продукт' implies that this tool is for checking a single named product, giving clear context for when to use it versus listing all items. However, it does not explicitly name alternatives or state when not to use the tool, so it does not fully meet the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expiring_soonСкоро испортитсяA
Список продуктов, у которых скоро закончится срок годности (включая уже просроченные).
| Name | Required | Description | Default |
|---|---|---|---|
| withinDays | No | За сколько дней смотреть вперёд (по умолчанию 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explicitly discloses that already expired items are included, which is a key behavioral detail. As a list operation, it implies read-only behavior, but no further nuances (e.g., sorting, pagination) are described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly conveys the tool's purpose and key behavioral note. No filler words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description is largely complete. It states the scope and the inclusion of expired items. However, it does not describe return value structure or any limits, which might be useful but not critical for this simple use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'withinDays' is fully described in the input schema (100% coverage), setting a baseline of 3. The description does not add extra meaning beyond the schema, but it also does not need to since the schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists products expiring soon, including already expired ones. The verb 'list' and the resource 'products' with a specific criterion make the purpose unambiguous and distinguish it from siblings like 'list_fridge' which lists all items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the description—use it to see which products are expiring soon—but it does not explicitly mention alternatives or exclusion criteria. Sibling tools exist (e.g., 'list_fridge'), but no guidance is provided on when to choose this over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_fridgeЧто в холодильникеA
Показывает всё содержимое холодильника: продукты, количество, место и срок годности.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains what will be shown (all contents with specific fields), but does not disclose additional behaviors such as whether expired items are included (though 'всё' implies yes), ordering, or potential edge cases like an empty fridge. Still, for a simple read-only list, the provided info is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that clearly states the tool's function and return contents. Every word earns its place, with no redundant information or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no params and no output schema, the description adequately explains what is returned. It lacks details about sorting, formatting, or whether expired items are included, but 'всё содержимое' covers inclusiveness. The description is complete enough for an agent to understand the tool's basic function and output expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the description needs no parameter explanation. The baseline for 0 params is 4, and the description adds value by describing the returned data fields (products, quantity, location, expiration date), which fully compensates for the lack of output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows all fridge contents including products, quantity, location, and expiration date. The verb 'показывает' (shows) is specific, and the resource 'холодильник' (fridge) with the listed attributes distinguishes it from sibling tools like check_fridge_item or expiring_soon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing an overview of everything in the fridge, but it does not explicitly mention when to use this tool versus the siblings (e.g., check_fridge_item for a specific item, expiring_soon for soon-expiring items). No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_from_fridgeВзять из холодильникаA
Убирает продукт из холодильника (съели / выкинули). Без quantity убирает всё.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Название продукта | |
| quantity | No | Сколько убрать; если не указать — убрать всё |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key behavioral trait: without quantity, it removes everything. This is important destructive behavior. However, it doesn't mention what happens if the product is not found or if quantity exceeds available stock, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two short sentences, both informative. No wasted words; it effectively conveys purpose and key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no output schema) and the description covers the main purpose and the critical quantity-default behavior. It doesn't address edge cases like product not found or error handling, but for a basic removal tool this is likely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema, as the 'without quantity removes all' behavior is already in the quantity parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Убирает продукт из холодильника' (removes a product from the fridge) and provides context ('съели / выкинули' – ate/threw away). This distinguishes it from sibling tools like list, add, check, and expiring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when removing an item, e.g., eaten or thrown away) and clarifies the default behavior if quantity is omitted. It does not explicitly mention alternatives or exclusions, but for a simple removal tool the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
add_to_fridge - First observed
check_fridge_item - First observed
expiring_soon - First observed
list_fridge - First observed
remove_from_fridge
TDQS
Scored across 5 tools
Each tool performs a distinct operation: listing all items, adding, removing, checking existence, and getting expiring items. There is no meaningful overlap between them, and even the similar list/check pair is clearly differentiated by scope.
All tool names use consistent snake_case with clear verb-first patterns (list_, add_, remove_, check_) plus the query-style expiring_soon. The naming style is uniform and predictable.
With 5 tools, the server is well-scoped for a fridge inventory domain. Each tool serves a core need without bloat, making the set easy to navigate and use.
The set covers the main lifecycle: add (create), list/check/expiring (read), and remove (delete). The only notable gap is the lack of an update operation for product details like expiration date, which can be worked around by re-adding.
Maintenance
Related MCP Connectors
Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.
AI-powered kitchen management — pantry, recipes, meal plans, shopping lists
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.
AI meal plans that fill your Kroger/Instacart cart - pantry-aware lists, all from chat.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceHousehold-aware kitchen brain for AI agents: manage pantry inventory with freshness tracking, shopping lists, recipe collections with cook notes and per-diner ratings, dietary profiles with allergen safety, and kitchen equipment — all through 27 tools with OAuth 2.1 authentication. Includes a free tool for ingredient-based recipe generation without an account (accounts are free!).MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered household management including inventory tracking, restock predictions, meal planning from available ingredients, and baby supply monitoring through natural language commands.Apache 2.0
- AlicenseAqualityDmaintenanceEnables AI assistants to answer food safety and shelf-life questions using USDA-grade data, with tools for shelf life, safety checks, storage tips, and waste cost calculations.624 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables Alexa+ to access a live household food inventory, providing expiry warnings, use-it-up recipe suggestions, and grocery list management.MIT