# `io.github.chrismore/tuneworks` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.chrismore/tuneworks
- JSON: https://anlyon.dev/api/v1/servers/io.github.chrismore/tuneworks
- Version: 0.1.0 (active)
- Publisher: io.github.chrismore (GitHub account)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Repository: https://github.com/chrismore/tuneworks
- Metadata from the official MCP Registry, synced 2026-10-21T18:27:14.077Z

Title and description, as the publisher wrote them:

```untrusted-server-text
TuneWorks
Motorsports workspace for vehicles, setups, sessions, logs, maintenance, and race engineering.
```

Scanned 2026-10-21T19:07:12.151Z over streamable-http.

**100 tools: 33 can delete or cancel things, 2 do something that can't be undone, 31 change things and 34 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 33 | deny |
| Can't be undone | irreversible | 2 | ask |
| Changes things | write | 31 | ask |
| Only reads | read | 34 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `calculate_spring_wheel_rate` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "calculate_spring_wheel_rate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
```

- **warn** Annotations that disagree with the tool in `convert_afr_lambda` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "convert_afr_lambda" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "convert_afr_lambda" says "convert": a word for a change.
```


## Deletes or cancels (33)

Removes, cancels or revokes something. Claude Code: deny.

### `archive_maintenance`

- The name "archive_maintenance" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Archive a connected user maintenance item. Requires explicit user confirmation and never hard-deletes data.
```

### `archive_session`

- The name "archive_session" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Archive a connected user driving session. Requires explicit user confirmation and never hard-deletes data.
```

### `archive_setup`

- The name "archive_setup" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Archive all active revisions of a connected user setup. Requires explicit user confirmation and never hard-deletes data.
```

### `archive_shop_list`

- The name "archive_shop_list" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Archive a connected user shop list so it no longer appears in active lists. Requires explicit user confirmation.
```

### `archive_vehicle`

- The name "archive_vehicle" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Archive a connected user vehicle using TuneWorks soft-delete behavior. Requires explicit user confirmation and never hard-deletes data.
```

### `archive_vehicle_modification`

- The name "archive_vehicle_modification" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Mark a modification canceled so it remains in vehicle history. Requires explicit confirmation.
```

### `delete_chart_channel_set`

- The name "delete_chart_channel_set" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Permanently delete a saved chart-channel set after explicit confirmation.
```

### `delete_custom_track`

- The name "delete_custom_track" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Permanently delete a custom track after explicit confirmation.
```

### `delete_ecu_file`

- The name "delete_ecu_file" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Permanently delete an authorized ECU file after explicit confirmation.
```

### `delete_favorite_chart`

- The name "delete_favorite_chart" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Permanently delete a favorite chart after explicit confirmation.
```

### `delete_object_attachment`

- The name "delete_object_attachment" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Delete an object attachment from blob storage after explicit confirmation.
```

### `delete_shop_list`

- The name "delete_shop_list" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Delete a connected user shop list from active use by safely archiving it. Requires explicit user confirmation and does not hard-delete history.
```

### `delete_team`

- The name "delete_team" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Delete a team after explicit confirmation.
```

### `delete_vehicle_make`

- The name "delete_vehicle_make" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Permanently delete a custom vehicle make after explicit confirmation.
```

### `delete_vehicle_modification`

- The name "delete_vehicle_modification" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Permanently delete a vehicle modification and its files. Requires explicit confirmation.
```

### `leave_team`

- The description's first verb is "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Remove the connected user from a team after explicit confirmation.
```

### `remove_team_member`

- The name "remove_team_member" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Remove a member from a team after explicit confirmation.
```

### `rename_team`

- The name "rename_team" says "rename": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Replace a team’s name.
```

### `reset_shop_list_items`

- The name "reset_shop_list_items" says "reset": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Reset every item in a connected user shop list to unchecked/open.
```

### `revoke_team_invite`

- The name "revoke_team_invite" says "revoke": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Revoke a pending team invitation after explicit confirmation.
```

### `save_vehicle_map_config`

- The name "save_vehicle_map_config" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Create or replace the connected user’s complete map-channel configuration.
```

### `update_custom_track`

- The name "update_custom_track" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Replace the editable fields and ownership scope of a custom track.
```

### `update_maintenance`

- The name "update_maintenance" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Edits a TuneWorks maintenance reminder or service item. Deletes are not supported.
```

### `update_session`

- The name "update_session" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Edits an existing TuneWorks driving session. Deletes are not supported.
```

### `update_setup`

- The name "update_setup" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Edits an existing TuneWorks setup revision. Deletes are not supported.
```

### `update_shop_list`

- The name "update_shop_list" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Edits shop-list metadata or replaces the full categories and items collection.
```

