List models
list_modelsList models for a brand (pass brand_id from list_brands, or a brand name) with each model's catalog id and active listing count.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | ||
| brand_id | No | ||
| category | No | Cars |
list_modelsList models for a brand (pass brand_id from list_brands, or a brand name) with each model's catalog id and active listing count.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | ||
| brand_id | No | ||
| category | No | Cars |
Changes observed during successful MCP inspections.
Input schema / properties / brand / anyOfPrevious value: -[
- {
- "type": "string"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "maxLength": 80,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]Input schema / properties / brand_id / anyOfPrevious value: -[
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "maximum": 9223372036854776000,
+ "minimum": 1,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+]Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds useful non-obvious return context (catalog id plus active listing count) which is valuable with no output schema, but says nothing about filtering behavior when no brand is supplied or about result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the scoping verb first and the payload detail trailing. The parenthetical is slightly interruptive but carries real information, so there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter list tool with no output schema, the description covers the key input path and the return shape. The unaddressed `category` default and the absence of any result-size/pagination note are the only meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies the brand vs brand_id distinction (id sourced from list_brands, or a name), which is the genuinely ambiguous part, but the third parameter `category` and its Cars/Motorcycles enum are never mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List models for a brand") and even describes the payload (catalog id and active listing count). It implicitly slots into the brand hierarchy (list_brands -> models -> versions), though it never names list_versions or get_alternative_models as alternatives, so sibling differentiation is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context: pass brand_id from list_brands, or a brand name. This establishes the prerequisite call chain an agent needs. It stops short of saying when-not to use it (e.g. vs list_versions or get_alternative_models), so it is clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.