MSFS SimConnect MCP
微软2024飞行模拟器的模型上下文协议(MCP)服务器。通过SimConnect向AI代理公开实时飞行数据,用于AI驱动的飞行指令等用例。
它的作用
此Windows应用程序位于您的系统托盘中,并连接到正在运行的Microsoft Flight Simulator实例。它通过模型上下文协议公开飞行数据,允许人工智能代理(如克劳德)实时查询您当前的飞行状态。
示例用例: 你正在飞近,问克劳德“我的着陆配置正确吗?”克劳德调用MCP工具检查你的高度、空速、襟翼和自动驾驶仪设置,然后给你提供上下文反馈。
可用工具
| 工具 | 说明 |
|---|---|
get_connection_status | 检查MSFS是否正在运行并已连接 |
get_flight_position | 位置+磁航向、GS/VS、俯仰/倾斜、AGL/无线电高度、风、AoA、滑移、地面 |
get_flight_instruments | 指示高度、空速(IAS/TAS/Mach)、航向指示器、高度计设置 |
get_engine_status | 转速/油门、燃油流量/数量/重量、温度、N1/N2/扭矩、燃油压力、辅助动力装置 |
get_autopilot_status | AP/FD、HDG/ALT/VS/IAS模式、APP/GS/BC、VNAV臂/主动、倾斜/俯仰保持、偏航阻尼器、自动油门 |
get_aircraft_info | 飞机类型、机尾号、重量 |
get_flight_plan_leg | 当前GPS计划状态、下一个航路点方位/距离/ETE/ETA、XTK、目的地ETE/ETA |
get_flight_plan_waypoint | 当前航段下一个/上一个航路点详细信息(ID/lat/lon/alt、方位、距离) |
get_navigation_status | 导航源(GPS/VLOC)、OBS/航向、CDI/GSI、LOC/GS可用性、NAV1/2频率、DME、往返、magvar |
get_approach_status | 进场加载/激活、分段标志、下滑道/GS偏差 |
get_aircraft_configuration | 齿轮、襟翼、扰流板、自动刹车、驻车制动器、装饰件、车外灯 |
所有工具都是 只读。此服务器无法控制您的飞机。
需求
- Windows 10/11
- 微软飞行模拟器2024(也可能与MSFS 2020兼容-未经测试)
- 已安装MSFS SDK(用于SimConnect.dll)
安装
待办事项
配置
克劳德桌面(连接器UI)
- 运行服务器:
dotnet run --project src/MsfsMcpServer(继续听http://localhost:5000). - 使用此JSON配置Claude(例如,在
claude_desktop_config.json):
{
"mcpServers": {
"msfs": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:5000/mcp/sse"
]
}
}
}- 使用时保持服务器运行。
其他MCP客户端
服务器运行在 http://localhost:5000 SSE运输。使用SSE端点: http://localhost:5000/mcp/sse(有些客户也可以接受 http://localhost:5000/mcp.)
快速开始
- 确保MSFS正在运行(对于真实数据,最好是在运行中)。
- 启动服务器:
dotnet run --project src/MsfsMcpServer - 将您的MCP客户端连接到
http://localhost:5000/mcp/sse. - 呼叫
get_connection_status和get_flight_position.
MCP检查员进行本地测试
服务器运行时,您可以通过MCP检查器浏览工具:
npx @modelcontextprotocol/inspector http://localhost:5000/mcp用法
待办事项
Web仪表板
服务器包括一个web仪表板,位于 http://localhost:5000 用于监控连接状态和查看实时飞行数据。
Todo-屏幕截图
故障排除
“未连接到MSFS”
- 确保Microsoft飞行模拟器正在运行
- 检查你是否在航班上(不在主菜单上)
“请求超时”
- MSFS可能正在加载或位于菜单中
- 请在飞行中再试一次
服务器无法启动
- 检查端口5000是否已在使用中
- 确保SimConnect.dll与exe位于同一文件夹中
许可证
该项目发布于 无许可证 -公共领域。
贡献
请发送一个提示请求,说明您希望工具或服务器做什么,哪些SimVars/行为很重要,以及预期的输出,而不是拉取请求。我将亲自运行提示,以便更改反映真实的使用意图。
