Skip to main content
Glama

TradeBasis US Market Appraisal

TradeBasis US market appraisal

appraise_vehicle
Read-only

A derived TradeBasis asking-price market average. Supply odometerMiles plus either vin or all of year, make, model and trim. Ask the user for missing details; never invent vehicle identity or mileage. VIN-assisted decoding may still require a confirmed trim, fuelType or bodyStyle. If supplied identity conflicts with the VIN, ask the user to verify the VIN and conflicting fields; do not choose silently or retry unchanged. Omit market for nationwide US. Not a trade-in offer or completed-sale value.

Input Schema

NameRequiredDescriptionDefault
vinNoVIN-assisted input: provide the vehicle's 17-character VIN with odometerMiles. Optional for complete manual input. Decoding may leave trim, fuelType or bodyStyle unresolved; ask the user to confirm them, never guess. If decoding fails, confirm the VIN or omit vin and use complete manual input. Supplied identity must agree with the VIN.
makeNoConfirmed vehicle manufacturer. Required without vin; optional with vin, but must agree with the decoded make.
trimNoConfirmed exact trim, including meaningful +, hyphens and powertrain qualifiers. Required without vin. With vin, supply it if decoding does not identify one unambiguous trim; never assume Base or choose from a decoded list.
yearNoConfirmed model year. Required without vin; optional with vin, but must agree with the decoded year. Ask the user if unknown.
modelNoConfirmed US model name. Required without vin; optional with vin, but must agree with the decoded model.
marketNoOptional US state name or two-letter state code, not the user's precise location. Omit for nationwide US.
fuelTypeNoOptional confirmed powertrain/fuel type. Required later if identity is ambiguous. Ask the user rather than selecting a default; must agree with a reported VIN powertrain.
bodyStyleNoOptional confirmed body style: sedan, hatchback, coupe, convertible, SUV, pickup, wagon, minivan or van. Required later if identity is ambiguous; ask the user and do not contradict the VIN.
odometerMilesYesCurrent odometer reading in miles, required for BOTH input paths. Ask the user; never estimate mileage from the VIN or model year. Zero is valid only when actually reported.

Output Schema

