Skip to main content
Glama

Create vehicle

create_vehicle

Adds a vehicle to the connected user’s TuneWorks garage so setup, session, modification, maintenance, and optimization context can be attached. Deletes are not supported.

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": {
      "make": "<make>",
      "model": "<model>",
      "year": "<year>",
      "purpose": "<purpose>",
      "displacement": "<displacement>",
      "engineType": "<engineType>",
      "aspiration": "<aspiration>",
      "cylindersOrRotors": "<cylindersOrRotors>",
      "fuel": "<fuel>",
      "fuelRating": "<fuelRating>"
    },
    "name": "create_vehicle"
  }
}

Input Schema

NameRequiredDescriptionDefault
vinNo
fuelYes
makeYes
yearYes
modelYes
ownerNoVehicle owner. Defaults to the connected TuneWorks user when omitted.
mileageNo
purposeYesTuneWorks vehicle purpose; Track day / HPDE represents a general track car.
subModelNo
aspirationYes
engineTypeYes
fuelRatingYes
engineHoursNo
engineModelNo
displacementYes
modificationsNo
transmissionTypeNo
cylindersOrRotorsYes
transmissionSpeedsNo

Output Schema

NameRequiredDescriptionDefault
urlNo
listNo
toolYesTuneWorks MCP tool name that produced this result.
userNo
setupNo
statusYesStable result status such as ok, created, updated, sent, auth_required, or confirmation_required.
messageNo
outcomeNoOptional domain outcome for an otherwise successful read.
sessionNo
trackerNo
vehicleNo
activationNo
modificationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / owner / description
      Added value: +"Vehicle owner. Defaults to the connected TuneWorks user when omitted."
    • changedInput schema / required
      Previous value: -[
      -  "make",
      -  "model",
      -  "year",
      -  "purpose",
      -  "owner",
      -  "displacement",
      -  "engineType",
      -  "aspiration",
      -  "cylindersOrRotors",
      -  "fuel",
      -  "fuelRating"
      -]New value: +[
      +  "make",
      +  "model",
      +  "year",
      +  "purpose",
      +  "displacement",
      +  "engineType",
      +  "aspiration",
      +  "cylindersOrRotors",
      +  "fuel",
      +  "fuelRating"
      +]
    • changedOutput schema / description
      Previous value: -"TuneWorks app object create/update result with the saved object and connected user."New value: +"TuneWorks app object create/update result with the saved object, connected user, and next activation actions."
    • addedOutput schema / properties / activation
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "goal": {
      +      "const": "optimize_vehicle",
      +      "type": "string"
      +    },
      +    "missingData": {
      +      "items": {
      +        "enum": [
      +          "vehicle",
      +          "accessible_vehicle_id",
      +          "baseline_setup",
      +          "driving_session",
      +          "vehicle_build_state",
      +          "vehicle_logs",
      +          "structured_vehicle_modifications"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array",
      +      "uniqueItems": true
      +    },
      +    "nextActions": {
      +      "items": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "arguments": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "vehicleId": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "vehicleId"
      +                ],
      +                "type": "object"
      +              },
      +              "optional": {
      +                "type": "boolean"
      +              },
      +              "reason": {
      +                "type": "string"
      +              },
      +              "requiredInputs": {
      +                "items": {
      +                  "enum": [
      +                    "year",
      +                    "make",
      +                    "model",
      +                    "purpose",
      +                    "displacement",
      +                    "engineType",
      +                    "aspiration",
      +                    "cylindersOrRotors",
      +                    "fuel",
      +                    "fuelRating",
      +                    "setupName",
      +                    "setupDate",
      +                    "sessionDate",
      +                    "sessionFormat",
      +                    "modifications",
      +                    "category",
      +                    "system",
      +                    "status",
      +                    "brand",
      +                    "partName"
      +                  ],
      +                  "type": "string"
      +                },
      +                "type": "array",
      +                "uniqueItems": true
      +              },
      +              "tool": {
      +                "enum": [
      +                  "create_vehicle",
      +                  "list_vehicles",
      +                  "get_vehicle_context",
      +                  "create_setup",
      +                  "create_session",
      +                  "update_vehicle",
      +                  "create_vehicle_modification"
      +                ],
      +                "type": "string"
      +              },
      +              "type": {
      +                "const": "tool",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "type",
      +              "tool",
      +              "reason"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "action": {
      +                "enum": [
      +                  "select_vehicle",
      +                  "optimize_vehicle"
      +                ],
      +                "type": "string"
      +              },
      +              "optional": {
      +                "type": "boolean"
      +              },
      +              "reason": {
      +                "type": "string"
      +              },
      +              "type": {
      +                "const": "assistant",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "type",
      +              "action",
      +              "reason"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "type": "array"
      +    },
      +    "recommendedData": {
      +      "items": {
      +        "enum": [
      +          "vehicle",
      +          "accessible_vehicle_id",
      +          "baseline_setup",
      +          "driving_session",
      +          "vehicle_build_state",
      +          "vehicle_logs",
      +          "structured_vehicle_modifications"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array",
      +      "uniqueItems": true
      +    },
      +    "requestedVehicleId": {
      +      "type": "string"
      +    },
      +    "stage": {
      +      "enum": [
      +        "empty_garage",
      +        "select_vehicle",
      +        "vehicle_selected",
      +        "vehicle_created",
      +        "collecting_baseline_data",
      +        "ready_to_optimize"
      +      ],
      +      "type": "string"
      +    },
      +    "vehicleId": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "goal",
      +    "stage",
      +    "missingData",
      +    "recommendedData",
      +    "nextActions"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / modification
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / outcome
      Added value: +{
      +  "description": "Optional domain outcome for an otherwise successful read.",
      +  "enum": [
      +    "no_vehicles",
      +    "vehicle_not_found",
      +    "vehicle_selection_required",
      +    "no_data"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / status / description
      Previous value: -"Result status such as ok, created, updated, sent, auth_required, or confirmation_required."New value: +"Stable result status such as ok, created, updated, sent, auth_required, or confirmation_required."
  2. First observed

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare a non-read-only, non-destructive, closed-world mutation, so the bar is lower. The description contributes real context: the record is scoped to the connected user's garage and there is no delete counterpart. It omits duplicate handling, ownership constraints beyond the default, and any required-field prerequisites.

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?

Two tight sentences with the creation scope front-loaded and the deletion caveat second. Nothing is padded, though the list of attached entity types is somewhat incidental detail.

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

Completeness2/5

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

With 19 parameters and near-zero schema prose, an agent gets no help on what the required engine/drivetrain fields expect or how enums like aspiration and purpose should be chosen. The output schema covers return values, but the input-side burden is left almost entirely unmet.

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

Parameters2/5

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

Schema description coverage is only 11% across 19 parameters (10 required, 5 enums), so the description must compensate and it does not — it mentions no fields at all. Only 'owner' has schema prose, and the description's 'connected user's garage' phrasing merely restates that default.

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?

States a specific verb and resource ('Adds a vehicle to the connected user's TuneWorks garage') and explains the downstream value (setups, sessions, modifications, maintenance). The verb 'Adds' distinguishes it from update_vehicle/archive_vehicle, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Implies this is the creation path for a new garage vehicle and adds the constraint 'Deletes are not supported,' which nudges toward archive_vehicle for removal. However, it never states when to use this versus update_vehicle or what happens if the vehicle already exists.

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