jsbsim-mcp
jsbsim-mcp 是一项服务,通过模型上下文协议(MCP)公开了 JSBSim 飞行动力学引擎,允许任何支持MCP的代理使用简单的英语控制飞机。它包括一个网页仪表板、实时模拟和WebSocket遥测。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"jsbsim-fdm": {
"url": "https://\u003cyour-hf-space\u003e.hf.space/mcp"
}
}
}
服务介绍
title: jsbsim-mcp
emoji: ✈️
colorFrom: blue
colorTo: indigo
sdk: docker
app_port: 7860
app_file: app.py
pinned: false
short_description: JSBSim飞行动力学引擎作为MCP服务
jsbsim-mcp
JSBSim作为托管的MCP服务。在任何AI代理中驾驶任何飞机。
JSBSim 是一个开源的飞行动力学引擎,为FlightGear、Unreal Engine、ArduPilot、NASA研究和DARPA的人工智能空战竞赛提供支持。jsbsim-mcp 通过模型上下文协议 (MCP) 暴露了相同的引擎,因此Claude、Cursor、Codex或任何MCP感知的代理可以用简单的英语来驾驶飞机。
基于此空间构建:
- 1个统一的ASGI应用:MCP JSON-RPC at
/mcp+ Web仪表板 at/ - 60Hz实时模拟引擎 (
python -m jsbsim) - 60多种捆绑的飞机 (
c172x,A320,f-16,737,Concorde,X15, ...) - 浏览器WebSocket遥测
- Apache-2.0源代码;JSBSim依赖项是LGPL-2.1(C-ABI隔离)
快速开始
1. 本地安装(标准输入输出模式)
git clone https://github.com/<you>/jsbsim-mcp
cd jsbsim-mcp
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# Bundle JSBSim aircraft data (≈30 MB)
make data # OR: mkdir jsbsim_data && cd jsbsim_data && \
# curl -L https://github.com/JSBSim-Team/jsbsim/archive/refs/heads/master.tar.gz | tar --strip-components=1 -xz
python app.py # → http://0.0.0.0:7860 (dashboard) / http://0.0.0.0:7860/mcp (MCP)
2. 连接远程代理(Claude Desktop / Cursor)
{
"mcpServers": {
"jsbsim-fdm": {
"url": "https://<your-hf-space>.hf.space/mcp"
}
}
}
Claude随后会列出10种工具(参见docs/API.md)和7种资源(包括完整的遥测历史记录)。
3. 本地标准输入输出(Claude Code / Cursor本地)
python run_stdio.py
在claude_desktop_config.json中:
{
"mcpServers": {
"jsbsim-fdm-local": {
"command": "python",
"args": ["/path/to/jsbsim-mcp/run_stdio.py"]
}
}
}
HTTP端点
| 路径 | 描述 |
|---|---|
/ |
Web仪表板(PFD、3D姿态、时间序列图表) |
/api/aircraft |
列出捆绑的飞机 |
/api/sessions |
POST创建 / GET列表 / DELETE关闭 |
/api/sessions/{sid}/step |
推进模拟N秒 |
/api/sessions/{sid}/telemetry |
最新的遥测帧 |
/ws/{sid} |
WebSocket遥测流(约20 Hz) |
/mcp |
MCP JSON-RPC 2.0可流式传输的HTTP端点 |
/healthz |
健康探测 |
MCP工具(10)
list_aircraft create_session close_session
set_initial_conditions trim step
get_property set_property get_telemetry
execute_script
MCP资源(7)
jsbsim://aircraft
jsbsim://aircraft/{name}
jsbsim://engines
jsbsim://sessions
jsbsim://sessions/{sid}/telemetry
MCP提示(2)
cruise_c172 Standard C172 cruise workflow
stall_recovery Stall entry / recovery exercise
架构
参见docs/ARCHITECTURE.md。系统分层如下:
src/engine/ JSBSim wrapper + session pool + telemetry
src/server/ MCP protocol adapters (FastMCP tools/resources/prompts)
src/dashboard/ FastAPI dashboard + WebSocket broadcaster
app.py ASGI dispatcher
许可边界:JSBSim 1.3.1是LGPL-2.1,并以wheel形式加载(pip install jsbsim)。本项目中的所有新代码都是Apache-2.0。
演示
curl -X POST https://<space>.hf.space/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"demo","version":"1"}}}'
然后列出工具,调用create_session等。
许可
- JSBSim依赖项:LGPL-2.1
参见THIRD_PARTY_NOTICES.md。
致谢
- JSBSim团队,25年的开源飞行动力学贡献
- Anthropic MCP,为协议标准
- Hugging Face,提供Spaces托管