GeoFS
STREAMABLE HTTPMCP server for controlling aircraft in GeoFS flight simulator via AI models.
MCP server for controlling aircraft in GeoFS flight simulator via AI models.
A Model Context Protocol (MCP) server for the GeoFS flight simulator, allowing AI models to control and interact with aircraft in the GeoFS browser-based flight simulator.
Clone this repository:
git clone https://github.com/yourusername/geofs-mcp-server.git
cd geofs-mcp-server
Install dependencies:
npm install
Build the project:
npm run build
Start the MCP server:
npm start
The server will launch a browser window that navigates to GeoFS
The MCP server will be available at:
http://localhost:3000ws://localhost:3000This MCP server can be used with AI models that support the Model Context Protocol, allowing them to:
GET /mcp - Get server capabilities and available endpointsGET /mcp/aircraft - Get current aircraft dataPOST /mcp/aircraft - Control aircraft parametersGET /mcp/flight-data - Get comprehensive flight dataPOST /mcp/navigation - Set navigation parametersGET /mcp/simulation - Get simulation statusPOST /mcp/simulation - Control simulation parametersThe server also supports WebSocket for real-time communication:
// Example WebSocket message { "id": 1, "type": "command", "command": "setThrottle", "params": { "value": 0.75 } }
Available commands:
setThrottle - Set engine throttle (0-1)setHeading - Set target heading in degreesgetPosition - Get current aircraft positionselectAircraft - Change to a different aircrafttakeOff - Execute takeoff procedureland - Execute landing proceduregetFlightData - Get comprehensive flight dataSee the examples/simple-client.js file for a basic example of how to connect to and use the GeoFS MCP server.
To run the example:
node examples/simple-client.js
The GeoFS MCP server uses Puppeteer to control a browser instance running GeoFS. It provides a standardized MCP interface that allows AI models to interact with the flight simulator through HTTP and WebSocket APIs.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.