MCP 服务器

MCP Near Me

com.voicedispatcher/mcp-near-me
商业与运营 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Matches users with local service providers, gathers booking requirements, presents available options, and supports confirmed appointment creation, rescheduling, and cancellation.

cancel_service_booking
Cancel an approved appointment
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.
可能执行破坏性操作 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_change_authorization_token', 'idempotency_key', 'source', 'anonymous_session_id', 'correlation_id'], 'properties': {'source': {'enum': ['chatgpt_plugin', 'chatgpt_ads', 'ai_search', 'organic_search', 'paid_search', 'manual_referral', 'provider_referral', 'direct', 'test'], 'type': 'string'}, 'correlation_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 16}, 'anonymous_session_id': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'booking_change_authorization_token': {'type': 'string', 'minLength': 32, 'description': 'One-time approval supplied only by the protected management form.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['booking_id', 'provider_public_name', 'service_date', 'arrival_window', 'timezone', 'status'], 'properties': {'status': {'type': 'string'}, 'timezone': {'type': 'string'}, 'booking_id': {'type': 'string'}, 'service_date': {'type': 'string'}, 'arrival_window': {'type': 'string'}, 'account_linking': {'anyOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'already_linked'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'linking_session_id', 'expires_at', 'next_action'], 'properties': {'status': {'type': 'string', 'const': 'required'}, 'expires_at': {'type': 'string'}, 'next_action': {'type': 'string', 'const': 'complete_account_link'}, 'linking_session_id': {'type': 'string'}}, 'additionalProperties': False}]}, 'public_booking_ref': {'type': 'string'}, 'provider_public_name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
complete_account_link
Finish saving booking details
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.
幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['linking_session_id'], 'properties': {'linking_session_id': {'type': 'string', 'maxLength': 200, 'minLength': 10}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['linked'], 'properties': {'linked': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
create_service_booking
Create the confirmed service booking
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.
可能执行破坏性操作 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_authorization_token', 'idempotency_key', 'source', 'anonymous_session_id', 'correlation_id'], 'properties': {'source': {'enum': ['chatgpt_plugin', 'chatgpt_ads', 'ai_search', 'organic_search', 'paid_search', 'manual_referral', 'provider_referral', 'direct', 'test'], 'type': 'string'}, 'campaign_id': {'type': 'string', 'maxLength': 200}, 'correlation_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 16}, 'anonymous_session_id': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'booking_authorization_token': {'type': 'string', 'minLength': 32}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['booking_id', 'provider_public_name', 'service_date', 'arrival_window', 'timezone', 'status'], 'properties': {'status': {'type': 'string'}, 'timezone': {'type': 'string'}, 'booking_id': {'type': 'string'}, 'service_date': {'type': 'string'}, 'arrival_window': {'type': 'string'}, 'account_linking': {'anyOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'already_linked'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'linking_session_id', 'expires_at', 'next_action'], 'properties': {'status': {'type': 'string', 'const': 'required'}, 'expires_at': {'type': 'string'}, 'next_action': {'type': 'string', 'const': 'complete_account_link'}, 'linking_session_id': {'type': 'string'}}, 'additionalProperties': False}]}, 'public_booking_ref': {'type': 'string'}, 'provider_public_name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
get_my_service_booking
Open one of my appointments
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.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id'], 'properties': {'intent': {'enum': ['view', 'reschedule', 'cancel'], 'type': 'string', 'default': 'view'}, 'booking_id': {'type': 'string', 'maxLength': 200, 'minLength': 10}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['booking', 'next_action'], 'properties': {'booking': {'type': 'object', 'required': ['booking_id', 'provider_public_name', 'service_date', 'arrival_window', 'timezone', 'status', 'public_booking_ref', 'is_active', 'is_manageable', 'is_past', 'available_actions'], 'properties': {'status': {'type': 'string'}, 'is_past': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'is_active': {'type': 'boolean'}, 'booking_id': {'type': 'string'}, 'service_date': {'type': 'string'}, 'is_manageable': {'type': 'boolean'}, 'arrival_window': {'type': 'string'}, 'available_actions': {'type': 'array', 'items': {'enum': ['reschedule', 'cancel'], 'type': 'string'}}, 'public_booking_ref': {'type': 'string'}, 'provider_public_name': {'type': 'string'}}, 'additionalProperties': False}, 'next_action': {'enum': ['view_complete', 'choose_available_time', 'review_cancellation'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
get_service_options
Get current service options
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.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'maxLength': 200, 'minLength': 10}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['request_id', 'state_version', 'vertical_id', 'user_stage', 'known_fields', 'field_batch', 'next_action'], 'properties': {'request_id': {'type': 'string'}, 'user_stage': {'enum': ['intake', 'matching', 'confirmation'], 'type': 'string'}, 'field_batch': {'type': 'object', 'required': ['required', 'conditionally_required', 'optional'], 'properties': {'optional': {'type': 'array', 'items': {}}, 'required': {'type': 'array', 'items': {}}, 'conditionally_required': {'type': 'array', 'items': {}}}, 'additionalProperties': {}}, 'next_action': {'type': 'string'}, 'vertical_id': {'type': 'string'}, 'known_fields': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'state_version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'vertical_introduction': {'type': 'object', 'required': ['message', 'presentation_order', 'present_once'], 'properties': {'message': {'type': 'string'}, 'present_once': {'type': 'boolean', 'const': True}, 'presentation_order': {'type': 'string', 'const': 'lead_same_message'}}, 'additionalProperties': False}}, 'additionalProperties': {}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
list_my_service_bookings
List my appointments
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.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'status': {'type': 'string', 'maxLength': 40, 'description': "Use 'active' for cancellation or rescheduling. It returns only actionable appointments whose arrival window has not ended; omit to include history."}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['bookings', 'count', 'active_count'], 'properties': {'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'bookings': {'type': 'array', 'items': {'type': 'object', 'required': ['booking_id', 'provider_public_name', 'service_date', 'arrival_window', 'timezone', 'status', 'public_booking_ref', 'is_active', 'is_manageable', 'is_past'], 'properties': {'status': {'type': 'string'}, 'is_past': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'is_active': {'type': 'boolean'}, 'booking_id': {'type': 'string'}, 'service_date': {'type': 'string'}, 'is_manageable': {'type': 'boolean'}, 'arrival_window': {'type': 'string'}, 'public_booking_ref': {'type': 'string'}, 'provider_public_name': {'type': 'string'}}, 'additionalProperties': False}}, 'active_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
prepare_service_booking_change
Review an exact appointment change
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.
幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action', 'idempotency_key'], 'properties': {'action': {'enum': ['reschedule', 'cancel'], 'type': 'string'}, 'booking_id': {'type': 'string', 'maxLength': 200, 'minLength': 10}, 'new_slot_id': {'type': 'string', 'minLength': 32}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 16}, 'management_context_token': {'type': 'string', 'minLength': 32, 'description': 'Opaque short-lived context supplied only by the protected management form.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['action', 'booking_id', 'provider_public_name', 'service_date', 'arrival_window', 'timezone', 'policy_text', 'confirmation_required', 'next_action'], 'properties': {'action': {'enum': ['reschedule', 'cancel'], 'type': 'string'}, 'timezone': {'type': 'string'}, 'booking_id': {'type': 'string'}, 'next_action': {'type': 'string', 'const': 'confirm_in_protected_form'}, 'policy_text': {'type': 'string'}, 'service_date': {'type': 'string'}, 'arrival_window': {'type': 'string'}, 'provider_public_name': {'type': 'string'}, 'confirmation_required': {'type': 'boolean', 'const': True}, 'previous_service_date': {'type': 'string'}, 'previous_arrival_window': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
render_service_request_form
Open the final service confirmation card
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.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'maxLength': 200, 'minLength': 10}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['request_id', 'state_version', 'vertical_id', 'user_stage', 'known_fields', 'field_batch', 'next_action'], 'properties': {'request_id': {'type': 'string'}, 'user_stage': {'enum': ['intake', 'matching', 'confirmation'], 'type': 'string'}, 'field_batch': {'type': 'object', 'required': ['required', 'conditionally_required', 'optional'], 'properties': {'optional': {'type': 'array', 'items': {}}, 'required': {'type': 'array', 'items': {}}, 'conditionally_required': {'type': 'array', 'items': {}}}, 'additionalProperties': {}}, 'next_action': {'type': 'string'}, 'vertical_id': {'type': 'string'}, 'known_fields': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'state_version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'vertical_introduction': {'type': 'object', 'required': ['message', 'presentation_order', 'present_once'], 'properties': {'message': {'type': 'string'}, 'present_once': {'type': 'boolean', 'const': True}, 'presentation_order': {'type': 'string', 'const': 'lead_same_message'}}, 'additionalProperties': False}}, 'additionalProperties': {}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
reschedule_service_booking
Reschedule an approved appointment
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.
可能执行破坏性操作 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_change_authorization_token', 'idempotency_key', 'source', 'anonymous_session_id', 'correlation_id'], 'properties': {'source': {'enum': ['chatgpt_plugin', 'chatgpt_ads', 'ai_search', 'organic_search', 'paid_search', 'manual_referral', 'provider_referral', 'direct', 'test'], 'type': 'string'}, 'correlation_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 16}, 'anonymous_session_id': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'booking_change_authorization_token': {'type': 'string', 'minLength': 32, 'description': 'One-time approval supplied only by the protected management form.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['booking_id', 'provider_public_name', 'service_date', 'arrival_window', 'timezone', 'status'], 'properties': {'status': {'type': 'string'}, 'timezone': {'type': 'string'}, 'booking_id': {'type': 'string'}, 'service_date': {'type': 'string'}, 'arrival_window': {'type': 'string'}, 'account_linking': {'anyOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'already_linked'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'linking_session_id', 'expires_at', 'next_action'], 'properties': {'status': {'type': 'string', 'const': 'required'}, 'expires_at': {'type': 'string'}, 'next_action': {'type': 'string', 'const': 'complete_account_link'}, 'linking_session_id': {'type': 'string'}}, 'additionalProperties': False}]}, 'public_booking_ref': {'type': 'string'}, 'provider_public_name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
select_service_option
Select a company in the final card
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.
幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id', 'expected_state_version', 'option_key', 'idempotency_key'], 'properties': {'option_key': {'type': 'string', 'maxLength': 100, 'minLength': 10}, 'request_id': {'type': 'string', 'maxLength': 200, 'minLength': 10}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 16}, 'expected_state_version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['request_id', 'state_version', 'option_key', 'provider_public_name', 'service_date', 'arrival_window', 'next_action'], 'properties': {'option_key': {'type': 'string'}, 'request_id': {'type': 'string'}, 'next_action': {'type': 'string', 'const': 'complete_protected_form'}, 'service_date': {'type': 'string'}, 'state_version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'arrival_window': {'type': 'string'}, 'provider_public_name': {'type': 'string'}}, 'additionalProperties': {}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
start_service_request
Start a service request
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.
幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_intent', 'idempotency_key'], 'properties': {'answers': {'type': 'object', 'default': {}, 'properties': {'brand': {'description': 'Brand. Use the exact key brand.'}, 'model': {'description': 'Model. Use the exact key model.'}, 'zip_code': {'description': 'ZIP. Use the exact key zip_code.'}, 'appliance_type': {'description': 'Appliance type. Use the exact key appliance_type.'}, 'selected_time_key': {'type': 'string', 'minLength': 1, 'description': 'Exact time key returned by MCP Near Me after the user chooses an arrival window.'}, 'problem_description': {'description': 'Problem. Use the exact key problem_description.'}}, 'additionalProperties': False}, 'user_intent': {'type': 'string', 'maxLength': 3000, 'minLength': 3}, 'provider_hint': {'anyOf': [{'type': 'string', 'maxLength': 100, 'minLength': 3}, {'type': 'null'}]}, 'vertical_hint': {'enum': ['appliance_repair', 'commercial_kitchen_refrigeration_repair'], 'type': 'string', 'description': 'Optional exact live vertical ID. Omit it when uncertain and let the server classify user_intent.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 16}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['request_id', 'state_version', 'vertical_id', 'user_stage', 'known_fields', 'field_batch', 'next_action'], 'properties': {'request_id': {'type': 'string'}, 'user_stage': {'enum': ['intake', 'matching', 'confirmation'], 'type': 'string'}, 'field_batch': {'type': 'object', 'required': ['required', 'conditionally_required', 'optional'], 'properties': {'optional': {'type': 'array', 'items': {}}, 'required': {'type': 'array', 'items': {}}, 'conditionally_required': {'type': 'array', 'items': {}}}, 'additionalProperties': {}}, 'next_action': {'type': 'string'}, 'vertical_id': {'type': 'string'}, 'known_fields': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'state_version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'vertical_introduction': {'type': 'object', 'required': ['message', 'presentation_order', 'present_once'], 'properties': {'message': {'type': 'string'}, 'present_once': {'type': 'boolean', 'const': True}, 'presentation_order': {'type': 'string', 'const': 'lead_same_message'}}, 'additionalProperties': False}}, 'additionalProperties': {}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
update_service_request
Update a service request
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.
幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id', 'expected_state_version', 'idempotency_key'], 'properties': {'answers': {'type': 'object', 'default': {}, 'properties': {'brand': {'description': 'Brand. Use the exact key brand.'}, 'model': {'description': 'Model. Use the exact key model.'}, 'zip_code': {'description': 'ZIP. Use the exact key zip_code.'}, 'appliance_type': {'description': 'Appliance type. Use the exact key appliance_type.'}, 'selected_time_key': {'type': 'string', 'minLength': 1, 'description': 'Exact time key returned by MCP Near Me after the user chooses an arrival window.'}, 'problem_description': {'description': 'Problem. Use the exact key problem_description.'}}, 'additionalProperties': False}, 'request_id': {'type': 'string', 'maxLength': 200, 'minLength': 10}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 16}, 'expected_state_version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'explicitly_unknown_field_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'default': []}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'required': ['request_id', 'state_version', 'vertical_id', 'user_stage', 'known_fields', 'field_batch', 'next_action'], 'properties': {'request_id': {'type': 'string'}, 'user_stage': {'enum': ['intake', 'matching', 'confirmation'], 'type': 'string'}, 'field_batch': {'type': 'object', 'required': ['required', 'conditionally_required', 'optional'], 'properties': {'optional': {'type': 'array', 'items': {}}, 'required': {'type': 'array', 'items': {}}, 'conditionally_required': {'type': 'array', 'items': {}}}, 'additionalProperties': {}}, 'next_action': {'type': 'string'}, 'vertical_id': {'type': 'string'}, 'known_fields': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'state_version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'vertical_introduction': {'type': 'object', 'required': ['message', 'presentation_order', 'present_once'], 'properties': {'message': {'type': 'string'}, 'present_once': {'type': 'boolean', 'const': True}, 'presentation_order': {'type': 'string', 'const': 'lead_same_message'}}, 'additionalProperties': False}}, 'additionalProperties': {}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'category', 'message', 'retryable', 'correlation_id', 'details'], 'properties': {'code': {'type': 'string'}, 'details': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'message': {'type': 'string'}, 'category': {'type': 'string'}, 'retryable': {'type': 'boolean'}, 'correlation_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
已添加
cancel_service_booking
2026年9月17日 12:38
已添加
reschedule_service_booking
2026年9月17日 12:38
已添加
prepare_service_booking_change
2026年9月17日 12:38
已添加
get_my_service_booking
2026年9月17日 12:38
已添加
list_my_service_bookings
2026年9月17日 12:38
已添加
complete_account_link
2026年9月17日 12:38
已添加
create_service_booking
2026年9月17日 12:38
已添加
select_service_option
2026年9月17日 12:38
已添加
render_service_request_form
2026年9月17日 12:38
已添加
get_service_options
2026年9月17日 12:38
已添加
update_service_request
2026年9月17日 12:38
已添加
start_service_request
2026年9月17日 12:38