Skip to main content
Glama

Update a service request

update_service_request
Idempotent

Submit supplied answers and any chosen selected_time_key with the latest expected_state_version. Omitted optional/conditional fields do not block progress. Returns the updated next_action and current availability; continue directly without get_service_options. choose_service_provider means ask for a company before opening its protected contact card.

Input Schema

NameRequiredDescriptionDefault
answersNo
request_idYes
idempotency_keyYes
expected_state_versionYes
explicitly_unknown_field_idsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / answers / properties / appliance_type / description
      Previous value: -"Appliance type. Use the exact key appliance_type."New value: +"Appliance type"
    • changedInput schema / properties / answers / properties / brand / description
      Previous value: -"Brand. Use the exact key brand."New value: +"Brand"
    • changedInput schema / properties / answers / properties / model / description
      Previous value: -"Model. Use the exact key model."New value: +"Model"
    • changedInput schema / properties / answers / properties / problem_description / description
      Previous value: -"Problem. Use the exact key problem_description."New value: +"Problem"
    • changedInput schema / properties / answers / properties / zip_code / description
      Previous value: -"ZIP. Use the exact key zip_code."New value: +"ZIP"
  2. Changed3 schema fields changed
    • changedInput schema / properties / answers / additionalProperties
      Previous value: -{}New value: +false
    • addedInput schema / properties / answers / properties
      Added value: +{
      +  "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."
      +  }
      +}
    • removedInput schema / properties / answers / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
  3. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover safety and idempotency (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the bar is lower, and the description adds useful workflow behavior: partial submission is tolerated and it returns the updated next_action plus current availability. It does not disclose what happens on a stale expected_state_version (conflict/retry behavior), which is the main risk of an optimistic-concurrency update.

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?

Three dense sentences, front-loaded with the actionable submission rule and return behavior, with the branching clarification last. Wording is compressed and a bit jargon-heavy ('latest expected_state_version', 'do not block progress'), but nothing is filler.

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?

An output schema exists, so return values need not be detailed, yet the description still tells the agent the next_action and availability come back and that no extra options fetch is needed. For a 5-parameter mutation with nested answers at 0% schema coverage, the remaining gap is the unmentioned explicitly_unknown_field_ids and stale-version conflict handling.

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

Parameters3/5

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

With schema description coverage at 0%, the description must carry parameter meaning; it explains selected_time_key ('any chosen selected_time_key', schema says exact key from the service) and expected_state_version must be the latest, and it implies which fields are conditional. It says nothing about idempotency_key, request_id, or explicitly_unknown_field_ids, so a third of the surface stays unexplained.

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

Purpose4/5

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

The description states a concrete action (submit answers plus an optional selected_time_key against the latest expected_state_version) on a named resource, so an agent can tell it is a state-advancing write on an existing request. It implicitly distinguishes itself from get_service_options, which it tells the caller to skip. It never explicitly contrasts with start_service_request or render_service_request_form, the closest siblings.

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

Usage Guidelines4/5

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

It gives real routing guidance: continue directly without get_service_options, and omitted optional/conditional fields do not block progress, which tells the agent it need not chase every field before calling. 'choose_service_provider means ask for a company before opening its protected contact card' clarifies a downstream branch. No explicit statement of when to prefer this over start_service_request or prepare_service_booking_change.

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