mlflow-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MLFLOW_TOOLS | No | Comma-separated allowlist of tool categories | |
| MCP_HTTP_HOST | No | HTTP bind host | 127.0.0.1 |
| MCP_HTTP_PORT | No | HTTP listen port | 3000 |
| MCP_TRANSPORT | No | Transport mode: 'stdio' or 'http' | stdio |
| MCP_HTTP_TOKEN | No | Bearer token for HTTP transport. Required when MCP_TRANSPORT=http. | |
| MLFLOW_DISABLE | No | Comma-separated denylist of tool categories | |
| MCP_HTTP_SKIP_AUTH | No | Skip Bearer auth for HTTP transport | false |
| MLFLOW_ALLOW_WRITE | No | Set 'true' to enable write operations | false |
| MLFLOW_TRACKING_URI | Yes | MLflow tracking URL (e.g., http://localhost:5000, Databricks workspace URL) | |
| MLFLOW_EXPERIMENT_ID | No | Default experiment ID for tools that accept it implicitly | |
| MLFLOW_TRACKING_TOKEN | No | Bearer token for authentication (e.g., Databricks PAT) | |
| MLFLOW_TRACKING_PASSWORD | No | Basic-auth password (required if username is provided) | |
| MLFLOW_TRACKING_USERNAME | No | Basic-auth username (alternative to token) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create-experiment | Create a new MLflow experiment |
| search-experiments | Search experiments with filter and pagination |
| get-experiment | Get experiment details by ID |
| get-experiment-by-name | Get experiment details by name |
| update-experiment | Rename an experiment |
| delete-experiment | Soft-delete an experiment by ID |
| restore-experiment | Restore a deleted experiment |
| set-experiment-tag | Set a tag on an experiment |
| delete-experiment-tag | Delete a tag from an experiment |
| create-run | Create a new run in an experiment |
| get-run | Get run details by ID |
| search-runs | Search runs with filter expression and pagination |
| update-run | Update run status, end time, or name |
| delete-run | Soft-delete a run by ID |
| restore-run | Restore a deleted run |
| log-metric | Log a single metric value to a run |
| log-param | Log a single parameter to a run |
| log-batch | Log a batch of metrics, params, and tags to a run |
| log-inputs | Log dataset inputs to a run |
| get-metric-history | Get full history of a metric for a run |
| set-run-tag | Set a tag on a run |
| delete-run-tag | Delete a tag from a run |
| list-artifacts | List artifacts under a run's artifact directory |
| get-best-run | Find the run with the best (max/min) value of a metric in an experiment |
| compare-runs | Side-by-side metric/param comparison across multiple runs. Renders an Apps SDK card on ChatGPT clients (Claude clients receive the same JSON text). |
| search-runs-by-tags | Find runs whose tags match all of the given key/value pairs |
| create-registered-model | Create a new registered model in the model registry |
| get-registered-model | Get a registered model by name |
| search-registered-models | Search registered models |
| rename-registered-model | Rename a registered model |
| update-registered-model | Update a registered model's description |
| delete-registered-model | Delete a registered model and all its versions |
| get-latest-model-versions | Get the latest model versions per stage |
| set-registered-model-tag | Set a tag on a registered model |
| delete-registered-model-tag | Delete a tag from a registered model |
| set-registered-model-alias | Set an alias on a registered model version |
| delete-registered-model-alias | Delete an alias from a registered model |
| get-model-version-by-alias | Get the model version pointed to by an alias |
| create-model-version | Create a new model version |
| get-model-version | Get a model version by name and version |
| search-model-versions | Search model versions with filter and pagination |
| update-model-version | Update a model version's description |
| delete-model-version | Delete a specific model version |
| transition-model-version-stage | Transition a model version to a new stage |
| get-model-version-download-uri | Get the artifact download URI for a model version |
| set-model-version-tag | Set a tag on a model version |
| delete-model-version-tag | Delete a tag from a model version |
| create-logged-model | Create a new MLflow 3 LoggedModel entity in an experiment |
| search-logged-models | Search LoggedModels by experiment with filter and pagination |
| get-logged-model | Get a LoggedModel by ID |
| finalize-logged-model | Set a terminal status (READY/FAILED/...) on a LoggedModel |
| delete-logged-model | Soft-delete a LoggedModel by ID |
| set-logged-model-tags | Set or upsert tags on a LoggedModel |
| delete-logged-model-tag | Delete a tag from a LoggedModel |
| log-logged-model-params | Log parameters on a LoggedModel |
| search-traces | Search and filter traces in experiments |
| get-trace | Retrieve detailed trace information by trace ID |
| get-trace-info | Retrieve trace metadata only (no spans) |
| delete-traces | Delete traces by ID or older than a timestamp |
| set-trace-tag | Add a custom key-value tag to a trace |
| delete-trace-tag | Remove a tag from a trace |
| list-trace-attachments | List attachments on a trace (Databricks MLflow only — OSS servers return 404) |
| get-trace-attachment | Get a specific attachment on a trace by ID (Databricks MLflow only — OSS servers return 404) |
| log-feedback | Log evaluation feedback (score or judgment) on a trace |
| log-expectation | Log a ground-truth expectation on a trace |
| get-assessment | Get an assessment by trace ID and assessment ID |
| update-assessment | Update an existing assessment |
| delete-assessment | Delete an assessment from a trace |
| create-webhook | Register a webhook for model registry events |
| list-webhooks | List webhooks (optionally filtered by model name) |
| get-webhook | Get webhook details by ID |
| update-webhook | Update an existing webhook (events, URL, status, secret) |
| delete-webhook | Delete a webhook by ID |
| test-webhook | Send a test event to a webhook to verify configuration |
| create-prompt-optimization-job | Create a prompt optimization job to automatically improve a registered prompt |
| get-prompt-optimization-job | Get a prompt optimization job by ID |
| search-prompt-optimization-jobs | Search prompt optimization jobs in an experiment |
| cancel-prompt-optimization-job | Cancel a running prompt optimization job |
| delete-prompt-optimization-job | Delete a prompt optimization job |
| summarize-run | Aggregated run view: run info + (optional) metric history + (optional) artifacts list in a single call. Replaces 3-4 round-trips of get-run + get-metric-history (per metric) + list-artifacts. |
| summarize-experiment | Aggregated experiment view: experiment overview + topN runs (sorted by metric or start_time) + metric stats (min/max/mean across topN) in a single call. Replaces 3-5 round-trips of get-experiment + search-runs + get-best-run. |
| search-tools | Discover available tools by natural language query. Returns matching tool names + descriptions across all categories. Use this first to navigate the 77+ tool surface efficiently. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| debug-failed-traces | Find failed traces in an experiment, summarize the failure modes, and suggest next steps. |
| promote-best-run | Find the best run in an experiment by metric, register the model, and set a 'champion' alias. |
| compare-top-runs | Pick the top N runs by metric in an experiment and produce a side-by-side comparison. |
| analyze-failed-traces | Higher-level analysis than debug-failed-traces: failure rate trend vs prior window, top patterns by impact, where to focus. Use this when you want 'is it getting worse?' not 'what broke this one?' |
| annotate-trace-quality | Walk through recent traces and log structured feedback (helpfulness/correctness) on each. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| compare-runs-card | Apps SDK UI template rendered with compare-runs tool output |
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/us-all/mlflow-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server