STEADYWRK Field Service Dispatch
What this MCP does
Estimates, quotes, and creates field-service dispatch work orders across multiple trade categories.
Tools
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 255, 'description': 'Public storefront URL or domain'}}}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['ok', 'report', 'demo'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'demo': {'type': 'object', 'required': ['id', 'permalink', 'verifyPath', 'hashSnippet', 'persisted'], 'properties': {'id': {'type': 'string'}, 'permalink': {'type': 'string'}, 'persisted': {'type': 'boolean'}, 'verifyPath': {'type': 'string'}, 'hashSnippet': {'type': 'string'}}}, 'report': {'type': 'object', 'required': ['host', 'origin', 'score', 'grade', 'summary', 'checks', 'probedAt', 'next'], 'properties': {'host': {'type': 'string'}, 'next': {'type': 'object', 'properties': {'sample': {'type': 'string'}, 'flagship': {'type': 'string'}, 'storeGuardBuy': {'type': 'string'}}}, 'grade': {'enum': ['A', 'B', 'C', 'D', 'F'], 'type': 'string'}, 'score': {'type': 'number'}, 'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'status', 'detail'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'detail': {'type': 'string'}, 'status': {'enum': ['pass', 'warn', 'fail', 'skip'], 'type': 'string'}}}}, 'origin': {'type': 'string'}, 'summary': {'type': 'string'}, 'probedAt': {'type': 'string'}}}}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string'}}, 'description': 'Business error — e.g. missing/invalid url argument, rate limit.', 'additionalProperties': True}], 'description': 'Either a successful probe (ok=true, report + demo) or a business error (e.g. missing url) — never a fabricated report.'}
Input schema
{'type': 'object', 'required': ['trade', 'location'], 'properties': {'trade': {'type': 'string', 'description': 'Trade code (plumbing, electrical, HVAC, etc.)'}, 'urgency': {'enum': ['emergency', 'urgent', 'routine', 'scheduled'], 'type': 'string', 'default': 'routine'}, 'location': {'type': 'object', 'required': ['state'], 'properties': {'zip': {'type': 'string', 'maxLength': 10}, 'city': {'type': 'string', 'maxLength': 255}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2}}}}}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['estimated', 'source', 'basis', 'rate_model_version', 'trade', 'urgency', 'location_resolution', 'wage_basis', 'billed_estimate', 'estimated_cost_cents', 'rate_card', 'disclosure'], 'properties': {'basis': {'type': 'string', 'const': 'wage_to_billed_rate_transform'}, 'trade': {'type': 'string'}, 'source': {'type': 'string', 'const': 'public_rate_card'}, 'urgency': {'enum': ['emergency', 'urgent', 'routine', 'scheduled'], 'type': 'string'}, 'estimated': {'type': 'boolean', 'const': True}, 'rate_card': {'type': 'object', 'properties': {'p25_dollars': {'type': ['number', 'null']}, 'p75_dollars': {'type': ['number', 'null']}, 'median_dollars': {'type': 'number'}}}, 'disclosure': {'type': 'array', 'items': {'type': 'string'}}, 'wage_basis': {'type': 'object', 'properties': {'kind': {'type': 'string', 'const': 'hourly_wage'}, 'note': {'type': 'string'}, 'p25_cents': {'type': ['integer', 'null']}, 'p75_cents': {'type': ['integer', 'null']}, 'source_url': {'type': 'string'}, 'scope_label': {'type': 'string'}, 'trade_label': {'type': 'string'}, 'bls_occ_code': {'type': 'string'}, 'median_cents': {'type': 'integer'}}, 'description': 'The cited hourly WAGE input — NOT the price.', 'additionalProperties': True}, 'billed_estimate': {'type': 'object', 'properties': {'formula': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'USD'}, 'total_usd': {'type': 'number'}, 'total_cents': {'type': 'integer'}, 'trip_fee_cents': {'type': 'integer'}, 'urgency_multiplier': {'type': 'number'}, 'minimum_billable_hours': {'type': 'number'}, 'labor_burden_multiplier': {'type': 'number'}, 'billed_hourly_rate_cents': {'type': 'integer'}, 'billed_hourly_rate_routine_cents': {'type': 'integer'}}, 'description': 'What a buyer pays — every component of the arithmetic, re-derivable via formula.', 'additionalProperties': True}, 'rate_model_version': {'type': 'string'}, 'location_resolution': {'type': 'object', 'properties': {'scope': {'enum': ['metro_cited', 'national_baseline', 'mena_coverage_beta'], 'type': 'string'}, 'reason': {'type': 'string'}, 'resolved_metro': {'type': ['string', 'null']}, 'location_sensitive': {'type': 'boolean'}, 'resolved_metro_label': {'type': ['string', 'null']}}, 'additionalProperties': True}, 'estimated_cost_cents': {'type': 'integer', 'description': 'Alias of billed_estimate.total_cents.'}}}, {'type': 'object', 'required': ['estimated', 'source', 'error', 'trade', 'valid_trades', 'known_trades'], 'properties': {'error': {'enum': ['unknown_trade', 'trade_required'], 'type': 'string'}, 'trade': {'type': ['string', 'null']}, 'source': {'type': 'string', 'const': 'public_rate_card'}, 'estimated': {'type': 'boolean', 'const': False}, 'known_trades': {'type': 'array', 'items': {'type': 'string'}}, 'valid_trades': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Trade was missing or not recognized. No number is fabricated.'}], 'description': 'A full wage-to-billed-rate estimate, or an unknown/missing trade error — never a fabricated number.'}
Input schema
{'type': 'object', 'properties': {'period': {'enum': ['rolling_7d', 'rolling_30d', 'rolling_90d'], 'type': 'string', 'default': 'rolling_30d'}}}
Output schema
{'type': 'object', 'required': ['schema_version', 'period', 'estimated', 'goal_fulfillment', 'operational', 'trust_signals', 'provenance', 'methodology'], 'properties': {'period': {'enum': ['rolling_7d', 'rolling_30d', 'rolling_90d'], 'type': 'string'}, 'estimated': {'type': 'boolean', 'description': 'False only when goal-fulfillment rates are backed by fresh, sufficient production telemetry.'}, 'provenance': {'type': 'object', 'description': 'Per-field record of whether each published figure is measured or estimated.', 'additionalProperties': True}, 'methodology': {'type': 'object', 'description': 'Metric definitions, named-period window, source-class vocabulary. Never a sample size.', 'additionalProperties': True}, 'operational': {'type': 'object', 'properties': {'active_states': {'type': 'string'}, 'latency_source': {'type': 'string'}, 'active_providers': {'type': 'null'}, 'jobs_dispatched_30d': {'type': 'null'}, 'pricing_latency_p50_ms': {'type': ['number', 'null']}, 'pricing_latency_p95_ms': {'type': ['number', 'null']}, 'pricing_latency_source': {'enum': ['live_telemetry', 'unavailable'], 'type': 'string'}, 'quote_turnaround_hours': {'type': 'number'}, 'avg_dispatch_latency_ms': {'type': ['number', 'null']}, 'p95_dispatch_latency_ms': {'type': ['number', 'null']}, 'quote_turnaround_is_sla': {'type': 'boolean'}, 'pricing_latency_sampled_at': {'type': 'string'}}, 'additionalProperties': True}, 'trust_signals': {'type': 'object', 'properties': {'build_hash': {'type': 'string'}}}, 'schema_version': {'type': 'string'}, 'goal_fulfillment': {'type': 'object', 'properties': {'source': {'enum': ['live_telemetry', 'canonical_estimate'], 'type': 'string'}, 'sampled_at': {'type': 'string'}, 'nte_accuracy': {'type': 'number'}, 'completion_rate': {'type': 'number'}, 'redispatch_rate': {'type': 'number'}, 'human_override_rate': {'type': 'number'}}, 'additionalProperties': True}}}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', 'required': ['trades', 'wage_vs_billed', 'note', 'model_assumptions', 'updated_at', 'source_period', 'rate_model_version'], 'properties': {'note': {'type': 'string'}, 'trades': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'medianWageDollars', 'p25WageDollars', 'p75WageDollars', 'billedHourlyRateRoutineCents', 'billedHourlyRateRoutineDollars'], 'properties': {'kind': {'type': 'string', 'const': 'hourly_wage'}, 'p25WageDollars': {'type': 'number'}, 'p75WageDollars': {'type': 'number'}, 'medianWageDollars': {'type': 'number'}, 'billedHourlyRateRoutineCents': {'type': 'integer'}, 'billedHourlyRateRoutineDollars': {'type': 'number'}}, 'description': 'kind is always "hourly_wage" — medianRateDollars/p25/p75 (and their *Wage* aliases) are what a technician earns, NOT a price. billedHourlyRateRoutine* is what a buyer pays.', 'additionalProperties': True}}, 'updated_at': {'type': 'string'}, 'source_period': {'type': 'string'}, 'wage_vs_billed': {'type': 'object', 'properties': {'formula': {'type': 'string'}, 'warning': {'type': 'string'}, 'wage_fields': {'type': 'array', 'items': {'type': 'string'}}, 'billed_fields': {'type': 'array', 'items': {'type': 'string'}}, 'full_estimate_tool': {'type': 'string'}, 'overhead_margin_markup': {'type': 'number'}, 'labor_burden_multiplier': {'type': 'number'}}, 'additionalProperties': True}, 'model_assumptions': {'type': 'string'}, 'rate_model_version': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['trade', 'location', 'description'], 'properties': {'trade': {'type': 'string'}, 'urgency': {'enum': ['emergency', 'urgent', 'routine', 'scheduled'], 'type': 'string', 'default': 'routine'}, 'location': {'type': 'object', 'required': ['state'], 'properties': {'zip': {'type': 'string', 'maxLength': 10}, 'city': {'type': 'string', 'maxLength': 255}, 'name': {'type': 'string', 'maxLength': 500}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'address': {'type': 'string', 'maxLength': 1000}}}, 'nte_cents': {'type': 'integer', 'minimum': 1}, 'description': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'callback_url': {'type': 'string', 'format': 'uri'}, 'reference_id': {'type': 'string', 'maxLength': 255}}}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['created', 'accepted', 'fulfilled', 'order', 'tracking'], 'properties': {'order': {'type': 'object', 'required': ['id', 'status', 'trade', 'location', 'urgency', 'created_at'], 'properties': {'id': {'type': 'string'}, 'trade': {'type': 'string'}, 'status': {'enum': ['pending_dispatch', 'accepted_pending_fulfilment'], 'type': 'string'}, 'urgency': {'enum': ['emergency', 'urgent', 'routine', 'scheduled'], 'type': 'string'}, 'location': {'type': 'object'}, 'created_at': {'type': 'string'}, 'quoted_cost_usd': {'type': ['string', 'null']}, 'quoted_cost_cents': {'type': ['integer', 'null']}, 'assigned_contractor_ref': {'type': ['string', 'null']}, 'estimated_response_minutes': {'type': ['number', 'null']}}, 'additionalProperties': True}, 'created': {'type': 'boolean', 'const': True}, 'accepted': {'type': 'boolean', 'const': True}, 'tracking': {'type': 'object', 'properties': {'auth': {'type': 'string'}, 'status_url': {'type': 'string'}}}, 'fulfilled': {'type': 'boolean'}, 'fulfilment': {'type': 'object', 'properties': {'detail': {'type': 'string'}, 'reason': {'type': 'string'}, 'assigned': {'type': 'boolean', 'const': False}, 'escalation_contact': {'type': 'string'}}, 'description': 'Present only when fulfilled=false.'}}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string'}}, 'description': 'Business/rate-limit/entitlement error passthrough.', 'additionalProperties': True}], 'description': 'A recorded work order — fulfilled (contractor matched, HTTP 201) or accepted_pending_fulfilment (no contractor yet, HTTP 202) — or a business/entitlement error passthrough.'}
Input schema
{'type': 'object', 'required': ['trade', 'location'], 'properties': {'trade': {'type': 'string', 'description': 'Trade code (plumbing, electrical, HVAC, etc.)'}, 'urgency': {'enum': ['emergency', 'urgent', 'routine', 'scheduled'], 'type': 'string', 'default': 'routine'}, 'location': {'type': 'object', 'required': ['state'], 'properties': {'zip': {'type': 'string', 'maxLength': 10}, 'city': {'type': 'string', 'maxLength': 255}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2}}}, 'nte_cents': {'type': 'integer', 'minimum': 1}, 'description': {'type': 'string', 'maxLength': 2000}}}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['available', 'quote', 'next_steps'], 'properties': {'quote': {'type': 'object', 'required': ['trade', 'location', 'urgency', 'estimated_eta', 'best_match', 'alternates_count', 'generated_at', 'valid_for_minutes'], 'properties': {'trade': {'type': 'string'}, 'urgency': {'enum': ['emergency', 'urgent', 'routine', 'scheduled'], 'type': 'string'}, 'location': {'type': 'object'}, 'best_match': {'type': 'object', 'properties': {'match_score': {'type': 'number'}, 'estimated_cost_usd': {'type': 'string'}, 'estimated_cost_cents': {'type': 'integer'}, 'estimated_response_minutes': {'type': 'number'}}}, 'generated_at': {'type': 'string'}, 'estimated_eta': {'type': 'string'}, 'alternates_count': {'type': 'integer'}, 'valid_for_minutes': {'type': 'integer'}}}, 'available': {'type': 'boolean', 'const': True}, 'next_steps': {'type': 'object', 'properties': {'docs': {'type': 'string'}, 'contact': {'type': 'string'}, 'dispatch': {'type': 'string'}}}}, 'description': 'A contractor was matched.'}, {'type': 'object', 'required': ['available', 'message', 'trade', 'location'], 'properties': {'trade': {'type': 'string'}, 'message': {'type': 'string'}, 'location': {'type': 'object'}, 'available': {'type': 'boolean', 'const': False}}, 'description': 'No contractor is currently available for this trade/location.'}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string'}}, 'description': 'Business/rate-limit/auth error passthrough.', 'additionalProperties': True}], 'description': 'A matched-contractor quote, a no-availability response, or a business/auth error passthrough from the downstream dispatch API.'}
Recent tool changes
Similar MCP servers
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
Duvo MCP
Provides governed retail and CPG operations for cases, queues, approvals, automations, process documentation, integrations, and a…
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…