Coala Runtime
An MCP (Model Context Protocol) server for executing Python and R scripts in containerized environments with support for dynamic package installation and file mounting.
Features
- Containerized Execution: Run Python and R scripts in isolated containers (Docker, Podman, or Singularity/Apptainer — see
COALA_CONTAINER_ENGINEin MCP_CONFIG.md) - Dynamic Package Installation:
- Python: Uses
uvfor fast package installation - R: Based on
bioconductor/bioconductor_docker(BiocManager for CRAN and Bioconductor packages)
- Python: Uses
- File Mounting: Bind-mount local files and directories into containers
- Pre-installed packages: Python image includes numpy, pandas, scipy, matplotlib, scikit-learn, seaborn; R image includes tidyverse
- MCP Integration: Exposes
coala_python_executorandcoala_r_executortools for LLM interaction
Prerequisites
- Docker (default), Podman, or Singularity/Apptainer — set
COALA_CONTAINER_ENGINEif not using Docker (see MCP_CONFIG.md) - Python 3.11 or higher
- Executor images available locally or pullable (Docker/Podman: see Building Docker Images; Singularity/Apptainer: pulled on first run)
Installation
# Install dependencies
uv pip install -e .
# Or using pip
pip install -e .
Docker Images
Executor images (used by the MCP tools):
coala-runtime-python:latestcoala-runtime-r:latest
On MCP server start (Docker/Podman): if either image is missing locally, coala-runtime builds them from this repo (docker/build.sh). Set MCP cwd to the clone so the Dockerfiles are found.
coala-runtime # build missing images, then start MCP server
coala-runtime --pull # pull hubentu/* from Docker Hub, retag as coala-runtime-*:latest
coala-runtime --build # force rebuild, then start
coala-runtime build # build only (no MCP server)
Manual build (same tags as above):
./docker/build.sh
Usage
As MCP Server
The server can be run as an MCP server for LLM integration:
coala-runtime
Or with the module runner:
python -m coala_runtime
Use coala-runtime build to build images without starting the server; use --pull on start to fetch from Docker Hub instead of building.
Configuration
See MCP_CONFIG.md for detailed configuration instructions for various MCP clients (Cursor, Claude Desktop, etc.).
Tool Schemas
coala_python_executor
Executes Python scripts in a containerized environment with uv package management.
Input:
scriptorscript_file(one required): Inline Python code or host path to a.pyfilepackages(optional): Additional packages to install via uv. The image already includes numpy, pandas, scipy, matplotlib, scikit-learn, seaborn. Can include version specifiers (e.g., 'requests>=2.31.0')conda_packages(optional, Python only): Conda specs installed before pip/uv (requires conda/mamba in the image)docker_image(optional): Docker image to run instead of the default Coala Python image (e.g.python:3.12-slim,quay.io/biocontainers/...)skip_package_install(optional): Iftrue, skip install step (typical whendocker_imagealready has all dependencies)input_files(optional): Map of container paths to host paths for bind-mounting (e.g., {'/input/data.csv': '/host/path/data.csv'})timeout(optional): Execution timeout in seconds (default: 300, 0 = no timeout, max: 3600)
Output:
success: Whether execution succeededexit_code: Process exit code (0 = success)stdout: Standard output from scriptstderr: Standard error outputoutput_files: List of output file paths (for files/images generated by the script)output_data: Echoed output for strings/numbers (captured via print statements)container_logs: Full container execution logs including package installationexecution_time: Execution time in seconds
coala_r_executor
Executes R scripts in a containerized environment with Bioconductor Docker (BiocManager for extra packages).
Input:
scriptorscript_file(one required): Inline R code or host path to an.Rfilepackages(optional): Additional R packages to install. Use 'bioc::package_name' format for Bioconductor packages. The image already includes tidyverse. Examples: ['ggplot2', 'dplyr', 'bioc::Biobase']docker_image(optional): Docker image to run instead of the default Coala R image (must provideRscriptonPATH)skip_package_install(optional): Iftrue, skip install step (typical whendocker_imagealready has all dependencies)input_files(optional): Map of container paths to host paths for bind-mounting (e.g., {'/input/data.csv': '/host/path/data.csv'})timeout(optional): Execution timeout in seconds (default: 300, 0 = no timeout, max: 3600)
Output: Same as coala_python_executor
Development
# Install with dev dependencies
uv pip install -e ".[dev]"
# Run tests
pytest
# Format code
black src tests
# Lint code
ruff check src tests
License
MIT
Metadata
Release files for coala-runtime 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| coala_runtime-0.1.5.tar.gz | 105.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| coala_runtime-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 146.2 kB
Release files / coala_runtime-0.1.5.tar.gz
| Download URL | coala_runtime-0.1.5.tar.gz |
|---|---|
| Size | 105.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee2d72b4999d5c2194e13944c6705f5ef1069d9113d3b2971b90b12258ad386d
|
|
BLAKE2b-256 checksum How to use checksums |
6160972d9216e0052e73a5a64a6a065e6bea4cc30f1f8a63bd77e1c29d6b9dd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / coala_runtime-0.1.5-py3-none-any.whl
| Download URL | coala_runtime-0.1.5-py3-none-any.whl |
|---|---|
| Size | 40.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
788f172ceb135aa89648d2794393fa740c8ccc66a464101329e9a2754aaf41ce
|
|
BLAKE2b-256 checksum How to use checksums |
693197d675ce3b2d66b341225feab1cd488bd618f434734625eb7430d5d48dfc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log