Skip to main content
Glama
kkruglik

MLflow MCP Server

by kkruglik

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MLFLOW_TRACKING_URIYesMLflow tracking server URL, e.g. http://127.0.0.1:5000
MLFLOW_TRACKING_TOKENNoBearer token (Databricks or token-based setups)
MLFLOW_TRACKING_PASSWORDNoHTTP Basic Auth password (MLflow built-in auth)
MLFLOW_TRACKING_USERNAMENoHTTP Basic Auth username (MLflow built-in auth)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_experimentsB

Get all experiments

search_experimentsA

Search experiments with optional filtering and sorting.

Args: filter_string: Filter query, e.g. "name LIKE 'btc%'" or "tags.team = 'ml'". Supports name, creation_time, last_update_time, tags.. order_by: List of sort clauses, e.g. ["last_update_time DESC", "name ASC"]. max_results: Maximum number of experiments to return (default 100).

Examples: search_experiments(filter_string="name LIKE 'btc%'") search_experiments(order_by=["last_update_time DESC"])

get_experiment_by_nameB

Get experiment details by name (more convenient than ID)

get_experiment_metricsA

Get all unique metric names used across all runs in an experiment

get_experiment_paramsA

Get all unique parameter names used across all runs in an experiment

get_experiment_tagsB

Get all unique tag keys used across all runs in an experiment

get_runsA

Get runs for a specific experiment with full details.

Each run contains full metrics, params, and tags — keep limit small (3-10) to avoid flooding context. Use offset to paginate.

Args: experiment_id: The experiment ID limit: Maximum number of runs to return. Keep small — each run is large. offset: Number of runs to skip order_by: List of sort clauses, e.g. ['metrics.rmse DESC', 'params.lr ASC']. Use backticks for special characters: ['metrics.trading/loss DESC']

Examples: get_runs("1", limit=5) get_runs("1", order_by=["metrics.accuracy DESC"])

get_runA

Get detailed information about a specific run. Run data can be large — avoid fetching many runs at once.

get_parent_runA

Get the parent run of a nested run. Returns None if the run has no parent.

Args: run_id: The child run ID to find the parent for.

query_runsA

Query runs using MLflow's filter syntax with optional sorting.

Runs can be large. Use wise limits to avoid flooding context.

Args: experiment_id: The experiment ID query: MLflow filter string (e.g., 'metrics.accuracy > 0.9') limit: Maximum number of runs to return offset: Number of runs to skip order_by: List of sort clauses, e.g. ['metrics.rmse DESC', 'params.lr ASC']. Use backticks for special characters: ['metrics.trading/loss DESC']

Examples: query_runs("1", "metrics.accuracy > 0", order_by=["metrics.accuracy DESC"]) query_runs("1", "", order_by=["metrics.f1/score DESC"])

get_run_artifactsA

List artifacts for a specific run. Use 'path' to browse into directories (e.g., 'configs')

get_run_artifactB

Download and return the local path to a specific artifact

get_run_metricsB

Get all metrics for a specific run with their latest values

get_run_metricB

Get the full history of a specific metric for a run

get_best_runA

Get the best run by a specific metric (e.g., highest accuracy, lowest loss). Works with metrics containing special characters like '/' (e.g., 'trading/total_profit')

compare_runsA

Compare runs side-by-side with full metrics and params. Runs can be large — keep the list short.

get_registered_modelsA

List all registered models in the model registry

get_model_versionsC

Get all versions of a registered model

get_model_versionA

Get specific model version details (metrics, stage, run_id)

get_registered_modelA

Get full details of a registered model including all versions and aliases. Can be large for models with many versions.

Args: name: Name of the registered model.

get_model_version_by_aliasA

Get a model version by its alias (e.g. 'champion', 'production').

Args: name: Name of the registered model. alias: The alias assigned to the version, e.g. 'champion'.

get_latest_versionsA

Get latest model versions for each stage (e.g. 'Staging', 'Production').

Args: name: Name of the registered model. stages: List of stages to filter by, e.g. ['Production', 'Staging']. If None, returns latest version for all stages.

search_runs_by_tagsA

Find runs with specific tags (e.g., {'team': 'nlp', 'production': 'true'}). Runs can be large — use wise limits.

get_artifact_contentB

Read and return artifact content (for text/json files)

search_logged_modelsA

Search for logged models across one or more experiments. Results can be large — use wise limits.

Args: experiment_ids: List of experiment IDs to search in (at least one required). filter_string: SQL-like filter, e.g. 'metrics.accuracy > 0.9' or "tags.release = 'v1.0'". Multiple conditions use AND only (OR not supported). max_results: Maximum number of models to return (default 5). datasets: Filter by datasets the model was evaluated on. Each dict must include 'name' (str) and 'digest' (str), e.g. [{'name': 'val', 'digest': 'abc123'}]. order_by: List of sort clauses, each a dict with 'field_name' (str) and 'ascending' (bool), e.g. [{'field_name': 'metrics.accuracy', 'ascending': False}].

