MCP-Server

TaskMan of London

london.taskman/home-services
Business & Betrieb Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Helps customers identify, price, verify, pay for, and book London home services such as handyman, electrical, mounting, and smart-home work.

check_availability
Use when the user asks about dates, timing, or whether a service can likely be booked soon.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['service_type', 'postcode'], 'properties': {'postcode': {'type': 'string', 'maxLength': 12, 'minLength': 3}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}, 'preferred_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'time_preference': {'enum': ['morning', 'afternoon', 'evening', 'flexible'], 'type': 'string'}}, 'additionalProperties': False}
check_service_area
Use when the user provides a London postcode or asks whether TaskMan covers their area.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postcode'], 'properties': {'postcode': {'type': 'string', 'maxLength': 12, 'minLength': 3}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}}, 'additionalProperties': False}
create_booking_request
Use when the user is ready to submit details for a real TaskMan of London booking request.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['customer_name', 'phone', 'postcode', 'service_type', 'task_summary', 'consent_to_contact'], 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'phone': {'type': 'string', 'maxLength': 25, 'minLength': 7}, 'source': {'type': 'string', 'const': 'chatgpt_app', 'default': 'chatgpt_app'}, 'postcode': {'type': 'string', 'maxLength': 12, 'minLength': 3}, 'photos_url': {'type': 'string', 'format': 'uri'}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}, 'task_summary': {'type': 'string', 'maxLength': 500, 'minLength': 8}, 'customer_name': {'type': 'string', 'maxLength': 120, 'minLength': 2}, 'preferred_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'time_preference': {'enum': ['morning', 'afternoon', 'evening', 'flexible'], 'type': 'string'}, 'consent_to_contact': {'type': 'boolean'}}, 'additionalProperties': False}
create_customer_booking
Use after verification, detail collection, and confirmed paid payment session to create a booking scoped to the verified customer.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token', 'service_type', 'task_summary', 'payment_session_id'], 'properties': {'address_id': {'type': 'string', 'maxLength': 120, 'minLength': 2}, 'contact_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'photos_url': {'type': 'string', 'format': 'uri'}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}, 'task_summary': {'type': 'string', 'maxLength': 500, 'minLength': 8}, 'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}, 'preferred_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'time_preference': {'enum': ['morning', 'afternoon', 'evening', 'flexible'], 'type': 'string'}, 'consent_to_contact': {'type': 'boolean', 'default': True}, 'payment_session_id': {'type': 'string', 'maxLength': 200, 'minLength': 6}}, 'additionalProperties': False}
find_services
Use when the user needs help identifying which TaskMan of London service fits their job, especially for vague home-service requests in London.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'area': {'type': 'string', 'maxLength': 80, 'minLength': 2}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 2}, 'urgency': {'enum': ['flexible', 'specific_date', 'urgent'], 'type': 'string'}}, 'additionalProperties': False}
get_booking_payment_status
Use to check whether a booking payment session is pending, paid, failed, canceled, or expired before attempting booking creation.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token', 'payment_session_id'], 'properties': {'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}, 'payment_session_id': {'type': 'string', 'maxLength': 200, 'minLength': 6}}, 'additionalProperties': False}
get_booking_status
Use when the user already has a TaskMan booking request and wants an update.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_request_id'], 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'phone': {'type': 'string', 'maxLength': 25, 'minLength': 7}, 'booking_request_id': {'type': 'string', 'maxLength': 80, 'minLength': 4}}, 'additionalProperties': False}
get_customer_availability
Use after verification to check availability for a verified customer at a selected saved address.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token', 'service_type'], 'properties': {'address_id': {'type': 'string', 'maxLength': 120, 'minLength': 2}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}, 'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}, 'preferred_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'time_preference': {'enum': ['morning', 'afternoon', 'evening', 'flexible'], 'type': 'string'}}, 'additionalProperties': False}
get_customer_profile
Use after verification to load scoped customer profile details from CRM for booking.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token'], 'properties': {'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}}, 'additionalProperties': False}
get_quote_estimate
Use when the user asks about likely cost, ballpark pricing, or whether a task needs a custom quote.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['service_type', 'task_summary'], 'properties': {'brand': {'type': 'string', 'maxLength': 80}, 'postcode': {'type': 'string', 'maxLength': 12}, 'item_type': {'type': 'string', 'maxLength': 80}, 'wall_type': {'type': 'string', 'maxLength': 80}, 'item_count': {'type': 'integer', 'maximum': 25, 'exclusiveMinimum': 0}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}, 'task_summary': {'type': 'string', 'maxLength': 500, 'minLength': 8}, 'preferred_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'photos_provided': {'type': 'boolean'}}, 'additionalProperties': False}
list_customer_addresses
Use after verification to list saved addresses linked to the verified customer.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token'], 'properties': {'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}}, 'additionalProperties': False}
list_service_types
Use after verification to show supported service types before collecting booking details.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token'], 'properties': {'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}}, 'additionalProperties': False}
match_providers
Use when an agent needs a single deterministic provider-matching result for assignment. Returns an ordered_candidates array sorted best-to-worst, where the first can_assign=true candidate is the assignee.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['service_type', 'area_postcode', 'urgency'], 'properties': {'urgency': {'enum': ['flexible', 'specific_date', 'urgent'], 'type': 'string'}, 'location_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}, 'area_postcode': {'type': 'string', 'maxLength': 12, 'minLength': 2}, 'preferred_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}}, 'additionalProperties': False}
start_booking_payment
Use after collecting booking details to create a Stripe checkout payment session before final booking submission.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token', 'service_type', 'task_summary'], 'properties': {'address_id': {'type': 'string', 'maxLength': 120, 'minLength': 2}, 'contact_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'service_type': {'enum': ['furniture_assembly', 'wall_mounting', 'handyman', 'electrician', 'smart_home_installation'], 'type': 'string'}, 'task_summary': {'type': 'string', 'maxLength': 500, 'minLength': 8}, 'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}, 'preferred_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'deposit_amount_minor': {'type': 'integer', 'maximum': 500000, 'exclusiveMinimum': 0}}, 'additionalProperties': False}
start_customer_verification
Use when an existing customer wants to verify identity (OTP or magic link) before assistant-led booking.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['identifier'], 'properties': {'identifier': {'type': 'string', 'maxLength': 200, 'minLength': 5}, 'method_preference': {'enum': ['otp', 'magic_link', 'auto'], 'type': 'string', 'default': 'auto'}, 'channel_preference': {'enum': ['sms', 'email', 'auto'], 'type': 'string', 'default': 'auto'}}, 'additionalProperties': False}
start_trusted_phone_session
Use in trusted telephony flows when the caller number is already verified by the channel provider and you need a short-lived booking session without OTP.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['identifier'], 'properties': {'identifier': {'type': 'string', 'maxLength': 200, 'minLength': 5}}, 'additionalProperties': False}
tag_contact
Use to add CRM tags to the verified customer for booking workflow tracking.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token', 'tags'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'maxItems': 20, 'minItems': 1}, 'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}}, 'additionalProperties': False}
update_contact_note
Use to append an internal CRM note for the verified customer during or after booking.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['session_token', 'note'], 'properties': {'note': {'type': 'string', 'maxLength': 2000, 'minLength': 4}, 'session_token': {'type': 'string', 'maxLength': 300, 'minLength': 20}}, 'additionalProperties': False}
verify_customer_otp
Use after sending an OTP challenge, to verify the one-time passcode and open a short-lived booking session.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['challenge_id', 'otp_code'], 'properties': {'otp_code': {'type': 'string', 'pattern': '^\\d{4,8}$'}, 'challenge_id': {'type': 'string', 'maxLength': 120, 'minLength': 8}}, 'additionalProperties': False}
verify_magic_link_token
Use when the customer clicks a magic link and provides the token for verification.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token'], 'properties': {'token': {'type': 'string', 'maxLength': 4000, 'minLength': 24}}, 'additionalProperties': False}
Hinzugefügt
tag_contact
17. September 2026 12:54
Hinzugefügt
update_contact_note
17. September 2026 12:54
Hinzugefügt
create_customer_booking
17. September 2026 12:54
Hinzugefügt
get_booking_payment_status
17. September 2026 12:54
Hinzugefügt
start_booking_payment
17. September 2026 12:54
Hinzugefügt
get_customer_availability
17. September 2026 12:54
Hinzugefügt
list_service_types
17. September 2026 12:54
Hinzugefügt
list_customer_addresses
17. September 2026 12:54
Hinzugefügt
get_customer_profile
17. September 2026 12:54
Hinzugefügt
verify_magic_link_token
17. September 2026 12:54
Hinzugefügt
verify_customer_otp
17. September 2026 12:54
Hinzugefügt
start_customer_verification
17. September 2026 12:54
Hinzugefügt
start_trusted_phone_session
17. September 2026 12:54
Hinzugefügt
get_booking_status
17. September 2026 12:54
Hinzugefügt
create_booking_request
17. September 2026 12:54
Hinzugefügt
match_providers
17. September 2026 12:54
Hinzugefügt
check_availability
17. September 2026 12:54
Hinzugefügt
get_quote_estimate
17. September 2026 12:54
Hinzugefügt
check_service_area
17. September 2026 12:54
Hinzugefügt
find_services
17. September 2026 12:54