Servidor MCP

11FGB Cleaning Tools

io.github.kossik/11fgb-cleaning-tools
Negocio y operaciones Público y accesible MCP 2025-11-25

Qué hace este MCP

Calculates cleaning chemical usage, staffing, time, and residential or commercial cleaning cost estimates.

calculate_cleaning_chemical_usage
Calculate cleaning chemical usage
Use this when a user needs a planning estimate for ready-to-use cleaning solution, concentrate, water, or generic container quantities across one or many jobs. It does not recommend brands and product-label directions always take precedence.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobs_count', 'average_square_feet', 'product_category'], 'properties': {'jobs_count': {'type': 'integer', 'maximum': 100000, 'minimum': 1}, 'soil_level': {'enum': ['light', 'average', 'heavy'], 'type': 'string', 'default': 'average'}, 'postal_code': {'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$', 'description': 'Optional US ZIP code for market context.'}, 'cleaning_type': {'enum': ['standard', 'deep', 'move_in_out', 'commercial'], 'type': 'string', 'default': 'standard'}, 'dilution_ratio': {'type': 'number', 'default': 64, 'maximum': 1024, 'minimum': 1, 'description': 'Parts water per one part concentrate, such as 64 for 1:64.'}, 'reserve_percent': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 0}, 'product_category': {'enum': ['all_purpose', 'bathroom', 'floor', 'glass', 'degreaser'], 'type': 'string'}, 'average_square_feet': {'type': 'integer', 'maximum': 500000, 'minimum': 100}, 'container_size_ounces': {'type': 'number', 'default': 128, 'maximum': 640, 'minimum': 1}, 'coverage_sqft_per_gallon': {'type': 'number', 'maximum': 100000, 'minimum': 100}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['calculator', 'methodology_version', 'locale', 'currency', 'units', 'location', 'headline', 'summary', 'metrics', 'breakdown', 'assumptions', 'warnings', 'visualization', 'visualization_url', 'methodology_url', 'cta_url', 'expires_at'], 'properties': {'units': {'type': 'string', 'const': 'imperial'}, 'locale': {'type': 'string', 'const': 'en-US'}, 'cta_url': {'type': 'string', 'format': 'uri'}, 'metrics': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': ['string', 'number']}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['labor_hours', 'crew_size', 'duration_hours'], 'properties': {'crew_size': {'type': 'number'}, 'price_max': {'type': 'number'}, 'price_min': {'type': 'number'}, 'containers': {'type': 'number'}, 'labor_hours': {'type': 'number'}, 'duration_hours': {'type': 'number'}, 'solution_gallons': {'type': 'number'}, 'monthly_price_max': {'type': 'number'}, 'monthly_price_min': {'type': 'number'}, 'concentrate_ounces': {'type': 'number'}, 'price_per_visit_max': {'type': 'number'}, 'price_per_visit_min': {'type': 'number'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'USD'}, 'headline': {'type': 'string'}, 'location': {'type': 'object', 'required': ['postal_code', 'market_id', 'market_label', 'confidence', 'data_version'], 'properties': {'market_id': {'type': 'string'}, 'confidence': {'enum': ['local', 'national'], 'type': 'string'}, 'postal_code': {'type': 'string'}, 'data_version': {'type': 'string'}, 'market_label': {'type': 'string'}}, 'additionalProperties': False}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'breakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': 'number'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'calculator': {'enum': ['home-cleaning-cost', 'office-cleaning-cost', 'cleaning-time-and-crew', 'cleaning-chemical-usage'], 'type': 'string'}, 'expires_at': {'type': 'string', 'format': 'date-time'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'visualization': {'type': 'object', 'required': ['kind', 'items'], 'properties': {'kind': {'enum': ['rooms', 'zones', 'timeline', 'containers'], 'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'tone': {'enum': ['blue', 'green', 'orange', 'purple'], 'type': 'string'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'share': {'type': 'number'}, 'value': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'methodology_url': {'type': 'string', 'format': 'uri'}, 'visualization_url': {'type': 'string', 'format': 'uri'}, 'methodology_version': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
estimate_cleaning_time_and_crew
Estimate cleaning time and crew
Use this when a user asks how long a cleaning job may take or how many cleaners are needed. Works for homes, apartments, offices, retail, and vacation rentals. It estimates workload, not worker availability or a price quote.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['property_type', 'square_feet'], 'properties': {'bathrooms': {'type': 'number', 'default': 1, 'maximum': 200, 'minimum': 0}, 'condition': {'enum': ['light', 'average', 'heavy'], 'type': 'string', 'default': 'average'}, 'postal_code': {'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$', 'description': 'Optional US ZIP code. It affects the market label, not cleaning time.'}, 'square_feet': {'type': 'integer', 'maximum': 500000, 'minimum': 200}, 'cleaning_type': {'enum': ['standard', 'deep', 'move_in_out', 'turnover'], 'type': 'string', 'default': 'standard'}, 'property_type': {'enum': ['home', 'apartment', 'office', 'retail', 'vacation_rental'], 'type': 'string'}, 'rooms_or_zones': {'type': 'integer', 'default': 5, 'maximum': 500, 'minimum': 1}, 'max_visit_hours': {'type': 'number', 'default': 4, 'maximum': 12, 'minimum': 1}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['calculator', 'methodology_version', 'locale', 'currency', 'units', 'location', 'headline', 'summary', 'metrics', 'breakdown', 'assumptions', 'warnings', 'visualization', 'visualization_url', 'methodology_url', 'cta_url', 'expires_at'], 'properties': {'units': {'type': 'string', 'const': 'imperial'}, 'locale': {'type': 'string', 'const': 'en-US'}, 'cta_url': {'type': 'string', 'format': 'uri'}, 'metrics': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': ['string', 'number']}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['labor_hours', 'crew_size', 'duration_hours'], 'properties': {'crew_size': {'type': 'number'}, 'price_max': {'type': 'number'}, 'price_min': {'type': 'number'}, 'containers': {'type': 'number'}, 'labor_hours': {'type': 'number'}, 'duration_hours': {'type': 'number'}, 'solution_gallons': {'type': 'number'}, 'monthly_price_max': {'type': 'number'}, 'monthly_price_min': {'type': 'number'}, 'concentrate_ounces': {'type': 'number'}, 'price_per_visit_max': {'type': 'number'}, 'price_per_visit_min': {'type': 'number'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'USD'}, 'headline': {'type': 'string'}, 'location': {'type': 'object', 'required': ['postal_code', 'market_id', 'market_label', 'confidence', 'data_version'], 'properties': {'market_id': {'type': 'string'}, 'confidence': {'enum': ['local', 'national'], 'type': 'string'}, 'postal_code': {'type': 'string'}, 'data_version': {'type': 'string'}, 'market_label': {'type': 'string'}}, 'additionalProperties': False}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'breakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': 'number'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'calculator': {'enum': ['home-cleaning-cost', 'office-cleaning-cost', 'cleaning-time-and-crew', 'cleaning-chemical-usage'], 'type': 'string'}, 'expires_at': {'type': 'string', 'format': 'date-time'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'visualization': {'type': 'object', 'required': ['kind', 'items'], 'properties': {'kind': {'enum': ['rooms', 'zones', 'timeline', 'containers'], 'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'tone': {'enum': ['blue', 'green', 'orange', 'purple'], 'type': 'string'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'share': {'type': 'number'}, 'value': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'methodology_url': {'type': 'string', 'format': 'uri'}, 'visualization_url': {'type': 'string', 'format': 'uri'}, 'methodology_version': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
estimate_home_cleaning_cost
Estimate home cleaning cost
Use this when a user wants a free planning estimate for cleaning a US house, apartment, condo, or townhouse. Returns price range, labor hours, crew size, duration, assumptions, and a visual report. Do not present it as a binding quote.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postal_code', 'square_feet'], 'properties': {'pets': {'type': 'integer', 'default': 0, 'maximum': 10, 'minimum': 0}, 'add_ons': {'type': 'array', 'items': {'enum': ['oven', 'refrigerator', 'interior_windows', 'inside_cabinets', 'laundry', 'dishes'], 'type': 'string'}, 'default': [], 'maxItems': 6}, 'bedrooms': {'type': 'integer', 'default': 2, 'maximum': 20, 'minimum': 0}, 'bathrooms': {'type': 'number', 'default': 1, 'maximum': 20, 'minimum': 0}, 'condition': {'enum': ['light', 'average', 'heavy'], 'type': 'string', 'default': 'average'}, 'frequency': {'enum': ['one_time', 'weekly', 'biweekly', 'monthly'], 'type': 'string', 'default': 'one_time'}, 'postal_code': {'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$', 'description': 'US ZIP code used to select local or national rates.'}, 'square_feet': {'type': 'integer', 'maximum': 20000, 'minimum': 200, 'description': 'Total interior square footage.'}, 'cleaning_type': {'enum': ['standard', 'deep', 'move_in_out'], 'type': 'string', 'default': 'standard'}, 'property_type': {'enum': ['house', 'apartment', 'condo', 'townhouse'], 'type': 'string', 'default': 'house'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['calculator', 'methodology_version', 'locale', 'currency', 'units', 'location', 'headline', 'summary', 'metrics', 'breakdown', 'assumptions', 'warnings', 'visualization', 'visualization_url', 'methodology_url', 'cta_url', 'expires_at'], 'properties': {'units': {'type': 'string', 'const': 'imperial'}, 'locale': {'type': 'string', 'const': 'en-US'}, 'cta_url': {'type': 'string', 'format': 'uri'}, 'metrics': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': ['string', 'number']}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['labor_hours', 'crew_size', 'duration_hours'], 'properties': {'crew_size': {'type': 'number'}, 'price_max': {'type': 'number'}, 'price_min': {'type': 'number'}, 'containers': {'type': 'number'}, 'labor_hours': {'type': 'number'}, 'duration_hours': {'type': 'number'}, 'solution_gallons': {'type': 'number'}, 'monthly_price_max': {'type': 'number'}, 'monthly_price_min': {'type': 'number'}, 'concentrate_ounces': {'type': 'number'}, 'price_per_visit_max': {'type': 'number'}, 'price_per_visit_min': {'type': 'number'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'USD'}, 'headline': {'type': 'string'}, 'location': {'type': 'object', 'required': ['postal_code', 'market_id', 'market_label', 'confidence', 'data_version'], 'properties': {'market_id': {'type': 'string'}, 'confidence': {'enum': ['local', 'national'], 'type': 'string'}, 'postal_code': {'type': 'string'}, 'data_version': {'type': 'string'}, 'market_label': {'type': 'string'}}, 'additionalProperties': False}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'breakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': 'number'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'calculator': {'enum': ['home-cleaning-cost', 'office-cleaning-cost', 'cleaning-time-and-crew', 'cleaning-chemical-usage'], 'type': 'string'}, 'expires_at': {'type': 'string', 'format': 'date-time'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'visualization': {'type': 'object', 'required': ['kind', 'items'], 'properties': {'kind': {'enum': ['rooms', 'zones', 'timeline', 'containers'], 'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'tone': {'enum': ['blue', 'green', 'orange', 'purple'], 'type': 'string'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'share': {'type': 'number'}, 'value': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'methodology_url': {'type': 'string', 'format': 'uri'}, 'visualization_url': {'type': 'string', 'format': 'uri'}, 'methodology_version': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
estimate_office_cleaning_cost
Estimate office cleaning cost
Use this when a user wants a free office or commercial cleaning budget estimate in the United States. Returns per-visit and monthly ranges, labor, crew, schedule assumptions, and a visual report. Do not use for residential cleaning or present it as a binding bid.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postal_code', 'square_feet'], 'properties': {'add_ons': {'type': 'array', 'items': {'enum': ['day_porter', 'interior_glass', 'appliance_cleaning', 'supply_restocking'], 'type': 'string'}, 'default': [], 'maxItems': 4}, 'kitchens': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 0}, 'occupancy': {'enum': ['low', 'average', 'high'], 'type': 'string', 'default': 'average'}, 'restrooms': {'type': 'integer', 'default': 1, 'maximum': 200, 'minimum': 0}, 'floor_type': {'enum': ['mostly_hard', 'mostly_carpet', 'mixed'], 'type': 'string', 'default': 'mixed'}, 'postal_code': {'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$', 'description': 'US ZIP code used to select local or national rates.'}, 'square_feet': {'type': 'integer', 'maximum': 500000, 'minimum': 300}, 'workstations': {'type': 'integer', 'default': 10, 'maximum': 10000, 'minimum': 0}, 'service_level': {'enum': ['essential', 'standard', 'detailed'], 'type': 'string', 'default': 'standard'}, 'service_frequency': {'enum': ['weekly', 'twice_weekly', 'three_weekly', 'five_weekly', 'daily'], 'type': 'string', 'default': 'five_weekly'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['calculator', 'methodology_version', 'locale', 'currency', 'units', 'location', 'headline', 'summary', 'metrics', 'breakdown', 'assumptions', 'warnings', 'visualization', 'visualization_url', 'methodology_url', 'cta_url', 'expires_at'], 'properties': {'units': {'type': 'string', 'const': 'imperial'}, 'locale': {'type': 'string', 'const': 'en-US'}, 'cta_url': {'type': 'string', 'format': 'uri'}, 'metrics': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': ['string', 'number']}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['labor_hours', 'crew_size', 'duration_hours'], 'properties': {'crew_size': {'type': 'number'}, 'price_max': {'type': 'number'}, 'price_min': {'type': 'number'}, 'containers': {'type': 'number'}, 'labor_hours': {'type': 'number'}, 'duration_hours': {'type': 'number'}, 'solution_gallons': {'type': 'number'}, 'monthly_price_max': {'type': 'number'}, 'monthly_price_min': {'type': 'number'}, 'concentrate_ounces': {'type': 'number'}, 'price_per_visit_max': {'type': 'number'}, 'price_per_visit_min': {'type': 'number'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'USD'}, 'headline': {'type': 'string'}, 'location': {'type': 'object', 'required': ['postal_code', 'market_id', 'market_label', 'confidence', 'data_version'], 'properties': {'market_id': {'type': 'string'}, 'confidence': {'enum': ['local', 'national'], 'type': 'string'}, 'postal_code': {'type': 'string'}, 'data_version': {'type': 'string'}, 'market_label': {'type': 'string'}}, 'additionalProperties': False}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'breakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': 'number'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'calculator': {'enum': ['home-cleaning-cost', 'office-cleaning-cost', 'cleaning-time-and-crew', 'cleaning-chemical-usage'], 'type': 'string'}, 'expires_at': {'type': 'string', 'format': 'date-time'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'visualization': {'type': 'object', 'required': ['kind', 'items'], 'properties': {'kind': {'enum': ['rooms', 'zones', 'timeline', 'containers'], 'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'unit'], 'properties': {'tone': {'enum': ['blue', 'green', 'orange', 'purple'], 'type': 'string'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'share': {'type': 'number'}, 'value': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'methodology_url': {'type': 'string', 'format': 'uri'}, 'visualization_url': {'type': 'string', 'format': 'uri'}, 'methodology_version': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Añadido
calculate_cleaning_chemical_usage
17 de September de 2026 a las 12:42
Añadido
estimate_cleaning_time_and_crew
17 de September de 2026 a las 12:42
Añadido
estimate_office_cleaning_cost
17 de September de 2026 a las 12:42
Añadido
estimate_home_cleaning_cost
17 de September de 2026 a las 12:42