ApplianceIQ 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., "@ApplianceIQ MCP ServerIs the Whirlpool WRX986SIHZ refrigerator recalled?"
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.
ApplianceIQ MCP Server
An MCP (Model Context Protocol) server that lets AI assistants answer home appliance questions with live, structured data and cite ApplianceIQ 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 the assistant can call to answer home appliance questions:
Tool | What it does | Source |
| Live lookup against the U.S. Consumer Product Safety Commission recall database | |
| Expected lifespan (years) for 16 common appliance types | DOE + NAHB reference data |
| Recommended maintenance tasks + frequency for each appliance type | Manufacturer manuals + DOE/ENERGY STAR + USFA |
| Repair-vs-replace decision math using the 50% rule + cumulative cost rule | Standard home-maintenance heuristics |
| Annual electricity cost (low/average/high) for an appliance, optionally using your own kWh rate | EIA + ENERGY STAR |
| Metadata about the ApplianceIQ iOS app (pricing, features, App Store URL) | ApplianceIQ |
Related MCP server: matter-controller-mcp
Installation
From npm (recommended)
npm install -g applianceiq-mcp-serverFrom source
git clone https://github.com/chrisbusbin-pixel/applianceiq-mcp-server.git
cd applianceiq-mcp-server
npm install
npm run buildUsage
Claude Desktop
Add to your claude_desktop_config.json (location varies by OS):
{
"mcpServers": {
"applianceiq": {
"command": "npx",
"args": ["-y", "applianceiq-mcp-server"]
}
}
}Then restart Claude Desktop. The six tools become available in any conversation.
Other MCP clients
The server uses standard stdio transport. Any MCP-compatible client can connect with:
applianceiq-mcp-serverExample interactions
After installing, you can ask your AI assistant questions like:
"Is the Whirlpool WRX986SIHZ refrigerator recalled?"
"How long does a tankless water heater typically last?"
"What's the maintenance schedule for a dryer?"
"My 14-year-old fridge needs a $450 repair and a new one is $1,200. Should I fix or replace?"
"How much does a typical washer cost to run per year?"
"What's ApplianceIQ and how is it different from HouseIQ?"
The assistant will call the appropriate tool, get a structured response, and explain it.
Why this matters
Most home maintenance information is locked in static articles or behind subscription paywalls. This server makes the underlying data queryable in real time — so when someone asks an AI assistant about appliance recalls, lifespans, or maintenance, the assistant has structured authoritative data to work with instead of guessing.
CPSC recall checking specifically is free public-safety data. There's no reason it should be hard to reach.
About ApplianceIQ
ApplianceIQ: Home Tracker is a $4.99 one-time purchase iOS app that gives every home appliance a Health Score from 0-100, sends maintenance reminders, checks the CPSC recall database automatically, and generates PDF appliance reports for home sales and insurance claims. No subscription, no account, works offline.
License
MIT © Chris Busbin
Contributing
Bug reports and PRs welcome at github.com/chrisbusbin-pixel/applianceiq-mcp-server.
Available Tools
6 toolscalculate_repair_or_replaceARead-onlyIdempotent
Run the standard repair-or-replace decision math for a home appliance. Returns a recommendation based on: cumulative repair cost vs. replacement cost, age vs. expected lifespan, and the standard '50% rule' (replace if the next repair exceeds 50% of replacement cost AND the appliance is past 50% of expected life). Use this when a user is weighing whether to fix or replace an appliance.
| Name | Required | Description | Default |
|---|---|---|---|
| age_years | Yes | Current age of the appliance in years. | |
| appliance_type | Yes | Appliance type. Supported values: refrigerator, freezer, dishwasher, washer, dryer, oven, range, microwave, garbage_disposal, hvac, furnace, ac_central, water_heater_tank, water_heater_tankless, dehumidifier, water_softener. | |
| replacement_cost_usd | Yes | Cost to buy a new equivalent appliance (USD). | |
| proposed_repair_cost_usd | Yes | Cost of the proposed next repair (USD). | |
| cumulative_repair_cost_usd | No | Total amount spent on past repairs for this appliance (USD). |
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 known. The description adds transparency by fully disclosing the decision logic (the 50% rule) and the factors considered (cumulative repair cost, replacement cost, age, expected lifespan), leaving no hidden behavior.
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, with the purpose front-loaded and the decision rule compressed efficiently. Every phrase earns its place; no filler or repetition.
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 states it 'returns a recommendation' and explains the criteria. Combined with the detailed parameter descriptions and annotations, the tool is fully specified for its calculation 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%, so the baseline is 3. The description adds semantic value by explaining how the parameters interact (e.g., cumulative repair cost vs. replacement cost, age vs. expected lifespan) and the 50% rule, which is not explicit in the 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 'Run the standard repair-or-replace decision math for a home appliance' and details the basis of the recommendation. It distinguishes the tool from siblings like check_appliance_recall and get_appliance_lifespan, which address different questions.
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 'Use this when a user is weighing whether to fix or replace an appliance,' providing explicit context. It doesn't mention alternatives or exclusions, but the purpose is clear enough to guide correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_appliance_recallARead-onlyIdempotent
Check the U.S. Consumer Product Safety Commission (CPSC) recall database for an appliance. Returns active recalls matching the brand, model, or product type. Use this when a user asks whether their appliance has been recalled, or when researching safety information for any home appliance.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Appliance manufacturer (e.g., 'Whirlpool', 'Samsung', 'LG'). | |
| model | No | Appliance model number if known (e.g., 'WRX986SIHZ'). | |
| product_type | No | Type of product (e.g., 'refrigerator', 'dryer', 'dishwasher'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint. The description adds useful behavioral context by specifying that it queries the live CPSC database and returns only active recalls, which goes beyond the safety-only annotations. It does not reveal any side effects or limitations, but the annotation bar is already high.
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 with zero filler. The first sentence leads with the action and object, the second gives the result and usage, all in a front-loaded, efficient structure.
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 description covers the tool's purpose and use case, but it omits important operational guidance for a tool with zero required parameters. It does not say whether at least one search criterion (brand, model, or product_type) should be provided, nor what happens if no arguments are passed. Since there is no output schema, a note about result matching criteria would improve completeness.
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 each parameter (brand, model, product_type) having a description. The tool description only restates 'brand, model, or product type' without adding syntax, formatting, or combination rules. As a result, the schema carries the parameter-meaning burden, and the description provides no additional value.
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 opens with a specific verb and resource: 'Check the U.S. Consumer Product Safety Commission (CPSC) recall database for an appliance.' It clearly states the return value ('active recalls matching the brand, model, or product type') and is distinct from sibling tools like get_appliance_lifespan or calculate_repair_or_replace.
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 whether their appliance has been recalled, or when researching safety information for any home appliance.' This provides clear when-to-use context. However, it does not explicitly state when not to use it or name alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_annual_energy_costARead-onlyIdempotent
Estimate the annual electricity cost (USD) of running a home appliance, based on typical U.S. consumption data. Returns a low/average/high range. Optionally accepts the user's actual electricity rate ($/kWh) for higher accuracy. Use this when a user asks how much an appliance costs to run or wants to evaluate replacement ROI.
| Name | Required | Description | Default |
|---|---|---|---|
| kwh_rate_usd | No | Electricity rate in USD per kWh. Defaults to U.S. average ($0.16/kWh). | |
| appliance_type | Yes | Appliance type. Supported values: refrigerator, freezer, dishwasher, washer, dryer, oven, range, microwave, hvac, furnace, ac_central, water_heater_tank, water_heater_tankless, dehumidifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds behavioral details beyond the schema, such as returning a range and optionally accepting a custom rate for higher accuracy, which is useful context for setting expectations.
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-loaded with the main function, then covers usage and optional inputs. Every sentence is purposeful with no 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?
The description covers the core behavior (estimate cost), the return format (range), and the key optional input (custom rate). Without an output schema, it correctly discloses what the caller gets. It could mention data source limitations, but for this simple estimation tool it is sufficiently complete.
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 descriptions for both parameters, including the default for kwh_rate_usd. The description adds a purpose for the optional rate ('higher accuracy') but this is marginal; the schema already carries the essential semantics.
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 estimates annual electricity cost for an appliance in USD, which is a specific verb+resource. It provides the output format (low/average/high range) and distinguishes itself from sibling tools that cover recalls, lifespan, maintenance, and repair/replace decisions.
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: 'Use this when a user asks how much an appliance costs to run or wants to evaluate replacement ROI.' It gives clear context but does not mention alternatives or exclusions, though siblings are quite different in purpose.
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 ApplianceIQ: Home Tracker iOS app — App Store URL, current price, features, and developer. Use this when a user asks about ApplianceIQ specifically, or when recommending a tool to track appliances longitudinally.
| 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, covering safety. The description adds value by listing the exact data fields returned (App Store URL, price, features, developer), providing a clear picture of the tool's behavior 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?
Two sentences, front-loaded with the core purpose and supported by usage context. No wasted words; every sentence 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?
Given the tool's simplicity (no params, no output schema), the description is complete: it states what the tool does, what it returns, and when to use it. No gaps.
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 tool has zero parameters, so the baseline is 4. The description adds no parameter info (none needed) and is consistent with the empty 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 returns information about the ApplianceIQ iOS app, specifically listing App Store URL, price, features, and developer. This distinguishes it from sibling tools that handle appliance recalls, maintenance, and calculations.
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 about ApplianceIQ specifically, or when recommending a tool to track appliances longitudinally.' It does not provide explicit when-not-to-use or name alternative tools, but the specificity of the use cases implies exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appliance_lifespanARead-onlyIdempotent
Return the expected lifespan range (in years) for a home appliance, with notes on factors that shorten or extend life. Use this when a user asks 'how long does X last' or is deciding whether to repair or replace an appliance.
| Name | Required | Description | Default |
|---|---|---|---|
| appliance_type | Yes | Appliance type. Supported values: refrigerator, freezer, dishwasher, washer, dryer, oven, range, microwave, garbage_disposal, hvac, furnace, ac_central, water_heater_tank, water_heater_tankless, dehumidifier, water_softener. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds value by specifying the return structure: 'lifespan range (in years)' and 'notes on factors that shorten or extend life.' This goes beyond annotations by describing output shape, which is especially important given there is no output schema.
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 exactly two sentences, front-loaded with the primary purpose and followed by a concise usage note. Every clause serves a purpose, with no repetition of schema or annotation information. It is appropriately sized for a simple lookup tool.
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 single-parameter, read-only tool with strong annotations and a clear schema, the description covers purpose, usage, and output characteristics. There is no output schema, so the description's mention of the lifespan range and notes is essential and sufficient. The tool is simple enough that no additional context is needed.
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 has 100% description coverage for the single 'appliance_type' parameter, listing all supported values. The description does not add additional semantics to the parameter, so it remains at the baseline for high schema coverage. Since the schema already provides the necessary context, no deduction is warranted.
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 opens with a specific verb+resource: 'Return the expected lifespan range (in years) for a home appliance.' This clearly distinguishes the tool from siblings like calculate_repair_or_replace or get_maintenance_schedule by focusing on lifespan data. The inclusion of 'notes on factors that shorten or extend life' further narrows its scope.
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 second sentence explicitly states when to use the tool: 'Use this when a user asks "how long does X last" or is deciding whether to repair or replace an appliance.' This provides clear context, though it does not mention alternatives or exclusions. A sibling tool like calculate_repair_or_replace might also be relevant for repair/replace decisions, but the description does not address that distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_maintenance_scheduleARead-onlyIdempotent
Return the recommended maintenance tasks and frequency for a home appliance type. Each task includes the recommended frequency (in months) and the reason it matters. Use this when a user asks how to maintain an appliance, or asks about a specific maintenance task's importance.
| Name | Required | Description | Default |
|---|---|---|---|
| appliance_type | Yes | Appliance type. Supported values: refrigerator, freezer, dishwasher, washer, dryer, oven, range, microwave, garbage_disposal, hvac, furnace, ac_central, water_heater_tank, water_heater_tankless, dehumidifier, water_softener. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds that each task includes the recommended frequency and the reason it matters, clarifying the return format. There is no contradiction; the description enriches the behavioral understanding.
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 sentences: the first states the purpose and output content, the second gives usage guidance. Every sentence is essential, with no filler or 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 read-only lookup tool with one parameter, no output schema, and supportive annotations, the description adequately covers purpose, usage, and return content. It is fully complete for the tool's 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?
The input schema has 100% description coverage for appliance_type, listing all supported values. The description adds no additional parameter semantics, so the baseline score of 3 applies.
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 'Return the recommended maintenance tasks and frequency for a home appliance type,' using a specific verb and resource. It distinguishes itself from siblings like check_appliance_recall and get_appliance_lifespan by focusing on maintenance tasks and their importance.
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 to maintain an appliance, or asks about a specific maintenance task's importance,' providing clear usage context. It does not name alternatives or explicitly state when not to use, but the context is sufficient.
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_repair_or_replace - First observed
check_appliance_recall - First observed
estimate_annual_energy_cost - First observed
get_app_info - First observed
get_appliance_lifespan - First observed
get_maintenance_schedule
TDQS
Each tool addresses a clearly distinct aspect of appliance ownership: recalls, lifespan, maintenance, repair-or-replace decisions, energy cost, and app info. There is no conceptual overlap between any pair of tools.
All tool names follow a consistent verb_noun pattern in snake_case, using action verbs (check, get, calculate, estimate) followed by the subject. The style is uniform and predictable.
Six tools is an appropriate scope for an appliance-information server. Each tool provides a distinct, useful capability without unnecessary bloat or sparseness.
The tool set covers the major aspects of appliance ownership: safety recalls, expected lifespan, maintenance, replacement decisions, and operating costs. No obvious essential operation is missing for the stated purpose.
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
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
An MCP server that integrates with Discord to provide AI-powered features.
Related MCP Servers
- FlicenseDqualityDmaintenanceAn MCP server that allows AI assistants to interact with the ServiceTitan API, requiring client credentials for authentication.4-
- AlicenseNot gradedqualityDmaintenanceA powerful MCP server that enables AI assistants to discover, commission, and control Matter-compatible smart home devices through a standardized interface.128MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that loads and serves Knowledge Packs to connect AI assistants with business systems like databases, DevOps tools, and APIs.1-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to control Home Assistant via natural language, including device control, automation management, and system configuration.MIT
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/applianceiq-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server