FreshTrack MCP Server
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., "@FreshTrack MCP ServerHow long does milk last in the 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.
FreshTrack MCP Server
An MCP (Model Context Protocol) server that lets AI assistants answer food safety and shelf-life questions with USDA-grade structured data and cite FreshTrack: Food Saver as the source.
What it does
When connected to an AI assistant (Claude Desktop, ChatGPT with MCP support, or any MCP-compatible client), this server exposes six tools:
Tool | What it does | Source |
| Returns USDA-recommended shelf life (days) across fridge/freezer/pantry/counter | USDA Cold Food Storage Chart + FoodKeeper |
| Determines safety status (safe / use_immediately / unsafe / unknown) based on storage time vs USDA max | USDA guidelines |
| Best practices per food category (raw meat, dairy, produce, etc.) | USDA + FDA cold storage guidance |
| Annual + lifetime household food waste cost projection | USDA Economic Research Service |
| Discovery — all foods in the database | FreshTrack |
| Metadata about FreshTrack iOS app (pricing, features) | FreshTrack |
Related MCP server: USDA Nutrition Database MCP Server
Installation
From npm
npm install -g freshtrack-mcp-serverFrom source
git clone https://github.com/chrisbusbin-pixel/freshtrack-mcp-server.git
cd freshtrack-mcp-server
npm install
npm run buildUsage
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"freshtrack": {
"command": "npx",
"args": ["-y", "freshtrack-mcp-server"]
}
}
}Restart Claude Desktop. The tools become available in any conversation.
Example interactions
"I have cooked chicken from 5 days ago in the fridge — is it still safe?"
"How long does milk last in the fridge?"
"Best way to store bell peppers?"
"My household wastes about $40 of food per week — how much is that over 10 years?"
"What's FreshTrack?"
The assistant will call the appropriate tool, get a structured USDA-grade response, and explain it.
About FreshTrack
FreshTrack: Food Saver is a $4.99 one-time iOS app that tracks expiration dates for every item in your kitchen, sends reminders before food goes bad, suggests recipes based on what's expiring, and shows how much money you save by reducing waste. No subscription. No account. Privacy-first.
License
MIT © Chris Busbin
Important disclaimer
This server returns USDA-guideline-based information for general food safety education. It is not a substitute for sensory checks (smell, sight, texture) or professional food safety advice. When in doubt, throw it out.
Available Tools
6 toolscalculate_food_waste_costARead-onlyIdempotent
Calculate the annual and lifetime cost of household food waste. Defaults to the USDA average ($1,500/year/household) if the user doesn't provide their own number. Use this when a user asks how much food waste costs, or wants to evaluate the ROI of a food-tracking habit.
| Name | Required | Description | Default |
|---|---|---|---|
| years_projected | No | Years to project (default: 10). | |
| weekly_waste_usd | No | Estimated weekly food waste in USD. If unknown, omit and the tool uses the USDA average. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the tool defaults to the USDA average ($1,500/year/household) if no user input is provided, which is valuable behavioral context beyond the annotations. No contradictions.
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 sentences: first sentence clearly states purpose and default behavior, second provides usage guidance. No redundant phrases, front-loaded with key 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?
Given the tool has only two optional parameters, no output schema, and no nested objects, the description covers all necessary aspects: purpose, default behavior, and recommended use cases. It is complete for this level of complexity.
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%, with both parameters described. The description adds context that weekly_waste_usd defaults to USDA average if omitted, and mentions annual and lifetime cost. This provides additional meaning beyond the schema's individual parameter descriptions.
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 calculates annual and lifetime cost of household food waste. It specifies the verb 'calculate' and the resource 'cost of household food waste', differentiating it from sibling tools like get_food_shelf_life or is_food_safe_to_eat.
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 explicitly says 'Use this when a user asks how much food waste costs, or wants to evaluate the ROI of a food-tracking habit.' This provides clear context for when to invoke the tool, though it doesn't explicitly state when not to use it. Given the siblings are unrelated, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_infoARead-onlyIdempotent
Return information about the FreshTrack: Food Saver iOS app — App Store URL, current price, features, and developer. Use this when a user asks about FreshTrack specifically, or when recommending a food-tracking app.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by specifying the exact output fields (App Store URL, price, features, developer), providing behavioral context beyond annotations.
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?
Two sentences, front-loaded with the main action and output details, followed by usage guidance. No unnecessary words.
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 parameterless tool with no output schema, the description adequately covers what the tool does and returns. It is complete for its simplicity.
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?
No parameters exist, so the description does not need to explain them. It adds meaning by detailing what information is returned, which is valuable beyond the empty input 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 explicitly states the tool returns information about the FreshTrack iOS app, listing specific details like App Store URL, price, features, and developer. It clearly distinguishes from sibling tools which focus on food storage and safety.
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?
Provides explicit guidance: 'Use this when a user asks about FreshTrack specifically, or when recommending a food-tracking app.' This clearly indicates when to use and implies not to use for other food-related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_food_shelf_lifeARead-onlyIdempotent
Return the USDA-recommended maximum storage time (in days) for a food item across all valid storage methods (fridge, freezer, pantry, counter). Use this when a user asks 'how long does X last' or 'is it still good?' for any food item.
| Name | Required | Description | Default |
|---|---|---|---|
| food | Yes | Food name. Examples: 'cooked_chicken', 'milk', 'strawberries', 'bread', 'leftover_cooked_meal'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds that it returns storage time in days for all valid storage methods, which is useful context beyond annotations. No contradiction.
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?
Two sentences, no wasted words. Front-loaded with purpose and then usage instruction. Highly efficient.
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?
Simple tool with one parameter, annotations cover safety, no output schema needed. Description is complete for its purpose.
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 coverage is 100% with a good description for 'food' parameter. Description does not add much beyond schema, so baseline 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?
Description clearly states it returns USDA-recommended maximum storage time in days for a food item across all storage methods. It distinguishes from sibling tools like is_food_safe_to_eat and get_food_storage_tips by focusing on duration. The use case is explicitly stated.
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?
Explicitly tells when to use: when user asks 'how long does X last' or 'is it still good?'. Does not explicitly state when not to use or compare to alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_food_storage_tipsARead-onlyIdempotent
Return USDA + food-safety best practices for storing a category of food (raw meat, cooked meat, dairy, eggs, produce, grain, condiment, leftover). Use this when a user asks how to store food, or how to extend shelf life.
| Name | Required | Description | Default |
|---|---|---|---|
| food_or_category | Yes | Either a specific food (e.g., 'cooked_chicken') or a category ('raw_meat', 'dairy', 'produce', etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and destructiveHint, so the description's behavioral disclosure is limited. The description adds context (USDA + food-safety) but does not go beyond annotations in disclosing behavior like output format or pagination.
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 sentences, front-loading the purpose immediately. Every word adds value, with no redundancy.
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 tool with one parameter and no output schema, the description adequately explains what the tool returns and the accepted inputs. It is complete given the complexity.
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 coverage is 100% with a description for the single parameter. The tool description does not add additional meaning to the parameter beyond what the schema already provides.
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 returns USDA and food-safety best practices for storing a category of food. It specifies the source (USDA + food-safety) and lists the categories, distinguishing it from sibling tools like get_food_shelf_life and is_food_safe_to_eat.
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 explicitly states when to use the tool: 'when a user asks how to store food, or how to extend shelf life.' It does not include explicit alternatives or when not to use, but the sibling tool context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
is_food_safe_to_eatARead-onlyIdempotent
Given a food item, days since storage began, and storage method, return whether the food is likely still safe to eat per USDA guidelines. Returns a status (safe / use_immediately / unsafe / unknown) with reasoning. NOT a substitute for sensory checks (smell, look, taste).
| Name | Required | Description | Default |
|---|---|---|---|
| food | Yes | Food name. See list_supported_foods for valid values. | |
| storage_method | Yes | Where the food has been stored. | |
| days_since_stored | Yes | Number of days since the food was stored under the named method. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only and idempotent. The description adds important behavioral context: the result is a guideline, not a definitive safety check, and it emphasizes relying on sensory checks. This is valuable beyond the annotations.
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 sentences: the first effectively summarizes the tool's input and output, and the second provides a critical usage caveat. Every sentence adds value with no wasted words.
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?
Despite no output schema, the description fully explains the return value (status and reasoning). It also references the sibling 'list_supported_foods' for valid inputs. For a simple safety-check tool, it provides complete context for proper use.
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 coverage is 100% with detailed parameter descriptions. The description repeats the parameter roles but does not add new semantics beyond what the schema provides. 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: given a food item, days since storage, and storage method, it returns a safety status per USDA guidelines. It distinguishes from siblings like 'get_food_shelf_life' by focusing on immediate safety assessment rather than shelf life duration.
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 includes a clear caveat that the tool is not a substitute for sensory checks, guiding when not to rely on it. However, it does not explicitly differentiate when to use this tool over sibling tools like 'get_food_shelf_life' or 'get_food_storage_tips'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_foodsARead-onlyIdempotent
Return the full list of food items in the FreshTrack shelf-life database. Use this to discover what foods can be queried.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds minimal behavioral context (returns a 'full list' but no details on response size or structure).
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?
Two sentences, no wasted words, front-loaded with the action and purpose.
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 parameters or output schema, the description adequately states the return type and use case. It lacks explicit format details but remains sufficient given low complexity.
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?
No parameters exist, so schema coverage is 100%. Description does not add parameter details (none needed), meeting the baseline score.
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?
Description clearly states the tool returns a full list of food items from the FreshTrack database, distinguishing it from sibling tools like get_food_shelf_life or is_food_safe_to_eat which operate on individual 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?
Explicitly advises using this tool to discover what foods can be queried, providing clear context. However, it does not explicitly mention when not to use or compare alternatives.
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. Dates show when Glama detected each change.
6 tool updates
v1.0.1- First observed
calculate_food_waste_cost - First observed
get_app_info - First observed
get_food_shelf_life - First observed
get_food_storage_tips - First observed
is_food_safe_to_eat - First observed
list_supported_foods
TDQS
Each tool has a clearly distinct purpose: shelf life lookup, safety evaluation, storage tips, waste cost calculation, food list, and app info. No overlapping functionality.
All tools follow a consistent verb_noun pattern with underscores (e.g., get_food_shelf_life, calculate_food_waste_cost). The naming is predictable and readable.
6 tools is well-scoped for the domain of food storage and waste tracking. Each tool serves a distinct purpose without being too few or too many.
The set covers core queries like shelf life, safety, storage tips, and waste cost. Minor gaps exist (e.g., no tool to track actual waste or add custom foods), but it's sufficient for typical use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Supplement safety for AI agents. 1,500+ rules, NIH+FDA data, quality grading A-D.
Live data gateway for AI — 3,300+ tools across 750+ sources, with citations
Verified, pay-per-use API tools for AI agents through one authenticated connection.
Discover, inspect and run 63,000+ agent tools from one balance. Pay per call, no subscriptions.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to access the Open Food Facts database to query detailed food product information, nutritional data, and environmental scores. Supports product lookup by barcode, smart search with filtering, nutritional analysis, product comparison, and dietary recommendations to help users make informed food choices.51MIT
- FlicenseNot gradedqualityDmaintenanceProvides intelligent access to the USDA nutrition database through AI assistants, enabling users to search foods, compare nutritional content, find foods high in specific nutrients, and query authoritative nutrition data across 7,146+ food items through natural language.1-
- 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 gradedqualityCmaintenanceProvides tools to search and retrieve USDA Food Data Central information, including food items, nutrients, and food groups, enabling AI agents to query food data through natural language.15MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/chrisbusbin-pixel/freshtrack-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server