MCP Server in TypeScript that exposes the SimConnect API of Microsoft Flight Simulator 2024 as MCP tools, resources, and prompts — enabling Claude to fully control the simulator.
______________________________________________________________________
安装
第一步——安装Node.js
需要Node.js 18或更高版本。下载 长期支持 版本从 .
安装后,关闭并重新打开终端,然后验证:
node -v # should print v18.x.x or higher
npm -v # should print 9.x.x or higher步骤2——克隆和构建
git clone https://github.com/jctommasi/simconnectmcp.git
cd simconnectmcp
npm install
npm run buildnpm install 下载所有依赖项,包括 节点simconnect (SimConnect SDK的Node.js绑定——不需要单独下载SDK)。
npm run build 将TypeScript编译为 dist/ 文件夹。
步骤3——验证Microsoft飞行模拟器2024
MSFS 2024必须安装在同一台机器上。服务器通过SimConnect命名管道与模拟器通信,这些管道由MSFS自动配置。
要确认SimConnect可用,请检查此文件是否存在:
%APPDATA%\Microsoft Flight Simulator 2024\SimConnect.xml此文件由MSFS在首次启动时创建。如果不存在,请在运行服务器之前至少启动一次MSFS 2024。
注: 必须运行模拟器才能连接MCP服务器。服务器包含指数回退的自动重新连接功能,因此如果MSFS尚未运行,它将不断重试。
步骤4-WASimCommander WASM模块(可选)
WASimCommander是一个开源WASM模块,它公开了MSFS内部的扩展变量访问。它是 不需要 对于基本操作,服务器可以在没有它的情况下完全工作。但是,它为复杂的附加飞机(PMDG、FlyByWire等)解锁了这些功能:
| 特性 | 描述 |
|---|---|
get_lvar / set_lvar | 读/写L:(局部)变量 |
trigger_h_event | 火灾H:(HTML/仪表)事件 |
execute_calculator_code | 执行RPN计算器代码 |
安装WASM模块:
- 从下载最新版本 .
- 在发布zip中,找到名为的文件夹
wasimcommander-module(或类似)。 - 将该文件夹复制到您的MSFS中 社区 文件夹:
%APPDATA%\Microsoft Flight Simulator 2024\Packages\Community\- 重新启动MSFS 2024。WASM模块在启动时自动加载。
注: 目前没有WASimCommander的原生Node.js客户端库。服务器通过动态导入检测并使用一个(wasim-client)如果可用。在此之前,WASimCommander工具会返回一个描述性错误——服务器正常启动和运行,这些功能会正常降级。步骤5——配置服务器
A. simconnect-mcp.config.json 文件提供了默认值。根据需要进行自定义:
{
"safetyProfile": "safe",
"logLevel": "info",
"maxSubscriptions": 50,
"reconnectMaxDelayMs": 30000
}安全简介
| 简介 | 描述 |
|---|---|
unrestricted | 允许所有操作,没有警告 |
safe | 允许所有操作;危险操作警告(设置位置、计算器代码、L:vars、发动机停机) |
readonly | 所有写入操作都被阻止;只有阅读工具和资源有效 |
步骤6-Claude桌面集成
将服务器添加到Claude Desktop配置文件中:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"simconnect-msfs2024": {
"command": "node",
"args": ["C:/Users/YOUR_USER/path/to/simconnect-mcp-server/dist/index.js"]
}
}
}看 claude_desktop_config.example.json 一个完整的模板。
快速验证
# 1. Build succeeded
ls dist/index.js # should exist
# 2. Start in dev mode (MSFS must be running)
npm run dev
# 3. You should see log output on stderr indicating:
# - MCP server started
# - SimConnect attempting connection (or connected if MSFS is running)
# - WASimCommander status (available or gracefully disabled)按 Ctrl+C 停止开发服务器。
______________________________________________________________________
用法
# Development (with hot reload)
npm run dev
# Production
npm run build
npm start
# Or run directly via bin
npx simconnect-mcp-server______________________________________________________________________
Claude代码Slash命令
使用此项目时 克劳德代码,以下斜线命令可用:
飞行计划
| 命令 | 描述 |
|---|---|
/sync-fly-plan | 将世界地图飞行计划同步到航空电子设备中 |
/sync-fly-plan 确保SimConnect已连接,然后调用 load_flight_plan 无需任何争论,它可以自动解析MSFS 2024 CUSTOMFLIGHT.PLN 通过 %APPDATA%.
时间加速
| 命令 | 描述 |
|---|---|
/x1 | 将sim速率设置为1× |
/x8 | 将sim卡速率设置为8倍 |
/x16 | 将sim卡速率设置为16倍 |
/x32 | 将sim卡速率设置为32倍 |
/x64 | 将sim卡速率设置为64倍 |
自主阶段管理
| 命令 | 描述 |
|---|---|
/crusader | 以64倍的速度快速前进,直到达到巡航高度,然后保持 |
/go-to-dest | 以64倍的速度快速前进,直到距离目的地约10分钟,然后降至1倍 |
/crusader --将sim速率设置为64×,然后进行监视 GPS ETE 和 PLANE ALTITUDE 定期地。当飞机稳定在巡航高度(垂直速度接近0,连续检查2次以上)时,它会报告“已达到巡航阶段”,并保持64倍运行,直到另有指示。
/go-to-dest --将sim速率设置为64×,然后进行监视 GPS ETE 每30秒(实时)。当ETE降至600秒以下时,它降至1×并报告: *“接近目的地——模拟速率1×。准备输入交通模式。”*
______________________________________________________________________
可用工具
连接与安全
| 工具 | 说明 |
|---|---|
simconnect_connect | 通过SimConnect连接到模拟器 |
simconnect_disconnect | 断开与模拟器的连接 |
get_safety_profile | 获取主动安全配置文件及其限制 |
SimVar访问
| 工具 | 说明 |
|---|---|
get_simvar | 按名称和单位读取一个或多个模拟变量 |
set_simvar | 写入模拟变量值 |
subscribe_simvar | 订阅SimVar更改以进行持续监控 |
unsubscribe_simvar | 取消活动的SimVar订阅 |
事件
| 工具 | 说明 |
|---|---|
send_event | 按名称触发任何关键事件(例如。, PARKING_BRAKES, GEAR_TOGGLE) |
飞机位置
| 工具 | 说明 |
|---|---|
get_aircraft_position | 读取飞机的完整位置(纬度、经度、高度、航向、速度、姿态) |
set_aircraft_position | 通过转换模式将飞机远程传输到新位置 |
发动机控制
| 工具 | 说明 |
|---|---|
get_engine_data | 读取每台发动机的参数(RPM、N1/N2、EGT、燃油流量、机油、油门) |
control_engine | 为单个或所有发动机设置油门、混合气或螺旋桨桨距 |
自动驾驶
| 工具 | 说明 |
|---|---|
get_autopilot_state | 读取全自动驾驶仪状态(主、航向、高度、VS、模式) |
set_autopilot | 接通/断开AP,设置航向、高度、VS、速度、切换模式 |
无线电和导航
| 工具 | 说明 |
|---|---|
get_radio_frequencies | 读取COM1/2、NAV1/2、ADF和应答机频率 |
set_radio_frequency | 通过自动BCD16转换设置任何射频 |
飞行计划
| 工具 | 说明 |
|---|---|
get_flight_plan | 检索带有航路点、进度和ETE的GPS飞行计划 |
load_flight_plan | 加载a .pln 将飞行计划文件导入模拟器 |
飞机系统
| 工具 | 说明 |
|---|---|
control_lights | 控制单个或所有飞机灯(开/关/切换) |
control_landing_gear | 升/降档并控制驻车制动器 |
control_flaps | 增加/减少/设置襟翼位置 |
get_weather | 读取环境天气(温度、风、能见度、气压计) |
get_systems_status | 读取电气、液压、增压和防冰状态 |
get_fuel_payload | 读取燃油量、重量、重心和预计续航时间 |
模拟控制
| 工具 | 说明 |
|---|---|
control_sim_rate | 增加/减少/设置模拟速度 |
pause_sim | 暂停、取消暂停或切换模拟器暂停状态 |
WASimCommander(扩展访问)
| 工具 | 说明 |
|---|---|
get_lvar | 读取一个L:(局部)变量——用于复杂的飞机 |
set_lvar | 写一个L:变量 |
trigger_h_event | 触发H:(HTML)事件 |
execute_calculator_code | 执行RPN计算器代码并返回结果 |
______________________________________________________________________
资源
| URI | 描述 |
|---|---|
simconnect://catalog/simvars | 按类别分组的可用SimVars的完整目录 |
simconnect://catalog/events | 按类别分组的关键事件的完整目录 |
simconnect://aircraft/info | 当前飞机名称、类型、型号和发动机信息 |
simconnect://status | 连接状态、正常运行时间、安全配置文件和订阅计数 |
______________________________________________________________________
提示
| 提示 | 描述 |
|---|---|
flight_briefing | 引导克劳德完成完整的飞行员式飞行简报 |
pre_flight_checklist | 逐步飞行前验证清单 |
approach_setup | 配置ILS、RNAV或VOR进场 |
emergency_procedures | 处理发动机故障、电气故障、增压或火灾紧急情况 |
______________________________________________________________________
许可证
麻省理工学院
