Skip to main content

MLflow Plugin Manager

License: MIT PyPI Python

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:5001 if running your own server
# 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

  • GET /plugin-manager/ - Web interface
  • GET /plugin-manager/installed-plugins - List installed packages
  • GET /plugin-manager/available-plugins - Browse PyPI packages
  • POST /plugin-manager/install-plugin - Install a package
  • POST /plugin-manager/uninstall-plugin - Remove a package
  • GET /plugin-manager/check-plugin-updates - Check for updates
  • POST /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)

Source distribution for mlflow-plugin-manager 0.2.0
File Size Uploaded
mlflow_plugin_manager-0.2.0.tar.gz 26.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mlflow-plugin-manager 0.2.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page