Ludo Online is a multiplayer web-based implementation of the classic board game Ludo, built using the MERN stack and integrated with SocketIO for real-time communication.
>> Watch YouTube Video here <<
Frontend:
Backend:
Tests:
Other:
-
Maintained session consistency with Express Session and MongoDB.
-
Enabled real-time communication via WebSocket and SocketIO.
-
Maintained code reliability by implementing unit and integration tests using Mocha, Chai, and Jest.
-
Implemented E2E tests utilizing Cypress, addressing challenges related to testing collaboration and canvas functionality in the application.
-
Established a CI/CD pipeline using CircleCI, with pushing Docker container to AWS ECR and deploying to AWS ECS
-
Download this repository
-
Generate your own mongoDB atlas credential URL. It should looks like this:
mongodb+srv://madmin:<password>@clustername.mongodb.net/<dbname>?retryWrites=true&w=majority
-
Add this URL to the /backend/.env file (refer to .env.example)
-
Perform these commands in the main directory:
npm i
npm start
cd backend
npm i
node server.js
The backend includes a local stdio MCP server with six tools:
check_available_roomsprovides the legacy, simple list of rooms that are not full and have not started.list_roomslists rooms with optional filters for status, privacy, and player count, plus configurable sorting and result limits.get_room_detailsreturns a sanitized snapshot of one room's players and game state, with pawn data included only when requested.get_lobby_summaryreports aggregate room counts, player occupancy, and data-quality information for the lobby.check_new_roomslists currently available rooms created after a supplied ISO timestamp.create_roomcreates a public room or a password-protected private room using validated inputs.
All query tools are read-only. create_room is the only mutating tool and is marked non-idempotent. Responses are sanitized and never return room passwords or player session IDs.
The MCP server communicates over stdio, so it is normally launched by an MCP client rather than used interactively in a terminal.
Example MCP client configuration:
{
"mcpServers": {
"mern-ludo-rooms": {
"command": "npm",
"args": ["--prefix", "/absolute/path/to/mern-ludo/backend", "run", "mcp:rooms", "--silent"]
}
}
}Replace the example path with the absolute path to this checkout. The MCP server is written in TypeScript and runs through tsx; use npm run mcp:typecheck to type-check it or npm run mcp:build to compile it into backend/dist. The server loads CONNECTION_URI from backend/.env regardless of the MCP client's working directory. Set MONGODB_DB_NAME there to override the default test database.



