
MLC Bakery
STREAMABLE HTTPPython-based ML model provenance and lineage management service with FastAPI and SQLAlchemy.
Python-based ML model provenance and lineage management service with FastAPI and SQLAlchemy.
A Python-based service for managing ML model provenance and lineage, built with FastAPI and SQLAlchemy. Support for Croissant metadata validation.
Set up Environment Variables:
Create a .env
file in the project root by copying the example:
cp env.example .env
Start docker containers: The bakery relies on a postgres database and Typesense for search. The MCP server makes REST calls to the API server, which then calls the persistence layer.
docker compose up -d
Run Database Migrations:
Apply the latest database schema using Alembic. uv run
executes commands within the project's managed environment.
docker compose exec db psql -U postgres -c "create DATABASE mlcbakery;" docker compose exec api alembic upgrade head
By default, the API will be available on localhost.
http://bakery.localhost/docs
http://bakery.localhost/redoc
http://mcp.localhost/mcp
(you may need to add this to your /etc/hosts
for local development)Clone the repository:
git clone [email protected]:jettyio/mlcbakery.git cd mlcbakery
Install Dependencies:
uv
uses pyproject.toml
to manage dependencies. It will automatically create a virtual environment if one doesn't exist.
curl -LsSf https://astral.sh/uv/install.sh | sh
pip install poetry uvicorn
uv run poetry install --no-interaction --no-ansi --no-root --with mcp
Start the FastAPI application using uvicorn:
# Make sure your .env file is present for the DATABASE_URL uv run uvicorn mlcbakery.main:app --reload --host 0.0.0.0 --port 8000
The tests are configured to run against a PostgreSQL database defined by the DATABASE_URL
environment variable. You can use the same database as your development environment or configure a separate test database in your .env
file if preferred (adjust connection string as needed).
# Ensure DATABASE_URL is set in your environment or .env file uv run pytest