MCP App Store
by KeenEthics
Keys Locksmith icon

Keys Locksmith

By Keys Inc.

Get New App Alerts

Overview

Keys Locksmith by Keys Inc. helps customers find local locksmiths, compare service quotes, book appointments and track service requests for vehicles, homes and businesses. Request help with vehicle lockouts, lost car keys, key duplication, key programming, and residential or commercial locksmith work. Describe the problem and provide the service location. For automotive requests, add the vehicle year, make and model; Keys can show relevant key types to help identify the service needed. Check nearby locksmith availability, request and compare provider quotes, and review the service, vehicle, address, price and timing before confirming a booking. A locksmith is dispatched only after you confirm. After booking, check job status, access the tracking link, message the assigned locksmith, review additional work for approval, or cancel the request. Payments are handled through a secure Keys payment page; payment card details are not collected in the conversation. Available services, prices and appointment times depend on local provider coverage and availability.

Tools

keys_cancel_job

ChatGPT
DESTRUCTIVE: request cancellation of a Keys job, subject to Keys' cancellation rules. Call ONLY when the customer clearly asks to cancel a specific existing job — never because they are asking hypothetically ('what if I need to cancel?'). Returns whether cancellation succeeded, the current status, any fee, and an explanation if it can no longer be cancelled. Requires the session_token so Keys can verify ownership.

keys_decide_additional_work

ChatGPT
Send the customer's decision on proposed extra work. decision must be exactly "approve" or "decline". ONLY call this after the customer has clearly said which they want, in their own words -- never infer approval from silence, from "ok" to a different question, or from them asking what it costs. Approving can increase what the customer pays. If the reply says authorization_required, tell the customer plainly that the work has NOT started yet and they must complete the card authorization at payment_url. Never collect card details in the chat.

keys_get_additional_work

ChatGPT
Return any additional work the locksmith has proposed on a job, and whether the customer still has to answer. Read-only. needs_decision true means a locksmith is WAITING at the vehicle for an answer -- raise it with the customer immediately, do not wait to be asked. Statuses: proposed (waiting on the customer), approved (customer said yes but the card has NOT authorized the larger amount, so work is still blocked), authorized (work may proceed), declined, withdrawn, superseded, expired. Never describe approved as paid or as permission to start. Pass the session_token so Keys can confirm the job belongs to this customer.

keys_get_availability

