# TuneWorks (io.github.chrismore/tuneworks): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.chrismore%2Ftuneworks/versions/latest)
- Connected to: https://tuneworks.ai/mcp
- Repository: https://github.com/chrismore/tuneworks
- Scoring rules: v2
- Tools: 100
- Average: 41.3 / 100 (Cloudy)
- Near-identical pairs: 11

This page shows how TuneWorks (io.github.chrismore/tuneworks)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 100 tools. Above 40, models choose less accurately.

## Tools

- `list_custom_tracks`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, limit.
  - Minor: String arguments with no constraint or example: query.
  - Minor: No `required` list, so every argument is optional.
- `create_team`: 26 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name.
  - Minor: String arguments with no constraint or example: name.
- `create_vehicle_make`: 26 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: make, teamId.
  - Minor: String arguments with no constraint or example: make, teamId.
- `create_vehicle_modification`: 26 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, category, system, status, purpose, brand, partName, partNumber, quantity, datePurchased, dateInstalled, installedByName, cost, laborCost, purchasedFrom, installMileage, installHours, removedAt, replacedModId, notes.
  - Minor: String arguments with no constraint or example: vehicleId, category, system, purpose, brand, partName, partNumber, datePurchased, dateInstalled, installedByName, purchasedFrom, installMileage, installHours, removedAt, replacedModId, notes.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `get_custom_track`: 26 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: trackId.
  - Minor: String arguments with no constraint or example: trackId.
  - Minor: Required identifiers whose description does not say where the value comes from: trackId. Name the tool or the place that returns it, or models look it up first.
- `get_vehicle_modification`: 26 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, modificationId.
  - Minor: String arguments with no constraint or example: vehicleId, modificationId.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, modificationId. Name the tool or the place that returns it, or models look it up first.
- `list_favorite_charts`: 26 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId.
  - Minor: String arguments with no constraint or example: vehicleId.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `list_vehicle_modifications`: 26 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, limit.
  - Minor: String arguments with no constraint or example: vehicleId.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `rename_team`: 26 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: teamId, name.
  - Minor: String arguments with no constraint or example: teamId, name.
  - Minor: Required identifiers whose description does not say where the value comes from: teamId. Name the tool or the place that returns it, or models look it up first.
- `update_vehicle_make`: 26 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: id, make, teamId.
  - Minor: String arguments with no constraint or example: make, teamId.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `update_vehicle_modification`: 26 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, modificationId, category, system, status, purpose, brand, partName, partNumber, quantity, datePurchased, dateInstalled, installedByName, cost, laborCost, purchasedFrom, installMileage, installHours, removedAt, replacedModId, notes.
  - Minor: String arguments with no constraint or example: vehicleId, modificationId, category, system, purpose, brand, partName, partNumber, datePurchased, dateInstalled, installedByName, purchasedFrom, installMileage, installHours, removedAt, replacedModId, notes.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, modificationId. Name the tool or the place that returns it, or models look it up first.
- `update_team_member_role`: 28 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: teamId, userId, role.
  - Minor: String arguments with no constraint or example: teamId.
  - Minor: Required identifiers whose description does not say where the value comes from: teamId, userId. Name the tool or the place that returns it, or models look it up first.
- `create_session`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, sessionFormat, setupId, dataLogIds, eventType, eventName, location, track, drivers, bestTime, performanceFigures, additionalSessionDetails, overallBalance, braking, cornerEntry, midCorner, cornerExit, traction, worked, didNotWork, suggestedSetupChange.
  - Minor: String arguments with no constraint or example: vehicleId, setupId, eventName, location, track, drivers, bestTime, performanceFigures, additionalSessionDetails, overallBalance, braking, cornerEntry, midCorner, cornerExit, traction, worked, didNotWork, suggestedSetupChange.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `update_session`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: sessionId, vehicleId, sessionFormat, setupId, dataLogIds, eventType, eventName, location, track, drivers, bestTime, performanceFigures, additionalSessionDetails, overallBalance, braking, cornerEntry, midCorner, cornerExit, traction, worked, didNotWork, suggestedSetupChange.
  - Minor: String arguments with no constraint or example: sessionId, vehicleId, setupId, eventName, location, track, drivers, bestTime, performanceFigures, additionalSessionDetails, overallBalance, braking, cornerEntry, midCorner, cornerExit, traction, worked, didNotWork, suggestedSetupChange.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `delete_custom_track`: 31 / 100
  - Major: The description only restates the name (8 words).
  - Major: Arguments without a description: trackId, confirmed.
  - Minor: String arguments with no constraint or example: trackId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: trackId. Name the tool or the place that returns it, or models look it up first.
