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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| mlflow_plugin_manager-0.2.0.tar.gz | 26.8 kB | Without provenance | Details for mlflow_plugin_manager-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mlflow_plugin_manager-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for mlflow_plugin_manager-0.2.0-py3-none-any.whl |
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
|
Security for mlflow-plugin-manager 0.2.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.