{"id":50564040,"url":"https://github.com/aurickk/mcap","last_synced_at":"2026-06-04T13:01:24.637Z","repository":{"id":349081189,"uuid":"1200993834","full_name":"aurickk/MCAP","owner":"aurickk","description":"A lightweight and simple self-hosted Minecraft account pool manager.","archived":false,"fork":false,"pushed_at":"2026-04-04T04:58:52.000Z","size":63,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T06:30:17.450Z","etag":null,"topics":["account-pool","dashboard","java","login","microsoft","minecraft","self-hosted","webapp"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aurickk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"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":null,"dco":null,"cla":null}},"created_at":"2026-04-04T04:27:51.000Z","updated_at":"2026-04-04T04:58:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aurickk/MCAP","commit_stats":null,"previous_names":["aurickk/mcap"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/aurickk/MCAP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurickk%2FMCAP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurickk%2FMCAP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurickk%2FMCAP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurickk%2FMCAP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aurickk","download_url":"https://codeload.github.com/aurickk/MCAP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurickk%2FMCAP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33905359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["account-pool","dashboard","java","login","microsoft","minecraft","self-hosted","webapp"],"created_at":"2026-06-04T13:01:19.709Z","updated_at":"2026-06-04T13:01:24.627Z","avatar_url":"https://github.com/aurickk.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eMCAP - Minecraft Account Pooler\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eA lightweight and simple self-hosted Minecraft account pool manager. Sign in with Microsoft accounts, store tokens, and keep them fresh automatically. All accessible from a web interface.\u003c/p\u003e\n\n\u003cimg width=\"1692\" height=\"1085\" alt=\"image\" src=\"https://github.com/user-attachments/assets/cbe074f5-3cd8-4803-b8b7-f5d7c0d49e75\" /\u003e\n\n\u003e [!IMPORTANT]\n\u003e This is designed for single-user, local use. There is no authentication or input sanitization. Do not expose this to the public internet.\n\n## Features\n\n- Microsoft device code login flow\n- Import accounts via refresh tokens (single or bulk)\n- Automatically refresh expired tokens every 30 minutes\n- Copy session and refresh tokens per account\n- Export selected accounts as `sessiontoken:refreshtoken` per line\n- 3D skin viewer with live preview\n- Skin uploading (classic/slim)\n- Cape management (equip, hide, preview on hover)\n- Username changing with availability check\n- REST API for programmatic access\n- Dark-themed web interface\n\n## Tech Stack\n\n- **Backend:** Java 25, [Javalin](https://javalin.io/), [MinecraftAuth](https://github.com/RaphiMC/MinecraftAuth)\n- **Frontend:** Vanilla HTML/CSS/JS, [skinview3d](https://github.com/bs-community/skinview3d)\n- **Database:** SQLite\n- **Build:** Gradle\n\n## Installation\n\n### Docker (recommended)\n\n1. Create a `docker-compose.yml`:\n   ```yaml\n   services:\n     mcap:\n       image: ghcr.io/aurickk/mcap:latest\n       ports:\n         - \"7070:7070\"\n       volumes:\n         - ./data:/app/data\n   ```\n\n2. Start the container:\n   ```\n   docker compose up -d\n   ```\n\n3. Open http://localhost:7070\n\nTo stop: `docker compose down`\n\n### JAR\n\nRequires [Java 25](https://adoptium.net/) or later.\n\n1. Download `mcap-\u003cversion\u003e.jar` from the [latest release](https://github.com/Aurickk/mcap/releases/latest)\n\n2. Run:\n   ```\n   java -jar mcap-\u003cversion\u003e.jar\n   ```\n\n3. Open http://localhost:7070\n\n### Build and run from source\n\n1. Clone the repository:\n   ```\n   git clone https://github.com/Aurickk/MCAP.git\n   cd MCAP\n   ```\n\n2. Build and run:\n   ```\n   ./gradlew run\n   ```\n\n## Configuration\n\nSet in `docker-compose.yml`:\n\n- **Port**: Change the left side of `ports` (e.g. `\"8080:7070\"` to expose on port 8080)\n- **Environment variables**:\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `MCAP_DB` | `/app/data/mcap.db` | SQLite database path |\n| `MCAP_REFRESH_MINUTES` | `30` | Token auto-refresh interval |\n\n## API\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `GET` | `/api/accounts` | List all accounts |\n| `GET (SSE)` | `/api/accounts/login` | Start device code login |\n| `POST` | `/api/accounts/login/token` | Import via refresh token |\n| `POST` | `/api/accounts/{id}/refresh` | Refresh account tokens |\n| `DELETE` | `/api/accounts/{id}` | Remove account |\n| `GET` | `/api/accounts/{id}/profile` | Fetch skin/cape data |\n| `POST` | `/api/accounts/{id}/skin` | Upload skin |\n| `PUT` | `/api/accounts/{id}/cape` | Equip cape |\n| `DELETE` | `/api/accounts/{id}/cape` | Hide cape |\n| `GET` | `/api/accounts/name/{name}/available` | Check username availability |\n| `PUT` | `/api/accounts/{id}/name` | Change username |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurickk%2Fmcap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faurickk%2Fmcap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurickk%2Fmcap/lists"}