使用说明
iRacing MCP服务器
用于通过pyirsdk收集iRacing遥测数据的MCP(模型上下文协议)服务器。此服务器遵循MCP标准,可以使用SSE(服务器发送事件)或HTTPS流与ElevenLabs集成。
快速开始
在一个终端中启动服务器,并在另一个终端上建立隧道,这样ElevenLabs远程客户端就可以到达可流式传输的HTTP端点。
-
启动MCP服务器(命令提示符或PowerShell#1)
cd C:\Users\dusti\OneDrive\Desktop\iracing-mcp-server # Optional if you haven't created a venv yet: # py -3.11 -m venv .venv .\.venv\Scripts\activate python -m iracing_mcp_server.server --transport http --host 0.0.0.0 --port 8000 --http-path /mcp --http-json-response让这扇窗户开着;它现在服务
http://localhost:8000/mcp加GET /health. -
通过HTTPS公开它(命令提示符或PowerShell#2)
cd C:\Users\dusti\OneDrive\Desktop\iracing-mcp-server cloudflared.exe tunnel --url http://localhost:8000 --no-autoupdateCloudflare打印公开
https://<random>.trycloudflare.comURL。用以下方法进行测试:curl https://<random>.trycloudflare.com/health -
配置ElevenLabs Web用户界面
- 传输:流式HTTP
- 端点:
https://<random>.trycloudflare.com/mcp - 健康检查:
https://<random>.trycloudflare.com/health
一旦ElevenLabs确认了健康探测,它就可以通过HTTPS调用每个MCP工具。
特性
- 实时遥测:收集实时遥测数据,包括速度、转速、档位、油门、刹车、转向和燃油液位
- 会话信息:访问轨迹名称、会话类型、天气状况和剩余时间
- 汽车信息:获取车辆ID、类别和轨道状态
- 位置和立场:赛道位置、班级位置、圈数和完成的圈数
- 态势感知:列出前方/后方附近的汽车,并注明相对间隙和速度
- Live Pass活动:当玩家获得位置时,自动发出MCP日志通知,以便ElevenLabs可以实时做出反应
- 符合MCP标准:与ElevenLabs和其他MCP客户端兼容
- SSE/HTTPS支持:适用于服务器发送事件和HTTPS流
需求
- Python 3.10或更高版本
- iRacing模拟器(必须正在运行才能收集数据)
- Windows操作系统(iRacing和pyirsdk需要)
安装
来源
# Clone the repository
git clone https://github.com/consolecowboy0/iracing-mcp-server.git
cd iracing-mcp-server
# Install dependencies
pip install -e .
# Or install from requirements.txt
pip install -r requirements.txt
使用pip(发布时)
pip install iracing-mcp-server
用法
运行服务器
默认(stdio)传输
在stdio上运行,这是MCP客户端在本地生成进程时的理想选择:
iracing-mcp-server
# or
python -m iracing_mcp_server.server
服务器发送事件传输
通过HTTP公开服务器,以便ElevenLabs web UI等工具可以通过SSE连接:
# GET /sse streams responses, POST /messages/ receives client JSON-RPC payloads
iracing-mcp-server --transport sse --host 0.0.0.0 --port 8000 --sse-path /sse --messages-path /messages
一个简单的健康探头可在 GET /health.
可流式HTTP传输
或者,使用流式HTTP传输(单个端点上的GET/POST/DELETE):
iracing-mcp-server --transport http --host 0.0.0.0 --port 8000 --http-path /mcp
旗帜:
--http-json-response–使用JSON有效载荷而不是SSE事件进行响应。--http-stateless–如果您的客户端无法举行会话,请为每个请求创建一个新的MCP会话。
服务器暴露 GET /health 加上您通过配置的任何路径 --http-path.
与ElevenLabs集成
根据您的环境,您有两个选择:
-
本地MCP配置(stdio) -如前所述,将ElevenLabs指向本地命令:
{ "mcpServers": { "iracing": { "command": "iracing-mcp-server" } } } -
基于HTTP/SSE的Web用户界面 -运行其中一个网络传输,并在ElevenLabs界面中输入URL:
- 上海证券交易所:
- SSE流:
http://<host>:<port><sse_path>(默认值/sse) - 消息POST端点:
http://<host>:<port><messages_path>(默认值/messages/)
- SSE流:
- 流式HTTP:
http://<host>:<port><http_path>(默认值/mcp)
使用
GET /health在将ElevenLabs指向服务器之前验证连接。 - 上海证券交易所:
现场比赛活动
一旦客户端列出了工具或调用了任何MCP工具,服务器就会注册
与内部活动广播公司会面。当玩家的比赛位置
改进后,广播公司发出 notifications/message 记录器事件
名字 iracing.pass_events 包含描述过程的结构化JSON
(type=player_pass、先前/当前位置以及经过的汽车)。
ElevenLabs将这些通知视为 客户端到服务器事件,
因此,代理人可以立即讲述真实世界的比赛时刻,而无需等待
另一个工具调用。
ElevenLabs无头客户端(SDK)
如果ElevenLabs UI无法启动本地stdio命令,请使用捆绑的SDK客户端:
# .env should define ELEVENLABS_API_KEY and ELEVENLABS_AGENT_ID
python -m iracing_mcp_server.elevenlabs_client
亮点:
- 自动加载
.env(通过python-dotenv)并回落到ELEVENLABS_API_KEY/ELEVENLABS_AGENT_ID环境变量,因此您很少需要CLI标志 - 通过stdio启动MCP服务器(使用自定义
--command,--server-arg,--server-env,--server-cwd) - 实时将每个MCP工具注册为ElevenLabs客户端工具,以便代理可以调用它们
- 运行轻量级REPL(类型
/quit退出)。添加--text-only或--audio只有当您的代理明确允许覆盖对话模式时 - 与需要签名URL的私人代理配合使用
--requires-auth
您仍然可以显式覆盖任何值,例如。 --agent-id, --api-key,或运输标志。可用的入口点与 iracing-elevenlabs-client 通过安装时 pip.
可用工具
服务器提供以下工具:
- connect_iracing -连接到iRacing模拟器
- 断开连接 -断开与iRacing的连接
- check_connection -检查连接状态
- 遥测 -获取当前遥测数据(速度、RPM等)
- get_session_info -获取会话信息(轨迹、天气等)
- get_car_info -获取汽车信息
- get_position_info -获取位置和圈速数据
- get_周围环境 -显示前方/后方有相对间隙的附近车辆
- 获取所有数据 -在一次通话中获取所有可用数据
示例用法
- 启动iRacing并进入一个环节(练习、资格赛或比赛)
- 运行MCP服务器
- 使用连接到iRacing
connect_iracing工具 - 使用任何数据收集工具检索信息
- 使用完毕后断开连接
disconnect_iracing
发展
设置开发环境
# Clone the repository
git clone https://github.com/consolecowboy0/iracing-mcp-server.git
cd iracing-mcp-server
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in development mode with dev dependencies
pip install -e ".[dev]"
运行测试
pytest
建筑
服务器由两个主要组件组成:
- IRacingDataCollector (
iracing_data.py):使用pyirsdk处理来自iRacing的连接和数据收集 - MCP服务器 (
server.py):实现模型上下文协议并公开数据访问工具
数据流
iRacing Simulator → pyirsdk → IRacingDataCollector → MCP Server → Client (ElevenLabs/etc)
遥测数据可用
- 速度(m/s)
- RPM(每分钟转数)
- 档位(当前档位)
- 油门位置(0-1)
- 制动器位置(0-1)
- 方向盘角度
- 圈数
- 圈距百分比
- 燃油液位和百分比
- 发动机警告
可用会话信息
- 轨道名称和配置
- 训练类型(练习、资格赛、比赛)
- 会话时间和剩余时间
- 空气温度
- 轨道温度
- 天空情况
许可证
MIT许可证-有关详细信息,请参阅许可证文件
贡献
欢迎投稿!请随时提交拉取请求。
支持
有关问题和疑问,请使用 GitHub问题 页面。