NameRequiredDescriptionDefault
messageYes
outcomeYes
retryAtNo
subjectNo
currencyYes
retryableYes
nextActionYes
referralIdNo
marketScopeYes
methodologyYes
actualMarketNoGeography reported for the selected evidence; unknown listing states are explicitly identified.
calculatedAtYes
odometerUnitYes
searchMarketNoBroadest provider search scope; not a claim about every selected listing.
evidenceCountYes
excludedCountYes
schemaVersionYes
requestedMarketYes
yearBracketUsedYes
baseMarketAverageNo
mileageAdjustmentNo
clarificationFieldsNo
automaticRetryAllowedYesRecoverability never authorizes automatic paid searches.
mileageAdjustmentAvailableYes
mileageAdjustedMarketAverageNo
mileageAdjustmentUnavailableReasonNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed22 schema fields changed
    • addedOutput schema / allOf
      Added value: +[
      +  {
      +    "else": {
      +      "properties": {
      +        "baseMarketAverage": false,
      +        "mileageAdjustedMarketAverage": false,
      +        "mileageAdjustment": false,
      +        "mileageAdjustmentAvailable": {
      +          "const": false
      +        },
      +        "mileageAdjustmentUnavailableReason": {
      +          "const": "NO_VALUATION"
      +        }
      +      },
      +      "required": [
      +        "mileageAdjustmentUnavailableReason"
      +      ]
      +    },
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "COMPLETE"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "evidenceCount": {
      +          "minimum": 5
      +        },
      +        "mileageAdjustmentUnavailableReason": {
      +          "enum": [
      +            "SUBJECT_MILEAGE_ZERO",
      +            "COMPARABLE_MILEAGE_UNAVAILABLE"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "subject",
      +        "actualMarket",
      +        "baseMarketAverage"
      +      ]
      +    }
      +  },
      +  {
      +    "else": {
      +      "properties": {
      +        "mileageAdjustedMarketAverage": false,
      +        "mileageAdjustment": false
      +      },
      +      "required": [
      +        "mileageAdjustmentUnavailableReason"
      +      ]
      +    },
      +    "if": {
      +      "properties": {
      +        "mileageAdjustmentAvailable": {
      +          "const": true
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "mileageAdjustmentUnavailableReason": false,
      +        "outcome": {
      +          "const": "COMPLETE"
      +        }
      +      },
      +      "required": [
      +        "mileageAdjustment",
      +        "mileageAdjustedMarketAverage"
      +      ]
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "COMPLETE"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "NONE"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "INVALID_INPUT"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "ASK_USER"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "CLARIFICATION_REQUIRED"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "ASK_USER"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "INPUT_CONFLICT"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "ASK_USER"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "NO_MATCHES"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "REVIEW_INPUT"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "INSUFFICIENT_EVIDENCE"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "REVIEW_INPUT"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "PROVIDER_FAILURE"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "RETRY_LATER"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": true
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "TIMEOUT"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "RETRY_LATER"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": true
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "CANCELLED"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "STOP"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "DISABLED"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "USE_WEBSITE"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "DAILY_LIMIT"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "WAIT_FOR_RESET"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": true
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "ATTEMPT_LIMIT"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "REVIEW_INPUT"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": false
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "BUSY"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "RETRY_LATER"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": true
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "outcome": {
      +          "const": "METER_UNAVAILABLE"
      +        }
      +      }
      +    },
      +    "then": {
      +      "properties": {
      +        "nextAction": {
      +          "properties": {
      +            "type": {
      +              "const": "RETRY_LATER"
      +            }
      +          }
      +        },
      +        "retryable": {
      +          "const": true
      +        }
      +      }
      +    }
      +  }
      +]
    • addedOutput schema / properties / actualMarket / description
      Added value: +"Geography reported for the selected evidence; unknown listing states are explicitly identified."
    • addedOutput schema / properties / actualMarket / minLength
      Added value: +1
    • addedOutput schema / properties / automaticRetryAllowed
      Added value: +{
      +  "const": false,
      +  "description": "Recoverability never authorizes automatic paid searches.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / calculatedAt / format
      Added value: +"date-time"
    • addedOutput schema / properties / marketScope
      Added value: +{
      +  "const": "US",
      +  "type": "string"
      +}
    • addedOutput schema / properties / message / minLength
      Added value: +1
    • addedOutput schema / properties / methodology / minLength
      Added value: +1
    • addedOutput schema / properties / mileageAdjustmentUnavailableReason
      Added value: +{
      +  "enum": [
      +    "NO_VALUATION",
      +    "SUBJECT_MILEAGE_ZERO",
      +    "COMPARABLE_MILEAGE_UNAVAILABLE"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextAction
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "message": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": {
      +      "enum": [
      +        "NONE",
      +        "ASK_USER",
      +        "REVIEW_INPUT",
      +        "RETRY_LATER",
      +        "STOP",
      +        "USE_WEBSITE",
      +        "WAIT_FOR_RESET"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / odometerUnit
      Added value: +{
      +  "const": "miles",
      +  "type": "string"
      +}
    • addedOutput schema / properties / requestedMarket / minLength
      Added value: +1
    • addedOutput schema / properties / retryAt / format
      Added value: +"date-time"
    • addedOutput schema / properties / searchMarket
      Added value: +{
      +  "description": "Broadest provider search scope; not a claim about every selected listing.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / subject / properties / make / minLength
      Added value: +1
    • addedOutput schema / properties / subject / properties / model / minLength
      Added value: +1
    • addedOutput schema / properties / subject / properties / odometerMiles / maximum
      Added value: +600000
    • addedOutput schema / properties / subject / properties / odometerMiles / minimum
      Added value: +0
    • addedOutput schema / properties / subject / properties / trim / minLength
      Added value: +1
    • addedOutput schema / properties / subject / properties / year / minimum
      Added value: +1886
    • changedOutput schema / properties / subject / properties / year / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / required
      Previous value: -[
      -  "schemaVersion",
      -  "outcome",
      -  "message",
      -  "retryable",
      -  "currency",
      -  "requestedMarket",
      -  "calculatedAt",
      -  "evidenceCount",
      -  "mileageAdjustmentAvailable",
      -  "yearBracketUsed",
      -  "excludedCount",
      -  "methodology"
      -]New value: +[
      +  "schemaVersion",
      +  "outcome",
      +  "message",
      +  "retryable",
      +  "automaticRetryAllowed",
      +  "nextAction",
      +  "currency",
      +  "odometerUnit",
      +  "marketScope",
      +  "requestedMarket",
      +  "calculatedAt",
      +  "evidenceCount",
      +  "mileageAdjustmentAvailable",
      +  "yearBracketUsed",
      +  "excludedCount",
      +  "methodology"
      +]
  2. Changed13 schema fields changed
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "year",
      +      "make",
      +      "model",
      +      "trim"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "vin"
      +    ]
      +  }
      +]
    • addedInput schema / properties / bodyStyle / description
      Added value: +"Optional confirmed body style: sedan, hatchback, coupe, convertible, SUV, pickup, wagon, minivan or van. Required later if identity is ambiguous; ask the user and do not contradict the VIN."
    • addedInput schema / properties / fuelType / description
      Added value: +"Optional confirmed powertrain/fuel type. Required later if identity is ambiguous. Ask the user rather than selecting a default; must agree with a reported VIN powertrain."
    • addedInput schema / properties / make / description
      Added value: +"Confirmed vehicle manufacturer. Required without vin; optional with vin, but must agree with the decoded make."
    • addedInput schema / properties / make / minLength
      Added value: +1
    • addedInput schema / properties / model / description
      Added value: +"Confirmed US model name. Required without vin; optional with vin, but must agree with the decoded model."
    • addedInput schema / properties / model / minLength
      Added value: +1
    • addedInput schema / properties / odometerMiles / description
      Added value: +"Current odometer reading in miles, required for BOTH input paths. Ask the user; never estimate mileage from the VIN or model year. Zero is valid only when actually reported."
    • addedInput schema / properties / trim / description
      Added value: +"Confirmed exact trim, including meaningful +, hyphens and powertrain qualifiers. Required without vin. With vin, supply it if decoding does not identify one unambiguous trim; never assume Base or choose from a decoded list."
    • addedInput schema / properties / trim / minLength
      Added value: +1
    • addedInput schema / properties / vin / description
      Added value: +"VIN-assisted input: provide the vehicle's 17-character VIN with odometerMiles. Optional for complete manual input. Decoding may leave trim, fuelType or bodyStyle unresolved; ask the user to confirm them, never guess. If decoding fails, confirm the VIN or omit vin and use complete manual input. Supplied identity must agree with the VIN."
    • addedInput schema / properties / vin / minLength
      Added value: +1
    • addedInput schema / properties / year / description
      Added value: +"Confirmed model year. Required without vin; optional with vin, but must agree with the decoded year. Ask the user if unknown."
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnly, openWorld, and non-destructive behavior. The description adds critical behavioral context: the result is a derived asking-price average rather than a trade-in or sale value, VIN decoding may require user confirmation of trim/fuelType/bodyStyle, and conflicts must be surfaced rather than silently resolved or retried unchanged.

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

Conciseness5/5

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

The description is dense but front-loaded, starting with what the tool returns before moving into input requirements and behavioral constraints. Every sentence addresses a real selection or invocation concern, with no filler.

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?

Given the rich input schema, read-only/open-world annotations, and an existing output schema, the description supplies the remaining decision-relevant context: input path requirements, conflict handling, no-invention rules, and scope exclusions. Nothing needed to call the tool correctly appears to be missing.

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?

Schema description coverage is 100%, and the schema already explains each parameter, including the VIN-assisted versus manual input paths and conflict rules. The description reinforces these semantics but adds little parameter-specific meaning beyond what the schema already documents, so the baseline 3 is appropriate.

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 resource and derived value: a TradeBasis asking-price market average. It also explicitly distinguishes the result from a trade-in offer or completed-sale value, so an agent understands what the tool does and does not produce.

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 gives explicit input paths (odometerMiles plus vin or complete year/make/model/trim), instructs the agent to ask for missing details, forbids inventing identity or mileage, and describes conflict handling when VIN data disagrees. It also states when to omit market for nationwide US.

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