- API: https://api.rocketpy.org/
- MCP Server: https://api.rocketpy.org/mcp/
- Performs rocket simulations and returns simulation data
- Stores simulation input data in mongo-db
- Install python3 3.11.5 or above
- install mongodb-atlas
- Install dependencies
python3 -m pip install -r requirements.txt
- make format
- make test
- make clean
- make build
- Setup MONGODB_CONNECTION_STRING:
$ touch .env && echo MONGODB_CONNECTION_STRING="$ConnectionString" > .env - run docker compose:
docker-compose up --build -d
- Dev:
python3 -m uvicorn src:app --reload --port 3000 - Prod:
gunicorn -k uvicorn.workers.UvicornWorker src:app -b 0.0.0.0:3000
- The MCP bridge is mounted directly on the FastAPI app and is available at
/mcpalongside the REST API. - No extra process is required:
uvicorn src:appserves both the REST routes and the MCP transport.
├── README.md # this file ├── requirements.txt │ ├── lib │ │ │ ├── api.py # main app │ │── secrets.py │ │ │ ├── controllers │ │ ├── interface.py │ │ ├── environment.py │ │ ├── flight.py │ │ ├── motor.py │ │ └── rocket.py │ │ │ ├── services │ │ ├── environment.py │ │ ├── flight.py │ │ ├── motor.py │ │ └── rocket.py │ │ │ ├── routes │ │ ├── environment.py │ │ ├── flight.py │ │ ├── motor.py │ │ └── rocket.py │ │ │ ├── repositories │ │ ├── interface.py │ │ ├── environment.py │ │ ├── flight.py │ │ ├── motor.py │ │ └── rocket.py │ │ │ ├── models │ │ ├── interface.py │ │ ├── environment.py │ │ ├── flight.py │ │ ├── motor.py │ │ ├── rocket.py │ │ │ │ │ └── sub │ │ ├── aerosurfaces.py │ │ └── tanks.py │ │ │ └── views │ ├── interface.py │ ├── environment.py │ ├── flight.py │ ├── motor.py │ └── rocket.py │ └── tests - OpenAPI standard: https://api.rocketpy.org/redoc
- Swagger UI: https://api.rocketpy.org/docs
General API workflow. Current available models are: Environment, Flight, Rocket and Motor.
sequenceDiagram participant User participant API participant MongoDB User ->> API: POST /model API ->> MongoDB: Persist API Model as a document MongoDB -->> API: Model ID API -->> User: 201 ModelCreated View User ->> API: GET /model/:id API ->> MongoDB: Read API Model document MongoDB -->> API: API Model document API -->> User: 200 API ModelView User ->> API: PUT /model/:id API ->> MongoDB: Update API Model document API -->> User: 204 User ->> API: DELETE /model/:id API ->> MongoDB: Delete API Model document MongoDB -->> API: Deletion Confirmation API -->> User: 204 sequenceDiagram participant User participant API participant MongoDB participant RocketPy lib User ->> API: GET model/:id/simulate/ API -->> MongoDB: Retrieve API Model document MongoDB -->> API: API Model document API ->> RocketPy: Initialize RocketPy native class and simulate RocketPy lib -->> API: Simulation Results API -->> User: Simulation Results User ->> API: GET /model/:id/rocketpy API -->> MongoDB: Retrieve API Model document MongoDB -->> API: API Model document API ->> RocketPy: Initialize RocketPy native class RocketPy lib -->> API: RocketPy native class API -->> User: RocketPy native class as .dill binary (amd64)