iRacing MCP
# iRacing MCP
iRacing MCP is a Python-based project that integrates iRacing with the Model Context Protocol (MCP). It provides tools and resources to interact with iRacing data and build custom applications.
## Features
- Retrieve iRacing profile statistics.
- Get iRating chart (for any category)
- More coming soon
## Getting Started
### Prerequisites
- uv - [Install here](https://docs.astral.sh/uv/getting-started/installation/)
- iRacing account with legacy authentication (required) - Enable it here: <https://oauth.iracing.com/accountmanagement/security>
## Usage
### Running the Server Standalone
To start the MCP server, run:
```bash
IRACING_USERNAME="your username" IRACING_PASSWORD="your-password" uvx iracing-mcp
```
### Running the Server on VSCode
Add this to your settings.json (in `mcp.servers`):
```json
"iracing": {
"command": "uvx",
"args": [
"iracing-mcp@latest"
],
"env": {
"IRACING_USERNAME": "your@email.com",
"IRACING_PASSWORD": "your password"
}
}
```
### Running the MCP Server on Claude Desktop
Add this to your settings.json:
```json
[
"mcpServers": {
"iracing": {
"command": "uvx",
"args": [
"iracing-mcp@latest"
],
"env": {
"IRACING_USERNAME": "your@email.com",
"IRACING_PASSWORD": "your-password"
}
}
}
}
```
### Running the Server on other MCP Clients
Currently I am only using VS Code as MCP Client so I don't know how to configure to other MCP Clients.
I am happy to receive PRs on how to configure in the different MCP Servers (e.g. Cursor, Claude Desktop, etc.)
### Development
1. Clone the repository:
```bash
git clone https://github.com/musantro/iracing-mcp.git
cd iracing-mcp
```
2. Create environment with dependencies:
```bash
uv sync
```
3. Set up environment variables for iRacing credentials:
```bash
export IRACING_USERNAME="your_username"
export IRACING_PASSWORD="your_password"
```
#### Linting and Formatting
Use the following commands to lint and format the code:
```bash
make
```
## Contributing
We welcome contributions! Follow these steps to contribute:
1. Fork the repository.
2. Create a new branch for your feature or bugfix.
3. Push your branch.
4. Open a pull request.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one retrieves general profile statistics, the other provides historical iRating data for a specific category. There is no ambiguity between them.
Both tools follow a consistent verb_noun pattern using snake_case and the 'get_iracing_' prefix, making them predictable and easy to understand.
With only 2 tools, the server is severely under-scoped for the iRacing domain, which typically requires many more tools for operations like searching races, managing subscriptions, or accessing car/track data.
The tool surface is extremely limited, covering only profile stats and iRating history. Critical operations like race listing, car/track data, league management, and session results are entirely missing, making it incomplete for practical use.