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: Procesio 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)
A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.

  • MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration

  • MCP Server for agents to onboard, pay, and provision services autonomously with InFlow

View all MCP Connectors

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/ifoodsci-ai/mflowy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server