jsbsim-mcp
Provides the JSBSim flight-dynamics engine as an MCP service, enabling AI agents to control and simulate aircraft in real-time through natural language.
README
title: jsbsim-mcp emoji: ✈️ colorFrom: blue colorTo: indigo sdk: docker app_port: 7860 app_file: app.py pinned: false license: apache-2.0 short_description: JSBSim flight-dynamics engine as a self-hosted MCP service
jsbsim-mcp — Self-Hosted MCP Service
JSBSim flight dynamics, exposed as an MCP service you run locally. Bring your own compute —
pip installordocker run, plug into any MCP-aware agent.
This is the Self-Hosted distribution of jsbsim-mcp. It is not a hosted endpoint — you deploy it locally and bind it as an MCP stdio server to Claude Desktop / Claude Code / Cursor / Codex.
For the deployed hosted version, see the HF Space mirror (separate project).
1. Install
Option A — pip (recommended for Claude Desktop / Cursor / Codex)
pip install -e .
# or:
# pip install git+https://github.com/flyintothesky/jsbsim-mcp.git
Requires Python ≥ 3.10 and jsbsim == 1.3.1.
Option B — Docker (recommended for sandboxing)
docker build -t jsbsim-mcp .
docker run --rm -it jsbsim-mcp stdio
Option C — From this repo
git clone https://github.com/flyintothesky/jsbsim-mcp
cd jsbsim-mcp
pip install -r requirements.txt
python -m scripts.slim_data # optional, ~24 MB → saves MB
python run_stdio.py
2. Wire into Claude Desktop / Cursor / Codex
claude_desktop_config.json (or its equivalent for your client):
{
"mcpServers": {
"jsbsim-fdm-local": {
"command": "python",
"args": ["/abs/path/to/jsbsim-mcp/run_stdio.py"]
}
}
}
Restart Claude. Tools list appears:
list_aircraft create_session close_session
set_initial_conditions trim step
get_property set_property get_telemetry
execute_script
3. (Optional) Run the bundled web dashboard
Want a browser UI for the simulation? Run the same code as an HTTP server:
python app.py # → http://localhost:7860/
- Live PFD
- 3D attitude indicator
- Time-series charts (altitude / speed / alpha / thrust)
- WebSocket telemetry at ~20 Hz
- Browser-side MCP JSON-RPC console
Works inside Docker as well:
docker run --rm -p 7860:7860 jsbsim-mcp
# then visit http://localhost:7860/
4. Tool reference (10 tools)
| Tool | Summary |
|---|---|
list_aircraft |
List 60+ bundled aircraft names |
create_session |
Spin up a session, return session_id |
close_session |
Tear it down |
set_initial_conditions |
Apply altitude / airspeed / heading etc. |
trim |
Iteratively balances elevator for level flight |
step |
Advance N simulated seconds |
get_property |
Read any JSBSim property by path |
set_property |
Write any JSBSim property |
get_telemetry |
One-shot 40+ scalar frame |
execute_script |
Load a <run> JSBSim script |
Full schema: docs/API.md.
5. Architecture
src/engine/ JSBSim wrapper + session pool + telemetry
src/server/ MCP protocol adapter (FastMCP, stdio + HTTP)
src/dashboard/ FastAPI dashboard + WebSocket broadcaster
app.py Combined ASGI dispatcher (HTTP + WS + MCP)
run_stdio.py Stdio entry for local Claude clients
LGPL-2.1 boundary preserved (JSBSim is dynamically linked). See
THIRD_PARTY_NOTICES.md.
Why Self-Hosted?
JSBSim's open-source license permits redistribution, but the model files (60 aircraft, ~30 MB) and C++ simulator itself are heavy. The practical way to consume this in agents is:
pip installonce.- Run per-developer as an MCP server via stdio.
- Optionally start the dashboard for human-in-the-loop.
This avoids round-tripping 60 aircraft over a public MCP endpoint and keeps your proprietary IC files local.
If you want a centrally hosted version for a team, see the
self-hosted Docker recipe in docs/DEPLOY_MODELSCOPE.md — point your
own HF Space / Render / Fly.io at the same source.
License
- This project: Apache-2.0
- JSBSim dependency: LGPL-2.1
See LICENSE and THIRD_PARTY_NOTICES.md.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.