Skip to main content
Glama
ellettie

iRacing MCP Server

by ellettie

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_telemetry_valuesA

get telemetry values. to get available telemetry names, call get_telemetry_names. if you want to get all telemetry values, set names to None.

Returns: dict: telemetry values

get_telemetry_namesD

get telemetry names

Returns: list[str]: telemetry names

get_driver_infoC

get driver info

Returns: dict: driver info

get_session_infoD

get session info

Returns: dict: session info

get_weekend_infoD

get weekend info

Returns: dict: weekend info

get_qualify_results_infoD

get qualify results info

Returns: list[dict]: qualify results info

get_camera_infoC

get camera info

Returns: list[dict]: camera info

get_radio_infoD

get radio info

Returns: dict: radio info

get_split_time_infoB

Retrieves split time information for each sector of the track.

Returns: dict: split time info

cam_switchD

switch camera

pit_commandC

apply pit command. before apply pit command, you should call get_current_pit_service_status.

replay_searchD

search replay

get_leaderboardB

get leaderboard

Note: When filtering for competitive leaderboard results, exclude entries where: 1. if driver_name="Pace Car" (not a competitor. so ignore this row from leaderboard) 2. if is_missing_start=True (indicates missed start. so this car is not correct position) 3. if is_towing=True (indicates towing. so this car is not correct position) 4. if status="not_in_world" (not in world. so this car is not correct position)

Returns: list: leaderboard each element is a dict with the following keys: - car_idx: int - position: int | None - class_position: int | None - car_number: int - car_number_raw: int (use this value for camera switching functions) - driver_name: str - team_name: str - irating: int - license_str: str - lap_and_lap_dist_pct: float - best_lap_time: float - last_lap_time: float - car_name: str - class_name: str - class_est_time: float - gap_to_leader_str: str - gap_to_next_str: str - gap_to_class_leader_str: str - gap_to_class_next_str: str - flags: list[str] (e.g. ["black", "repair", "furled", "servicible"]. "servicible" means no flags) - status: str (e.g. "off_track", "in_pit_stall", "approaching_pits", "on_track", "not_in_world") - is_missing_start: bool - is_towing: bool

get_current_pit_service_statusC

get current pit service status

Returns: list[str]: current pit service status

get_current_engine_warningsA

get current engine warnings

Returns: list[str]: current engine warnings

get_current_flagsD

get current flags

Returns: list[str]: current flags

get_current_camera_statusB

get current camera status

Returns: dict: current camera status - target_car_idx: int - camera_group_number: int - camera_number: int

Prompts

Interactive templates invoked by user choice

NameDescription
iracing_tool_usage iracing tool usage Returns: str: iracing tool usage

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.5/5.0

Scored across 17 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but the camera-related tools (cam_switch, get_camera_info, get_current_camera_status) could cause confusion for an agent due to overlapping focus.

Naming Consistency3/5

The majority of tools follow a 'get_*' pattern, but there are exceptions like 'cam_switch', 'pit_command', and 'replay_search' that break the convention, making it somewhat inconsistent.

Tool Count5/5

With 17 tools, the set is well-scoped for an iRacing simulation server. Each tool serves a clear purpose without being excessive or insufficient.

Completeness4/5

The tool surface covers a broad range of simulation aspects (session, driver, leaderboard, telemetry, etc.), with only minor gaps such as missing dedicated live timing updates or additional race control commands.

Maintenance

ActivityInactive
ResponsivenessNo issues