- `delete_team`: 31 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Arguments without a description: teamId, confirmed.
  - Minor: String arguments with no constraint or example: teamId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: teamId. Name the tool or the place that returns it, or models look it up first.
- `remove_team_member`: 31 / 100
  - Major: The description only restates the name (9 words).
  - Major: Arguments without a description: teamId, userId, confirmed.
  - Minor: String arguments with no constraint or example: teamId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: teamId, userId. Name the tool or the place that returns it, or models look it up first.
- `revoke_team_invite`: 31 / 100
  - Major: The description only restates the name (8 words).
  - Major: Arguments without a description: teamId, inviteId, confirmed.
  - Minor: String arguments with no constraint or example: teamId, inviteId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: teamId, inviteId. Name the tool or the place that returns it, or models look it up first.
- `update_user_preferences`: 31 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: preferences.
- `update_shop_list`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: listId, title, note, vehicleId, setupId, sessionId, status, items, items[].label, items[].section, items[].quantity, items[].status, items[].sortOrder, categories, categories[].name, categories[].sortOrder.
  - Minor: String arguments with no constraint or example: listId, title, note, vehicleId, setupId, sessionId, items[].label, items[].section, categories[].name.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `complete_maintenance`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, trackerId, completedAt, mileage, engineHours, trackEvents, logCount, notes.
  - Minor: String arguments with no constraint or example: vehicleId, trackerId, completedAt, notes.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, trackerId. Name the tool or the place that returns it, or models look it up first.
- `copy_session`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: sessionId.
  - Minor: String arguments with no constraint or example: sessionId.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `create_chart_channel_set`: 33 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, channels.
  - Minor: String arguments with no constraint or example: name.
- `get_shop_list`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: listId.
  - Minor: String arguments with no constraint or example: listId.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `get_vehicle_map_config`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId.
  - Minor: String arguments with no constraint or example: vehicleId.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `update_custom_track`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: trackId, venue, city, region, country, countryCode, teamId.
  - Minor: String arguments with no constraint or example: trackId, venue, city, region, country, countryCode, teamId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: trackId. Name the tool or the place that returns it, or models look it up first.
- `update_unit_settings`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: settings, settings[].category, settings[].unit.
  - Minor: String arguments with no constraint or example: settings[].category, settings[].unit.
  - Minor: The description mentions none of its 3 or more arguments.
- `add_shop_list_category`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: listId, name, sortOrder.
  - Minor: String arguments with no constraint or example: listId, name.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `create_favorite_chart`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, sourceLogId, source, channelSetId, title, chartConfig, notes.
  - Minor: String arguments with no constraint or example: vehicleId, sourceLogId, title, notes.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, sourceLogId. Name the tool or the place that returns it, or models look it up first.
- `delete_ecu_file`: 34 / 100
  - Major: The description only restates the name (9 words).
  - Major: Arguments without a description: id, confirmed.
  - Minor: String arguments with no constraint or example: id.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `list_ai_race_engineer_transcripts`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, limit.
  - Minor: String arguments with no constraint or example: vehicleId.
  - Minor: No `required` list, so every argument is optional.
- `list_teams`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: teamId.
  - Minor: String arguments with no constraint or example: teamId.
  - Minor: No `required` list, so every argument is optional.
- `retry_ecu_file`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: id.
  - Minor: String arguments with no constraint or example: id.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `delete_vehicle_modification`: 35 / 100
  - Major: Arguments without a description: vehicleId, modificationId, confirmed.
  - Minor: String arguments with no constraint or example: vehicleId, modificationId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, modificationId. Name the tool or the place that returns it, or models look it up first.
