{"openapi":"3.1.0","info":{"title":"MLflow on Databricks (BYOK) API","version":"0.1.0","description":"MLflow on Databricks (BYOK) lets an AI assistant read your own MLflow on Databricks data through the MLflow on Databricks API with a key you supply (Databricks personal access token). Read-only: 11 tools (search_experiments, get_experiment, get_experiment_by_name, search_runs, get_run, get_metric_history, list_run_artifacts, search_registered_models, get_registered_model, search_model_versions,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mlflow-databricks.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mlflow-databricks/docs"},"termsOfService":"https://connectorbay.com/byok-mlflow-databricks/terms"},"servers":[{"url":"https://byok-mlflow-databricks.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mlflow-databricks/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_experiments":{"post":{"operationId":"search_experiments","summary":"Search MLflow experiments of the workspace by name or tag filter, with lifecycle stage, location and update time (Unix m","description":"Search MLflow experiments of the workspace by name or tag filter, with lifecycle stage, location and update time (Unix milliseconds). Use for \"Which MLflow experiments does my Databricks workspace have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter such as name LIKE '%churn%' or tags.team = 'ml'. Operators: =, !=, LIKE, ILIKE.","title":"Filter"},"view_type":{"anyOf":[{"enum":["ACTIVE_ONLY","DELETED_ONLY","ALL"],"type":"string"},{"type":"null"}],"default":"ACTIVE_ONLY","description":"Which experiments: ACTIVE_ONLY (default), DELETED_ONLY or ALL.","title":"View Type"},"max_results":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many experiments to return (1 to 1000).","title":"Max Results"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from next_page_token of the previous answer.","title":"Page Token"}},"required":["workspace"],"title":"search_experimentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_experiment":{"post":{"operationId":"get_experiment","summary":"Get one MLflow experiment by id: name, artifact location, lifecycle stage, tags and times. Use for \"What is MLflow exper","description":"Get one MLflow experiment by id: name, artifact location, lifecycle stage, tags and times. Use for \"What is MLflow experiment 1234567890 in my workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"experiment_id":{"description":"Id of the experiment.","maxLength":200,"title":"Experiment Id","type":"string"}},"required":["workspace","experiment_id"],"title":"get_experimentArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_experiment_by_name":{"post":{"operationId":"get_experiment_by_name","summary":"Find one MLflow experiment by its exact name (on Databricks this is the workspace path such as /Users/me@example.com/chu","description":"Find one MLflow experiment by its exact name (on Databricks this is the workspace path such as /Users/me@example.com/churn). Use for \"Find the MLflow experiment called /Shared/churn-model\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"experiment_name":{"description":"Exact experiment name or path.","maxLength":300,"title":"Experiment Name","type":"string"}},"required":["workspace","experiment_name"],"title":"get_experiment_by_nameArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_runs":{"post":{"operationId":"search_runs","summary":"Search the runs of one experiment, optionally with a filter on metrics, params or tags, newest first, with their metrics","description":"Search the runs of one experiment, optionally with a filter on metrics, params or tags, newest first, with their metrics and params. Use for \"Which runs in experiment 1234567890 have rmse below 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"experiment_id":{"description":"Id of the experiment to search.","maxLength":200,"title":"Experiment Id","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter such as metrics.rmse < 1 and params.model_class = 'LogisticRegression'.","title":"Filter"},"run_view_type":{"anyOf":[{"enum":["ACTIVE_ONLY","DELETED_ONLY","ALL"],"type":"string"},{"type":"null"}],"default":"ACTIVE_ONLY","description":"Which runs: ACTIVE_ONLY (default), DELETED_ONLY or ALL.","title":"Run View Type"},"max_results":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many runs to return (1 to 1000).","title":"Max Results"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from next_page_token of the previous answer.","title":"Page Token"}},"required":["workspace","experiment_id"],"title":"search_runsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_run":{"post":{"operationId":"get_run","summary":"Get one MLflow run: status, start and end time (Unix milliseconds), latest metrics, params and tags. Use for \"What were ","description":"Get one MLflow run: status, start and end time (Unix milliseconds), latest metrics, params and tags. Use for \"What were the metrics and parameters of MLflow run abc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"run_id":{"description":"Id of the run.","maxLength":200,"title":"Run Id","type":"string"}},"required":["workspace","run_id"],"title":"get_runArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_metric_history":{"post":{"operationId":"get_metric_history","summary":"List all logged values of one metric of a run with step and timestamp, for example a training loss curve. Use for \"Show ","description":"List all logged values of one metric of a run with step and timestamp, for example a training loss curve. Use for \"Show the loss curve of MLflow run abc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"run_id":{"description":"Id of the run.","maxLength":200,"title":"Run Id","type":"string"},"metric_key":{"description":"Exact name of the metric, for example loss.","maxLength":250,"title":"Metric Key","type":"string"},"max_results":{"anyOf":[{"maximum":25000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum values per call (1 to 25000); leave empty to get all values in one answer.","title":"Max Results"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from next_page_token of the previous answer; leave empty for the first page.","title":"Page Token"}},"required":["workspace","run_id","metric_key"],"title":"get_metric_historyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_run_artifacts":{"post":{"operationId":"list_run_artifacts","summary":"List the artifact files and folders of a run (one directory level) with path, size and whether it is a directory. Use fo","description":"List the artifact files and folders of a run (one directory level) with path, size and whether it is a directory. Use for \"Which artifacts did MLflow run abc save\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"run_id":{"description":"Id of the run.","maxLength":200,"title":"Run Id","type":"string"},"path":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Sub-folder of the run's artifact root to list; leave empty for the root.","title":"Path"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from next_page_token of the previous answer; leave empty for the first page.","title":"Page Token"}},"required":["workspace","run_id"],"title":"list_run_artifactsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_registered_models":{"post":{"operationId":"search_registered_models","summary":"Search the workspace model registry (legacy, non Unity Catalog) by name, with latest versions and update time. Use for \"","description":"Search the workspace model registry (legacy, non Unity Catalog) by name, with latest versions and update time. Use for \"Which registered models exist in my Databricks model registry\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter such as name LIKE 'churn%'.","title":"Filter"},"max_results":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many models to return (1 to 1000).","title":"Max Results"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from next_page_token of the previous answer; leave empty for the first page.","title":"Page Token"}},"required":["workspace"],"title":"search_registered_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_registered_model":{"post":{"operationId":"get_registered_model","summary":"Get one registered model of the workspace registry: description, tags, latest versions and times. Use for \"Tell me about","description":"Get one registered model of the workspace registry: description, tags, latest versions and times. Use for \"Tell me about the registered model churn-model\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"name":{"description":"Exact name of the registered model.","maxLength":250,"title":"Name","type":"string"}},"required":["workspace","name"],"title":"get_registered_modelArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_model_versions":{"post":{"operationId":"search_model_versions","summary":"Search model versions of the workspace registry with a filter such as name='churn-model', with stage, status and source ","description":"Search model versions of the workspace registry with a filter such as name='churn-model', with stage, status and source run. Use for \"List the versions of registered model churn-model\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Filter such as name='churn-model' (string values in single quotes).","title":"Filter"},"max_results":{"anyOf":[{"maximum":200000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many versions to return (1 to 200000).","title":"Max Results"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from next_page_token of the previous answer; leave empty for the first page.","title":"Page Token"}},"required":["workspace"],"title":"search_model_versionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_model_version":{"post":{"operationId":"get_model_version","summary":"Get one version of a registered model: stage, status, source run, description, tags and times. Use for \"What is version ","description":"Get one version of a registered model: stage, status, source run, description, tags and times. Use for \"What is version 3 of registered model churn-model\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Your AWS Databricks workspace host label: the part before .cloud.databricks.com, for example dbc-a1b2c3d4-e5f6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Workspace","type":"string"},"name":{"description":"Exact name of the registered model.","maxLength":250,"title":"Name","type":"string"},"version":{"description":"Version number.","maxLength":20,"title":"Version","type":"string"}},"required":["workspace","name","version"],"title":"get_model_versionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}