Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,533Letters: 13Defects: 1,322counted 1 min ago
teppi

Server definition

Hash
sha256:883466316bab0a448808c95a306f6f19999eb41eced51d6b8f5b9bc07777c5f4
What it is
What a remote MCP server returned when asked what it offers: 12 tools

The blob, as servednamed by its sha256

{ "instructions": "MCP metadata, structured guidance, and model-facing messages use canonical English; communicate with the end user in the user's language. Start every new service request with start_service_request and pass every value already stated by the user. Determine the vertical first; send provider_hint only when the user explicitly named that company. The first customer-facing reply after start_service_request is one combined intake step: lead with vertical_introduction.message and immediately continue in that same message with every returned intake question, available time, or other next action. Never pause for acknowledgment between the introduction and the first field batch, never make the introduction a separate product step, and present it only once. Clearly separate required and optional fields. Accept partial answers: omitted optional or conditionally required fields never block progress. As soon as intake required fields are present, call get_service_options and present potential times plus refinement fields in one message. Time is always required in matching. Never reveal company names before user_stage=confirmation. Use update_service_request with expected_state_version for partial answers and the selected time. Validation retries stay inside the current stage. When next_action is render_service_request_form, call render_service_request_form; the protected card handles provider choice, booking/contact details and the single final Confirm. Never collect phone, name, or street address in chat and never expose tokens, holds, internal provider IDs, PII, or secrets. Do not say a booking exists until create_service_booking succeeds. A new booking is anonymous and complete after create_service_booking succeeds: never invoke Connect, account linking, or phone verification as part of creating it. Use the protected service-booking tools only when the customer later asks to view, reschedule, or cancel an existing appointment; authentication is then handled by Connect. Search only the MCP Near Me participating-provider database; do not use outside web research or third-party forms.", "tools": [ { "description": "Use this only with the one-time approval issued after the user confirms the exact cancellation inside the protected management form. It cancels only the authorized active booking, frees its capacity, and sends transactional notifications. Safe retries must reuse the same idempotency key.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "anonymous_session_id": { "maxLength": 200, "minLength": 8, "type": "string" }, "booking_change_authorization_token": { "description": "One-time approval supplied only by the protected management form.", "minLength": 32, "type": "string" }, "correlation_id": { "maxLength": 200, "minLength": 1, "type": "string" }, "idempotency_key": { "maxLength": 200, "minLength": 16, "type": "string" }, "source": { "enum": [ "chatgpt_plugin", "chatgpt_ads", "ai_search", "organic_search", "paid_search", "manual_referral", "provider_referral", "direct", "test" ], "type": "string" } }, "required": [ "booking_change_authorization_token", "idempotency_key", "source", "anonymous_session_id", "correlation_id" ], "type": "object" }, "name": "cancel_service_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": false, "properties": { "account_linking": { "anyOf": [ { "additionalProperties": false, "properties": { "status": { "const": "already_linked", "type": "string" } }, "required": [ "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "status": { "const": "unavailable", "type": "string" } }, "required": [ "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "expires_at": { "type": "string" }, "linking_session_id": { "type": "string" }, "next_action": { "const": "complete_account_link", "type": "string" }, "status": { "const": "required", "type": "string" } }, "required": [ "status", "linking_session_id", "expires_at", "next_action" ], "type": "object" } ] }, "arrival_window": { "type": "string" }, "booking_id": { "type": "string" }, "provider_public_name": { "type": "string" }, "public_booking_ref": { "type": "string" }, "service_date": { "type": "string" }, "status": { "type": "string" }, "timezone": { "type": "string" } }, "required": [ "booking_id", "provider_public_name", "service_date", "arrival_window", "timezone", "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Compatibility-only completion for an explicitly initiated legacy profile-link session. Never call it as part of a new booking and never ask for an SMS code in chat. Viewing or managing an existing appointment starts Connect through the corresponding booking-management tool.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "linking_session_id": { "maxLength": 200, "minLength": 10, "type": "string" } }, "required": [ "linking_session_id" ], "type": "object" }, "name": "complete_account_link", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": false, "properties": { "linked": { "const": true, "type": "boolean" } }, "required": [ "linked" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use only from the protected final card with its one-time authorization after the user presses Confirm. Provider, request, hold, time and protected answers come from server context; do not pass or reconstruct them. This anonymous action completes the booking and must not trigger Connect or phone verification. Safe retries must reuse the same idempotency key.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "anonymous_session_id": { "maxLength": 200, "minLength": 8, "type": "string" }, "booking_authorization_token": { "minLength": 32, "type": "string" }, "campaign_id": { "maxLength": 200, "type": "string" }, "correlation_id": { "maxLength": 200, "minLength": 1, "type": "string" }, "idempotency_key": { "maxLength": 200, "minLength": 16, "type": "string" }, "source": { "enum": [ "chatgpt_plugin", "chatgpt_ads", "ai_search", "organic_search", "paid_search", "manual_referral", "provider_referral", "direct", "test" ], "type": "string" } }, "required": [ "booking_authorization_token", "idempotency_key", "source", "anonymous_session_id", "correlation_id" ], "type": "object" }, "name": "create_service_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": false, "properties": { "account_linking": { "anyOf": [ { "additionalProperties": false, "properties": { "status": { "const": "already_linked", "type": "string" } }, "required": [ "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "status": { "const": "unavailable", "type": "string" } }, "required": [ "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "expires_at": { "type": "string" }, "linking_session_id": { "type": "string" }, "next_action": { "const": "complete_account_link", "type": "string" }, "status": { "const": "required", "type": "string" } }, "required": [ "status", "linking_session_id", "expires_at", "next_action" ], "type": "object" } ] }, "arrival_window": { "type": "string" }, "booking_id": { "type": "string" }, "provider_public_name": { "type": "string" }, "public_booking_ref": { "type": "string" }, "service_date": { "type": "string" }, "status": { "type": "string" }, "timezone": { "type": "string" } }, "required": [ "booking_id", "provider_public_name", "service_date", "arrival_window", "timezone", "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Open an appointment that belongs to the connected customer. This is read-only. Historical appointments have no available management actions; a current manageable appointment can provide the protected card for exact reschedule or cancellation review.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "booking_id": { "maxLength": 200, "minLength": 10, "type": "string" }, "intent": { "default": "view", "enum": [ "view", "reschedule", "cancel" ], "type": "string" } }, "required": [ "booking_id" ], "type": "object" }, "name": "get_my_service_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": false, "properties": { "booking": { "additionalProperties": false, "properties": { "arrival_window": { "type": "string" }, "available_actions": { "items": { "enum": [ "reschedule", "cancel" ], "type": "string" }, "type": "array" }, "booking_id": { "type": "string" }, "is_active": { "type": "boolean" }, "is_manageable": { "type": "boolean" }, "is_past": { "type": "boolean" }, "provider_public_name": { "type": "string" }, "public_booking_ref": { "type": "string" }, "service_date": { "type": "string" }, "status": { "type": "string" }, "timezone": { "type": "string" } }, "required": [ "booking_id", "provider_public_name", "service_date", "arrival_window", "timezone", "status", "public_booking_ref", "is_active", "is_manageable", "is_past", "available_actions" ], "type": "object" }, "next_action": { "enum": [ "view_complete", "choose_available_time", "review_cancellation" ], "type": "string" } }, "required": [ "booking", "next_action" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use after intake required fields are known, or to refresh matching data. It returns live aggregated potential windows and the current refinement batch without company names. It does not select a provider or reserve capacity.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "request_id": { "maxLength": 200, "minLength": 10, "type": "string" } }, "required": [ "request_id" ], "type": "object" }, "name": "get_service_options", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": {}, "properties": { "field_batch": { "additionalProperties": {}, "properties": { "conditionally_required": { "items": {}, "type": "array" }, "optional": { "items": {}, "type": "array" }, "required": { "items": {}, "type": "array" } }, "required": [ "required", "conditionally_required", "optional" ], "type": "object" }, "known_fields": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "next_action": { "type": "string" }, "request_id": { "type": "string" }, "state_version": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "user_stage": { "enum": [ "intake", "matching", "confirmation" ], "type": "string" }, "vertical_id": { "type": "string" }, "vertical_introduction": { "additionalProperties": false, "properties": { "message": { "type": "string" }, "present_once": { "const": true, "type": "boolean" }, "presentation_order": { "const": "lead_same_message", "type": "string" } }, "required": [ "message", "presentation_order", "present_once" ], "type": "object" } }, "required": [ "request_id", "state_version", "vertical_id", "user_stage", "known_fields", "field_batch", "next_action" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use immediately when the user asks to see or manage appointments. For cancellation or rescheduling, pass status='active'. Active means a confirmed or rescheduled appointment whose arrival window has not ended; past or terminal bookings are never active. If multiple active appointments are returned, show the choices instead of guessing. Connect is handled by the platform; never ask for a phone or code in chat.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "default": 20, "maximum": 50, "minimum": 1, "type": "integer" }, "status": { "description": "Use 'active' for cancellation or rescheduling. It returns only actionable appointments whose arrival window has not ended; omit to include history.", "maxLength": 40, "type": "string" } }, "type": "object" }, "name": "list_my_service_bookings", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": false, "properties": { "active_count": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "bookings": { "items": { "additionalProperties": false, "properties": { "arrival_window": { "type": "string" }, "booking_id": { "type": "string" }, "is_active": { "type": "boolean" }, "is_manageable": { "type": "boolean" }, "is_past": { "type": "boolean" }, "provider_public_name": { "type": "string" }, "public_booking_ref": { "type": "string" }, "service_date": { "type": "string" }, "status": { "type": "string" }, "timezone": { "type": "string" } }, "required": [ "booking_id", "provider_public_name", "service_date", "arrival_window", "timezone", "status", "public_booking_ref", "is_active", "is_manageable", "is_past" ], "type": "object" }, "type": "array" }, "count": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "bookings", "count", "active_count" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use this only from the protected management form after secure appointment access. It prepares the exact reschedule or cancellation review but does not change the booking. A reschedule accepts only a live slot returned inside the protected form and temporarily reserves that capacity. The user must separately confirm the exact preview before a write tool can run.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "action": { "enum": [ "reschedule", "cancel" ], "type": "string" }, "booking_id": { "maxLength": 200, "minLength": 10, "type": "string" }, "idempotency_key": { "maxLength": 200, "minLength": 16, "type": "string" }, "management_context_token": { "description": "Opaque short-lived context supplied only by the protected management form.", "minLength": 32, "type": "string" }, "new_slot_id": { "minLength": 32, "type": "string" } }, "required": [ "action", "idempotency_key" ], "type": "object" }, "name": "prepare_service_booking_change", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": false, "properties": { "action": { "enum": [ "reschedule", "cancel" ], "type": "string" }, "arrival_window": { "type": "string" }, "booking_id": { "type": "string" }, "confirmation_required": { "const": true, "type": "boolean" }, "next_action": { "const": "confirm_in_protected_form", "type": "string" }, "policy_text": { "type": "string" }, "previous_arrival_window": { "type": "string" }, "previous_service_date": { "type": "string" }, "provider_public_name": { "type": "string" }, "service_date": { "type": "string" }, "timezone": { "type": "string" } }, "required": [ "action", "booking_id", "provider_public_name", "service_date", "arrival_window", "timezone", "policy_text", "confirmation_required", "next_action" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use only when update_service_request returns next_action=render_service_request_form. It opens the one final card containing exact provider options, booking fields, policies and Confirm. Do not ask for contact PII in chat.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "request_id": { "maxLength": 200, "minLength": 10, "type": "string" } }, "required": [ "request_id" ], "type": "object" }, "name": "render_service_request_form", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": {}, "properties": { "field_batch": { "additionalProperties": {}, "properties": { "conditionally_required": { "items": {}, "type": "array" }, "optional": { "items": {}, "type": "array" }, "required": { "items": {}, "type": "array" } }, "required": [ "required", "conditionally_required", "optional" ], "type": "object" }, "known_fields": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "next_action": { "type": "string" }, "request_id": { "type": "string" }, "state_version": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "user_stage": { "enum": [ "intake", "matching", "confirmation" ], "type": "string" }, "vertical_id": { "type": "string" }, "vertical_introduction": { "additionalProperties": false, "properties": { "message": { "type": "string" }, "present_once": { "const": true, "type": "boolean" }, "presentation_order": { "const": "lead_same_message", "type": "string" } }, "required": [ "message", "presentation_order", "present_once" ], "type": "object" } }, "required": [ "request_id", "state_version", "vertical_id", "user_stage", "known_fields", "field_batch", "next_action" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use this only with the one-time approval issued after the user confirms the exact reschedule inside the protected management form. It moves the existing booking to the reserved available time, preserves its prior-time history, frees the old capacity, and sends transactional notifications. Safe retries must reuse the same idempotency key.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "anonymous_session_id": { "maxLength": 200, "minLength": 8, "type": "string" }, "booking_change_authorization_token": { "description": "One-time approval supplied only by the protected management form.", "minLength": 32, "type": "string" }, "correlation_id": { "maxLength": 200, "minLength": 1, "type": "string" }, "idempotency_key": { "maxLength": 200, "minLength": 16, "type": "string" }, "source": { "enum": [ "chatgpt_plugin", "chatgpt_ads", "ai_search", "organic_search", "paid_search", "manual_referral", "provider_referral", "direct", "test" ], "type": "string" } }, "required": [ "booking_change_authorization_token", "idempotency_key", "source", "anonymous_session_id", "correlation_id" ], "type": "object" }, "name": "reschedule_service_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": false, "properties": { "account_linking": { "anyOf": [ { "additionalProperties": false, "properties": { "status": { "const": "already_linked", "type": "string" } }, "required": [ "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "status": { "const": "unavailable", "type": "string" } }, "required": [ "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "expires_at": { "type": "string" }, "linking_session_id": { "type": "string" }, "next_action": { "const": "complete_account_link", "type": "string" }, "status": { "const": "required", "type": "string" } }, "required": [ "status", "linking_session_id", "expires_at", "next_action" ], "type": "object" } ] }, "arrival_window": { "type": "string" }, "booking_id": { "type": "string" }, "provider_public_name": { "type": "string" }, "public_booking_ref": { "type": "string" }, "service_date": { "type": "string" }, "status": { "type": "string" }, "timezone": { "type": "string" } }, "required": [ "booking_id", "provider_public_name", "service_date", "arrival_window", "timezone", "status" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use only from the final protected card when the user selects one exact provider option. It rechecks availability, releases any previous selection, creates one temporary hold for the selected company, and returns its protected booking schema. It does not create a booking.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "expected_state_version": { "maximum": 9007199254740991, "minimum": 1, "type": "integer" }, "idempotency_key": { "maxLength": 200, "minLength": 16, "type": "string" }, "option_key": { "maxLength": 100, "minLength": 10, "type": "string" }, "request_id": { "maxLength": 200, "minLength": 10, "type": "string" } }, "required": [ "request_id", "expected_state_version", "option_key", "idempotency_key" ], "type": "object" }, "name": "select_service_option", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": {}, "properties": { "arrival_window": { "type": "string" }, "next_action": { "const": "complete_protected_form", "type": "string" }, "option_key": { "type": "string" }, "provider_public_name": { "type": "string" }, "request_id": { "type": "string" }, "service_date": { "type": "string" }, "state_version": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "request_id", "state_version", "option_key", "provider_public_name", "service_date", "arrival_window", "next_action" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use this immediately when the user asks to book a supported local service. Pass the complete user intent and every public service detail already stated. The tool determines the vertical, creates the server-side request, and returns a vertical-specific introduction plus either one intake field batch or matching data when intake is already complete. In one customer-facing reply, lead with the introduction and immediately continue with the returned next step; do not wait for acknowledgment. Send provider_hint only when the user explicitly named a company. Do not collect contact PII.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "answers": { "additionalProperties": false, "default": {}, "properties": { "appliance_type": { "description": "Appliance type. Use the exact key appliance_type." }, "brand": { "description": "Brand. Use the exact key brand." }, "model": { "description": "Model. Use the exact key model." }, "problem_description": { "description": "Problem. Use the exact key problem_description." }, "selected_time_key": { "description": "Exact time key returned by MCP Near Me after the user chooses an arrival window.", "minLength": 1, "type": "string" }, "zip_code": { "description": "ZIP. Use the exact key zip_code." } }, "type": "object" }, "idempotency_key": { "maxLength": 200, "minLength": 16, "type": "string" }, "provider_hint": { "anyOf": [ { "maxLength": 100, "minLength": 3, "type": "string" }, { "type": "null" } ] }, "user_intent": { "maxLength": 3000, "minLength": 3, "type": "string" }, "vertical_hint": { "description": "Optional exact live vertical ID. Omit it when uncertain and let the server classify user_intent.", "enum": [ "appliance_repair", "commercial_kitchen_refrigeration_repair" ], "type": "string" } }, "required": [ "user_intent", "idempotency_key" ], "type": "object" }, "name": "start_service_request", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": {}, "properties": { "field_batch": { "additionalProperties": {}, "properties": { "conditionally_required": { "items": {}, "type": "array" }, "optional": { "items": {}, "type": "array" }, "required": { "items": {}, "type": "array" } }, "required": [ "required", "conditionally_required", "optional" ], "type": "object" }, "known_fields": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "next_action": { "type": "string" }, "request_id": { "type": "string" }, "state_version": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "user_stage": { "enum": [ "intake", "matching", "confirmation" ], "type": "string" }, "vertical_id": { "type": "string" }, "vertical_introduction": { "additionalProperties": false, "properties": { "message": { "type": "string" }, "present_once": { "const": true, "type": "boolean" }, "presentation_order": { "const": "lead_same_message", "type": "string" } }, "required": [ "message", "presentation_order", "present_once" ], "type": "object" } }, "required": [ "request_id", "state_version", "vertical_id", "user_stage", "known_fields", "field_batch", "next_action" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } }, { "description": "Use this for the user's partial response to the current intake or matching batch. Pass only values the user supplied plus selected_time_key when chosen. Fields absent from answers are treated as omitted for that prompt batch; optional and conditionally required omissions do not block progress. Always pass the latest expected_state_version.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "answers": { "additionalProperties": false, "default": {}, "properties": { "appliance_type": { "description": "Appliance type. Use the exact key appliance_type." }, "brand": { "description": "Brand. Use the exact key brand." }, "model": { "description": "Model. Use the exact key model." }, "problem_description": { "description": "Problem. Use the exact key problem_description." }, "selected_time_key": { "description": "Exact time key returned by MCP Near Me after the user chooses an arrival window.", "minLength": 1, "type": "string" }, "zip_code": { "description": "ZIP. Use the exact key zip_code." } }, "type": "object" }, "expected_state_version": { "maximum": 9007199254740991, "minimum": 1, "type": "integer" }, "explicitly_unknown_field_ids": { "default": [], "items": { "maxLength": 120, "minLength": 1, "type": "string" }, "type": "array" }, "idempotency_key": { "maxLength": 200, "minLength": 16, "type": "string" }, "request_id": { "maxLength": 200, "minLength": 10, "type": "string" } }, "required": [ "request_id", "expected_state_version", "idempotency_key" ], "type": "object" }, "name": "update_service_request", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "result": { "anyOf": [ { "additionalProperties": {}, "properties": { "field_batch": { "additionalProperties": {}, "properties": { "conditionally_required": { "items": {}, "type": "array" }, "optional": { "items": {}, "type": "array" }, "required": { "items": {}, "type": "array" } }, "required": [ "required", "conditionally_required", "optional" ], "type": "object" }, "known_fields": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "next_action": { "type": "string" }, "request_id": { "type": "string" }, "state_version": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "user_stage": { "enum": [ "intake", "matching", "confirmation" ], "type": "string" }, "vertical_id": { "type": "string" }, "vertical_introduction": { "additionalProperties": false, "properties": { "message": { "type": "string" }, "present_once": { "const": true, "type": "boolean" }, "presentation_order": { "const": "lead_same_message", "type": "string" } }, "required": [ "message", "presentation_order", "present_once" ], "type": "object" } }, "required": [ "request_id", "state_version", "vertical_id", "user_stage", "known_fields", "field_batch", "next_action" ], "type": "object" }, { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "category": { "type": "string" }, "code": { "type": "string" }, "correlation_id": { "type": "string" }, "details": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }, "required": [ "code", "category", "message", "retryable", "correlation_id", "details" ], "type": "object" } }, "required": [ "error" ], "type": "object" } ] } }, "required": [ "result" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:883466316bab0a448808c95a306f6f19999eb41eced51d6b8f5b9bc07777c5f4 | sha256sum