Find, get quotes from and book local service businesses on their own Square or Google calendar.
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.
Book a time returned by check_availability. Only after the customer has said yes to this exact business, service and time; set customer_confirmed=true to say so. Returns confirmed, pending (the business will confirm) or failed, with a reference.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Book a time returned by check_availability. Only after the customer has said yes to this exact business, service and time; set customer_confirmed=true to say so. Returns confirmed, pending (the business will confirm) or failed, with a reference.
| Argument | Type | Description |
|---|---|---|
| notes | string | |
| start* | string | |
| agent_name | string | |
| service_id* | string | |
| business_id* | string | |
| customer_name* | string | |
| customer_email | string | |
| customer_phone | string | |
| customer_confirmed | boolean |
{
"type": "object",
"title": "book_appointmentArguments",
"required": [
"business_id",
"service_id",
"start",
"customer_name"
],
"properties": {
"notes": {
"type": "string",
"title": "Notes",
"default": ""
},
"start": {
"type": "string",
"title": "Start"
},
"agent_name": {
"type": "string",
"title": "Agent Name",
"default": "unknown"
},
"service_id": {
"type": "string",
"title": "Service Id"
},
"business_id": {
"type": "string",
"title": "Business Id"
},
"customer_name": {
"type": "string",
"title": "Customer Name"
},
"customer_email": {
"type": "string",
"title": "Customer Email",
"default": ""
},
"customer_phone": {
"type": "string",
"title": "Customer Phone",
"default": ""
},
"customer_confirmed": {
"type": "boolean",
"title": "Customer Confirmed",
"default": false
}
}
}Cancel a booking made earlier. customer_contact is the email or phone used for the booking. Only after the customer has clearly said they want to cancel; set customer_confirmed=true to say so. To reschedule: check_availability, confirm the new time with the customer, book_appointment, then cancel the old one.
| Argument | Type | Description |
|---|---|---|
| reference* | string | |
| business_id* | string | |
| customer_contact* | string | |
| customer_confirmed | boolean |
{
"type": "object",
"title": "cancel_bookingArguments",
"required": [
"business_id",
"reference",
"customer_contact"
],
"properties": {
"reference": {
"type": "string",
"title": "Reference"
},
"business_id": {
"type": "string",
"title": "Business Id"
},
"customer_contact": {
"type": "string",
"title": "Customer Contact"
},
"customer_confirmed": {
"type": "boolean",
"title": "Customer Confirmed",
"default": false
}
}
}Open times for a service. start and end are ISO 8601 with UTC offset, at most 14 days apart, e.g. start="2026-10-01T00:00:00-04:00", end="2026-10-03T00:00:00-04:00". Times are offers, not holds.
| Argument | Type | Description |
|---|---|---|
| end* | string | |
| start* | string | |
| service_id* | string | |
| business_id* | string |
{
"type": "object",
"title": "check_availabilityArguments",
"required": [
"business_id",
"service_id",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"title": "End"
},
"start": {
"type": "string",
"title": "Start"
},
"service_id": {
"type": "string",
"title": "Service Id"
},
"business_id": {
"type": "string",
"title": "Business Id"
}
}
}Has the business confirmed, declined or replied? reference is the one returned by request_quote or book_appointment; customer_contact is the customer's email or phone.
| Argument | Type | Description |
|---|---|---|
| reference* | string | |
| business_id* | string | |
| customer_contact* | string |
{
"type": "object",
"title": "check_request_statusArguments",
"required": [
"business_id",
"reference",
"customer_contact"
],
"properties": {
"reference": {
"type": "string",
"title": "Reference"
},
"business_id": {
"type": "string",
"title": "Business Id"
},
"customer_contact": {
"type": "string",
"title": "Customer Contact"
}
}
}Search the directory of bookable service businesses. All filters optional. query: words to match (e.g. "plumber"); category: e.g. "plumbing"; locality: e.g. "Petawawa".
| Argument | Type | Description |
|---|---|---|
| query | string | |
| category | string | |
| locality | string |
{
"type": "object",
"title": "find_businessesArguments",
"properties": {
"query": {
"type": "string",
"title": "Query",
"default": ""
},
"category": {
"type": "string",
"title": "Category",
"default": ""
},
"locality": {
"type": "string",
"title": "Locality",
"default": ""
}
}
}Read a business's booking page: services with ids, prices, hours rules and how to book. Read this first.
| Argument | Type | Description |
|---|---|---|
| business_id* | string |
{
"type": "object",
"title": "get_businessArguments",
"required": [
"business_id"
],
"properties": {
"business_id": {
"type": "string",
"title": "Business Id"
}
}
}List a business's services (id, name, duration, price basis, bookable or quote only).
| Argument | Type | Description |
|---|---|---|
| business_id* | string |
{
"type": "object",
"title": "list_servicesArguments",
"required": [
"business_id"
],
"properties": {
"business_id": {
"type": "string",
"title": "Business Id"
}
}
}Send a quote request to the business. Only after the customer has confirmed the details; set customer_confirmed=true to say so. Needs an email or phone so the business can reply.
| Argument | Type | Description |
|---|---|---|
| agent_name | string | |
| service_id | string | |
| business_id* | string | |
| description* | string | |
| customer_name* | string | |
| customer_email | string | |
| customer_phone | string | |
| address_or_area | string | |
| preferred_times | any | |
| customer_confirmed | boolean |
{
"type": "object",
"title": "request_quoteArguments",
"required": [
"business_id",
"description",
"customer_name"
],
"properties": {
"agent_name": {
"type": "string",
"title": "Agent Name",
"default": "unknown"
},
"service_id": {
"type": "string",
"title": "Service Id",
"default": ""
},
"business_id": {
"type": "string",
"title": "Business Id"
},
"description": {
"type": "string",
"title": "Description"
},
"customer_name": {
"type": "string",
"title": "Customer Name"
},
"customer_email": {
"type": "string",
"title": "Customer Email",
"default": ""
},
"customer_phone": {
"type": "string",
"title": "Customer Phone",
"default": ""
},
"address_or_area": {
"type": "string",
"title": "Address Or Area",
"default": ""
},
"preferred_times": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Preferred Times",
"default": null
},
"customer_confirmed": {
"type": "boolean",
"title": "Customer Confirmed",
"default": false
}
}
}