Nadveo — book air-conditioning service
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Find air-conditioning service companies and book a visit: prices, free times, error-code hints.
| Author | com.nadveo |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 355 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Nadveo — book air-conditioning service": {
"url": "https://nadveo.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (9)
company_inforead-onlyAt the company chosen from find_companies (pass its `company`). The company: name, country and city, currency, languages, contacts, clients' rating, the districts it serves (main: fast arrival; secondary: next day or a call-out fee), today's date in its time zone and its booking page.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.lang— string — Language for names and labels: ru, es, en, ar, pt, fr, de, it, tr, id, vi, th. Default en.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_servicesread-onlyAt the company chosen from find_companies (pass its `company`). Every service with its starting price, how long it takes, whether it can be booked, and the questions the client answers (they set the price and the time). Questions may depend on an earlier answer (shown_if). "unknown_allowed" means "?" is a valid answer.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.lang— string — Language for names and labels: ru, es, en, ar, pt, fr, de, it, tr, id, vi, th. Default en.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
get_quoteread-onlyAt the company chosen from find_companies (pass its `company`). Checks the client's answers and gives the price and the duration. If an answer is missing or wrong, "problem" says which question.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.service(required) — string — The service key from list_services.lang— string — Language for names and labels: ru, es, en, ar, pt, fr, de, it, tr, id, vi, th. Default en.units— integer — How many (air conditioners, sockets, taps… — as the service asks) — only for services that count them. Default 1.answers— object — Answers to the service's questions: { question_id: option_id | [option_ids] | number | text }. Use the ids from list_services.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
check_availabilityread-onlyAt the company chosen from find_companies (pass its `company`). Free start times for the service (with these answers and units — they set how long the work takes) over the next days, from tomorrow. Each time has a slot_id for book_appointment. Times are the company's local time.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.service(required) — string — The service key from list_services.days— integer — How many days ahead to look. Default 7.units— integer — How many (air conditioners, sockets, taps… — as the service asks) — only for services that count them. Default 1.answers— object — Answers to the service's questions: { question_id: option_id | [option_ids] | number | text }. Use the ids from list_services.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
diagnoseread-onlyAt the company chosen from find_companies (pass its `company`). A preliminary hint by the air conditioner's brand and the error code on its display: the probable cause (a breakdown type) and the company's starting price for it. It is not a diagnosis. Before giving it, tell the client it is an automatic hint, that the technician confirms the cause and the final price on site, and get their agreement — then pass client_accepted_disclaimer: true (also to book_appointment with the diagnosis). Brands: daikin, mitsubishi_electric, lg, samsung, gree, midea, panasonic, carrier, haier, tcl, other.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.brand(required) — string — Brand key (see the description), or "other".code(required) — string — The code on the display, e.g. U4, E1, CH05.client_accepted_disclaimer(required) — boolean — The client agreed that this is an automatic hint, not a diagnosis.lang— string — Language for names and labels: ru, es, en, ar, pt, fr, de, it, tr, id, vi, th. Default en.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
book_appointmentAt the company chosen from find_companies (pass its `company`). Books the visit at a free time from check_availability. Only after the client confirmed the service, the time, the address and the price. The company messages the client (WhatsApp, or e-mail when given). Returns the request number and a token for get_request_status / cancel_request. Repeating the same call (same idempotency_key or the same data) returns the same booking — its token again only with the same idempotency_key, so send one to be able to retry.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.service(required) — string — The service key from list_services.slot_id(required) — integer — A slot_id from check_availability.client_name(required) — stringclient_phone(required) — string — With the country code, e.g. +971 50 123 4567.address(required) — string — Where the work is done: street, building, apartment, city.lang— string — Language for names and labels: ru, es, en, ar, pt, fr, de, it, tr, id, vi, th. Default en.units— integer — How many (air conditioners, sockets, taps… — as the service asks) — only for services that count them. Default 1.answers— object — Answers to the service's questions: { question_id: option_id | [option_ids] | number | text }. Use the ids from list_services.district— string — When company_info lists service_zones: the client's district as its zone id (e.g. "dubai:jlt"), or "other" when it is not in the list.diagnosis— object — Optional: { brand, code } from diagnose — the technician sees it.client_email— string — Optional: messages go to this e-mail instead of WhatsApp.idempotency_key— string — Optional, 8–100 of A-Z a-z 0-9 _ -: the same key never books twice.client_accepted_disclaimer— boolean — Needed with diagnosis: the client agreed it is a hint, not a diagnosis.
Hints: read-only no · destructive no · idempotent yes · open-world yes
get_request_statusread-onlyAt the company chosen from find_companies (pass its `company`). Where a booking stands: status, time, technician (once assigned), price. Needs the token from book_appointment.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.token(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
cancel_requestdestructiveAt the company chosen from find_companies (pass its `company`). Cancels the booking (only when the client asked to). Needs the token from book_appointment.
Parameters:
company(required) — string — The company: the `company` of a find_companies result.token(required) — string
Hints: read-only no · destructive yes · idempotent yes · open-world yes
find_companiesread-onlyService companies in the Nadveo catalog, filtered by country (ISO code, e.g. AE), city, district, service and name, best first. Each has its districts (main: fast arrival; secondary: next day or a call-out fee), "from" prices, the next free day and clients' rating.
Parameters:
city— string — The city, e.g. Dubai, Abu Dhabi, Sharjah (part of the name is enough).query— string — Part of the company name.trade— string — hvac = air conditioning and heating; repair = electrical, plumbing and other repairs. Matches the services a company offers, not only its main trade.country— string — ISO 3166 code, e.g. AE, MX, ID, TH, VN.service— string — Older form of category for air conditioning: maintenance = hvac.maintenance, repair = hvac.repair, installation = hvac.installation.category— string — The kind of service, e.g. hvac.maintenance, hvac.repair, repair.electrical, repair.plumbing.district— string — The client's district in that city, e.g. "JLT", "Dubai Marina", "Al Nahda" (part of the name is enough).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.