### `update_shop_list_item`

- The name "update_shop_list_item" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Atomically check or uncheck one shop-list item, change its quantity, or do both.
```

### `update_team_member_role`

- The name "update_team_member_role" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Replace a team member’s role.
```

### `update_unit_settings`

- The name "update_unit_settings" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Update unit-category choices for the connected TuneWorks user.
```

### `update_user_preferences`

- The name "update_user_preferences" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Update selected preferences for the connected TuneWorks user.
```

### `update_vehicle`

- The name "update_vehicle" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Edits an existing vehicle in the connected user’s TuneWorks garage. Deletes are not supported.
```

### `update_vehicle_make`

- The name "update_vehicle_make" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Rename or rescope a custom vehicle make.
```

### `update_vehicle_modification`

- The name "update_vehicle_modification" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Update a structured modification on an editable TuneWorks vehicle.
```

## Can't be undone (2)

Sends, pays, publishes or merges: once done, it cannot be taken back. Claude Code: ask.

### `send_share_build`

- The name "send_share_build" says "send": a word for sending, and what is sent cannot be taken back.
- The input addresses people (input.recipients): what it sends cannot be taken back.

Description, as the server wrote it:

```untrusted-server-text
Emails selected TuneWorks vehicle, setup, and session details to up to three recipients. Explicit user confirmation is required.
```

### `send_team_invite`

- The name "send_team_invite" says "send": a word for sending, and what is sent cannot be taken back.

Description, as the server wrote it:

```untrusted-server-text
Create and email a team invitation only after explicit user confirmation.
```

## Changes things (31)

Creates or changes something that can be changed back. Claude Code: ask.

### `add_shop_list_category`

- The name "add_shop_list_category" says "add": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Atomically add one category to an existing editable shop list without replacing its existing categories or items.
```

### `add_shop_list_item`

- The name "add_shop_list_item" says "add": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Atomically add one item to an existing editable shop list without replacing existing items. If its category does not exist yet, TuneWorks creates it.
```

### `calculate_brake_bias`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Estimate front brake bias from piston area, rotor size, and pad friction. Calculates from measured inputs without authentication and does not read or save account data. This estimates mechanical bias. Tire grip, weight transfer, ABS, and balance bars still matter.
```

### `calculate_corner_balance`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Calculate cross weight, left/right balance, and front/rear split from four scale pads. Calculates from measured inputs without authentication and does not read or save account data. Measure the car in the same state you drive it: driver, fuel, ballast, and tire pressures matter.
```

### `calculate_ethanol_blend`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Calculates an ethanol blend for a fresh tank, existing fuel, correction, or ratio without authentication or account-data access. Percentages are 0–100 and all volumes use the selected unit. Source ethanol contents are measured values. Fresh mode requires finalVolume; existing mode requires finalVolume, currentVolume, and currentEthanol; correction mode requires tankCapacity, currentVolume, and currentEthanol; ratio mode requires no volumes.
```

### `calculate_fuel_injector_size`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Estimate injector size from horsepower, fuel type, injector count, and duty cycle. Calculates from measured inputs without authentication and does not read or save account data. This is a sizing estimate. Confirm with your tuner and fuel pressure data.
```

### `calculate_gear_ratio_speed`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Check speed, RPM, and shift drop from tire size, final drive, and gear ratio. Calculates from measured inputs without authentication and does not read or save account data. Use measured tire diameter when possible. Tire growth and converter/clutch slip can move real-world numbers.
```

### `calculate_race_fuel_and_weight`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Plan a race fuel load, reserve, start weight, and projected minimum-weight margin. Calculates from measured inputs without authentication and does not read or save account data. Assumes the entered per-lap consumption applies to race, formation, and allowance laps. Finish weight retains only the selected reserve. Confirm your series weighing rules and validate consumption with real data.
```

### `calculate_spring_wheel_rate`

- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Convert spring rate and motion ratio into wheel rate for setup comparisons. Calculates from measured inputs without authentication and does not read or save account data. Wheel rate compares spring changes. It does not account for bars, bump stops, tires, or aero load.
```

### `calculate_tire_pressure_adjustment`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Turn cold, hot, and target hot pressures into the next cold pressure to try. Calculates from measured inputs without authentication and does not read or save account data. This gives a next-test pressure, not a universal ideal. Recheck after the next run.
```

### `check_race_alignment`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Check camber and total toe against broad autocross and track baseline ranges. Calculates from measured inputs without authentication and does not read or save account data. This is a baseline checker, not a vehicle-specific prescription. Tire wear and driver feedback decide the next step.
```

