Skip to main content
Glama

Send a quote request

submit_quote_request
DestructiveIdempotent

After the customer explicitly agrees, save their service requirements and contact details and send a notification to the business's configured email or opted-in SMS destination. This requests a business response, not a price commitment, booking or payment. Use context from request_service. Reuse the same idempotency_key AND details to check an uncertain submission; never automatically start a new request. Exclude medical, payment-card and authentication information.

Input Schema

NameRequiredDescriptionDefault
consentYesTrue only after the customer explicitly agrees to send these contact details and this request to the named business
detailsYesBrief service requirements; exclude sensitive medical, financial and authentication information
serviceYesService the customer wants a quote for
business_idYesThe exact provider_business_id (public business slug) returned by request_service
contact_nameNo
contact_emailNo
contact_phoneNo
context_tokenYesOpaque business context from request_service; pass unchanged
idempotency_keyYesA UUID for this request; reuse unchanged when checking or retrying an uncertain submission
service_addressNoAddress where the customer needs the service, if relevant
preferred_windowNoCustomer's preferred day and time; this is a request, not a confirmed appointment

Output Schema

NameRequiredDescriptionDefault
codeNo
statusYes
messageYes
replayedNo
request_idYes
status_tokenNoPass to get_request_status to read the business's answer. For this caller only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / status_token
      Added value: +{
      +  "description": "Pass to get_request_status to read the business's answer. For this caller only.",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / preferred_window
      Added value: +{
      +  "description": "Customer's preferred day and time; this is a request, not a confirmed appointment",
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / service_address
      Added value: +{
      +  "description": "Address where the customer needs the service, if relevant",
      +  "maxLength": 200,
      +  "minLength": 1,
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / contact_email / pattern
      Previous value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
  4. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the mutation/idempotency/open-world profile, but the description adds what the annotations cannot: that a real notification is dispatched to a human-facing business channel, that a submission implies no pricing or booking commitment, and the exact idempotency-replay procedure for uncertain submissions. It also states a data-handling constraint (exclude medical, payment-card, authentication information) that complements destructiveHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences, each carrying distinct load: trigger and effect, scope disclaimer, prerequisite, retry protocol, exclusion rule. The ordering is front-loaded and correct, but the semicolon-chained retry sentence and the dense final clause slightly burden fast parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, 6-required write tool with an output schema, the description covers the critical decision points: consent gate, prerequisite token, idempotent retry, and PII exclusions. It leaves silent the optional contact_* fields and how they interact with the business's notification destination, which is the main remaining ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 73%, and the description reinforces the two most failure-prone fields by explaining the idempotency_key reuse contract and the sanctioned content of 'details' (excluding sensitive data). It adds meaning beyond the schema for consent ('explicitly agrees') and context_token sourcing. It does not address the optional contact_name / contact_phone fields, which lack schema descriptions, so a small gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses concrete verbs and objects: save the customer's service requirements and contact details, then notify the business via its configured email or opted-in SMS. It explicitly bounds the outcome as 'a business response, not a price commitment, booking or payment,' which separates it from confirm_booking, create_booking_payment_link, and get_quote without the agent needing to inspect siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the gating condition ('after the customer explicitly agrees'), the prerequisite source ('use context from request_service'), and the retry rule ('reuse the same idempotency_key AND details to check an uncertain submission; never automatically start a new request'). When-to-use, when-not-to-advance, and the recovery path are all explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources