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).
______________________________________________________________________
🛠️ 先决条件
- 微软模拟飞行 (2020年或2024年)在Windows上运行。
- Python 3.10+.
- 吸烟 (用于远程/移动访问)。
______________________________________________________________________
📦 安装和设置
- 克隆此存储库。
- 安装所需的Python包:
pip install "mcp[cli]" fastapi uvicorn SimConnect anyio- 确保MSFS正在运行,你坐在跑道上。
______________________________________________________________________
🌐 远程操作:“移动副驾驶”设置
您可以通过将本地服务器暴露在互联网上,从手机(或任何地方)控制模拟器。这使您可以坐在全屏模式下,通过语音模式与AI飞行员交谈。
1.启动服务器
在本地运行python脚本。默认情况下,它在端口3000上侦听。
python msfs_mcp_server.py2.启动ngrok
打开一个新终端,将端口3000暴露给公共网络:
ngrok http 3000*复制ngrok提供的转发URL(例如。, https://your-id.ngrok-free.app).*
3.连接ChatGPT/AI
- 打开支持MCP的AI客户端(启用开发模式/MCP的ChatGPT,或兼容的MCP客户端)。
- 打开开发人员模式 在您的设置中。
- 将您的ngrok URL粘贴到
/mcp最后作为服务器端点。
- 格式: https://.ngrok-free.app/mcp
- 完成! 现在,您可以切换到移动应用程序,进入语音模式,然后说:
> *“副驾驶,设置襟翼起飞,启动自动驾驶仪。”*
______________________________________________________________________
🚀 使用Claude Desktop(本地)
如果您更喜欢在本地使用Claude Desktop而不使用ngrok:
- 找到您的配置文件:
%APPDATA%\Claude\claude_desktop_config.json - 添加条目:
{
"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
