MLflow Plugin Manager
PyPI package management integrated directly into MLflow's web interface
Quick Start
Install from PyPI (Recommended)
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
- Direct PyPI Integration - Install any MLflow-compatible package from PyPI through the web interface
- Version Management - Compare installed versions against latest PyPI releases, update or rollback as needed
- Version Pinning - Install specific package versions for reproducibility
- Package Discovery - Browse and search MLflow packages indexed from PyPI
- Installation Logs - View complete pip output for debugging
- REST API - Programmatic access for CI/CD integration
Usage
Run the MLflow server with the Plugin Manager:
mlflow server --app-name plugin_manager
Access the Plugin Manager at:
- MLflow UI: http://localhost:5000
- Plugin Manager: http://localhost:5000/plugin-manager/
- Click "Plugins" in the sidebar for quick access
Configuration
Environment Variables
PLUGIN_SERVER_URL: URL of the plugin metadata server- Default:
https://api.mlflowplugins.com(production) - Local Development: Set to
http://localhost:5001if running your own server
- Default:
# 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:
- MLflow Plugin (this package): Integrates with MLflow's web interface and handles package installation locally via pip
- 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
GET /plugin-manager/- Web interfaceGET /plugin-manager/installed-plugins- List installed packagesGET /plugin-manager/available-plugins- Browse PyPI packagesPOST /plugin-manager/install-plugin- Install a packagePOST /plugin-manager/uninstall-plugin- Remove a packageGET /plugin-manager/check-plugin-updates- Check for updatesPOST /plugin-manager/upgrade-plugin- Update a package
Requirements
- Python 3.10+
- MLflow 2.0+ (fully compatible with MLflow 3.x)
- pip package manager
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.
Links
Release files for mlflow-plugin-manager 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mlflow_plugin_manager-0.2.0.tar.gz | 26.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mlflow_plugin_manager-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.1 kB
Release files / mlflow_plugin_manager-0.2.0.tar.gz
| Download URL | mlflow_plugin_manager-0.2.0.tar.gz |
|---|---|
| Size | 26.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b7e219d9fe3b73129330358fd7cbfba1bc93cdbf793f8a4cac74a3ef94d564f
|
|
BLAKE2b-256 checksum How to use checksums |
ad07e2897f728128b3408df0fe90513e9a06ec49e72fe491c4c2e9394bb5039e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / mlflow_plugin_manager-0.2.0-py3-none-any.whl
| Download URL | mlflow_plugin_manager-0.2.0-py3-none-any.whl |
|---|---|
| Size | 27.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bf0a15c1f64d6c3df515d6fe83eb5581c3b61c00dcb548e55961cf079dc773b3
|
|
BLAKE2b-256 checksum How to use checksums |
96abd0550c1a9cdfa8df299fcd8b9e3f20c3d5aa215326513d623a56c2d3fe05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|