Book London furniture assembly, wall mounting, handyman, electrical, and smart home jobs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use when the user asks about dates, timing, or whether a service can likely be booked soon.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Use when the user asks about dates, timing, or whether a service can likely be booked soon.
| Argument | Type | Description |
|---|---|---|
| postcode* | string | |
| service_type* | string | |
| preferred_date | string | |
| time_preference | string |
{
"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
}Use when the user provides a London postcode or asks whether TaskMan covers their area.
| Argument | Type | Description |
|---|---|---|
| postcode* | string | |
| service_type | string |
{
"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
}Use when the user is ready to submit details for a real TaskMan of London booking request.
| Argument | Type | Description |
|---|---|---|
| string | ||
| phone* | string | |
| source | string | |
| postcode* | string | |
| photos_url | string | |
| service_type* | string | |
| task_summary* | string | |
| customer_name* | string | |
| preferred_date | string | |
| idempotency_key | string | |
| time_preference | string |
Use after verification, detail collection, and confirmed paid payment session to create a booking scoped to the verified customer.
| Argument | Type | Description |
|---|---|---|
| address_id | string | |
| contact_id | string | |
| photos_url | string | |
| service_type* | string | |
| task_summary* | string | |
| session_token* | string | |
| preferred_date | string | |
| idempotency_key | string | |
| time_preference | string | |
| consent_to_contact | boolean | |
| payment_session_id* |
Use when the user needs help identifying which TaskMan of London service fits their job, especially for vague home-service requests in London.
| Argument | Type | Description |
|---|---|---|
| area | string | |
| query | string | |
| urgency | string |
{
"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
}Use to check whether a booking payment session is pending, paid, failed, canceled, or expired before attempting booking creation.
| Argument | Type | Description |
|---|---|---|
| session_token* | string | |
| payment_session_id* | string |
{
"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
}Use when the user already has a TaskMan booking request and wants an update.
| Argument | Type | Description |
|---|---|---|
| string | ||
| phone | string | |
| booking_request_id* | string |
{
"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
}Use after verification to check availability for a verified customer at a selected saved address.
| Argument | Type | Description |
|---|---|---|
| address_id | string | |
| service_type* | string | |
| session_token* | string | |
| preferred_date | string | |
| time_preference | string |
{
"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
}Use after verification to load scoped customer profile details from CRM for booking.
| Argument | Type | Description |
|---|---|---|
| session_token* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_token"
],
"properties": {
"session_token": {
"type": "string",
"maxLength": 300,
"minLength": 20
}
},
"additionalProperties": false
}Use when the user asks about likely cost, ballpark pricing, or whether a task needs a custom quote.
| Argument | Type | Description |
|---|---|---|
| brand | string | |
| postcode | string | |
| item_type | string | |
| wall_type | string | |
| item_count | integer | |
| service_type* | string | |
| task_summary* | string | |
| preferred_date | string | |
| photos_provided | boolean |
{
"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
}Use after verification to list saved addresses linked to the verified customer.
| Argument | Type | Description |
|---|---|---|
| session_token* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_token"
],
"properties": {
"session_token": {
"type": "string",
"maxLength": 300,
"minLength": 20
}
},
"additionalProperties": false
}Use after verification to show supported service types before collecting booking details.
| Argument | Type | Description |
|---|---|---|
| session_token* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"session_token"
],
"properties": {
"session_token": {
"type": "string",
"maxLength": 300,
"minLength": 20
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| urgency* | string | |
| location_id | string | |
| service_type* | string | |
| area_postcode* | string | |
| preferred_date | string |
{
"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
}Use after collecting booking details to create a Stripe checkout payment session before final booking submission.
| Argument | Type | Description |
|---|---|---|
| address_id | string | |
| contact_id | string | |
| service_type* | string | |
| task_summary* | string | |
| session_token* | string | |
| preferred_date | string | |
| deposit_amount_minor | integer |
{
"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
}Use when an existing customer wants to verify identity (OTP or magic link) before assistant-led booking.
| Argument | Type | Description |
|---|---|---|
| identifier* | string | |
| method_preference | string | |
| channel_preference | string |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| identifier* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"identifier"
],
"properties": {
"identifier": {
"type": "string",
"maxLength": 200,
"minLength": 5
}
},
"additionalProperties": false
}Use to add CRM tags to the verified customer for booking workflow tracking.
| Argument | Type | Description |
|---|---|---|
| tags* | array | |
| session_token* | string |
{
"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
}Use to append an internal CRM note for the verified customer during or after booking.
| Argument | Type | Description |
|---|---|---|
| note* | string | |
| session_token* | string |
{
"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
}Use after sending an OTP challenge, to verify the one-time passcode and open a short-lived booking session.
| Argument | Type | Description |
|---|---|---|
| otp_code* | string | |
| challenge_id* | string |
{
"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
}Use when the customer clicks a magic link and provides the token for verification.
| Argument | Type | Description |
|---|---|---|
| token* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"maxLength": 4000,
"minLength": 24
}
},
"additionalProperties": false
}| consent_to_contact* | boolean |
{
"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
}| string |
{
"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
}