飞行模拟器LLM控制工具

一个连接大型语言模型(如ChatGPT或Claude)与微软飞行模拟器2020/2024的工具,支持读取飞行仪表数据、控制飞机表面及执行完整的起降序列。

  • by alxspiker
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 alxspiker/MSFS-MCP-Server

使用说明

MSFS MCP服务器✈️🤖

ChatGPT PLAYS MSFS-LLM SimConnect工具

人工智能控制航空的实验。

这个工具是 模型上下文协议(MCP)服务器 它通过SimConnect将大型语言模型(如ChatGPT或Claude)直接连接到微软飞行模拟器2020/2024。

它允许人工智能读取飞行仪表,控制飞机表面,甚至使用基于Python的自定义PID控制器执行完整的起飞和着陆序列。

创造者的笔记: “ChatGPT制造的,甚至不是开玩笑的。它学会了如何制作自己的工具来控制飞机上的一切,并轻松获取大量数据。结果是一个有点工作的全自动飞行员。”


📺 演示

查看正在使用的工具: 观看视频

它几乎完全从起飞、导航和着陆开始工作。..除了有一次我在下降过程中受到了速度限制。我们都可以想象事情是如何发展的。


✨ 特性

  • 远程复印机: 在PC上运行sim卡,通过手机上的ChatGPT进行控制。
  • MCP集成: 将MSFS数据和控件作为LLM可以通过HTTP/SSE本机使用的“工具”公开。
  • 完全数据访问: 通过SimConnect读取任何SimVar(高度、航向、速度、发动机数据)。
  • AI自动驾驶逻辑:
    • 自动起飞: 处理跑道航向保持、$V_r$旋转和初始爬升。
    • 自动着陆: 跟踪下滑道和跑道航向,在20英尺处进行闪光(结果可能会有所不同!)。
  • 黑匣子日志记录: 自动将飞行遥测记录到CSV文件中(flight_data_log.csv).

🛠️ 先决条件

  1. 微软模拟飞行 (2020年或2024年)在Windows上运行。
  2. Python 3.10+.
  3. 吸烟 (用于远程/移动访问)。

📦 安装和设置

  1. 克隆此存储库。
  2. 安装所需的Python包:
    pip install "mcp[cli]" fastapi uvicorn SimConnect anyio
    
  3. 确保MSFS正在运行,你坐在跑道上。

🌐 远程操作:“移动副驾驶”设置

您可以通过将本地服务器暴露在互联网上,从手机(或任何地方)控制模拟器。这使您可以坐在全屏模式下,通过语音模式与AI飞行员交谈。

1.启动服务器

在本地运行python脚本。默认情况下,它在端口3000上侦听。

python msfs_mcp_server.py

2.启动ngrok

打开一个新终端,将端口3000暴露给公共网络:

ngrok http 3000

复制ngrok提供的转发URL(例如。, https://your-id.ngrok-free.app).

3.连接ChatGPT/AI

  1. 打开支持MCP的AI客户端(启用开发模式/MCP的ChatGPT,或兼容的MCP客户端)。
  2. 打开开发人员模式 在您的设置中。
  3. 将您的ngrok URL粘贴到 /mcp 最后作为服务器端点。
    • 格式: https://<your-ngrok-id>.ngrok-free.app/mcp
  4. 完成! 现在,您可以切换到移动应用程序,进入语音模式,然后说:

    “副驾驶,设置襟翼起飞,启动自动驾驶仪。”


🚀 使用Claude Desktop(本地)

如果您更喜欢在本地使用Claude Desktop而不使用ngrok:

  1. 找到您的配置文件: %APPDATA%\Claude\claude_desktop_config.json
  2. 添加条目:
{
  "mcpServers": {
    "msfs": {
      "command": "python",
      "args": ["C:\\path\\to\\your\\msfs_mcp_server.py"]
    }
  }
}

🧠 运作原理

脚本使用 FastMCP 将Python函数作为工具公开。

自动驾驶仪循环

与游戏中只设置“航向保持”的标准自动驾驶仪不同,这个工具实际上 苍蝇 该平面使用异步Python循环。

  • 起飞: AI呼叫 engage_takeoff_autopilot该脚本启动一个循环,每秒读取航向和空速20次,计算PID误差以物理移动舵轴和升降舵轴。
  • 着陆: AI呼叫 engage_landing_autopilot该脚本计算合成下滑道,并管理俯仰/油门触地。

可用工具

  • get_simvar_group_state:转储仪器数据。
  • set_event_state:按钮/移动杠杆。
  • engage_takeoff_autopilot:移交离境控制权。
  • engage_landing_autopilot:移交到货控制。

⚠️ 免责声明

该软件是由AI生成的原型,用于AI。

  • 着陆逻辑是实验性的。 开发商指出,着陆是“最难的部分”
  • 不要将其用于现实世界的航空。
  • 如果LLM受到速率限制或坠毁,飞机 将 继续执行最后一个命令(通常直接飞向地面)。

🤝 鸣谢

  • 概念和代码生成: ChatGPT
  • 人工处理程序:alxspiker