Skip to main content
Glama

MFlowy Datenmodellierungs- und Analyse-Workflow

License: MIT Python 3.12 CI MCP

MFlowy ist eine MCP-native modulare ML-Workflow-Engine: Sie basiert auf einer DAG-Schichtausführung, ist konfigurationsgesteuert und unterstützt nachvollziehbare, rückverfolgbare Workflows von der Datenverarbeitung über das Modelltraining bis hin zur visuellen Analyse.

Kernfunktionen

  • MCP-nativ: Alle Fähigkeiten werden als MCP-Tools (pyfunc) bereitgestellt. Derselbe Tool-Satz kann über drei Einstiegspunkte aufgerufen werden – MCP-Server (stdio), JSON-Runner-CLI (cmd) und direkter Import (Host-Einbettung).

  • DAG-Workflow-Orchestrierung: Unterstützt komplexe Topologien gerichteter azyklischer Graphen (DAG) und definiert flexible Aufgabenabhängigkeiten.

  • Konfigurationsgesteuert: Workflows werden über YAML-Konfigurationsdateien definiert, ohne dass Code geschrieben werden muss.

  • Dekorator-Registrierung: Reine Funktionen + @handler-Dekorator registrieren sich automatisch. Neue Funktionen erfordern nur das Erstellen einer .py-Datei.

  • Middleware-System: Verantwortungskettenmuster zur Verarbeitung von Querschnittsbelangen (Dateninjektion, MLflow-Protokollierung, Stopp bei Fehlern, verschiedene Protokolle).

  • Datenherkunft: MLflow-Tag (mflowy.input_steps) protokolliert automatisch die Eingabeabhängigkeiten zwischen Schritten.

  • Beobachtbare Ausführung: Vollständige MLflow-Verfolgung (Parameter/Metriken/Modelle/Artefakte) + strukturiertes WorkflowResult (run_id/Status/Ausgabe pro Knoten); Prozessprotokolle werden an stderr gebunden, im Terminalmodus nach Schweregrad eingefärbt.

  • Erweiterbare Ausführungsstrategie: Die JobProvider-Abstraktion definiert die Ausführungsumgebung von Compute-Tools. Eine lokale Implementierung ist integriert, die Remote-Ausführung wird durch benutzerdefinierte Implementierungen angebunden (siehe docs/REMOTE_MODELING.md).

Related MCP server: Patronus MCP Server

Architektur und Aufrufmethoden

MFlowy verwendet MCP als architektonischen Hauptteil: src/mflowy/mcp/tools.py definiert alle Compute-Tools (eda / modeling / explanation / predict / inverse_optimization usw.), die über drei Einstiegspunkte aufgerufen werden:

Einstiegspunkt

Befehl

Szenario

MCP-Server (stdio)

mcpSrv

MCP-Clients (Claude Code, Cursor usw.)

JSON-Runner (CLI)

cmd <tool> '<json args>'

Befehlszeile, K8s-Job-Container, Subprozess

Direkter Import

mflowy.mcp.tools pyfunc

Host-Programm-Einbettung

CLI (cmd) ist der Befehlszeilenkanal der MCP-Tool-Schicht und teilt sich dieselbe Tool-Implementierung und JobProvider-Delegation mit dem MCP-Server. Es ist keine separate Architektur; die historische separate CLI (mflowy run/validate/list-modules usw.) ist veraltet.

Schnellstart

# 构建 wheel(→ dist/mflowy-<version>-py3-none-any.whl)
make build-whl

# MCP server (stdio) — 完全体(数据分析 + 建模);<whl> 为 wheel 绝对路径(见下方说明)
uvx --index-strategy unsafe-best-match \
    --default-index https://mirrors.aliyun.com/pypi/simple/ \
    --index https://download.pytorch.org/whl/cpu \
    --from "mflowy[modeling] @ file://<whl绝对路径>" \
    mcpSrv

# JSON runner(CLI)— 本地调试
uv run cmd list_modules                                       # 查看支持的步骤及模块列表(base,无数据栈)
uv run cmd list_modules '{"step":"load"}'                     # 查看 load 步骤的模块列表
uv run cmd get_module_info '{"step":"load","module":"csv"}'   # 查看 load 步骤的 csv 模块信息
uv run --extra stats cmd data_profile '{"file_path": "..."}'           # 数据分析工具
uv run --extra modeling cmd modeling '{"modeling_steps_yaml": "...", "name": "...", "desc": "..."}'  # 建模工具

Umgebungsvariablen

Variable

Zweck

Beispiel

MLFLOW_TRACKING_URI

Tracking-Server-URI (wenn nicht gesetzt, werden Workflow- und Abfragetools in derselben festen Datenbank ~/.mflowy/mlflow.db abgelegt)

postgresql://user:pwd@host:5432/mlflow

MFLOWY_JOB_PROVIDER