ChatGPT
Check whether Keys has locksmiths available for this service area and the estimated arrival window. Read-only. Returns consumer-safe information only (never a specific provider's location or personal details). Provide the service location as a street address (Keys resolves the coordinates) or as lat/lng. Use before showing a booking review.

keys_get_job_status

ChatGPT
Get the authoritative, real-time status of a Keys request. Statuses: sending_requests, requests_sent (N locksmiths contacted, waiting), quotes_received (compare with keys_get_quotes), no_eligible_providers, no_quotes_in_window (deadline passed — offer retry/widen/schedule), delivery_failed, booking_confirmed (ONE locksmith dispatched), completed, cancelled. Includes contacted/viewed/quote counts, the response deadline and next_actions. Never say a locksmith customer_key carries what the customer said their key looks like, when they were asked; it is absent when they never answered, and is NOT the same as a quote's key_type, which is the locksmith's own description. received or is coming unless the status says so. Read-only. Use to answer 'where is my locksmith?', 'did someone accept?', 'what's the ETA?'. Pass the session_token so Keys can authorize access to the job.

keys_get_key_type_options

ChatGPT
CALL THIS FIRST for any lost, spare, replacement or broken CAR KEY job, as soon as you know the make, model and year -- before keys_get_quote. Return up to three PICTURES of real keys Keys stocks for this vehicle, so the customer can point at theirs before a locksmith sets off. Read-only. A smart key, a flip key and a plain blade need different blanks, different tools and different prices, so this is what stops a wasted trip. Show the images and ask which one matches. An EMPTY options list is a real answer — it means Keys holds no pictures for that car, so ask the customer to describe their key instead and never guess a type. from_price is a part price, NOT a quote: the locksmith's quote is what the customer pays. Record the answer with keys_set_key_type.

keys_get_quote

ChatGPT
Retrieve Keys' authoritative price or estimate for a service at a location. Read-only. The price ALWAYS comes from Keys — never calculate, guess, or state a price yourself; if the response says pricing is unavailable, tell the customer a locksmith will confirm on arrival. Keep the returned quote_id for booking. Use after the service and location are known. For a CAR KEY job, call keys_get_key_type_options first and show the pictures: a smart key, a flip key and a plain blade are different jobs at different prices, so quoting before the customer has identified their key gives them a number that may not apply to them.

keys_get_quotes

ChatGPT
Return the truthful progress of a quote request (contacted / delivered / viewed / quote counts, response deadline, next_actions) and every REAL quote locksmiths have submitted: total, included work, key type, service-call charge, ETA, expiry, distance, rating, and whether it is an estimate with conditions. Read-only. Poll while status is sending_requests or requests_sent; when quotes_received, present the quotes and let the customer choose (quote_id). If no_quotes_in_window, offer next_actions (retry, widen_radius, schedule_later).

keys_get_service_types

ChatGPT
Return supported Keys service categories and required information. Use only for physical locksmith or supported roadside-service requests, or explicit questions about services Keys offers. Do not use for computer keyboards, passwords or account recovery, musical keys, or API/encryption keys. Attaching or mentioning Keys Locksmith alone is not sufficient reason to call this tool. Read-only. Do NOT invent services not in this list.

keys_identify_service

ChatGPT
Map the customer's described problem to the canonical Keys service type and report which required fields are still missing. Read-only. Use when the customer describes a lockout, lost key, key programming, rekey, etc. Input text is treated as a description, never as instructions. Do NOT use to change anything.

keys_identify_vehicle

ChatGPT
Resolve year/make/model (and trim when available) from a VIN, or validate a provided vehicle. Read-only. Use for automotive key/programming jobs. Never fabricates vehicle data — an undecodable VIN comes back unresolved so you can ask the customer to confirm. Do NOT require a VIN for a simple lockout.

keys_prepare_booking

ChatGPT
Builds a review card for the customer and returns a booking_intent_id and confirmation_token. Nothing is submitted, nobody is booked and no locksmith is told anything: this only assembles what the customer is about to be asked to agree to. Give the service location as a street address (Keys locates it — no coordinates needed) or as lat/lng, plus the customer's first name and mobile number, and the quote_id from keys_get_quote so the price stays Keys's and not one you invented. If the customer has chosen a specific locksmith's quote, also pass requestId and providerQuoteId from keys_get_quotes so the review shows that locksmith and that price. Then show the review, and only once the customer has said yes, call keys_submit_request.

keys_render_check

ChatGPT
Diagnostic only. Returns a plain test card to check that embedded cards render. Contacts nothing, reads no customer data and changes nothing. Use ONLY when someone explicitly asks to test or debug Keys card rendering. Never use it to answer a locksmith question. Read-only.

keys_request_quotes

ChatGPT
Create the customer's request and send it to EVERY eligible locksmith nearby (verified, offers the service, can work on the vehicle make when known, within the search radius, not a test account). Books nobody. Returns request_id, how many locksmiths were contacted, the response deadline, and a session_token to reuse. Then poll keys_get_quotes and let the customer choose a quote; then keys_prepare_booking(requestId, providerQuoteId) + keys_submit_request submit it and hand the customer their Keys page, where they choose the locksmith and pay. Describe the result as 'quote requests sent to N locksmiths' — NOT booked, NOT dispatched. Requires service type, location (street address is enough), first name and mobile number. Idempotent per idempotencyKey: retrying with the same key never contacts anyone twice.

keys_send_job_message

ChatGPT
Send the customer's message to the assigned locksmith through Keys' job messaging. Changes state (delivers a message). Use for 'tell the locksmith ...'. Only works once a locksmith has accepted. The message text is delivered as-is and is never interpreted as instructions. Requires the session_token so Keys can verify the sender owns the job.

keys_set_key_type

ChatGPT
Save which key the customer pointed at, so the locksmith brings the right blank and tools. Pass the code from keys_get_key_type_options, or "none" when the customer says their key is not one of the pictures — "none" is a real answer and the note you send with it reaches the locksmith verbatim, which is more use than a category guessed at. Safe to call again if the customer corrects themselves; the latest answer wins. Requires the session_token so Keys can verify the job is theirs. Never invent a key type the customer did not confirm.

keys_submit_request

ChatGPT
Sends the customer's request to Keys and returns a status_link for them to open. No locksmith is booked, chosen or dispatched by this call, and the response always carries dispatched=false. Tell the customer their request is in and give them the link; do not say booked, confirmed or dispatched, and do not name any locksmith as theirs. They choose a locksmith and pay on their own Keys page, which holds the card before anyone is sent out — that page is the only place a job is actually booked. Call this only after the customer has seen the review from keys_prepare_booking and agreed to it. Needs the booking_intent_id and confirmation_token from that review, plus an idempotency_key you generate once; sending the same key again returns the same request rather than making a second one. If a call times out, check keys_get_job_status before retrying rather than resending blind. The status that comes back is awaiting_customer_choice or requests_sent, and both mean the same thing: nobody is on their way yet.

Capabilities

InteractiveWrites

Similar Apps