Skip to main content
Glama

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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yesid-lopez/mlflow-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server