{"id":19449095,"url":"https://github.com/rocketpy-team/infinity-api","last_synced_at":"2026-03-13T23:04:40.216Z","repository":{"id":196321611,"uuid":"634356872","full_name":"RocketPy-Team/Infinity-API","owner":"RocketPy-Team","description":"Infinity-API is a RESTful Open API and MCP server for RocketPy","archived":false,"fork":false,"pushed_at":"2026-03-09T18:56:31.000Z","size":361722,"stargazers_count":8,"open_issues_count":8,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-09T23:55:59.659Z","etag":null,"topics":["aerodynamics","api","flight-simulator","public-api","rocket-simulator"],"latest_commit_sha":null,"homepage":"https://api.rocketpy.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RocketPy-Team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["RocketPy-Team"]}},"created_at":"2023-04-29T21:17:07.000Z","updated_at":"2026-02-19T05:47:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"95c34164-0d6f-4855-93ea-f4e60ca24a0e","html_url":"https://github.com/RocketPy-Team/Infinity-API","commit_stats":{"total_commits":418,"total_committers":1,"mean_commits":418.0,"dds":0.0,"last_synced_commit":"7ac18ebebf31421c8ce34dc20b5b372a272384ac"},"previous_names":["rocketpy-team/infinity-api"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/RocketPy-Team/Infinity-API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketPy-Team%2FInfinity-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketPy-Team%2FInfinity-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketPy-Team%2FInfinity-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketPy-Team%2FInfinity-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RocketPy-Team","download_url":"https://codeload.github.com/RocketPy-Team/Infinity-API/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketPy-Team%2FInfinity-API/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30478959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T20:45:58.186Z","status":"ssl_error","status_checked_at":"2026-03-13T20:45:20.133Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aerodynamics","api","flight-simulator","public-api","rocket-simulator"],"created_at":"2024-11-10T16:29:59.362Z","updated_at":"2026-03-13T23:04:40.204Z","avatar_url":"https://github.com/RocketPy-Team.png","language":"Python","readme":"# Infinity-API\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/RocketPy-Team/Infinity-API)\n\n- API: https://api.rocketpy.org/\n- MCP Server: https://api.rocketpy.org/mcp/\n\n## Capabilities\n- Performs rocket simulations and returns simulation data\n- Stores simulation input data in mongo-db\n\n## Setup\n- [Install python3](https://www.python.org/downloads/) 3.11.5 or above\n- [install mongodb-atlas](https://www.mongodb.com/try/download/community)\n- Install dependencies `python3 -m pip install -r requirements.txt`\n\n### Windows Users\n⚠️ **Known Issue**: `uvloop` does not support Windows and will fail during pip installation with:\n```\nRuntimeError: uvloop does not support Windows at the moment\n```\n\n**Recommended Solution**: Use Docker (easiest approach)\n\n## Development\n- make format\n- make test\n- make clean\n- make build\n\n## Starting the server\n- Setup MONGODB_CONNECTION_STRING:\n```\n$ touch .env \u0026\u0026 echo MONGODB_CONNECTION_STRING=\"$ConnectionString\" \u003e .env\n```\n\n### Docker\n- run docker compose: `docker-compose up --build -d`\n\n### Standalone \n- Dev: `python3 -m uvicorn src:app --reload --port 3000`\n- Prod: `gunicorn -k uvicorn.workers.UvicornWorker src:app -b 0.0.0.0:3000`\n\n## MCP Server\n- The MCP bridge is mounted directly on the FastAPI app and is available at `/mcp` alongside the REST API.\n- No extra process is required: `uvicorn src:app` serves both the REST routes and the MCP transport.\n\n## Project structure\n```\n├── README.md    # this file\n├── requirements.txt\n│   \n├── lib\n│   │   \n│   ├── api.py    # main app\n│   │── secrets.py\n│   │   \n│   ├── controllers\n│   │   ├── interface.py\n│   │   ├── environment.py\n│   │   ├── flight.py\n│   │   ├── motor.py\n│   │   └── rocket.py\n│   │   \n│   ├── services \n│   │   ├── environment.py\n│   │   ├── flight.py\n│   │   ├── motor.py\n│   │   └── rocket.py\n│   │   \n│   ├── routes \n│   │   ├── environment.py\n│   │   ├── flight.py\n│   │   ├── motor.py\n│   │   └── rocket.py\n│   │   \n│   ├── repositories\n│   │   ├── interface.py\n│   │   ├── environment.py\n│   │   ├── flight.py\n│   │   ├── motor.py\n│   │   └── rocket.py\n│   │   \n│   ├── models\n│   │   ├── interface.py\n│   │   ├── environment.py\n│   │   ├── flight.py\n│   │   ├── motor.py\n│   │   ├── rocket.py\n│   │   │   \n│   │   └── sub\n│   │       ├── aerosurfaces.py\n│   │       └── tanks.py\n│   │   \n│   └── views\n│       ├── interface.py\n│       ├── environment.py\n│       ├── flight.py\n│       ├── motor.py\n│       └── rocket.py\n│   \n└── tests\n```\n\n## DOCS\n- OpenAPI standard: [https://api.rocketpy.org/redoc](https://api.rocketpy.org/redoc)\n- Swagger UI: [https://api.rocketpy.org/docs](https://api.rocketpy.org/docs)\n\n## API Flowchart\nGeneral API workflow. Current available models are: Environment, Flight, Rocket and Motor.\n\n### CRUD\n```mermaid\nsequenceDiagram\n    participant User\n    participant API\n    participant MongoDB\n\n    User -\u003e\u003e API: POST /model    \n    API -\u003e\u003e MongoDB: Persist API Model as a document\n    MongoDB --\u003e\u003e API: Model ID\n    API --\u003e\u003e User: 201 ModelCreated View\n\n    User -\u003e\u003e API: GET /model/:id\n    API -\u003e\u003e MongoDB: Read API Model document\n    MongoDB --\u003e\u003e API: API Model document\n    API --\u003e\u003e User: 200 API ModelView\n\n    User -\u003e\u003e API: PUT /model/:id\n    API -\u003e\u003e MongoDB: Update API Model document\n    API --\u003e\u003e User: 204\n\n    User -\u003e\u003e API: DELETE /model/:id\n    API -\u003e\u003e MongoDB: Delete API Model document\n    MongoDB --\u003e\u003e API: Deletion Confirmation\n    API --\u003e\u003e User: 204\n\n```\n\n### Simulating and extracting RocketPY native classes\n```mermaid\nsequenceDiagram\n    participant User\n    participant API\n    participant MongoDB\n    participant RocketPy lib\n\n    User -\u003e\u003e API: GET model/:id/simulate/\n    API --\u003e\u003e MongoDB: Retrieve API Model document\n    MongoDB --\u003e\u003e API: API Model document \n    API -\u003e\u003e RocketPy: Initialize RocketPy native class and simulate\n    RocketPy lib --\u003e\u003e API: Simulation Results\n    API --\u003e\u003e User: Simulation Results\n\n    User -\u003e\u003e API: GET /model/:id/rocketpy\n    API --\u003e\u003e MongoDB: Retrieve API Model document\n    MongoDB --\u003e\u003e API: API Model document \n    API -\u003e\u003e RocketPy: Initialize RocketPy native class\n    RocketPy lib --\u003e\u003e API: RocketPy native class\n    API --\u003e\u003e User: RocketPy native class as .dill binary (amd64)\n```\n","funding_links":["https://github.com/sponsors/RocketPy-Team"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocketpy-team%2Finfinity-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frocketpy-team%2Finfinity-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocketpy-team%2Finfinity-api/lists"}