# SimBrief MCP Server A [Model Context Protocol](https://modelcontextprotocol.io) server that gives Claude Desktop direct access to your SimBrief flight plans — no Cloudflare, no OAuth, no infrastructure required. [![SimBrief-MCPServer MCP server](https://glama.ai/mcp/servers/Emanuele94/SimBrief-MCPServer/badges/card.svg)](https://glama.ai/mcp/servers/Emanuele94/SimBrief-MCPServer) [![SimBrief-MCPServer MCP server](https://glama.ai/mcp/servers/Emanuele94/SimBrief-MCPServer/badges/score.svg)](https://glama.ai/mcp/servers/Emanuele94/SimBrief-MCPServer) ## Features 14 tools covering every section of a SimBrief OFP: | Tool | Description | |---|---| | `get_flight_summary` | Flight number, aircraft, route, distance, cruise, ETE, fuel | | `get_weather` | METAR, TAF and ATIS for departure, arrival and alternate | | `get_fuel_plan` | Full fuel breakdown: taxi, trip, contingency, alternate, reserve, extra | | `get_weights` | OEW, payload, ZFW, TOW, ramp weight, landing weight | | `get_times` | Scheduled OUT/OFF/ON/IN, ETE, block time, taxi, endurance | | `get_atc_flightplan` | ATC flight plan string ready for filing | | `get_aircraft_info` | Type, registration, engines, equipment codes | | `get_navlog` | Full waypoint list with altitude, distance and fuel per leg | | `get_notams` | All NOTAMs (departure, arrival, en-route) | | `get_alternate_info` | Alternate airport details and navlog | | `get_performance` | Takeoff & landing performance (TLR), if available | | `get_crew` | Captain, first officer, dispatcher, purser, flight attendants | | `get_impacts` | Fuel and time sensitivity to altitude and cost index changes | | `get_full_flight_plan` | Complete raw JSON for custom analysis | All tools accept an optional `plan_id` parameter — leave it empty to always fetch your latest dispatch. ## Requirements - Python 3.11+ - [uv](https://docs.astral.sh/uv/getting-started/installation/) - A [SimBrief](https://www.simbrief.com) account (free) ## Installation ```bash git clone https://github.com/Emanuele94/SimBrief-MCPServer.git cd SimBrief-MCPServer uv sync ``` ## Configuration Your SimBrief **Pilot ID** is passed via an environment variable in the MCP config — no code changes needed. Find your Pilot ID under SimBrief → Account Settings → **Pilot ID**. ## Claude Desktop integration Add the following to your `claude_desktop_config.json`: **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows:** `%APPDATA%\Claude\claude_desktop_config.json` ```json { "mcpServers": { "simbrief": { "command": "uv", "args": [ "run", "--project", "/absolute/path/to/SimBrief-MCPServer", "python", "/absolute/path/to/SimBrief-MCPServer/server.py" ], "env": { "SIMBRIEF_PILOT_ID": "your_pilot_id_here" } } } } ``` Then restart Claude Desktop. The SimBrief tools will appear automatically. > The server will refuse to start with a clear error message if `SIMBRIEF_PILOT_ID` is not set. ## Usage examples Once connected, you can ask Claude things like: - *"What's my latest flight plan?"* - *"Show me the weather for my next flight."* - *"How much fuel do I have planned and what's the breakdown?"* - *"Give me the full ATC flight plan string."* - *"What happens to fuel burn if I fly 2000 ft lower?"* - *"Show me the first 20 waypoints of my navlog."* ## Development Install dev dependencies: ```bash uv sync --all-extras ``` Run tests: ```bash uv run pytest -v ``` Lint and format: ```bash uv run ruff check . uv run ruff format . ``` All tests run fully offline — the SimBrief API is mocked so no internet connection or real Pilot ID is required. ## Contributing 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/my-feature`) 3. Make your changes and add tests 4. Ensure the CI pipeline passes locally (`uv run pytest && uv run ruff check .`) 5. Open a Pull Request against `main` PRs must pass all checks (tests + lint) before they can be merged. ## License MIT