Skip to main content
Glama

save_search

DEMO. Save a car search and get alerted when new cars match. Returns a search_id (keep it; it is the only way to read or cancel the search) and an expiry (default 30 days, renewable). Check for new cars with get_new_matches, or give a callback_url. Shopper email alerts are optional and need explicit consent. On this demo, email sending is switched off (alerts are logged, not sent) and new arrivals are simulated.

Input Schema

NameRequiredDescriptionDefault
zipNoShopper's five-digit ZIP, the center of the search area.
makeNoMake, e.g. Toyota.
trimNoTrim.
modelNoModel, e.g. RAV4.
stateNoTwo-letter state of the selling store.
year_maxNoNewest model year.
year_minNoOldest model year.
conditionNonew, used or cpo.
fuel_typeNoe.g. gasoline, hybrid, electric.
price_maxNoHighest advertised price, USD.
body_styleNoe.g. suv, sedan, truck.
drivetrainNoe.g. awd, fwd.
credit_tierNoexcellent, good, fair or poor, for the payment estimate.
max_mileageNoMost miles.
term_monthsNoLoan term for the payment estimate.
callback_urlNoOptional HTTPS webhook for new matches. Public addresses only; HMAC-signed (X-MoonshotLab-Signature: t=<unix>,v1=<hex HMAC-SHA256 of '<t>.<body>'>).
down_paymentNoDown payment used for the payment estimate, USD.
radius_milesNoMiles from zip (needs zip).
email_consentNotrue only if the shopper explicitly agreed to alert emails.
shopper_emailNoOptional: shopper's email for alert emails. Only with email_consent=true after the shopper agreed. Every email has a one-click unsubscribe.
expires_in_daysNoDays until the search ends (default 30, max 90). Renew any time.
renew_search_idNoPass an existing search_id to renew it instead of saving a new one.
max_monthly_paymentNoHighest estimated monthly payment, USD.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden and does well: it warns that the returned search_id is the only handle for reading or cancelling, states the default 30-day expiry and renewability, and flags demo-mode behavior (emails logged not sent, arrivals simulated). It does not say whether repeated saves with the same filters create duplicates, or that saving may require prior registration via register_agent.

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?

Purpose is front-loaded in the first clause, and each following sentence adds a distinct operational fact (return handle, expiry, alternatives, consent, demo caveat) with no filler. The single dense paragraph could be broken into return/usage/demo segments for faster scanning, which keeps it from a 5.

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 a 23-parameter, zero-required tool with no annotations and no output schema, the description covers the essentials: what is created, what comes back (search_id, expiry), how to consume matches, and the demo-mode caveat. It falls short of complete because it never states what makes a valid search given that every filter is optional, nor how it composes with register_agent or prepare_dealer_handoff.

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 100%, so the baseline is 3, and the description adds real meaning beyond it: it explains the lifetime semantics of expiry (default 30 days, renewable), the purpose of callback_url as an alternative to polling, and the consent precondition on email. It still leaves the 23 optional filters unexplained as a group, so an agent gets no hint about which combination forms a valid search (e.g. radius_miles needing zip).

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?

States a specific verb and resource ('Save a car search and get alerted when new cars match') and names the follow-up sibling get_new_matches. It also clarifies the relationship to cancel_search via the search_id ('the only way to read or cancel the search'), so an agent can place it in the workflow without opening a schema.

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?

Gives clear usage conditions: use get_new_matches to poll for new cars, or supply a callback_url for push; pass renew_search_id to extend an existing search rather than creating a new one; email alerts only with explicit consent. It never mentions search_inventory as the alternative for a one-off search, so the most likely sibling confusion is left unaddressed.

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