- `save_vehicle_map_config`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, lapType, selections, signs, channels.
  - Minor: String arguments with no constraint or example: vehicleId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `create_shop_list`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: title, note, vehicleId, setupId, sessionId, status, items, items[].label, items[].section, items[].quantity, items[].status, items[].sortOrder, categories, categories[].name, categories[].sortOrder.
  - Minor: String arguments with no constraint or example: title, note, vehicleId, setupId, sessionId, items[].label, items[].section, categories[].name.
- `delete_favorite_chart`: 36 / 100
  - Major: The description only restates the name (8 words).
  - Major: Arguments without a description: chartId, confirmed.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: chartId. Name the tool or the place that returns it, or models look it up first.
- `delete_vehicle_make`: 36 / 100
  - Major: The description only restates the name (9 words).
  - Major: Arguments without a description: id, confirmed.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `update_shop_list_item`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: listId, itemId, status, quantity.
  - Minor: String arguments with no constraint or example: listId, itemId.
  - Minor: Required identifiers whose description does not say where the value comes from: listId, itemId. Name the tool or the place that returns it, or models look it up first.
- `update_vehicle`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, make, model, subModel, year, purpose, owner, displacement, engineType, aspiration, cylindersOrRotors, fuel, fuelRating, vin, mileage, engineModel, engineHours, transmissionType, transmissionSpeeds, modifications.
  - Minor: String arguments with no constraint or example: vehicleId, make, model, subModel, owner, displacement, cylindersOrRotors, fuelRating, vin, mileage, engineModel, engineHours, transmissionSpeeds, modifications.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `add_shop_list_item`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: listId, label, quantity, status, sortOrder.
  - Minor: String arguments with no constraint or example: listId, label, section.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `copy_shop_list`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: listId.
  - Minor: String arguments with no constraint or example: listId.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `create_custom_track`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: venue, city, region, country, countryCode, teamId.
  - Minor: String arguments with no constraint or example: venue, city, region, country, countryCode, teamId.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_log_context`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: logId.
  - Minor: String arguments with no constraint or example: logId.
  - Minor: Required identifiers whose description does not say where the value comes from: logId. Name the tool or the place that returns it, or models look it up first.
- `list_logs`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, limit.
  - Minor: String arguments with no constraint or example: vehicleId.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `reset_shop_list_items`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: listId, confirmed.
  - Minor: String arguments with no constraint or example: listId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `create_maintenance`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, name, category, intervalType, intervalValue, reminderDaysBefore, notes.
  - Minor: String arguments with no constraint or example: vehicleId, name, notes.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `delete_object_attachment`: 38 / 100
  - Major: Arguments without a description: fileId, confirmed.
  - Minor: String arguments with no constraint or example: fileId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: fileId. Name the tool or the place that returns it, or models look it up first.
- `leave_team`: 38 / 100
  - Major: Arguments without a description: teamId, confirmed.
  - Minor: String arguments with no constraint or example: teamId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: teamId. Name the tool or the place that returns it, or models look it up first.
- `mark_chart_channel_set_used`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: id.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `update_maintenance`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, trackerId, name, category, intervalType, intervalValue, reminderDaysBefore, notes.
  - Minor: String arguments with no constraint or example: vehicleId, trackerId, name, notes.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, trackerId. Name the tool or the place that returns it, or models look it up first.
- `update_setup`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: setupId, vehicleId, setupName, influencedSessionId, dataLogIds.
  - Minor: String arguments with no constraint or example: setupId, vehicleId, setupName, influencedSessionId.
  - Minor: Required identifiers whose description does not say where the value comes from: setupId. Name the tool or the place that returns it, or models look it up first.
- `list_maintenance`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
- `list_sessions`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
- `list_setups`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
- `create_vehicle`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: make, model, subModel, year, displacement, engineType, aspiration, cylindersOrRotors, fuel, fuelRating, vin, mileage, engineModel, engineHours, transmissionType, transmissionSpeeds, modifications.
  - Minor: String arguments with no constraint or example: make, model, subModel, displacement, cylindersOrRotors, fuelRating, vin, mileage, engineModel, engineHours, transmissionSpeeds, modifications.
  - Minor: The description mentions none of its 3 or more arguments.
- `delete_chart_channel_set`: 40 / 100
  - Major: Arguments without a description: id, confirmed.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `list_object_attachments`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: objectType, objectId.
  - Minor: String arguments with no constraint or example: objectType, objectId.
  - Minor: Required identifiers whose description does not say where the value comes from: objectId. Name the tool or the place that returns it, or models look it up first.
- `process_ecu_file`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: id.
  - Minor: String arguments with no constraint or example: id.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `list_shop_lists`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_vehicles`: 41 / 100
  - Major: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
