Skip to main content
Glama

Otovo

Preview a change

preview_change
Read-onlyIdempotent

Prepares one change and returns a plain summary of exactly what it would do, with a preview_id. Changes nothing: the change happens only when that preview_id is confirmed. Without an account: book_appointment (code; body service_type, selected_slot exactly as booking_options returned it, location_id, property_details {someone_home_during_service, ok_to_proceed_without_customer, pets_on_property, gated_community, gate_code, dog_access_considerations, access_instructions}, expected_total_cents), reschedule_appointment (code; body selected_slot from reschedule_options), cancel_appointment (code; body reason), request_quote (body contact {first_name, last_name, email, phone, sms_consent: true when the customer agreed to texts, consent_label}, address {line1, line2, city, state, zip, country}, service_title in the customer's words, panel_count, notes, source) and request_inspection (body: the contact and address the times were found for, service_type, selected_slot, notes). A connected customer passes site_id instead of code for the three appointment changes, and also has: save_access_details (body property_details), reject_quote (id; body reason, lost_reason), connect_system (provider; body fields: the fields the connect_system view lists for that provider), disconnect_system (provider), set_energy_rate (body currency, importRatePerKwh, exportRatePerKwh as decimal strings), change_subscription_tier (body targetTier, billingInterval), cancel_subscription (body cancelAtPeriodEnd), resume_subscription, withdraw_document (id), update_notification_settings (body: the settings to change, as notification_settings names them), request_lease_offer (id; body language), accept_lease_offer (id; body quote_id). payment_method, payment, sign_document, lease_bank_account and subscribe are not carried out by this connector: previewing one returns the portal link where the customer does it themselves. Serves every Otovo region: without a connected account the scheduling code, preview or address selects the region; a connected customer is served where their account lives.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "change": "<change>"
    },
    "name": "preview_change"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNoThe record the change is about: a quote (reject_quote), document envelope (withdraw_document) or lease project (request_lease_offer, accept_lease_offer).
bodyNoThe change's details, exactly as the tool description names them for that change.
codeNoWithout an account: the customer's scheduling code, the last part of the otovo.com/book/... link they were sent. It cannot be looked up from other details.
changeYesThe one change to preview. See the tool description for what each takes in body.
site_idNoConnected customers: one of their own sites, a site_id from view sites. Needed when they have more than one.
providerNoconnect_system, disconnect_system: the provider key from get_my_otovo view connect_system.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the read-only and non-destructive annotations, the description explains the key behavioral contract: no state changes occur, a preview_id is returned, and the actual change only happens after confirmation. It also discloses that some requested changes are not carried out by the connector and instead return a portal link, and it describes regional routing behavior for account and non-account users.

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?

The core purpose and safety contract are front-loaded, and the long enumeration is necessary because the tool multiplexes many change types. The middle section is dense and run-on, but most of its length is functional rather than redundant.

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

Completeness5/5

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

For a complex preview tool with 22 possible change types and no output schema, the description is unusually complete. It covers return behavior, confirmation flow, per-change body requirements, account-dependent routing, and unsupported changes that redirect to the portal.

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

Parameters5/5

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

Schema coverage is already 100%, but the description adds substantial meaning beyond the schema by enumerating the exact body fields required for each change enum value. This is especially important because the body parameter is otherwise a generic object, and the description compensates by mapping each change to its expected payload.

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 states a specific action and outcome: it prepares one change, returns a plain summary, and issues a preview_id. It clearly distinguishes itself from the actual mutation by saying nothing changes until confirmation, and the broad change enum is framed as previewing one selected change.

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 clearly implies the intended workflow: call preview_change first, then confirm the returned preview_id to perform the change. It also explains what happens for unsupported changes such as payment or signing, which helps route users correctly. It does not explicitly name confirm_change or spell out when not to use this tool, so it falls short of full explicit alternative guidance.

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.