Local Development¶
How to get each MESA component running on your laptop.
This documentation site (cyverse/mesa)¶
git clone https://github.com/cyverse/mesa.git
cd mesa
python3 -m venv .venv
source .venv/bin/activate
pip install zensical
zensical serve # http://localhost:8000
Edit any file under docs/ and the browser will hot-reload. Build the
static site with:
mesa-mcp (Python)¶
git clone https://github.com/cyverse/mesa-mcp.git
cd mesa-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp config.yaml.example config.yaml
mesa-mcp --config config.yaml
pytest -q
ruff check src/ tests/
mesa-ducklake (Python library)¶
git clone https://github.com/cyverse/mesa-ducklake.git
cd mesa-ducklake
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest -q
ruff check src/ tests/
You'll need a Postgres instance for the catalog. The test suite spins up a
disposable Postgres via testcontainers when DOCKER_HOST is reachable.
irods-mcp-server (Go)¶
git clone https://github.com/cyverse/irods-mcp-server.git
cd irods-mcp-server
make build # produces ./bin/irods-mcp-server
make test
For Docker:
formation-mcp (Go)¶
git clone https://github.com/cyverse-de/formation-mcp.git
cd formation-mcp
just build # uses Justfile
just test
terrain-mcp (Node.js ≥ 20)¶
git clone https://github.com/cyverse/terrain-mcp.git
cd terrain-mcp
npm install
npm run build
npm test
End-to-end test stack¶
For an end-to-end loop (mesa-mcp ↔ mesa-ducklake ↔ Postgres ↔ iRODS),
use the docker-compose stack in mesa-mcp/deploy/dev-stack/:
This spins up Postgres, MinIO (object storage for Parquet), and a local iRODS server. See the upstream dev-stack README for connection details.