mlops-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mlops-mcp-server track a new experiment with lr=0.01 and log accuracy"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MLOps MCP Server
MCP server for common MLOps workflows
An MCP (Model Context Protocol) server that gives AI assistants like Claude direct access to MLOps workflows — experiment tracking, model registry, dataset management, pipeline orchestration, lineage tracing, and more. Wraps DVC, MLflow, and Git rather than replacing them.
Related MCP server: MLflow MCP Server
Features
Experiment tracking — create runs, log params/metrics/artifacts, compare runs, find best run, export to CSV
Model registry — register, promote, tag, deprecate, and compare model versions; generate model cards
Dataset management — profile datasets, validate schemas, detect statistical drift (KS-test), split, merge, and generate dataset cards
Pipeline management — create, validate, and visualize DAG pipelines as Mermaid diagrams; cycle detection via Kahn's algorithm
Data lineage — record artifact lineage, trace provenance with BFS, visualize as Mermaid graphs, check integrity
File operations — full file/directory CRUD, content search, disk usage, batch operations
Project scaffolding — 7 ML project templates with component injection and structure validation
Documentation generation — model cards, dataset cards, experiment reports, pipeline docs, project READMEs, API docs
MLflow integration — optional; wraps tracking, registry, and artifact operations
DVC integration — optional; wraps data versioning and pipeline reproduction
Git operations — optional; status, add, commit, log, .gitignore generation
Environment tools — scan imports, generate requirements, check conflicts, create conda env files
Tools are registered in two tiers: a small set of always-on tools for quick file ops and discovery, and 15 domain modules you activate on demand to avoid flooding the agent context window.
Installation
Install directly from GitHub (available now)
pip install git+https://github.com/anant-patankar/mlops-mcp-server.gitUsing uv:
uv add git+https://github.com/anant-patankar/mlops-mcp-server.gitInstall from PyPI (coming soon)
# Core install
pip install mlops-mcp-server
# With optional extras
pip install mlops-mcp-server[mlflow]
pip install mlops-mcp-server[mlflow,compare,notebooks,parquet]Using uv:
uv add mlops-mcp-server
uv add "mlops-mcp-server[mlflow,compare,notebooks,parquet]"Usage
Claude Desktop
Add to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
First install the package, then add to your Claude Desktop config:
{
"mcpServers": {
"mlops": {
"command": "mlops-mcp-server"
}
}
}Restart Claude Desktop. The server starts automatically when Claude connects.
Example prompts
Once connected, you can ask Claude things like:
"Show me all experiment runs, find the one with the best validation accuracy, and register that model in the registry."
"Profile
data/train.csv, check it againstschema.yaml, then split it 70/15/15 and save todata/splits/."
"Create a pipeline with three stages: preprocess → train → evaluate, validate it for cycles, and show me the Mermaid diagram."
Running directly
mlops-mcp-serverOptional Dependencies
Extra | Installs | Enables |
| mlflow | MLflow tracking and registry tools |
| deepdiff | Structured diff in |
| nbformat | Notebook summary in |
| pyarrow | Parquet read/write in dataset tools |
| joblib, onnx, safetensors | Model file format support |
| pandera, scipy | Schema validation and drift statistics |
| jinja2 | Jinja2 templates in |
All extras are optional — the server runs without them and returns clear errors if a missing dependency is needed.
License
MIT — see LICENSE.
Available Tools
127 toolsadd_pipeline_stageD
Inputs: stage_name (required), pipeline_path (required), stage_definition (required). Returns: object
add_project_componentD
Inputs: component (required), project_path (required). Returns: object
analysis_directoryD
Inputs: path (required). Returns: object
archive_experimentD
Inputs: experiment_path (required), output_directory, compression_level. Returns: object
batch_classifyD
Inputs: paths (required). Returns: object
batch_deleteD
Inputs: paths (required), dry_run, base_path. Returns: object
check_data_freshnessD
Inputs: path (required), stale_after_hours. Returns: object
check_dependency_conflictsD
Inputs: project_path. Returns: object
check_env_varsD
Inputs: template_path (required), env_file_path. Returns: object
check_lineage_integrityD
Inputs: project_path (required). Returns: object
classify_fileD
Inputs: path (required). Returns: object
cleanup_empty_logsD
Inputs: logs_path (required), dry_run, min_size_bytes. Returns: object
cleanup_failed_runsD
Inputs: runs_path (required), dry_run. Returns: object
cleanup_old_checkpointsD
Inputs: checkpoints_path (required), keep, dry_run. Returns: object
cleanup_projectD
Inputs: project_path (required), dry_run. Returns: object
compare_directoriesD
Inputs: path_a (required), path_b (required). Returns: object
compare_filesD
Inputs: path_a (required), path_b (required). Returns: object
compare_model_versionsD
Inputs: version_a (required), version_b (required), model_name (required), project_path (required). Returns: object
compare_requirementsD
Inputs: base_path (required), target_path (required). Returns: object
compare_runsD
Inputs: run_ids (required), project_path (required). Returns: object
copy_fileD
Inputs: source_path (required), destination_path (required), dry_run, base_path. Returns: object
create_archiveD
Inputs: source_path (required), archive_path (required), archive_format, compression_level. Returns: object
create_conda_env_fileD
Inputs: output_path (required), requirements_path (required), env_name, python_version. Returns: object
create_directoryD
Inputs: path (required), base_path. Returns: object
create_dvc_pipelineD
Inputs: stages (required), repo_path (required), output_file. Returns: object
create_env_templateD
Inputs: variables (required), output_path (required). Returns: object
create_fileD
Inputs: path (required), content, encoding, base_path, +1 more. Returns: object
create_gitignoreD
Inputs: overwrite, repo_path. Returns: object
create_ml_projectD
Inputs: project_path (required), template, project_name. Returns: object
create_model_cardD
Inputs: version (required), model_name (required), project_path (required), output_path. Returns: object
create_pipelineD
Inputs: stages (required), pipeline_path (required). Returns: object
create_runD
Inputs: project_path. Returns: object
delete_fileD
Inputs: path (required), dry_run, base_path. Returns: object
delete_model_versionD
Inputs: version (required), model_name (required), project_path (required), delete_file. Returns: object
delete_runD
Inputs: run_id (required), project_path (required), dry_run. Returns: object
deprecate_modelD
Inputs: reason (required), version (required), model_name (required), project_path (required). Returns: object
detect_data_driftD
Inputs: candidate_path (required), reference_path (required). Returns: object
detect_model_frameworkD
Inputs: model_path (required). Returns: object
detect_uncommitted_changesD
Inputs: repo_path. Returns: object
download_mlflow_artifactD
Inputs: run_id (required), artifact_path (required), destination_path (required). Returns: object
dvc_addD
Inputs: path (required), repo_path. Returns: object
dvc_check_availableD
Inputs: no named parameters. Returns: object
dvc_initD
Inputs: repo_path. Returns: object
dvc_pullD
Inputs: repo_path. Returns: object
dvc_pushD
Inputs: repo_path. Returns: object
dvc_reproD
Inputs: repo_path. Returns: object
dvc_statusD
Inputs: repo_path. Returns: object
experiment_list_runsD
Inputs: project_path. Returns: object
export_runs_csvD
Inputs: output_path (required), project_path (required). Returns: object
extract_archiveD
Inputs: archive_path (required), destination_path (required). Returns: object
file_listD
Inputs: path (required), recursive. Returns: object
file_readD
Inputs: path (required), encoding. Returns: object
file_searchD
Inputs: path (required), pattern. Returns: object
file_writeD
Inputs: path (required), content (required), encoding. Returns: object
find_dataset_filesD
Inputs: path (required). Returns: object
find_duplicate_filesD
Inputs: dir_path (required), max_size, min_size. Returns: object
finish_runD
Inputs: run_id (required), project_path (required), status. Returns: object
generate_api_docsD
Inputs: source_path (required), output_path. Returns: object
generate_dataset_cardD
Inputs: dataset_path (required), description, output_path, intended_use, +1 more. Returns: object
generate_experiment_reportD
Inputs: project_path (required), output_path. Returns: object
generate_model_cardD
Inputs: dataset (required), metrics (required), task_type (required), model_name (required), +3 more. Returns: object
generate_pipeline_docsD
Inputs: pipeline_path (required), output_path. Returns: object
generate_project_readmeD
Inputs: project_path (required), output_path. Returns: object
generate_requirementsD
Inputs: output_path, pin_versions, project_path. Returns: object
get_artifact_provenanceD
Inputs: artifact (required), project_path (required). Returns: object
get_best_runD
Inputs: metric_name (required), project_path (required), direction. Returns: object
get_dataset_statsD
Inputs: data_path (required). Returns: object
get_disk_usageD
Inputs: path, base_path. Returns: object
get_file_infoD
Inputs: path (required). Returns: object
get_mlflow_model_versionsD
Inputs: model_name (required). Returns: object
get_mlflow_runsD
Inputs: experiment_id (required), max_results. Returns: object
get_model_infoD
Inputs: version (required), model_name (required), project_path (required). Returns: object
get_model_lineageD
Inputs: version (required), model_name (required), project_path (required). Returns: object
get_model_versionsD
Inputs: model_name (required), project_path (required). Returns: object
get_notebook_summaryD
Inputs: path (required). Returns: object
get_operation_historyD
Inputs: limit. Returns: object
get_pipelineD
Inputs: pipeline_path (required). Returns: object
get_pipeline_statusD
Inputs: pipeline_path (required), project_root. Returns: object
get_python_versionD
Inputs: project_path. Returns: object
get_runD
Inputs: run_id (required), project_path (required). Returns: object
git_addD
Inputs: files, repo_path. Returns: object
git_commitD
Inputs: message, repo_path. Returns: object
git_initD
Inputs: repo_path, create_ignore. Returns: object
git_logD
Inputs: limit, repo_path. Returns: object
git_statusD
Inputs: repo_path. Returns: object
init_experiment_trackerD
Inputs: project_path. Returns: object
init_model_registryD
Inputs: project_path. Returns: object
list_archive_contentsD
Inputs: archive_path (required). Returns: object
list_filesD
Inputs: path (required), pattern, base_path, recursive. Returns: object
list_lineage_artifactsD
Inputs: project_path (required). Returns: object
list_mlflow_experimentsD
Inputs: no named parameters. Returns: object
list_modelsD
Inputs: project_path. Returns: object
list_pipelinesD
Inputs: project_path. Returns: object
list_project_templatesD
Inputs: no named parameters. Returns: object
list_runsD
Inputs: project_path. Returns: object
log_artifactD
Inputs: run_id (required), project_path (required), artifact_path (required). Returns: object
log_artifact_to_mlflowD
Inputs: local_path (required), run_id. Returns: object
log_metricsD
Inputs: step (required), run_id (required), metrics (required), project_path (required). Returns: object
log_paramsD
Inputs: params (required), run_id (required), project_path (required). Returns: object
merge_datasetsD
Inputs: output_path (required), dataset_paths (required), deduplicate. Returns: object
mlflow_check_availableD
Inputs: project_path. Returns: object
mlops_activateD
Inputs: module (required). Returns: object
mlops_discoverD
Inputs: no named parameters. Returns: object
mlops_session_statusD
Inputs: no named parameters. Returns: object
model_listD
Inputs: project_path. Returns: object
move_fileD
Inputs: source_path (required), destination_path (required), dry_run, base_path. Returns: object
profile_datasetD
Inputs: path (required). Returns: object
promote_modelD
Inputs: version (required), new_stage (required), model_name (required), project_path (required). Returns: object
read_fileD
Inputs: path (required), encoding, base_path. Returns: object
record_lineageD
Inputs: inputs (required), output (required), run_id (required), project_path (required). Returns: object
register_modelD
Inputs: model_name (required), model_path (required), project_path (required), tags, +3 more. Returns: object
register_model_in_mlflowD
Inputs: model_name (required), model_path (required). Returns: object
remove_pipeline_stageD
Inputs: stage_name (required), pipeline_path (required). Returns: object
rename_fileD
Inputs: path (required), new_name (required), dry_run, base_path. Returns: object
scan_importsD
Inputs: project_path. Returns: object
search_file_contentD
Inputs: path (required), query (required), is_regex, base_path, +3 more. Returns: object
search_filesD
Inputs: path (required), max_size, min_size, base_path, +2 more. Returns: object
set_mlflow_tracking_uriD
Inputs: tracking_uri (required), project_path. Returns: object
split_datasetD
Inputs: output_dir (required), dataset_path (required), val_ratio, test_ratio, +3 more. Returns: object
storage_reportD
Inputs: dir_path (required), top_k.
tag_modelD
Inputs: tags (required), version (required), model_name (required), project_path (required). Returns: object
validate_dataset_schemaD
Inputs: schema_path (required), dataset_path (required). Returns: object
validate_pipelineD
Inputs: pipeline_path (required), project_root. Returns: object
validate_project_structureD
Inputs: template (required), project_path (required). Returns: object
visualize_lineageD
Inputs: artifact (required), project_path (required). Returns: object
visualize_pipelineD
Inputs: pipeline_path (required). Returns: object
write_fileD
Inputs: path (required), content (required), encoding, base_path. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 127 tools
With 127 tools and no descriptions, many tool names overlap significantly (e.g., file_read vs read_file, list_models vs model_list, etc.). An agent would be unable to distinguish between them, leading to frequent misselection.
Naming is highly inconsistent, mixing verb_noun, noun_verb, and prefixes like mlops_, mlflow_, dvc_, git_. Similar operations use different naming patterns (e.g., file_read vs read_file), making it unpredictable.
127 tools is far too many for a coherent server. Typical MCP servers have 3-15 tools. This large number suggests an attempt to cover everything, resulting in bloat and redundancy rather than a focused tool set.
Despite the large number of tools, the surface appears redundant (multiple file operations, repeated model list functions) and lacks clear high-level operations like deploy or monitor. Without descriptions, it's hard to assess, but there are likely gaps in ML Ops lifecycle.
Maintenance
Related MCP Connectors
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Git-backed platform for skills, tools, and context for AI agents
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Plain-English git for agents: 22 tools to branch, commit, push and tag. Free tier.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceTransforms AI assistants into a full ML engineering environment for training and fine-tuning models across multiple backends (local GPU, Mistral, Together AI, OpenAI) and cloud providers (Lambda Labs, RunPod, SSH-accessible VPS), with dataset management, experiment tracking, cost estimation, and deployment to Ollama/Open WebUI.4PolyForm Noncommercial 1.0.0
- AlicenseCqualityDmaintenanceEnables AI assistants to interact with MLflow experiments, runs, and registered models. Supports browsing experiments, retrieving run details with metrics and parameters, and querying the model registry through natural language.7MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform DevOps tasks including Kubernetes management, cloud provider operations, CI/CD, security scanning, and infrastructure monitoring through natural language.MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with ML experiment tracking, model registries, and deployment pipelines across popular MLOps platforms like MLflow.MIT