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-experimentC | Create a new MLflow experiment |
| search-experimentsC | Search experiments with filter and pagination |
| get-experimentA | Get experiment details by ID |
| get-experiment-by-nameC | Get experiment details by name |
| update-experimentC | Rename an experiment |
| delete-experimentC | Soft-delete an experiment by ID |
| restore-experimentB | Restore a deleted experiment |
| set-experiment-tagB | Set a tag on an experiment |
| delete-experiment-tagB | Delete a tag from an experiment |
| create-runC | Create a new run in an experiment |
| get-runB | Get run details by ID |
| search-runsC | Search runs with filter expression and pagination |
| update-runC | Update run status, end time, or name |
| delete-runA | Soft-delete a run by ID |
| restore-runB | Restore a deleted run |
| log-metricB | Log a single metric value to a run |
| log-paramB | Log a single parameter to a run |
| log-batchC | Log a batch of metrics, params, and tags to a run |
| log-inputsC | Log dataset inputs to a run |
| get-metric-historyC | Get full history of a metric for a run |
| set-run-tagC | Set a tag on a run |
| delete-run-tagC | Delete a tag from a run |
| list-artifactsC | List artifacts under a run's artifact directory |
| get-best-runB | Find the run with the best (max/min) value of a metric in an experiment |
| compare-runsA | 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-tagsB | Find runs whose tags match all of the given key/value pairs |
| create-registered-modelB | Create a new registered model in the model registry |
| get-registered-modelB | Get a registered model by name |
| search-registered-modelsD | Search registered models |
| rename-registered-modelA | Rename a registered model |
| update-registered-modelC | Update a registered model's description |
| delete-registered-modelA | Delete a registered model and all its versions |
| get-latest-model-versionsC | Get the latest model versions per stage |
| set-registered-model-tagC | Set a tag on a registered model |
| delete-registered-model-tagC | Delete a tag from a registered model |
| set-registered-model-aliasC | Set an alias on a registered model version |
| delete-registered-model-aliasB | Delete an alias from a registered model |
| get-model-version-by-aliasC | Get the model version pointed to by an alias |
| create-model-versionC | Create a new model version |
| get-model-versionC | Get a model version by name and version |
| search-model-versionsC | Search model versions with filter and pagination |
| update-model-versionC | Update a model version's description |
| delete-model-versionC | Delete a specific model version |
| transition-model-version-stageC | Transition a model version to a new stage |
| get-model-version-download-uriC | Get the artifact download URI for a model version |
| set-model-version-tagC | Set a tag on a model version |
| delete-model-version-tagB | Delete a tag from a model version |
| create-logged-modelB | Create a new MLflow 3 LoggedModel entity in an experiment |
| search-logged-modelsC | Search LoggedModels by experiment with filter and pagination |
| get-logged-modelB | Get a LoggedModel by ID |
| finalize-logged-modelB | Set a terminal status (READY/FAILED/...) on a LoggedModel |
| delete-logged-modelC | Soft-delete a LoggedModel by ID |
| set-logged-model-tagsB | Set or upsert tags on a LoggedModel |
| delete-logged-model-tagB | Delete a tag from a LoggedModel |
| log-logged-model-paramsC | Log parameters on a LoggedModel |
| search-tracesC | Search and filter traces in experiments |
| get-traceB | Retrieve detailed trace information by trace ID |
| get-trace-infoA | Retrieve trace metadata only (no spans) |
| delete-tracesB | Delete traces by ID or older than a timestamp |
| set-trace-tagB | Add a custom key-value tag to a trace |
| delete-trace-tagC | Remove a tag from a trace |
| list-trace-attachmentsA | List attachments on a trace (MLflow 3.9+) |
| get-trace-attachmentB | Get a specific attachment on a trace by ID (MLflow 3.9+) |
| log-feedbackC | Log evaluation feedback (score or judgment) on a trace |
| log-expectationB | Log a ground-truth expectation on a trace |
| get-assessmentB | Get an assessment by trace ID and assessment ID |
| update-assessmentD | Update an existing assessment |
| delete-assessmentB | Delete an assessment from a trace |
| create-webhookB | Register a webhook for model registry events |
| list-webhooksA | List webhooks (optionally filtered by model name) |
| get-webhookB | Get webhook details by ID |
| update-webhookC | Update an existing webhook (events, URL, status, secret) |
| delete-webhookC | Delete a webhook by ID |
| test-webhookB | Send a test event to a webhook to verify configuration |
| create-prompt-optimization-jobB | Create a prompt optimization job to automatically improve a registered prompt |
| get-prompt-optimization-jobB | Get a prompt optimization job by ID |
| search-prompt-optimization-jobsC | Search prompt optimization jobs in an experiment |
| cancel-prompt-optimization-jobA | Cancel a running prompt optimization job |
| delete-prompt-optimization-jobC | Delete a prompt optimization job |
| summarize-runA | 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-experimentA | 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-toolsA | 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