MCP-Server

CasaCaddy Maintenance

com.soxoa/casacaddy-maintenance
IoT & Hardware Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Retrieves appliance maintenance guides and recovers previously requested guide jobs for a linked installation.

get_connected_installation
Connected CasaCaddy installation
Identify the linked CasaCaddy Pro installation and its current maintenance-guide allowance. No device identifier, billing data, on-device home library, appliance list or task history is exposed.
Nur Lesen
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['label', 'synthetic', 'plan', 'guideAllowance', 'access'], 'properties': {'plan': {'type': 'string', 'const': 'pro'}, 'label': {'type': 'string'}, 'access': {'type': 'string', 'const': 'User-supplied appliance details and owner-scoped MCP guide requests only'}, 'synthetic': {'type': 'boolean'}, 'guideAllowance': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string', 'minLength': 1}, 'quota': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'message': {'type': 'string'}}, 'additionalProperties': False}], '$schema': 'http://json-schema.org/draft-07/schema#'}
get_maintenance_guide
Get a CasaCaddy maintenance guide
Use the linked Pro installation to request a maintenance guide for the appliance details and question the user supplied. Ask for confirmation before using existing Pro allowance; a fresh guide uses that allowance and the existing external model pipeline. Existing exact-input cached guides are unmetered. Supply a fresh UUID request_key and reuse it for retries: identical-key results are persisted, so a retry never starts a second provider request. Preserve safetyWarnings, step cautions, whenToCallPro and call_a_pro difficulty. This does not read on-device appliances or schedule tasks.
Externer Zugriff
Eingabeschema
{'type': 'object', 'required': ['item', 'request_key', 'use_existing_allowance'], 'properties': {'item': {'type': 'object', 'required': ['category'], 'properties': {'brand': {'type': 'string', 'maxLength': 120}, 'model': {'type': 'string', 'maxLength': 120}, 'specs': {'type': 'object', 'maxProperties': 40, 'additionalProperties': {'type': 'string', 'maxLength': 200}}, 'category': {'enum': ['furnace', 'boiler', 'heat_pump', 'ac_condenser', 'mini_split', 'water_heater_tank', 'water_heater_tankless', 'water_softener', 'refrigerator', 'dishwasher', 'washer', 'dryer', 'range_oven', 'microwave', 'garbage_disposal', 'sump_pump', 'garage_door_opener', 'smoke_co_detector', 'thermostat', 'roof', 'gutter', 'deck', 'siding', 'window', 'other'], 'type': 'string'}}, 'additionalProperties': False}, 'question': {'type': 'string', 'maxLength': 300}, 'request_key': {'type': 'string', 'format': 'uuid'}, 'use_existing_allowance': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['request_key', 'state', 'guide', 'cached', 'quota', 'replayed'], 'properties': {'guide': {'type': 'object', 'required': ['title', 'difficulty', 'estMinutes', 'tools', 'parts', 'steps', 'whenToCallPro', 'safetyWarnings'], 'properties': {'parts': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'spec', 'exampleSearch'], 'properties': {'name': {'type': 'string'}, 'spec': {'type': 'string'}, 'exampleSearch': {'type': 'string'}}, 'additionalProperties': False}}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['n', 'text'], 'properties': {'n': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'text': {'type': 'string'}, 'caution': {'type': 'string'}}, 'additionalProperties': False}, 'minItems': 1}, 'title': {'type': 'string'}, 'tools': {'type': 'array', 'items': {'type': 'string'}}, 'difficulty': {'enum': ['easy', 'moderate', 'call_a_pro'], 'type': 'string'}, 'estMinutes': {'type': 'integer', 'maximum': 1440, 'minimum': 1}, 'whenToCallPro': {'type': 'array', 'items': {'type': 'string'}}, 'safetyWarnings': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'quota': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'state': {'type': 'string', 'const': 'completed'}, 'cached': {'type': 'boolean'}, 'replayed': {'type': 'boolean'}, 'request_key': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['request_key', 'state', 'error', 'replayed'], 'properties': {'error': {'type': 'string', 'minLength': 1}, 'quota': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'state': {'type': 'string', 'const': 'completed'}, 'message': {'type': 'string'}, 'replayed': {'type': 'boolean'}, 'request_key': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['request_key', 'state', 'message'], 'properties': {'state': {'type': 'string', 'const': 'processing'}, 'message': {'type': 'string'}, 'request_key': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string', 'minLength': 1}, 'quota': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'message': {'type': 'string'}}, 'additionalProperties': False}], '$schema': 'http://json-schema.org/draft-07/schema#'}
get_saved_guide_request
Recover a guide request
Recover one maintenance-guide request made through MCP by the linked installation, using its exact request_key. Only that installation’s request records are returned, for up to 30 days. Does not start generation, consume allowance or read the on-device library. Keep all safety warnings and professional-help boundaries intact.
Nur Lesen
Eingabeschema
{'type': 'object', 'required': ['request_key'], 'properties': {'request_key': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['request_key', 'state', 'guide', 'cached', 'quota', 'replayed'], 'properties': {'guide': {'type': 'object', 'required': ['title', 'difficulty', 'estMinutes', 'tools', 'parts', 'steps', 'whenToCallPro', 'safetyWarnings'], 'properties': {'parts': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'spec', 'exampleSearch'], 'properties': {'name': {'type': 'string'}, 'spec': {'type': 'string'}, 'exampleSearch': {'type': 'string'}}, 'additionalProperties': False}}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['n', 'text'], 'properties': {'n': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'text': {'type': 'string'}, 'caution': {'type': 'string'}}, 'additionalProperties': False}, 'minItems': 1}, 'title': {'type': 'string'}, 'tools': {'type': 'array', 'items': {'type': 'string'}}, 'difficulty': {'enum': ['easy', 'moderate', 'call_a_pro'], 'type': 'string'}, 'estMinutes': {'type': 'integer', 'maximum': 1440, 'minimum': 1}, 'whenToCallPro': {'type': 'array', 'items': {'type': 'string'}}, 'safetyWarnings': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'quota': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'state': {'type': 'string', 'const': 'completed'}, 'cached': {'type': 'boolean'}, 'replayed': {'type': 'boolean'}, 'request_key': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['request_key', 'state', 'error', 'replayed'], 'properties': {'error': {'type': 'string', 'minLength': 1}, 'quota': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'state': {'type': 'string', 'const': 'completed'}, 'message': {'type': 'string'}, 'replayed': {'type': 'boolean'}, 'request_key': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['request_key', 'state', 'message'], 'properties': {'state': {'type': 'string', 'const': 'processing'}, 'message': {'type': 'string'}, 'request_key': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string', 'minLength': 1}, 'quota': {'type': 'object', 'required': ['used', 'limit'], 'properties': {'used': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'message': {'type': 'string'}}, 'additionalProperties': False}], '$schema': 'http://json-schema.org/draft-07/schema#'}
Hinzugefügt
get_saved_guide_request
2. October 2026 02:40
Hinzugefügt
get_maintenance_guide
2. October 2026 02:40
Hinzugefügt
get_connected_installation
2. October 2026 02:40