Skip to main content

PyPI package management integrated directly into MLflow's web interface

Project description

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:

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlflow_plugin_manager-0.2.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlflow_plugin_manager-0.2.0-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

Details for the file mlflow_plugin_manager-0.2.0.tar.gz.

File metadata

  • Download URL: mlflow_plugin_manager-0.2.0.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for mlflow_plugin_manager-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7b7e219d9fe3b73129330358fd7cbfba1bc93cdbf793f8a4cac74a3ef94d564f
MD5 1d750a58d04862bff82160cc35961f37
BLAKE2b-256 ad07e2897f728128b3408df0fe90513e9a06ec49e72fe491c4c2e9394bb5039e

See more details on using hashes here.

File details

Details for the file mlflow_plugin_manager-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mlflow_plugin_manager-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf0a15c1f64d6c3df515d6fe83eb5581c3b61c00dcb548e55961cf079dc773b3
MD5 f6d8431f2c9971900640cbec089a8b9d
BLAKE2b-256 96abd0550c1a9cdfa8df299fcd8b9e3f20c3d5aa215326513d623a56c2d3fe05

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page