- `send_team_invite`: 41 / 100
  - Major: Arguments without a description: teamId, email, role, confirmed.
  - Minor: String arguments with no constraint or example: teamId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: teamId. Name the tool or the place that returns it, or models look it up first.
- `archive_vehicle_modification`: 42 / 100
  - Major: Arguments without a description: vehicleId, modificationId, confirmed.
  - Minor: String arguments with no constraint or example: vehicleId, modificationId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, modificationId. Name the tool or the place that returns it, or models look it up first.
- `get_share_build_options`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `recommend_autocross_damper_adjustment`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: phase, symptom, axle, severity.
  - Minor: The description mentions none of its 3 or more arguments.
- `analyze_tire_temperatures`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: unit, targetTemp, tempWindow, frontCamberSpread, rearCamberSpread.
- `list_shop_list_items`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: listId.
  - Minor: String arguments with no constraint or example: listId.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `create_setup`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: vehicleId, setupName, influencedSessionId, dataLogIds.
  - Minor: String arguments with no constraint or example: vehicleId, setupName, influencedSessionId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `inspect_ecu_file`: 45 / 100
  - Major: Arguments without a description: id, table.
  - Minor: String arguments with no constraint or example: id, table.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `list_ai_log_tuner_transcripts`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
- `archive_maintenance`: 47 / 100
  - Major: Arguments without a description: vehicleId, trackerId, confirmed.
  - Minor: String arguments with no constraint or example: vehicleId, trackerId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId, trackerId. Name the tool or the place that returns it, or models look it up first.
- `archive_session`: 47 / 100
  - Major: Arguments without a description: sessionId, confirmed.
  - Minor: String arguments with no constraint or example: sessionId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `archive_setup`: 47 / 100
  - Major: Arguments without a description: setupId, confirmed.
  - Minor: String arguments with no constraint or example: setupId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: setupId. Name the tool or the place that returns it, or models look it up first.
- `archive_vehicle`: 47 / 100
  - Major: Arguments without a description: vehicleId, confirmed.
  - Minor: String arguments with no constraint or example: vehicleId.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `diagnose_handling_issue`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: balance, phase.
  - Minor: The description mentions none of its 3 or more arguments.
- `find_autocross_sites`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: latitude, longitude, radiusMiles, minimumWidthMeters, minimumLengthMeters, minimumReviewScore.
  - Minor: The description mentions none of its 3 or more arguments.
- `archive_shop_list`: 50 / 100
  - Minor: Arguments without a description: listId.
  - Minor: String arguments with no constraint or example: listId.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `delete_shop_list`: 50 / 100
  - Minor: Arguments without a description: listId.
  - Minor: String arguments with no constraint or example: listId.
  - Minor: Required identifiers whose description does not say where the value comes from: listId. Name the tool or the place that returns it, or models look it up first.
- `preview_share_build`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `send_share_build`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `get_ai_log_tuner_transcript`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: logId. Name the tool or the place that returns it, or models look it up first.
- `get_ai_race_engineer_transcript`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: chatId. Name the tool or the place that returns it, or models look it up first.
- `list_chart_channel_sets`: 53 / 100
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
- `get_tuneworks_app_capabilities`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_ecu_files`: 54 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_vehicle_context`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `get_user_settings`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_garage_summary`: 61 / 100
  - Major: Says nothing about when to use it, or when not to.
- `calculate_ethanol_blend`: 62 / 100
  - Minor: Arguments without a description: mode, volumeUnit.
- `calculate_brake_bias`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `calculate_corner_balance`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `calculate_fuel_injector_size`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
- `calculate_lap_time_delta`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `calculate_race_fuel_and_weight`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
- `calculate_spring_wheel_rate`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `check_race_alignment`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `convert_afr_lambda`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
- `calculate_tire_pressure_adjustment`: 65 / 100
- `calculate_gear_ratio_speed`: 68 / 100
- `compare_tire_sizes`: 68 / 100
  - Minor: The description mentions none of its 3 or more arguments.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
