Skip to main content

MLflow MCP Server

A Model Context Protocol (MCP) server that exposes MLflow experiment tracking and model registry operations as tools for AI assistants.

Table of Contents

Quickstart

The fastest way to get started is to add the server to your MCP client config. No local clone required.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "mlflow": {
      "command": "uvx",
      "args": ["mlflow-mcp-server"],
      "env": {
        "MLFLOW_TRACKING_URI": "http://localhost:5000"
      }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "mlflow": {
      "command": "uvx",
      "args": ["mlflow-mcp-server"],
      "env": {
        "MLFLOW_TRACKING_URI": "http://localhost:5000"
      }
    }
  }
}

OpenCode

Add to your opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mlflow": {
      "type": "local",
      "command": ["uvx", "mlflow-mcp-server"],
      "environment": {
        "MLFLOW_TRACKING_URI": "http://localhost:5000"
      }
    }
  }
}

Replace http://localhost:5000 with the URL of your MLflow tracking server.

Tools

Experiment Management

Tool Description
get_experiment Get experiment details by ID
get_experiment_by_name Get experiment details by name
search_experiments List and filter experiments with optional name matching and pagination

Run Management

Tool Description
get_run Get full run details including metrics, parameters, tags, and run type (parent/child/standalone)
get_experiment_runs List runs for an experiment with pagination

Model Registry

Tool Description
get_registered_models Search and list registered models
get_model_versions Browse model versions with filtering
create_registered_model Create a new registered model with optional description and tags
create_model_version Create a new model version from a run's artifacts
rename_registered_model Rename an existing registered model
set_registered_model_alias Assign an alias (e.g. champion, challenger) to a model version
delete_registered_model Delete a registered model and all its versions
delete_model_version Delete a specific model version

Example Prompts

Once configured, you can ask your AI assistant things like:

Exploring experiments and runs:

  • "List all experiments related to recommendation models"
  • "Show me the runs for experiment 12 and compare their metrics"
  • "Get the parameters and metrics for run abc123"
  • "Which runs in the fraud-detection experiment have the highest accuracy?"

Managing the model registry:

  • "Show me all registered models"
  • "Register a new model called churn-classifier with description 'Binary classifier for customer churn'"
  • "Create a new version of churn-classifier from run abc123"
  • "Set the champion alias on version 3 of churn-classifier"
  • "Rename the model old-name to new-name"
  • "Delete version 1 of churn-classifier"

Analysis and comparison:

  • "Compare the last 5 runs of the search-ranking experiment by NDCG and latency"
  • "What hyperparameters were used in the best-performing run of experiment 7?"
  • "List all model versions for recommendation-model and their aliases"

Configuration

Environment Variable Default Description
MLFLOW_TRACKING_URI http://localhost:5000 URL of the MLflow tracking server

Installation (Development)

Prerequisites

  • Python 3.11+
  • uv
  • An MLflow tracking server

Setup

git clone https://github.com/yesid-lopez/mlflow-mcp-server.git
cd mlflow-mcp-server
uv sync

Running Locally

export MLFLOW_TRACKING_URI="http://localhost:5000"
uv run -m mlflow_mcp_server

The server communicates over stdio, which is the standard MCP transport for local tool servers.

Project Structure

mlflow_mcp_server/
├── __main__.py              # Entry point
├── server.py                # MCP server setup and tool registration
├── tools/
│   ├── experiment_tools.py  # Experiment search and retrieval
│   ├── run_tools.py         # Run details and listing
│   └── registered_models.py # Model registry CRUD operations
└── utils/
    └── mlflow_client.py     # MLflow client singleton

Adding New Tools

  1. Create a function in the appropriate file under tools/.
  2. Register it in server.py:
from mlflow_mcp_server.tools.your_module import your_function
mcp.add_tool(your_function)

Linting

uv run ruff check .
uv run ruff format --check .

License

MIT

Metadata

Release files for mlflow-mcp-server 0.1.1

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-mcp-server 0.1.1
File Size Uploaded Provenance
mlflow_mcp_server-0.1.1.tar.gz 80.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mlflow-mcp-server 0.1.1
File Interpreter ABI Platform
mlflow_mcp_server-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 88.6 kB

Release files / mlflow_mcp_server-0.1.1.tar.gz

Download URL mlflow_mcp_server-0.1.1.tar.gz
Size 80.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ebff48324538f9e722d0c0a8c11d89ad3c3e6b9540e1443862da23709f8ea97f
BLAKE2b-256 checksum
How to use checksums
5107909410d7381bc2071042efbda05de3ef00975d1d980f6f6f5b741569648a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

Release files / mlflow_mcp_server-0.1.1-py3-none-any.whl

Download URL mlflow_mcp_server-0.1.1-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9fcce455c7d9659328bf8f99af2a379d546b79d317814195d3b2ec2c2ca40dba
BLAKE2b-256 checksum
How to use checksums
d48adf4f5289e8ee2da4f649a38a026f4761f88c76c12f392cdf1a6e5c9269b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

Security for mlflow-mcp-server 0.1.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mlflow_mcp_server-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

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