JobProvider-Auflösung: local (Standard) oder module:Class (benutzerdefinierte Implementierung)

my_pkg.job_provider:MyRemoteProvider

PYTHONPATH

Paketwurzel für benutzerdefinierte JobProvider-Module

/srv/my-provider

MFLOWY_TELEMETRY

Telemetriemodus: ask (Standard, fragt beim ersten Tool-Aufruf) / on / off (explizite Einstellung überschreibt settings.json, siehe unten „Telemetrie")

on

Beispiel für die MCP-Client-Konfiguration

**```json { "mcpServers": { "mflowy": { "type": "stdio", "command": "uvx", "args": [ "--index-strategy", "unsafe-best-match", // torch CPU 索引必需(见下方说明) "--default-index", "https://mirrors.aliyun.com/pypi/simple/", // 可选:包索引镜像(网络可达 PyPI 时省略) "--index", "https://download.pytorch.org/whl/cpu", // [modeling] 需要;仅 [stats] 可省略 "--from", "mflowy[modeling] @ file:///path/to/mflowy--py3-none-any.whl", "mcpSrv" ], "env": { // "PYTHONPATH": "/path/to/custom_module_parent", // "MFLOWY_JOB_PROVIDER": "<custom_module>:", // "MLFLOW_TRACKING_URI": "postgresql://user:pwd@host:5432/mlflow" } } } }


### Startanleitung

* **Einstiegspunktname `mcpSrv`**: Bewusst vermeidet er den gleichnamigen `mcp`-CLI des MCP-SDK (`mcp.cli:app`) – uvx kann beim Parsen des `mcp`-Befehls auf die SDK-Seite treffen und den Start fehlschlagen lassen.
* **Extras inline in der `--from`-Spezifikation**: `--extra` von uvx erfordert eine neuere uv-Version; die Inline-Schreibweise ist am kompatibelsten.
* **`<whl>` ist ein absoluter Pfad**: `make build-whl` erzeugt `dist/mflowy-<version>-py3-none-any.whl`; bei Versionsänderungen muss synchronisiert werden.
* **torch-CPU-Index** (`--index` pytorch-cpu + `--index-strategy unsafe-best-match`) ist für \[modeling] erforderlich: uvx liest die `[tool.uv.sources]` in pyproject nicht; ohne diesen Index wird torch als CUDA-Gesamtpaket (2–3 GB) aufgelöst; `unsafe-best-match` muss zusammen mit dem pytorch-Index verwendet werden, sonst schlägt die first-index-Strategie fehl, da die alte requests-Version auf diesem Index nicht aufgelöst werden kann.
* **Entwicklungsmodus kann das Wheel überspringen**: Die `.mcp.json.example` im Repository-Root ist in Quellpfadform und immer aktuell.

## Telemetrie

Diagnoseerfassung von MCP-Tool-Aufrufen, zustimmungspflichtig, Standard `ask`, bei nicht erreichbarem Endpunkt vollständig transparent und ohne Auswirkung auf Tool-Aufrufe, deckt nur den MCP-Einstieg ab. Datenschutzvertrag siehe [PRIVACY.md](PRIVACY.md), Integration und Konfiguration siehe [docs/TELEMETRY.md](docs/TELEMETRY.md).

## Beiträge

Jede Form von Beiträgen ist willkommen (Funktionen, Fehlerbehebungen, Dokumentation, Beispiele). Bitte lesen Sie [CONTRIBUTING.md](CONTRIBUTING.md) (Entwicklungsprozess und Konventionen), [CODE\_OF\_CONDUCT.md](CODE_OF_CONDUCT.md), [PRIVACY.md](PRIVACY.md) (Telemetrie-Datenschutzvertrag) und [SECURITY.md](SECURITY.md) (Schwachstellenmeldung).

## Lizenz

Dieses Projekt ist unter der [MIT-Lizenz](LICENSE) Open Source.

## Dokumentation

* [Architektur- und Beitragsleitfaden](AGENTS.md)
* [Architekturentscheidungsprotokoll](docs/decisions.md)
* [Forschungsfluss-Methodik](docs/research-flow.md)
* [Roadmap](docs/roadmap.md)
* [Remote-Ausführungsintegration](docs/REMOTE_MODELING.md)
* [Telemetrie](docs/TELEMETRY.md)
* [DAG-Engine-Architektur](docs/DRIVER.md)

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    B
    maintenance
    Connects MCP-compatible clients like Claude to Treeflow, enabling natural-language administration, design, training, and diagnostics of intelligent chatbots. It provides tools for managing bots, conversation flows, NLU entities and intents, message templates, integrations, voice config, training history, simulations, audits, backups, and workspace credentials.
    45
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to execute notebook cells, manage environments, and validate workbooks via MCP, facilitating reproducible machine-learning answers.
    MIT