25DaysOfParis
An MCP server that evaluates algorithmic solutions by executing user-submitted programs inside locked-down, no-network Docker sandboxes.
Core trick
Runs submitted solutions in per-language, no-network Docker containers and reports pass/fail with runtime and memory metrics via MCP.
Description
An MCP server that evaluates algorithmic solutions by executing user-submitted programs inside locked-down, no-network Docker sandboxes.
It supports multiple languages via minimal per-language images and returns pass/fail results with runtime and memory metrics for comparable benchmarking.
README excerpt
# aocjudge (AdventOfCodeJudge) A FastMCP-based Advent of Code judging system that runs user code in Docker containers for safe execution. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. Copyright (c) 2025 Aleksandar Dimov ## Project Structure ``` aocjudge/ ├── server/ │ ├── main.py # FastMCP HTTP server + tools │ ├── runner.py # Docker sandbox execution │ └── dataset.py # JSONL case loader ├── data/ │ └── cases.jsonl # Test cases: name, year, day, part, task, input, answer ├── docker/ │ ├── rust.Dockerfile # Rust execution environment │ ├── python.Dockerfile # Python execution environment │ ├── javascript.Dockerfile # JavaScript execution environment │ ├── ruby.Dockerfile # Ruby execution environment │ ├── d.Dockerfile # D execution environment │ └── racket.Dockerfile # Racket execution environment ├── requirements.txt # Python dependencies ├── .env.example # Configuration template ├── LICENSE # MIT License └── README.md # This file ``` ## Setup ### 1. Install Dependencies ```bash # Create virtual environment python3 -m venv .venv source .venv/bin/activate # Install Python dependencies pip install -r requirements.txt pip install pytest # Run tests pytest -q ``` ### 2. Build Docker Images ```bash # Build sandbox images (run once) docker build -t aocjudge-rs