MLflow MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MLFLOW_TRACKING_URI | Yes | MLflow tracking server URL, e.g. http://127.0.0.1:5000 | |
| MLFLOW_TRACKING_TOKEN | No | Bearer token (Databricks or token-based setups) | |
| MLFLOW_TRACKING_PASSWORD | No | HTTP Basic Auth password (MLflow built-in auth) | |
| MLFLOW_TRACKING_USERNAME | No | HTTP Basic Auth username (MLflow built-in auth) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. 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. Examples:
query_runs("1", "metrics.accuracy > 0", order_by=["metrics.accuracy DESC"])
query_runs("1", "", order_by=["metrics. |
| 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
| Name | Description |
|---|---|
| compare_runs_by_ids | Compare 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_run | Find 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_model | Find 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_setup | Audit 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
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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