mlflow-plugin-manager

MLflow Plugin Manager

License: MIT PyPI Python

PyPI package management integrated directly into MLflow’s web interface

Quick Start

pip install mlflow-plugin-manager

Install from Source

git clone https://github.com/thijsdezoete/mlflow-plugin-manager.git
cd mlflow-plugin-manager
pip install -e .

Docker

# Using docker compose
docker compose up -d

# Or using make
make docker-build
make docker-run

Core Features

Usage

Run the MLflow server with the Plugin Manager:

mlflow server --app-name plugin_manager

Access the Plugin Manager at:

Configuration

Environment Variables

# Use production server (default)
mlflow server --app-name plugin_manager

# Use local server for development
export PLUGIN_SERVER_URL="http://localhost:5001"
mlflow server --app-name plugin_manager

Make Commands

make help         # Show all available commands

# Development
make install      # Install in development mode
make dev          # Run MLflow with plugin manager
make test         # Run test suite
make lint         # Run linting

# Docker
make docker-build # Build Docker image
make docker-run   # Start container
make docker-stop  # Stop container

# Testing MLflow Versions
make test-mlflow2 # Test with MLflow 2.x
make test-mlflow3 # Test with MLflow 3.x

Architecture

The MLflow Plugin Manager consists of two components:

  1. MLflow Plugin (this package): Integrates with MLflow’s web interface and handles package installation locally via pip
  2. Metadata Server: Provides plugin information (hosted at api.mlflowplugins.com)

Note: Package installation happens locally on your machine. The remote server only provides plugin metadata (available packages, versions, etc.).

API Endpoints

Requirements

MLflow Version Compatibility

MLflow Version Server Type Status
2.x Flask/Gunicorn Supported
3.x FastAPI/Uvicorn Supported

The plugin auto-detects the MLflow version and adapts accordingly.

Advanced: Running Your Own Metadata Server

For maintainers who want to run their own plugin metadata server:

cd server
python reindex_plugins.py  # Index packages from PyPI
python app.py              # Run metadata server on port 5001

Note: End users don’t need to run these commands - the default configuration uses api.mlflowplugins.com.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for details.