Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted 3 min ago
teppi

Server definition

Hash
sha256:d8725da8e158445582ca244708f3b093d0e5dfaef5cabf52fdb7e87c64921129
What it is
What a remote MCP server returned when asked what it offers: 15 tools

The blob, as servednamed by its sha256

{ "instructions": "Andrii Co. — a Washington State notary public (Bothell, WA; English/Ukrainian/Russian). Bookings made here are REQUESTS the notary confirms out-of-band — never instant confirmations — and no payment is taken in chat. FAST PATH (goal: one question, one booking): collect in a SINGLE question the customer's FULL LEGAL NAME (exactly as on their government ID — never a chat display name), BOTH an email AND a phone when possible (one is required; phone confirms fastest), the service (office | mobile | apostille | loan), the meeting address (mobile only — office and apostille visits automatically use our Bothell office), and the preferred day/time. search_availability already validates the service area (a separate check_service_area call is rarely needed) and is read-only, safe to call in parallel with get_price_quote. Then submit ONE booking: book_appointment when the customer is SIGNED IN (the connector carries their account), request_booking when they are not, passing the chosen slot's startUnix as scheduled_at or desired_time_unix respectively. To ADD to or change an existing request, pass existing_reference — never create a second request for the same visit. Keep the returned reference and use check_request_status whenever the customer asks about status, confirmation, or rescheduling — the notary may have updated it since. A booking made while signed in comes back with onAccount: true; say so, because the customer can then ask you to list it (my_bookings), move it (reschedule_booking) or cancel it (cancel_booking) rather than hunting for an emailed link. Payments accepted: Visa/Mastercard, PayPal, Venmo, cash, Interac e-Transfer (Canadian customers), or escrow/title-company disbursement on loan signings (a line item in closing costs). Reference resources (service areas, the apostille guide, WA notary requirements, the pricing guide) are available via resources/list — background reading; live answers (quotes, slots, a specific address) come from the tools. For anything else the site documents — service-of-process, vital records, registered agent, Form I-9, notarized screenshots, the terms and privacy notices, or the per-jurisdiction apostille handbook — call search_documentation with KEYWORDS (a state name, \"registered agent\", \"Form I-9\"), not a sentence: it is a lexical index with no semantic fallback. What it returns is prose; get_price_quote and check_service_area remain authoritative for money and coverage. Service area: Washington State primary (Greater Seattle / Puget Sound); Oregon and British Columbia apostille hand-offs; cross-border meetings at Peace Arch Park. No Remote Online Notarization.", "tools": [ { "description": "Schedule an appointment tied to the signed-in customer's account — still a request until the notary confirms it, never guaranteed. PREFER this over request_booking whenever the customer is signed in: only a booking on their own account can later be listed, rescheduled or cancelled through this connector. Guests go through request_booking. Accepts: `service` (e.g. office, mobile, apostille, loan), `scheduled_at` — a slot's startUnix from search_availability, omitted for a call-me request — plus `address` for mobile, `notes`, `document_count`. Returns a Pending reference; fails if not signed in.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "default": null, "description": "Meeting address (required for \"mobile\"; omit for office/apostille).", "type": [ "string", "null" ] }, "document_count": { "default": null, "description": "Number of documents. Default 1.", "format": "int64", "type": [ "integer", "null" ] }, "notes": { "default": null, "description": "Anything else the notary should know.", "type": [ "string", "null" ] }, "scheduled_at": { "default": null, "description": "The chosen slot's `startUnix` (from search_availability). Omit for a\n\"call me to schedule\" request (no time held).", "format": "int64", "type": [ "integer", "null" ] }, "service": { "description": "Service: office | mobile | apostille | loan.", "type": "string" } }, "required": [ "service" ], "type": "object" }, "name": "book_appointment", "outputSchema": { "properties": { "appendedToExisting": { "description": "True when existing_reference was given and the request was extended, not duplicated.", "type": "boolean" }, "manageUrl": { "description": "Guest requests: the emailed confirm/cancel link, when one was minted (null otherwise).", "type": [ "string", "null" ] }, "message": { "description": "Customer-facing outcome; relay it as written — bookings are requests until the notary confirms.", "type": "string" }, "ok": { "const": true, "type": "boolean" }, "onAccount": { "description": "True when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.", "type": "boolean" }, "ourComparableQuoteCents": { "description": "request_price_match only, when computable.", "type": "integer" }, "reference": { "description": "Request / order reference for check_request_status (guest tools) or my_bookings (account tools).", "type": "string" }, "status": { "description": "Account tools: the booking's status after this call (Pending after book_appointment).", "type": "string" } }, "required": [ "ok", "message" ], "type": "object" } }, { "description": "Cancel a booking on the signed-in account — Pending or Scheduled only. Use when the visit is no longer needed; guests cancel via their emailed manage link instead. Accepts: `order_id` (e.g. copied from my_bookings). Returns a cancellation notice; fails if the booking is not yours, is neither Pending nor Scheduled, or not signed in.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "order_id": { "description": "The booking's order id (from my_bookings).", "type": "string" } }, "required": [ "order_id" ], "type": "object" }, "name": "cancel_booking", "outputSchema": { "properties": { "appendedToExisting": { "description": "True when existing_reference was given and the request was extended, not duplicated.", "type": "boolean" }, "manageUrl": { "description": "Guest requests: the emailed confirm/cancel link, when one was minted (null otherwise).", "type": [ "string", "null" ] }, "message": { "description": "Customer-facing outcome; relay it as written — bookings are requests until the notary confirms.", "type": "string" }, "ok": { "const": true, "type": "boolean" }, "onAccount": { "description": "True when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.", "type": "boolean" }, "ourComparableQuoteCents": { "description": "request_price_match only, when computable.", "type": "integer" }, "reference": { "description": "Request / order reference for check_request_status (guest tools) or my_bookings (account tools).", "type": "string" }, "status": { "description": "Account tools: the booking's status after this call (Pending after book_appointment).", "type": "string" } }, "required": [ "ok", "message" ], "type": "object" } }, { "description": "Check what became of a previously submitted request — no sign-in needed, guests welcome. Use when the customer asks whether the notary confirmed, moved, cancelled, or merged it. Accepts: `reference` — the id returned at submission or the token from the emailed confirm link. Returns the service plus status and timing (PII-minimal — never address, name, or notes; Pacific time, e.g. scheduledAtPacific). Fails if the reference is wrong — a not found reply.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "reference": { "description": "The reference id returned when the request was submitted (also accepts\nthe token from the emailed confirm link).", "type": "string" } }, "required": [ "reference" ], "type": "object" }, "name": "check_request_status", "outputSchema": { "description": "PII-minimal status of a request — never the address, name or notes.", "properties": { "awaitingCustomerConfirmation": { "type": "boolean" }, "displayStatus": { "description": "The customer-facing word: {code, tone}. Code is the derived display status (Signed | Apostilled | ReadyToShip | Shipped | Complete | PartiallyComplete | DealDone | …); tone is ok | warn | err | info | neutral. Quote the code's meaning from `note`, never the stored status.", "type": "object" }, "mergedInto": { "description": "Only for MergedWithOther: the surviving appointment's status and time.", "properties": { "scheduledAt": { "type": [ "integer", "null" ] }, "scheduledAtPacific": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "note": { "type": "string" }, "reference": { "type": "string" }, "requestedTime": { "description": "Unix seconds the customer asked for on a lead, or null.", "type": [ "integer", "null" ] }, "scheduledAt": { "description": "Unix seconds.", "type": [ "integer", "null" ] }, "scheduledAtPacific": { "type": [ "string", "null" ] }, "service": { "description": "office | apostille | mobile | loan | ron | apostille_mail; null on a legacy row.", "type": [ "string", "null" ] }, "status": { "description": "Pending | Scheduled | EnRoute | InProgress | Completed | Notarized | PickedUp | Cancelled | NoShow | MergedWithOther. The STORED operator lifecycle — `Completed` means the notarial act happened (signed), not that the order is done. `note` says what the word means for the customer; read that rather than branching on this.", "type": "string" } }, "required": [ "reference", "service", "status", "awaitingCustomerConfirmation", "note" ], "type": "object" } }, { "description": "Check whether an address sits inside our Washington coverage and resolves precisely enough to book. Use when the customer wants an area answer without searching slots — search_availability already validates the area itself. Accepts: `address` (e.g. a Seattle street or ZIP) and optional `service` — notary or apostille rules differ. Returns withinServiceArea, distanceMiles, precise; if the address cannot be resolved the message says not found.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "description": "Street address, city, or ZIP to check (Washington State service area).", "type": "string" }, "service": { "default": null, "description": "\"notary\" (default) or \"apostille\" — the service-area rules differ slightly.", "type": [ "string", "null" ] } }, "required": [ "address" ], "type": "object" }, "name": "check_service_area", "outputSchema": { "properties": { "country": { "type": [ "string", "null" ] }, "distanceMiles": { "description": "Straight-line miles from the Bothell office (display only, not a routed leg).", "type": "number" }, "label": { "description": "Formatted address, or null when the address could not be resolved.", "type": [ "string", "null" ] }, "message": { "description": "Why the place is not bookable as given, or null.", "type": [ "string", "null" ] }, "precise": { "description": "False when a street and city are still needed to pin the spot.", "type": "boolean" }, "region": { "type": [ "string", "null" ] }, "withinServiceArea": { "type": "boolean" } }, "required": [ "withinServiceArea", "precise" ], "type": "object" } }, { "description": "Check whether a document can get an apostille and how: certified vital records mail in as-is, private papers (e.g. a diploma or POA) need notarization first, federal ones go to the US Department of State. Use when the customer asks is this apostillable. Accepts: `document` in plain words, optional `issuing_state`, `destination_country`. Returns the category, the honest do-it-yourself path and our offer; unclear wording yields an `unknown` category, never an error.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "destination_country": { "default": null, "description": "The country the apostilled document is for.", "type": [ "string", "null" ] }, "document": { "description": "The document in plain words (e.g. \"Washington birth certificate\",\n\"university diploma\", \"FBI background check\", \"power of attorney\").", "type": "string" }, "issuing_state": { "default": null, "description": "The US state that issued or notarized it (default Washington).", "type": [ "string", "null" ] } }, "required": [ "document" ], "type": "object" }, "name": "get_apostille_requirements", "outputSchema": { "properties": { "category": { "description": "Document class: vital_record_mailin_ready, needs_notarized_copy, notarized_document, court_document, federal_authentication, unknown.", "type": "string" }, "destination": { "properties": { "country": { "type": "string" }, "effectiveDate": { "type": "string" }, "note": { "type": "string" }, "status": { "description": "member | coming_soon | non_member.", "type": "string" } }, "required": [ "country", "status" ], "type": [ "object", "null" ] }, "disclaimer": { "type": "string" }, "diyPath": { "properties": { "stateFee": { "type": "string" }, "whenToUseUs": { "type": "string" }, "yourself": { "type": "string" } }, "type": "object" }, "document": { "type": "string" }, "eligibleForMailInAsIs": { "description": "True when no notarial act is needed first.", "type": "boolean" }, "explanation": { "type": "string" }, "howToProceed": { "type": "string" }, "issuingState": { "type": "string" }, "ourOffer": { "properties": { "fullServiceTiers": { "type": "string" }, "inPersonApostilleFromCents": { "type": [ "integer", "null" ] }, "mailInApostilleFromCents": { "type": [ "integer", "null" ] }, "typicalTurnaround": { "type": [ "object", "null" ] }, "typicalTurnaroundTier": { "type": "string" } }, "type": "object" } }, "required": [ "document", "issuingState", "category", "eligibleForMailInAsIs", "explanation", "diyPath", "ourOffer" ], "type": "object" } }, { "description": "Calculate a server-authoritative USD price estimate before shipping — pure, no side effects, nothing booked. Use when the customer asks about cost. Accepts: `document_count`, `mobile`, `after_hours`, `apostille` plus `tier` (e.g. expedited, priority, standard, mailin); set `needs_notarization` false for already-certified records; `ua_lane` (withinUkraine | fromUsa) prices the Ukraine direct lane, `translation_docs` the in-Ukraine translation. Returns amountCents and line items; fails if `apostille` is true and `tier` is invalid (with `apostille` false, `tier` is ignored).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "after_hours": { "default": false, "description": "Mobile only: the chosen slot is after 6pm or on a weekend.", "type": "boolean" }, "apostille": { "default": false, "description": "True to include a Secretary-of-State apostille.", "type": "boolean" }, "document_count": { "default": null, "description": "Number of documents (1–20). Default 1.", "format": "int64", "type": [ "integer", "null" ] }, "mobile": { "default": false, "description": "True if we travel to the customer (adds the flat travel fee).", "type": "boolean" }, "needs_notarization": { "default": null, "description": "Set false for a mail-in apostille of already-certified public records\n(birth/marriage/death certificates) that need no notarial act.", "type": [ "boolean", "null" ] }, "tier": { "default": null, "description": "Apostille tier when `apostille`: expedited | priority | standard | mailin.", "type": [ "string", "null" ] }, "translation_docs": { "default": null, "description": "Apostille documents translated in Ukraine ($20/doc; the first doc is\nfree on the direct lane).", "format": "int64", "type": [ "integer", "null" ] }, "ua_lane": { "default": null, "description": "Ukraine delivery lane: withinUkraine (weekly batch, included) or\nfromUsa (direct: NP postage estimate + the $25 dispatch fee).", "type": [ "string", "null" ] } }, "type": "object" }, "name": "get_price_quote", "outputSchema": { "properties": { "amountCents": { "type": "integer" }, "currency": { "type": "string" }, "howToProceed": { "type": "string" }, "lineItems": { "items": { "properties": { "amountCents": { "type": "integer" }, "label": { "type": "string" } }, "required": [ "label", "amountCents" ], "type": "object" }, "type": "array" }, "prepaymentRequired": { "type": "boolean" } }, "required": [ "currency", "amountCents", "lineItems", "prepaymentRequired", "howToProceed" ], "type": "object" } }, { "description": "List the service catalog — Washington notary and apostille offerings with USD prices and accepted payment options (e.g. card, PayPal, Venmo, cash). Optional — the server instructions already summarize the flow; use when the customer asks what we offer or how to pay. Takes: no arguments. Returns `services` plus payment notes — a static catalog (no error if repeated).", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_services", "outputSchema": { "description": "Static service catalog, coverage summary and accepted payment options.", "properties": { "business": { "type": "string" }, "languages": { "items": { "type": "string" }, "type": "array" }, "location": { "type": "string" }, "paymentNote": { "type": "string" }, "paymentOptions": { "items": { "type": "string" }, "type": "array" }, "priceMatch": { "type": "string" }, "priceQuote": { "description": "Which tool gives an exact figure.", "type": "string" }, "remoteOnlineNotarization": { "type": "boolean" }, "serviceArea": { "type": "string" }, "services": { "items": { "properties": { "description": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name", "description" ], "type": "object" }, "type": "array" } }, "required": [ "business", "serviceArea", "paymentOptions", "paymentNote", "services" ], "type": "object" } }, { "description": "Calculate typical turnaround — apostille processing days plus mailing and delivery legs. Ranges, never guarantees; exact appointment times come from search_availability. Use when the customer asks how long. Accepts: `service` (e.g. notarization, apostille, apostille_mail, loan_signing), optional `tier`, `shipping`, `destination_country`, `ua_lane` (withinUkraine | fromUsa — the Ukraine lane when `shipping` is omitted). Returns staged day estimates; an unknown `tier` falls back to the standard figure, not an error.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "destination_country": { "default": null, "description": "Destination country (used to infer shipping when `shipping` is omitted).", "type": [ "string", "null" ] }, "service": { "description": "Service: notarization | apostille | apostille_mail | loan_signing.", "type": "string" }, "shipping": { "default": null, "description": "Delivery: pickup | us | ukraine | ukraine_direct | international. If\nomitted, inferred from destination_country (apostille legs default to\nUS shipping) or from `ua_lane` (fromUsa ⇒ ukraine_direct).", "type": [ "string", "null" ] }, "tier": { "default": null, "description": "Apostille speed tier when service is apostille: expedited | priority | standard.", "type": [ "string", "null" ] }, "ua_lane": { "default": null, "description": "Ukraine delivery lane: withinUkraine (weekly batch, 7–14 days) or\nfromUsa (direct from the USA, 7–10 days). Fills `shipping` when that\nis omitted; an explicit `shipping` always wins.", "type": [ "string", "null" ] } }, "required": [ "service" ], "type": "object" }, "name": "get_turnaround_estimate", "outputSchema": { "description": "Staged day estimates — ranges, never guarantees.", "properties": { "disclaimer": { "type": "string" }, "howToProceed": { "type": "string" }, "service": { "type": "string" }, "stages": { "items": { "properties": { "businessDays": { "type": "integer" }, "calendarDaysHigh": { "type": "integer" }, "calendarDaysLow": { "type": "integer" }, "note": { "type": "string" }, "stage": { "type": "string" } }, "required": [ "stage" ], "type": "object" }, "type": "array" }, "tier": { "type": "string" }, "typicalTotalDaysHigh": { "type": "integer" }, "typicalTotalDaysLow": { "type": "integer" } }, "required": [ "service", "stages", "typicalTotalDaysLow", "typicalTotalDaysHigh", "disclaimer" ], "type": "object" } }, { "description": "List every booking on the signed-in customer's own account, sorted by scheduled time, latest first. Use when an authenticated customer asks what is scheduled, or to grab an `order_id` before reschedule_booking or cancel_booking. Takes: no arguments. Returns orderId, service, status, scheduledAt, location per row (e.g. Scheduled vs Pending); fails if not signed in.", "inputSchema": { "properties": {}, "type": "object" }, "name": "my_bookings", "outputSchema": { "properties": { "bookings": { "description": "Latest first.", "items": { "properties": { "location": { "type": "string" }, "orderId": { "description": "Pass to reschedule_booking / cancel_booking as order_id.", "type": "string" }, "scheduledAt": { "description": "Unix seconds; null for a call-me request with no time held.", "type": [ "integer", "null" ] }, "service": { "type": [ "string", "null" ] }, "status": { "type": "string" } }, "required": [ "orderId", "service", "status" ], "type": "object" }, "type": "array" } }, "required": [ "bookings" ], "type": "object" } }, { "description": "Submit a mail-in apostille request — a lead for already-certified Washington public records needing NO notarization (e.g. birth or marriage certificates). Use when get_apostille_requirements says they qualify. Requires: `documents`, `name`, and an email or phone; the notary replies with mailing instructions and a quote — nothing charged until approved. Pass `existing_reference` to extend an open request. Returns a reference; fails if the name or a valid contact is missing.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "destination_country": { "default": null, "description": "Destination country the apostilled documents are for.", "type": [ "string", "null" ] }, "documents": { "description": "What documents, in plain words (e.g. \"2 birth certificates for Ukraine\").", "type": "string" }, "email": { "default": null, "description": "Email. Collect BOTH an email AND a phone in one question when possible;\nat least one is required.", "type": [ "string", "null" ] }, "existing_reference": { "default": null, "description": "To ADD these documents to an EXISTING request instead of creating a\nsecond one, pass that request's reference id (with the same email/phone\nso we can verify the customer). Nothing new is created.", "type": [ "string", "null" ] }, "name": { "description": "The customer's FULL LEGAL NAME exactly as on their government-issued ID\n(never a nickname) — apostille filings print it.", "type": "string" }, "notes": { "default": null, "description": "Anything else the notary should know.", "type": [ "string", "null" ] }, "phone": { "default": null, "description": "Phone with country code — the notary confirms fastest by phone/SMS.", "type": [ "string", "null" ] } }, "required": [ "documents", "name" ], "type": "object" }, "name": "request_apostille", "outputSchema": { "properties": { "appendedToExisting": { "description": "True when existing_reference was given and the request was extended, not duplicated.", "type": "boolean" }, "manageUrl": { "description": "Guest requests: the emailed confirm/cancel link, when one was minted (null otherwise).", "type": [ "string", "null" ] }, "message": { "description": "Customer-facing outcome; relay it as written — bookings are requests until the notary confirms.", "type": "string" }, "ok": { "const": true, "type": "boolean" }, "onAccount": { "description": "True when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.", "type": "boolean" }, "ourComparableQuoteCents": { "description": "request_price_match only, when computable.", "type": "integer" }, "reference": { "description": "Request / order reference for check_request_status (guest tools) or my_bookings (account tools).", "type": "string" }, "status": { "description": "Account tools: the booking's status after this call (Pending after book_appointment).", "type": "string" } }, "required": [ "ok", "message" ], "type": "object" } }, { "description": "Submit a booking request — a lead, NOT a confirmed appointment; the notary follows up. Use when ready to book AND the customer is not signed in; a signed-in customer goes through book_appointment instead. Requires: `service` (e.g. office, mobile, loan), the FULL LEGAL NAME as on government ID, and an email or phone (collect both). Pass the chosen startUnix from search_availability as `desired_time_unix`; to modify an open request pass `existing_reference`, never a duplicate. Returns a reference for check_request_status; fails if the name or a valid contact is missing.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "default": null, "description": "Meeting address — MOBILE ONLY. Office and apostille visits automatically\nuse our Bothell office; omit this for them.", "type": [ "string", "null" ] }, "desired_time": { "default": null, "description": "The wanted time in plain words, when no exact slot was chosen (rides the\nnotes; the notary confirms a real time).", "type": [ "string", "null" ] }, "desired_time_unix": { "default": null, "description": "The chosen slot's `startUnix` from search_availability (Unix seconds).\nPass it so the request carries the exact wanted time — still a request,\nnever a hold.", "format": "int64", "type": [ "integer", "null" ] }, "document_count": { "default": null, "description": "Number of documents. Default 1.", "format": "int64", "type": [ "integer", "null" ] }, "email": { "default": null, "description": "Email. Collect BOTH an email AND a phone in one question when possible;\nat least one is required.", "type": [ "string", "null" ] }, "existing_reference": { "default": null, "description": "To ADD to or change an EXISTING request instead of creating a second one\n(e.g. \"also apostille it\", \"make it 3 documents\"), pass that request's\nreference id here — the same email/phone must be provided so we can\nverify it's the same customer. Nothing new is created.", "type": [ "string", "null" ] }, "name": { "description": "The customer's FULL LEGAL NAME exactly as on their government-issued ID\n(never a nickname or chat display name) — notarial records and apostille\nfilings print it. Ask if you only know a first name.", "type": "string" }, "notes": { "default": null, "description": "Anything else the notary should know.", "type": [ "string", "null" ] }, "phone": { "default": null, "description": "Phone with country code (e.g. +1...). The notary confirms fastest by\nphone/SMS — ask for it even when an email is known.", "type": [ "string", "null" ] }, "service": { "description": "Service: office | mobile | apostille | loan.", "type": "string" } }, "required": [ "service", "name" ], "type": "object" }, "name": "request_booking", "outputSchema": { "properties": { "appendedToExisting": { "description": "True when existing_reference was given and the request was extended, not duplicated.", "type": "boolean" }, "manageUrl": { "description": "Guest requests: the emailed confirm/cancel link, when one was minted (null otherwise).", "type": [ "string", "null" ] }, "message": { "description": "Customer-facing outcome; relay it as written — bookings are requests until the notary confirms.", "type": "string" }, "ok": { "const": true, "type": "boolean" }, "onAccount": { "description": "True when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.", "type": "boolean" }, "ourComparableQuoteCents": { "description": "request_price_match only, when computable.", "type": "integer" }, "reference": { "description": "Request / order reference for check_request_status (guest tools) or my_bookings (account tools).", "type": "string" }, "status": { "description": "Account tools: the booking's status after this call (Pending after book_appointment).", "type": "string" } }, "required": [ "ok", "message" ], "type": "object" } }, { "description": "Request a price-match review of a competitor's WRITTEN quote from a comparable licensed notary — it never sets our price automatically. Use when the customer found a cheaper offer. Requires: `competitor_name`, `competitor_price_usd`, `service` (e.g. office, mobile, apostille), `name`, and an email or phone. Returns a logged reference and, where computable, our comparable quote; the notary decides within one business day. Fails if the name or a valid contact is missing.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "competitor_name": { "description": "The competitor's business name.", "type": "string" }, "competitor_price_usd": { "description": "The competitor's quoted price, in US dollars.", "format": "double", "type": "number" }, "competitor_url": { "default": null, "description": "Link to the competitor's quote/page, if any (stored for the operator,\nnever fetched).", "type": [ "string", "null" ] }, "document_count": { "default": null, "description": "Number of documents, for our comparison quote. Default 1.", "format": "int64", "type": [ "integer", "null" ] }, "email": { "default": null, "description": "Email — provide an email OR a phone so we can reach them.", "type": [ "string", "null" ] }, "name": { "description": "The customer's name.", "type": "string" }, "notes": { "default": null, "description": "Anything else the notary should know.", "type": [ "string", "null" ] }, "phone": { "default": null, "description": "Phone — provide an email OR a phone so we can reach them.", "type": [ "string", "null" ] }, "service": { "description": "Service: office | mobile | apostille | apostille_mail | loan.", "type": "string" } }, "required": [ "name", "service", "competitor_name", "competitor_price_usd" ], "type": "object" }, "name": "request_price_match", "outputSchema": { "properties": { "appendedToExisting": { "description": "True when existing_reference was given and the request was extended, not duplicated.", "type": "boolean" }, "manageUrl": { "description": "Guest requests: the emailed confirm/cancel link, when one was minted (null otherwise).", "type": [ "string", "null" ] }, "message": { "description": "Customer-facing outcome; relay it as written — bookings are requests until the notary confirms.", "type": "string" }, "ok": { "const": true, "type": "boolean" }, "onAccount": { "description": "True when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.", "type": "boolean" }, "ourComparableQuoteCents": { "description": "request_price_match only, when computable.", "type": "integer" }, "reference": { "description": "Request / order reference for check_request_status (guest tools) or my_bookings (account tools).", "type": "string" }, "status": { "description": "Account tools: the booking's status after this call (Pending after book_appointment).", "type": "string" } }, "required": [ "ok", "message" ], "type": "object" } }, { "description": "Move one of the signed-in customer's own bookings to a new slot. Use when an authenticated customer wants a different time: find the `order_id` via my_bookings, take a fresh startUnix from search_availability (e.g. a morning slot), send it as `scheduled_at`. Returns a done confirmation; fails if the new time is not genuinely available, the booking is not yours, or not signed in.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "order_id": { "description": "The booking's order id (from my_bookings).", "type": "string" }, "scheduled_at": { "description": "The new slot's `startUnix` (from search_availability).", "format": "int64", "type": "integer" } }, "required": [ "order_id", "scheduled_at" ], "type": "object" }, "name": "reschedule_booking", "outputSchema": { "properties": { "appendedToExisting": { "description": "True when existing_reference was given and the request was extended, not duplicated.", "type": "boolean" }, "manageUrl": { "description": "Guest requests: the emailed confirm/cancel link, when one was minted (null otherwise).", "type": [ "string", "null" ] }, "message": { "description": "Customer-facing outcome; relay it as written — bookings are requests until the notary confirms.", "type": "string" }, "ok": { "const": true, "type": "boolean" }, "onAccount": { "description": "True when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.", "type": "boolean" }, "ourComparableQuoteCents": { "description": "request_price_match only, when computable.", "type": "integer" }, "reference": { "description": "Request / order reference for check_request_status (guest tools) or my_bookings (account tools).", "type": "string" }, "status": { "description": "Account tools: the booking's status after this call (Pending after book_appointment).", "type": "string" } }, "required": [ "ok", "message" ], "type": "object" } }, { "description": "Find open appointment slots (validating the meeting area too). Use when the customer wants a time. Requires: `service` (office, mobile, apostille); mobile needs an `address`, e.g. a Bothell street. Returns resolved location, up to 7 recommended slots with startUnix, and per-day windows — the k-th start is startUnixFrom + k*stepSec for k < startCount; hand the picked startUnix to request_booking as `desired_time_unix`. An ungeocodable address is flagged not found.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "default": null, "description": "The address to meet at — required for \"mobile\"; ignored for \"office\".", "type": [ "string", "null" ] }, "document_count": { "default": null, "description": "Number of documents (drives the appointment length). Default 1.", "format": "int64", "type": [ "integer", "null" ] }, "service": { "description": "\"office\" (at our office), \"mobile\" (we come to you), or \"apostille\".", "type": "string" } }, "required": [ "service" ], "type": "object" }, "name": "search_availability", "outputSchema": { "description": "Open slots over the booking horizon (Pacific time). `recommended` is what to offer; `days[].windows` encodes every bookable start losslessly: the k-th start is startUnixFrom + k*stepSec for k < startCount.", "properties": { "afterHoursSurchargeCents": { "description": "Mobile services only: the surcharge an afterHours slot adds.", "type": "integer" }, "days": { "items": { "properties": { "closed": { "description": "Present only on a day with no bookable slot: closed | full.", "type": "string" }, "date": { "description": "YYYY-MM-DD, Pacific.", "type": "string" }, "windows": { "items": { "properties": { "afterHours": { "type": "boolean" }, "fit": { "description": "great | good | fair | far.", "type": "string" }, "from": { "description": "HH:MM of the first start.", "type": "string" }, "startCount": { "type": "integer" }, "startUnixFrom": { "type": "integer" }, "stepSec": { "type": "integer" }, "until": { "description": "HH:MM end of the last slot.", "type": "string" } }, "required": [ "from", "until", "fit", "startUnixFrom", "startCount", "stepSec" ], "type": "object" }, "type": "array" } }, "required": [ "date", "windows" ], "type": "object" }, "type": "array" }, "recommended": { "items": { "properties": { "date": { "type": "string" }, "durationMin": { "type": "integer" }, "fit": { "description": "great | good | fair | far.", "type": "string" }, "start": { "description": "HH:MM Pacific.", "type": "string" }, "startUnix": { "description": "Pass to request_booking as desired_time_unix (or to book_appointment as scheduled_at).", "type": "integer" } }, "required": [ "date", "start", "startUnix", "durationMin", "fit" ], "type": "object" }, "type": "array" }, "resolved": { "properties": { "country": { "type": [ "string", "null" ] }, "distanceMiles": { "description": "Straight-line miles from the Bothell office (display only, not a routed leg).", "type": "number" }, "label": { "description": "Formatted address, or null when the address could not be resolved.", "type": [ "string", "null" ] }, "message": { "description": "Why the place is not bookable as given, or null.", "type": [ "string", "null" ] }, "precise": { "description": "False when a street and city are still needed to pin the spot.", "type": "boolean" }, "region": { "type": [ "string", "null" ] }, "withinServiceArea": { "type": "boolean" } }, "required": [ "withinServiceArea", "precise" ], "type": "object" } }, "required": [ "resolved", "days", "recommended" ], "type": "object" } }, { "description": "Search the text of andrii.co — every service page, the terms and privacy notices, and the 110-jurisdiction apostille handbook (who issues an apostille, accepted documents, forms, offices, fees, payment). Use for reference questions the other tools do not answer, and to cite a page. Accepts: `query` (keywords, not prose — there is no semantic matching), optional `lang`, `section`, `limit`. Returns ranked page excerpts with a URL and a Markdown URL to read in full; no match is an empty list. Reference text, not a live quote — use get_price_quote and check_service_area for what we charge and where we go.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "lang": { "default": null, "description": "Restrict to one language. Only `en` is indexed today; any other value\nreturns no results rather than silently ignoring the filter.", "type": [ "string", "null" ] }, "limit": { "default": null, "description": "How many results (default 10, max 20).", "format": "uint32", "minimum": 0, "type": [ "integer", "null" ] }, "query": { "description": "What to look for. Keywords beat prose: this is a lexical index with no\nsemantic fallback, so \"mail-in apostille birth certificate\" finds the\npage that \"can I post my documents instead\" does not.", "type": "string" }, "section": { "default": null, "description": "Restrict to sections whose heading contains this text (e.g. \"What it\ncosts\"). Heading TEXT, not a URL fragment — the pages carry no anchors.", "type": [ "string", "null" ] } }, "required": [ "query" ], "type": "object" }, "name": "search_documentation", "outputSchema": { "properties": { "count": { "type": "integer" }, "note": { "type": "string" }, "query": { "type": "string" }, "results": { "items": { "properties": { "excerpt": { "type": "string" }, "markdownUrl": { "description": "Markdown twin of the page — fetch to read it in full.", "type": "string" }, "section": { "type": "string" }, "title": { "type": "string" }, "url": { "description": "Canonical page URL to cite.", "type": "string" } }, "required": [ "title", "url", "markdownUrl", "excerpt" ], "type": "object" }, "type": "array" } }, "required": [ "query", "count", "results", "note" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:d8725da8e158445582ca244708f3b093d0e5dfaef5cabf52fdb7e87c64921129 | sha256sum