### `complete_maintenance`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Record completed maintenance in vehicle history and advance its tracker.
```

### `convert_afr_lambda`

- The name "convert_afr_lambda" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Convert AFR and lambda across gasoline, E85, methanol, and race fuel scales. Calculates from measured inputs without authentication and does not read or save account data. Use this as a conversion reference. Tune targets depend on fuel, engine, load, and calibration strategy.
```

### `copy_session`

- The name "copy_session" says "copy": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Create an additive copy of an accessible TuneWorks driving session.
```

### `copy_shop_list`

- The name "copy_shop_list" says "copy": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Create an editable copy of a connected user shop list with all item checks reset.
```

### `create_chart_channel_set`

- The name "create_chart_channel_set" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Save a named set of chart channels.
```

### `create_custom_track`

- The name "create_custom_track" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Create a custom track for the connected user or an editable team.
```

### `create_favorite_chart`

- The name "create_favorite_chart" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Save a favorite chart for an accessible vehicle and source log.
```

### `create_maintenance`

- The name "create_maintenance" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Creates a TuneWorks maintenance reminder or service item. Deletes are not supported.
```

### `create_session`

- The name "create_session" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Saves a new TuneWorks driving session. Deletes are not supported.
```

### `create_setup`

- The name "create_setup" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Saves a new TuneWorks setup for a vehicle. Deletes are not supported.
```

### `create_shop_list`

- The name "create_shop_list" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Creates a TuneWorks shop list, task list, or parts list, optionally including categories and items.
```

### `create_team`

- The name "create_team" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Create a new team for the connected user.
```

### `create_vehicle`

- The name "create_vehicle" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Adds a vehicle to the connected user’s TuneWorks garage. Deletes are not supported.
```

### `create_vehicle_make`

- The name "create_vehicle_make" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Add a custom vehicle make to connected user settings.
```

### `create_vehicle_modification`

- The name "create_vehicle_modification" says "create": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Create a structured modification on an editable TuneWorks vehicle.
```

### `diagnose_handling_issue`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Provides understeer/oversteer setup guidance without authentication or access to TuneWorks account data.
```

### `mark_chart_channel_set_used`

- The name "mark_chart_channel_set_used" says "mark": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Update the last-used time for a saved chart-channel set.
```

### `process_ecu_file`

- The description's first verb is "start": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Start or retry processing for an existing ECU definition file. This does not upload, create, or read a file, and processing may consume compute and analysis resources.
```

### `recommend_autocross_damper_adjustment`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Provides a bounded shock/damper adjustment recommendation without authentication or access to TuneWorks account data.
```

### `retry_ecu_file`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Retry an eligible failed, already stored ECU file. MCP does not upload binaries.
```

## Only reads (34)

Looks things up and changes nothing. Claude Code: allow.

### `analyze_tire_temperatures`

- The name "analyze_tire_temperatures" says "analyze": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Interprets inside, middle, and outside tire temperature readings without authentication or access to TuneWorks account data.
```

### `calculate_lap_time_delta`

- The description's first verb is "compare": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Compare two laps or sector sets and see the best theoretical lap. Calculates from measured inputs without authentication and does not read or save account data. Use sectors from timing, video, or data logs. Compare similar conditions before blaming setup.
```

### `compare_tire_sizes`

- The name "compare_tire_sizes" says "compare": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Compare tire diameter, circumference, ride height, and speedometer change. Calculates from measured inputs without authentication and does not read or save account data. Actual mounted diameter changes by tire model and pressure. Use manufacturer specs when available.
```

### `find_autocross_sites`

- The name "find_autocross_sites" says "find": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Search the public TuneWorks Autocross Site Finder by coordinates and minimum paved-area dimensions. This may take several minutes because it queries live map and imagery providers.
```

### `get_ai_log_tuner_transcript`

- The name "get_ai_log_tuner_transcript" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read the ordered messages and saved analysis summaries for one AI Log Tuner conversation owned by the connected TuneWorks user.
```

### `get_ai_race_engineer_transcript`

- The name "get_ai_race_engineer_transcript" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read one AI Race Engineer conversation and its ordered messages. Internal execution debug traces are not returned.
```

### `get_custom_track`

- The name "get_custom_track" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read one accessible custom track.
```

### `get_garage_summary`

- The name "get_garage_summary" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Returns an overview of the connected user’s TuneWorks garage, including recent activity, saved vehicles, setups, sessions, maintenance, and lists.
```

### `get_log_context`

- The name "get_log_context" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read bounded metadata, channel schema summary, and saved focus window for one accessible TuneWorks log. Raw log samples are not returned.
```

### `get_share_build_options`

- The name "get_share_build_options" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Lists existing TuneWorks vehicles, setups, and sessions available for Share Build.
```