Examples: search_logged_models(["1"], filter_string="metrics.accuracy > 0.9") search_logged_models(["1", "2"], order_by=[{"field_name": "metrics.f1", "ascending": False}])

get_logged_modelA

Get detailed information about a specific logged model by its ID.

Args: model_id: The logged model ID (obtained from search_logged_models results).

register_modelA

Register a model into the model registry. Creates the registered model if it doesn't exist.

Args: model_name: Name for the registered model. model_uri: URI of the model to register. Supports: - LoggedModel: 'models:/m-abc123' - Run artifact: 'runs:/run_id/artifact_path' tags: Optional dict of tags to set on the model version.

Examples: register_model("btc-classifier", "models:/m-abc123") register_model("btc-classifier", "runs:/abc123/model", tags={"framework": "lightgbm"})

set_registered_model_tagB

Set a tag on a registered model (e.g. problem_type, team, framework).

Args: name: Name of the registered model. key: Tag key, e.g. 'problem_type', 'team', 'framework'. value: Tag value.

set_model_aliasA

Assign an alias to a specific model version (e.g. promote best model to 'champion').

Args: name: Name of the registered model. alias: Alias to assign, e.g. 'champion', 'production', 'baseline'. version: Model version number to assign the alias to.

Examples: set_model_alias("lightgbm", "champion", "3")

set_run_tagA

Set a tag on a run (e.g. annotate best model, flag for review).

Args: run_id: The run ID to tag. key: Tag key, e.g. 'best_model', 'reviewed_by'. value: Tag value.

set_experiment_tagC

Set a tag on an experiment.

Args: experiment_id: The experiment ID to tag. key: Tag key, e.g. 'team', 'status'. value: Tag value.

update_model_versionA

Update the description of a model version.

Args: name: Name of the registered model. version: Model version number. description: New description text.

transition_model_version_stageA

Transition a model version to a new stage (Staging, Production, Archived).

Deprecated since MLflow 2.9. Prefer aliases (set_model_alias) and copy_model_version for MLflow 3+ workflows. Use this only when working with legacy stage-based deployments.

Args: name: Name of the registered model. version: Model version number. stage: Target stage: 'Staging', 'Production', or 'Archived'. archive_existing: If True, archive existing versions in the target stage.

copy_model_versionA

Promote a model version to another registered model (MLflow 3 promotion pattern). Creates the destination model if it doesn't exist.

Args: src_model_name: Source registered model name. src_version: Source model version number. dst_model_name: Destination registered model name, e.g. 'my-model-prod'.

Examples: copy_model_version("my-model-dev", "3", "my-model-prod")

delete_model_aliasA

Remove an alias from a registered model (e.g. revoke 'champion'). The alias is permanently removed; the model version itself is not affected.

Args: name: Name of the registered model. alias: Alias to remove, e.g. 'champion', 'production'.

delete_model_versionA

Delete a specific model version from the registry. Irreversible — the version and its metadata cannot be recovered.

Args: name: Name of the registered model. version: Version number to delete.

delete_registered_modelA

Delete an entire registered model and all its versions. Irreversible — all versions, aliases, and tags are permanently removed.

Args: name: Name of the registered model to delete.

delete_runA

Delete a run. Moves it to the 'deleted' lifecycle stage — not shown in UI or queries, but recoverable via the MLflow API.

Args: run_id: The run ID to delete.

delete_experimentA

Delete an experiment and all its runs. Moves to the 'deleted' lifecycle stage — not shown in UI or queries, but recoverable via the MLflow API.

Args: experiment_id: The experiment ID to delete.

healthA

Check MLflow server health and connectivity

Prompts

Interactive templates invoked by user choice

NameDescription
compare_runs_by_idsCompare specific runs side-by-side by their IDs. Args: experiment_id: The experiment the runs belong to. run_ids: List of run IDs to compare.
find_best_runFind and analyze the best run in an experiment by a given metric. Args: experiment_id: The experiment ID to analyze. metric: Metric to rank by, e.g. 'test/recall', 'test/f1'.
promote_best_modelFind the best model and promote it to the registry with tags and alias. Args: experiment_id: The experiment ID to search in. metric: Metric to rank models by, e.g. 'test/recall', 'test/f1'. model_name: Name to register the model under in the registry.
audit_mlflow_setupAudit the current MLflow setup against industry best practices. Evaluates experiment organization, run logging quality, tagging strategy, artifact management, model registry usage, production workflow, and reproducibility. Each category is scored 1–10. Ends with a mean score and improvement roadmap.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/kkruglik/mlflow-mcp'

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