mcp-coderunner-app
Allows running a provided script inside a resource-limited Docker container built from a Dockerfile, with containers isolated using --network none for safe execution and benchmarking.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-coderunner-apprun this Ruby script in a benchmark container"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š mcp-coderunner-app
An MCP server that takes a Dockerfile and a script, and runs the script in a resource-limited container. Built to try out Ractor behavior and run benchmarks without dirtying the machine I work on.
VPS (Rails) ā authentication, authorization, the MCP endpoint, the review UI
Home VM (worker) ā polls outbound-only and drives docker
Nothing listens on the home side. Job containers always run with --network none.
Every Dockerfile is reviewed by a human before anything runs on it.
This is a personal setup, run by one person. The design lives in
.claude/plans/ruby-exec-mcp-design.md, which is not in git.
app/ Rails: models, controllers, MCP tools, /admin
lib/protocol/ DTOs and constants shared by Rails and the worker (stdlib only)
worker/ the side that drives docker (stdlib only; never loads Rails)
bin/worker the long-running process on the VM
deploy/ systemd units and an example CaddyfileDevelopment
bin/setup # install dependencies, db:prepare, start the dev server
bin/dev # web + js + worker (the worker's token is issued on first run)
bin/ci # lint, security, and the full test suite
# The worker does not load Rails. Run it with plain ruby.
ruby -Ilib -I. -e 'require "worker/runner"'
ruby -Ilib -I. worker/test/policy_test.rb
# The end-to-end test that actually drives docker (slow)
MCP_CODERUNNER_APP_E2E=1 ruby -Ilib -I. worker/test/e2e_test.rbPoint an MCP client at http://localhost:3000/mcp over Streamable HTTP. Issue the
access token from /admin after signing in ā in development, /login also offers a
door that skips GitHub (dev lands as an admin).
Related MCP server: Node.js Sandbox MCP Server
Operating it
docs/deployment.md ā the VPS: Kamal, ghcr.io, opkssh, the secrets CI needs, and what the failures mean
docs/worker-setup.md ā the VM, from a bare machine to a running worker (ę„ę¬čŖ)
License
MIT License (LICENSE)
This server cannot be deployed
Maintenance
Related MCP Connectors
Run Python code in a secure sandbox without local setup. Declare inline dependencies and execute sā¦
Execute code in 8 languages (Python, JS, TS, Go, Java, C++, C, Bash) in gVisor sandboxes.
The governed runtime for agent skills. Search the catalog and inspect a skill before running it.
- mcp-serverOAuthai.cdbx
Build Apps and run code in 30 languages ā sandboxed, with persistent sessions for agent loops.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables running arbitrary JavaScript code in isolated Docker containers with on-the-fly npm dependency installation, supporting both ephemeral one-shot executions and persistent sandbox environments.91157-
- FlicenseAqualityDmaintenanceEnables running arbitrary JavaScript code in isolated Docker containers with on-demand npm dependency installation, allowing for ephemeral script execution and long-running services with controlled resource limits.7913-
- AlicenseNot gradedqualityBmaintenanceExecute scientific scripts (R, Python, GMT, LaTeX, Octave, Julia, etc.) in isolated, disposable containers with no host filesystem access.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceProvides Docker container creation and image pulling via the Docker Engine API, with safety guardrails against privileged operations and network exposure.MIT