usecases/car-rental/mcp/SKILL.md
# Car Rental API Skill Use this skill to operate the demo car-rental concierge over its regular HTTP API. **Base URL:** `https://mcp-car-rent.demo.vidos.id` If the user provides another car-rental API URL, use that instead. This API is session-based. Preserve the exact `bookingSessionId` returned by the server and reuse it in later calls. Do not probe the `/mcp` endpoint for any reason, for the purposes of this skill only the regular HTTP API endpoints under `/api/...` should be used. ## Ad
npx skillsauth add vidos-id/usecase-demos usecases/car-rental/mcpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to operate the demo car-rental concierge over its regular HTTP API.
Base URL: https://mcp-car-rent.demo.vidos.id
If the user provides another car-rental API URL, use that instead.
This API is session-based. Preserve the exact bookingSessionId returned by the server and reuse it in later calls.
Do not probe the /mcp endpoint for any reason, for the purposes of this skill only the regular HTTP API endpoints under /api/... should be used.
This skill is meant to be read and followed ad hoc in the current session.
If the user provides this file by URL or raw skill.md content, read it and follow its instructions for the current task.
Do not claim or imply that the skill is installed locally.
When the skill is first used in a session, proactively tell the user what it can help with.
Suggested intro:
Always keep the conversation tightly scoped to this sequence:
POST /api/cars/searchPOST /api/bookings/selectPOST /api/bookings/startGET /api/bookings/:bookingSessionIdDo not ask for or collect:
The trust step happens through wallet verification, not chat.
POST /api/cars/search
Example body:
{
"destination": "Tenerife",
"pickupDate": "2026-04-10",
"dropoffDate": "2026-04-15",
"passengerCount": 2,
"needsLargeLuggageSpace": true,
"prefersAutomatic": true
}
When presenting results:
Preferred presentation per car:
vehicleId only when needed for the next actionRetain the exact bookingSessionId.
POST /api/bookings/select
Example body:
{
"bookingSessionId": "BOOKING_SESSION_ID",
"vehicleId": "vw-tiguan"
}
After selection succeeds, move directly to start booking.
POST /api/bookings/start
Example body:
{
"bookingSessionId": "BOOKING_SESSION_ID"
}
Read authorizeUrl from the response.
When booking returns an authorizeUrl:
authorizeUrl with the Node package qrcode.MEDIA:<absolute-path> line on its own line.authorizeUrl.GET /api/bookings/BOOKING_SESSION_ID every 3 seconds for up to 180 seconds.approved, rejected, expired, or error.GET /api/bookings/BOOKING_SESSION_ID
Use this to monitor wallet verification and retrieve final booking confirmation details.
After generating the QR PNG file locally, send it using OpenClaw outbound media syntax.
Do not send the QR only as base64, markdown image syntax, or a code block.
Instead, reply with a normal text line plus a separate line in this exact form:
Scan this QR code with your digital identity wallet.
MEDIA:/absolute/path/to/car-rental-qr.png
Rules:
MEDIA: must be uppercaseMEDIA: line in backticks or markdownauthorizeUrlMEDIA: lineRecommended Node example for QR generation:
import QRCode from "qrcode";
await QRCode.toFile("/absolute/path/to/car-rental-qr.png", authorizeUrl);
approved: Tell the user driving-licence verification succeeded and confirm booking reference, locker ID, PIN, and pickup instructions.rejected: Tell the user verification failed and the rental cannot proceed.expired: Tell the user the verification session expired and booking should be restarted.error: Tell the user verification hit an error and booking should be restarted.approved.bookingSessionId.tools
# Wine Store API Skill Use this skill to shop from the demo wine store over plain HTTP. **Base URL:** `https://mcp-wine-agent.demo.vidos.id` This API is session-based. Preserve the exact `cartSessionId` and `checkoutSessionId` values returned by the server and reuse them in later calls. ## Ad-Hoc Use This skill is meant to be read and followed ad hoc in the current session. If the user provides this file by URL or raw `skill.md` content, read it and follow its instructions for the current
data-ai
Browse events and complete delegated ticket bookings using wallet-based credential receive and presentation flows. Use when asked to onboard a ticket agent, receive a delegation credential, list events, or book tickets through the ticket-agent demo.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------