What the assistant can do

Twenty-six tools. Twenty answer a question; six change something. They were chosen because operators ask for them, not by turning every function in the product into a tool — a model does better against a short, intent-shaped list than a long mechanical one.

Not connected yet?

Start at Connect an assistant. Ten minutes, once.

Fleet

AskTool
How big is the fleet, and how busy is it?fleet_overview
What can I rent out next weekend?search_vehicles
What needs servicing soon?vehicles_due_for_service

Give search_vehicles a date range and it says which cars are actually free for it. Without dates there is no availability answer, because “available” with no dates means nothing.

Bookings

AskTool
What's happening today?todays_operations
How many rentals are running?booking_overview
Tell me everything about this bookingget_booking
Who's collecting a car this week?upcoming_pickups
What's coming back this week?ending_rentals
How did July compare with June?bookings_in_period
Has this customer actually paid?booking_payments

Customers

AskTool
Find this customersearch_customers
What have they rented from us before?customer_history

Customers reach the assistant as a name and a set of figures. Phone numbers, email addresses, Emirates ID, passport and licence numbers are removed before anything leaves the server — see below.

Money

AskTool
How are we doing?finance_overview
Who owes us money, and how late?who_owes_us
How much is out in invoices?invoice_overview
Show me the overdue invoiceslist_invoices
Do the books have anything unresolved?money_health

money_health reports the nightly integrity checks — cash recorded against a rental but not its invoice, a month billed twice, a deposit the books claim but cannot evidence. Zero means they found nothing. Null means they have not run for this workspace yet, which is not the same thing.

Catalogue

AskTool
What extras do we offer, at what price?list_addons
What can we charge for on a return?list_charge_catalog
What's our VAT rate and payment term?get_invoice_settings

What it can change

Only with a read-write key, and only reference data — the fleet and the price list. Say it in your own words; these are the tools behind it.

SayTool
"Add the new Cayenne, plate M/12345, 1 800 a day"add_vehicle
"Put the G63's monthly rate up to 22 000"update_vehicle
"The Urus is going in for service"set_vehicle_status
"Add a child seat at 50 a day"upsert_addon
"We charge 150 for interior cleaning now"upsert_charge_item
"Change our payment term to 14 days"update_invoice_settings

Amounts are in fils

AED × 100, everywhere except upsert_charge_item, whose suggestedAmountAed is whole dirhams — as its name says. A daily rate of AED 450 is 45000. Sending 450 would price the car at four and a half dirhams a day.

Moving a vehicle between states goes through the same rules the app uses and is written into its history. A car out on a live rental cannot be marked available, and there is no override argument to make that refusal go away — that is what it is for.

Where it stops, and why

It cannot issue an invoice, take a payment, or message a customer

Not with any key. A UAE tax invoice number is burned the moment it is allocated and the sequence has to stay gapless; a card charge and a WhatsApp message reach the outside world and cannot be recalled. Ask the assistant to work out what should be billed — then press the button yourself.

It cannot read identity documents

Emirates ID, passport and licence numbers are encrypted and are not reachable through any key. Contact details and identity fields are removed at the server boundary by naming the fields that may pass, rather than the ones that may not — so a column added to the database tomorrow is withheld by default, and a guard fails the build until somebody decides otherwise.

It cannot see another workspace

A key belongs to exactly one. Isolation is enforced by the database itself, on every table, so a query for another workspace’s data returns nothing rather than relying on application code to remember to filter.

Getting good answers

Install the skill next to the connection: npx skills add https://carfleet.ae. The tools say what can be called; the skill says what the answers mean — that money is in fils, that a booking’s day count is not the length of the rental, that a receipt header is a container and must never be added to its own rows. A tool description cannot carry those, and they are the difference between a right answer and a confident wrong one.

The same page in plain text, for an agent to read directly: /docs/mcp.md.