### `get_shop_list`

- The name "get_shop_list" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read one connected user shop list with its categories and items.
```

### `get_tuneworks_app_capabilities`

- The name "get_tuneworks_app_capabilities" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Describes TuneWorks free public capabilities and connected garage capabilities for vehicles, setups, sessions, maintenance, shop lists, Share Build, and log history.
```

### `get_user_settings`

- The name "get_user_settings" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read the connected user’s preferences, unit choices, and custom vehicle makes.
```

### `get_vehicle_context`

- The name "get_vehicle_context" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Returns one saved TuneWorks vehicle with its setup, session, maintenance, list, and log context.
```

### `get_vehicle_map_config`

- The name "get_vehicle_map_config" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read the saved map-channel configuration for an accessible vehicle.
```

### `get_vehicle_modification`

- The name "get_vehicle_modification" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Read one structured modification from an accessible TuneWorks vehicle.
```

### `inspect_ecu_file`

- The name "inspect_ecu_file" says "inspect": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Inspect one authorized ECU file and optionally a decoded table. Binary contents are never returned.
```

### `list_ai_log_tuner_transcripts`

- The name "list_ai_log_tuner_transcripts" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List recent AI Log Tuner conversations owned by the connected TuneWorks user. Returns conversation metadata without message contents.
```

### `list_ai_race_engineer_transcripts`

- The name "list_ai_race_engineer_transcripts" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List recent AI Race Engineer conversations owned by the connected TuneWorks user. May be filtered to one vehicle.
```

### `list_chart_channel_sets`

- The name "list_chart_channel_sets" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List saved chart-channel sets.
```

### `list_custom_tracks`

- The name "list_custom_tracks" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List custom tracks accessible to the connected user.
```

### `list_ecu_files`

- The name "list_ecu_files" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List ECU-file metadata. Binary contents are never returned.
```

### `list_favorite_charts`

- The name "list_favorite_charts" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List favorite charts for an accessible vehicle.
```

### `list_logs`

- The name "list_logs" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List bounded metadata for logs attached to one connected TuneWorks vehicle. Raw log samples are not returned.
```

### `list_maintenance`

- The name "list_maintenance" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Lists service reminders, maintenance history, due work, and completed maintenance saved in TuneWorks.
```

### `list_object_attachments`

- The name "list_object_attachments" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List attachment metadata for an authorized object. Binary contents are unavailable through MCP.
```

### `list_sessions`

- The name "list_sessions" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Lists driving sessions, events, track days, autocross runs, and session notes saved in TuneWorks.
```

### `list_setups`

- The name "list_setups" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Lists chassis setups and setup history saved in the connected TuneWorks account.
```

### `list_shop_list_items`

- The name "list_shop_list_items" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Lists individual items and completion status in one connected user shop list, with optional filtering for open or completed items.
```

### `list_shop_lists`

- The name "list_shop_lists" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Lists reusable shop lists, event prep lists, task lists, and parts lists saved in TuneWorks.
```

### `list_teams`

- The name "list_teams" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List teams available to the connected user, or read one team’s settings.
```

### `list_vehicle_modifications`

- The name "list_vehicle_modifications" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List structured modifications for an accessible TuneWorks vehicle.
```

### `list_vehicles`

