TaskMan of London
Book London furniture assembly, wall mounting, handyman, electrical, and smart home jobs.
사용해야 할까요
품질 및 안전성
발견 사항 (5)
- LOWfind_services에서
- LOWcheck_service_area에서
- LOWget_quote_estimate에서
- LOWverify_magic_link_token에서
- LOWupdate_contact_note에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"home-services": {
"url": "https://taskman.london/mcp"
}
}
}원격 엔드포인트
https://taskman.london/mcpstreamable-http할 수 있는 일
도구 목록
도구 (20)
🟢find_services(query, area, urgency)
Use when the user needs help identifying which TaskMan of London service fits their job, especially for vague home-service requests in London.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200
},
"area": {
"type": "string",
"minLength": 2,
"maxLength": 80
},
"urgency": {
"type": "string",
"enum": [
"flexible",
"specific_date",
"urgent"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢check_service_area(postcode, service_type)
Use when the user provides a London postcode or asks whether TaskMan covers their area.
입력 스키마
{
"type": "object",
"properties": {
"postcode": {
"type": "string",
"minLength": 3,
"maxLength": 12
},
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
}
},
"required": [
"postcode"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_quote_estimate(service_type, task_summary, item_count, item_type, brand, ...)
Use when the user asks about likely cost, ballpark pricing, or whether a task needs a custom quote.
입력 스키마
{
"type": "object",
"properties": {
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
},
"task_summary": {
"type": "string",
"minLength": 8,
"maxLength": 500
},
"item_count": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 25
},
"item_type": {
"type": "string",
"maxLength": 80
},
"brand": {
"type": "string",
"maxLength": 80
},
"wall_type": {
"type": "string",
"maxLength": 80
},
"photos_provided": {
"type": "boolean"
},
"postcode": {
"type": "string",
"maxLength": 12
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"service_type",
"task_summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢check_availability(service_type, postcode, preferred_date, time_preference)
Use when the user asks about dates, timing, or whether a service can likely be booked soon.
입력 스키마
{
"type": "object",
"properties": {
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
},
"postcode": {
"type": "string",
"minLength": 3,
"maxLength": 12
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"time_preference": {
"type": "string",
"enum": [
"morning",
"afternoon",
"evening",
"flexible"
]
}
},
"required": [
"service_type",
"postcode"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪match_providers(service_type, area_postcode, urgency, preferred_date, location_id)
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.
입력 스키마
{
"type": "object",
"properties": {
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
},
"area_postcode": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"urgency": {
"type": "string",
"enum": [
"flexible",
"specific_date",
"urgent"
]
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"location_id": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"service_type",
"area_postcode",
"urgency"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡create_booking_request(customer_name, phone, email, postcode, service_type, ...)
Use when the user is ready to submit details for a real TaskMan of London booking request.
입력 스키마
{
"type": "object",
"properties": {
"customer_name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"phone": {
"type": "string",
"minLength": 7,
"maxLength": 25
},
"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,}$"
},
"postcode": {
"type": "string",
"minLength": 3,
"maxLength": 12
},
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
},
"task_summary": {
"type": "string",
"minLength": 8,
"maxLength": 500
},
"idempotency_key": {
"type": "string",
"minLength": 8,
"maxLength": 200
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"time_preference": {
"type": "string",
"enum": [
"morning",
"afternoon",
"evening",
"flexible"
]
},
"photos_url": {
"type": "string",
"format": "uri"
},
"source": {
"default": "chatgpt_app",
"type": "string",
"const": "chatgpt_app"
},
"consent_to_contact": {
"type": "boolean"
}
},
"required": [
"customer_name",
"phone",
"postcode",
"service_type",
"task_summary",
"consent_to_contact"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_booking_status(booking_request_id, phone, email)
Use when the user already has a TaskMan booking request and wants an update.
입력 스키마
{
"type": "object",
"properties": {
"booking_request_id": {
"type": "string",
"minLength": 4,
"maxLength": 80
},
"phone": {
"type": "string",
"minLength": 7,
"maxLength": 25
},
"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,}$"
}
},
"required": [
"booking_request_id"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪start_trusted_phone_session(identifier)
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.
입력 스키마
{
"type": "object",
"properties": {
"identifier": {
"type": "string",
"minLength": 5,
"maxLength": 200
}
},
"required": [
"identifier"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪start_customer_verification(identifier, method_preference, channel_preference)
Use when an existing customer wants to verify identity (OTP or magic link) before assistant-led booking.
입력 스키마
{
"type": "object",
"properties": {
"identifier": {
"type": "string",
"minLength": 5,
"maxLength": 200
},
"method_preference": {
"default": "auto",
"type": "string",
"enum": [
"otp",
"magic_link",
"auto"
]
},
"channel_preference": {
"default": "auto",
"type": "string",
"enum": [
"sms",
"email",
"auto"
]
}
},
"required": [
"identifier"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪verify_customer_otp(challenge_id, otp_code)
Use after sending an OTP challenge, to verify the one-time passcode and open a short-lived booking session.
입력 스키마
{
"type": "object",
"properties": {
"challenge_id": {
"type": "string",
"minLength": 8,
"maxLength": 120
},
"otp_code": {
"type": "string",
"pattern": "^\\d{4,8}$"
}
},
"required": [
"challenge_id",
"otp_code"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪verify_magic_link_token(token)
Use when the customer clicks a magic link and provides the token for verification.
입력 스키마
{
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 24,
"maxLength": 4000
}
},
"required": [
"token"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_customer_profile(session_token)
Use after verification to load scoped customer profile details from CRM for booking.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
}
},
"required": [
"session_token"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_customer_addresses(session_token)
Use after verification to list saved addresses linked to the verified customer.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
}
},
"required": [
"session_token"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_service_types(session_token)
Use after verification to show supported service types before collecting booking details.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
}
},
"required": [
"session_token"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_customer_availability(session_token, service_type, address_id, preferred_date, time_preference)
Use after verification to check availability for a verified customer at a selected saved address.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
},
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
},
"address_id": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"time_preference": {
"type": "string",
"enum": [
"morning",
"afternoon",
"evening",
"flexible"
]
}
},
"required": [
"session_token",
"service_type"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡start_booking_payment(session_token, contact_id, service_type, task_summary, preferred_date, ...)
Use after collecting booking details to create a Stripe checkout payment session before final booking submission.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
},
"contact_id": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
},
"task_summary": {
"type": "string",
"minLength": 8,
"maxLength": 500
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"address_id": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"deposit_amount_minor": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500000
}
},
"required": [
"session_token",
"service_type",
"task_summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_booking_payment_status(session_token, payment_session_id)
Use to check whether a booking payment session is pending, paid, failed, canceled, or expired before attempting booking creation.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
},
"payment_session_id": {
"type": "string",
"minLength": 6,
"maxLength": 200
}
},
"required": [
"session_token",
"payment_session_id"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡create_customer_booking(session_token, contact_id, service_type, task_summary, payment_session_id, ...)
Use after verification, detail collection, and confirmed paid payment session to create a booking scoped to the verified customer.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
},
"contact_id": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"service_type": {
"type": "string",
"enum": [
"furniture_assembly",
"wall_mounting",
"handyman",
"electrician",
"smart_home_installation"
]
},
"task_summary": {
"type": "string",
"minLength": 8,
"maxLength": 500
},
"payment_session_id": {
"type": "string",
"minLength": 6,
"maxLength": 200
},
"idempotency_key": {
"type": "string",
"minLength": 8,
"maxLength": 200
},
"address_id": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"time_preference": {
"type": "string",
"enum": [
"morning",
"afternoon",
"evening",
"flexible"
]
},
"photos_url": {
"type": "string",
"format": "uri"
},
"consent_to_contact": {
"default": true,
"type": "boolean"
}
},
"required": [
"session_token",
"service_type",
"task_summary",
"payment_session_id"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡update_contact_note(session_token, note)
Use to append an internal CRM note for the verified customer during or after booking.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
},
"note": {
"type": "string",
"minLength": 4,
"maxLength": 2000
}
},
"required": [
"session_token",
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡tag_contact(session_token, tags)
Use to add CRM tags to the verified customer for booking workflow tracking.
입력 스키마
{
"type": "object",
"properties": {
"session_token": {
"type": "string",
"minLength": 20,
"maxLength": 300
},
"tags": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
}
},
"required": [
"session_token",
"tags"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}권장 프롬프트
find_servicesfind_servicesget_quote_estimateget_quote_estimatelist_customer_addresses커뮤니티
증거