# Tool catalog

Every tool the Ryde MCP server exposes, with the scope and entitlement each requires.

Generated from the operation registry, so a tool cannot appear here without a real operation behind it. "Confirmation" marks the tools that require a fresh quote the customer was shown, plus an idempotency key.

| Tool | Description | Scope | Ryde One | Status |
| --- | --- | --- | --- | --- |
| `get_membership_status` | Whether this customer holds an active Ryde One membership. Call it before offering to transact, so the agent can explain the requirement rather than hit a 403 mid-sentence. | `profile.read` | no | planned |
| `search_restaurants` | Find open restaurants, grocery stores and shops near a point. | `food.read` | no | planned |
| `get_restaurant_menu` | The public catalogue for one merchant. Cost, stock, barcodes and supplier ids are the merchant's own business and are never returned here. | `food.read` | no | planned |
| `quote_food_order` | Price a basket exactly as checkout would: items, fees, taxes, any member discount, and the total. Returns the quote_id place_food_order requires. | `food.read` | no | planned |
| `place_food_order` | Place the order the customer confirmed, from a quote_id they were shown. | `food.order` | yes | planned |
| `get_food_order` | Live state of one order, including courier progress. Deliberately NOT membership-gated: an order that exists stays trackable whatever happens to the membership. | `food.read` | no | planned |
| `list_food_orders` | The customer's own order history, newest first. | `food.read` | no | planned |
| `cancel_food_order` | Cancel an order, where its current state still allows it. Never membership-gated — getting OUT of a transaction must not require an entitlement. | `food.read` | no | planned |
| `search_ride_options` | The vehicle tiers that can be requested, with each tier's base fare. | `rides.read` | no | planned |
| `quote_ride` | Road distance, driving time and the final fare per vehicle tier, tax included. Returns the quote_id request_ride requires. | `rides.read` | no | planned |
| `request_ride` | Request the ride the customer confirmed, from a quote_id they were shown. | `rides.request` | yes | planned |
| `get_ride` | Live state of one ride: dispatch progress, the assigned driver and vehicle, and the pickup ETA. Never membership-gated — a ride in progress stays trackable. | `rides.read` | no | planned |
| `list_rides` | The customer's own ride history, newest first. | `rides.read` | no | planned |
| `cancel_ride` | Cancel a ride that has not started. Never membership-gated, for the same reason as cancelling an order. | `rides.read` | no | planned |
| `quote_delivery` | Price a courier run between two points. Runs the same pricing path the request does, so the quote is the charge. | `delivery.read` | no | planned |
| `request_delivery` | Dispatch a courier to move a package, from a quote_id the customer was shown. | `delivery.request` | yes | planned |
| `get_delivery` | Live state of one delivery, including courier progress and proof of delivery once collected. | `delivery.read` | no | planned |
| `search_service_providers` | Find providers who travel to the customer, with their live availability. Availability is derived per request and is never cached by the client. | `services.read` | no | planned |
| `get_provider_availability` | Open appointment slots on a date, for a job of a given duration. A long job is only offered a start whose consecutive slots are all free. | `services.read` | no | planned |
| `quote_service` | Price a service booking before committing to a slot. | `services.read` | no | planned |
| `book_service` | Book a provider, optionally into a specific slot. Slot contention is settled by the platform: a losing booking is refused, never double-booked. | `services.book` | yes | planned |
| `get_service_booking` | Live state of one booking, through arrival, start and completion. | `services.read` | no | planned |
| `list_task_types` | The task types this market can actually execute, with the evidence each one collects. Only types Ryde can staff are listed. | `tasks.read` | no | planned |
| `quote_task` | Price a task and confirm a qualified provider could be found for it before committing. | `tasks.read` | no | planned |
| `create_task` | Dispatch real-world work with structured requirements and evidence rules. | `tasks.create` | yes | planned |
| `get_task` | Task state, the assigned provider, and the evidence collected so far. | `tasks.read` | no | planned |
| `get_task_evidence` | The evidence collected against a task: photos with their content hashes, capture GPS and device timestamps, and any checklist answers. | `tasks.read` | no | planned |
| `cancel_task` | Cancel a task that has not started. | `tasks.read` | no | planned |