- The name "list_vehicles" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Lists vehicles saved in the connected user’s TuneWorks app garage.
```

### `preview_share_build`

- The name "preview_share_build" says "preview": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Summarizes selected Share Build vehicle, setups, sessions, recipients, and message without sending email.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `tuneworks`:

```json
{
  "permissions": {
    "allow": [
      "mcp__tuneworks__compare_tire_sizes",
      "mcp__tuneworks__calculate_lap_time_delta",
      "mcp__tuneworks__analyze_tire_temperatures",
      "mcp__tuneworks__find_autocross_sites",
      "mcp__tuneworks__get_tuneworks_app_capabilities",
      "mcp__tuneworks__list_vehicle_modifications",
      "mcp__tuneworks__get_vehicle_modification",
      "mcp__tuneworks__get_garage_summary",
      "mcp__tuneworks__list_vehicles",
      "mcp__tuneworks__get_vehicle_context",
      "mcp__tuneworks__list_logs",
      "mcp__tuneworks__get_log_context",
      "mcp__tuneworks__list_ai_log_tuner_transcripts",
      "mcp__tuneworks__get_ai_log_tuner_transcript",
      "mcp__tuneworks__list_ai_race_engineer_transcripts",
      "mcp__tuneworks__get_ai_race_engineer_transcript",
      "mcp__tuneworks__list_setups",
      "mcp__tuneworks__list_sessions",
      "mcp__tuneworks__list_maintenance",
      "mcp__tuneworks__list_shop_lists",
      "mcp__tuneworks__get_shop_list",
      "mcp__tuneworks__list_shop_list_items",
      "mcp__tuneworks__get_share_build_options",
      "mcp__tuneworks__preview_share_build",
      "mcp__tuneworks__get_user_settings",
      "mcp__tuneworks__list_chart_channel_sets",
      "mcp__tuneworks__list_favorite_charts",
      "mcp__tuneworks__get_vehicle_map_config",
      "mcp__tuneworks__list_ecu_files",
      "mcp__tuneworks__inspect_ecu_file",
      "mcp__tuneworks__list_teams",
      "mcp__tuneworks__list_custom_tracks",
      "mcp__tuneworks__get_custom_track",
      "mcp__tuneworks__list_object_attachments"
    ],
    "ask": [
      "mcp__tuneworks__calculate_race_fuel_and_weight",
      "mcp__tuneworks__calculate_gear_ratio_speed",
      "mcp__tuneworks__calculate_tire_pressure_adjustment",
      "mcp__tuneworks__calculate_corner_balance",
      "mcp__tuneworks__calculate_spring_wheel_rate",
      "mcp__tuneworks__calculate_fuel_injector_size",
      "mcp__tuneworks__convert_afr_lambda",
      "mcp__tuneworks__calculate_brake_bias",
      "mcp__tuneworks__check_race_alignment",
      "mcp__tuneworks__calculate_ethanol_blend",
      "mcp__tuneworks__diagnose_handling_issue",
      "mcp__tuneworks__recommend_autocross_damper_adjustment",
      "mcp__tuneworks__create_vehicle",
      "mcp__tuneworks__create_vehicle_modification",
      "mcp__tuneworks__create_setup",
      "mcp__tuneworks__create_session",
      "mcp__tuneworks__copy_session",
      "mcp__tuneworks__create_maintenance",
      "mcp__tuneworks__create_shop_list",
      "mcp__tuneworks__add_shop_list_category",
      "mcp__tuneworks__add_shop_list_item",
      "mcp__tuneworks__copy_shop_list",
      "mcp__tuneworks__create_vehicle_make",
      "mcp__tuneworks__create_chart_channel_set",
      "mcp__tuneworks__mark_chart_channel_set_used",
      "mcp__tuneworks__create_favorite_chart",
      "mcp__tuneworks__complete_maintenance",
      "mcp__tuneworks__process_ecu_file",
      "mcp__tuneworks__retry_ecu_file",
      "mcp__tuneworks__send_share_build",
      "mcp__tuneworks__create_team",
      "mcp__tuneworks__send_team_invite",
      "mcp__tuneworks__create_custom_track"
    ],
    "deny": [
      "mcp__tuneworks__update_vehicle",
      "mcp__tuneworks__update_vehicle_modification",
      "mcp__tuneworks__archive_vehicle_modification",
      "mcp__tuneworks__delete_vehicle_modification",
      "mcp__tuneworks__archive_vehicle",
      "mcp__tuneworks__update_setup",
      "mcp__tuneworks__archive_setup",
      "mcp__tuneworks__update_session",
      "mcp__tuneworks__archive_session",
      "mcp__tuneworks__update_maintenance",
      "mcp__tuneworks__archive_maintenance",
      "mcp__tuneworks__update_shop_list",
      "mcp__tuneworks__reset_shop_list_items",
      "mcp__tuneworks__update_shop_list_item",
      "mcp__tuneworks__archive_shop_list",
      "mcp__tuneworks__delete_shop_list",
      "mcp__tuneworks__update_user_preferences",
      "mcp__tuneworks__update_unit_settings",
      "mcp__tuneworks__update_vehicle_make",
      "mcp__tuneworks__delete_vehicle_make",
      "mcp__tuneworks__delete_chart_channel_set",
      "mcp__tuneworks__delete_favorite_chart",
      "mcp__tuneworks__save_vehicle_map_config",
      "mcp__tuneworks__delete_ecu_file",
      "mcp__tuneworks__rename_team",
      "mcp__tuneworks__update_team_member_role",
      "mcp__tuneworks__remove_team_member",
      "mcp__tuneworks__revoke_team_invite",
      "mcp__tuneworks__leave_team",
      "mcp__tuneworks__delete_team",
      "mcp__tuneworks__update_custom_track",
      "mcp__tuneworks__delete_custom_track",
      "mcp__tuneworks__delete_object_attachment"
    ]
  }
}
```
