Skip to main content
Glama

MFlowy Рабочий процесс анализа и моделирования данных

License: MIT Python 3.12 CI MCP

MFlowy — это MCP-native модульный движок ML-рабочих процессов: послойное выполнение на основе DAG, управление через конфигурацию, поддержка отслеживаемых и воспроизводимых рабочих процессов — от обработки данных и обучения моделей до визуального анализа.

Ключевые возможности

  • MCP-native: все возможности предоставляются как MCP-инструменты (pyfunc); один и тот же набор инструментов доступен через три точки входа — MCP server (stdio), JSON runner CLI (cmd), прямой import (встраивание в хост-приложение)

  • Оркестрация DAG-рабочих процессов: поддержка сложных топологий направленных ациклических графов (DAG), гибкое определение зависимостей задач

  • Управление через конфигурацию: рабочие процессы определяются через YAML-конфигурацию, без написания кода

  • Регистрация через декораторы: чистые функции + декоратор @handler для автоматической регистрации; для добавления новой функции достаточно создать файл .py

  • Система промежуточного ПО: цепочка ответственности для обработки сквозных задач (инъекция данных, запись в mlflow, остановка при ошибке, различные журналы)

  • Происхождение данных: тег MLflow (mflowy.input_steps) автоматически записывает зависимости входных данных между шагами

  • Наблюдаемое выполнение: полная трассировка MLflow (параметры/метрики/модели/артефакты) + структурированный WorkflowResult (поузловой run_id/статус/вывод); журналы процесса привязаны к stderr, в терминальном режиме окрашены по уровням

  • Расширяемые стратегии выполнения: контракт JobProvider абстрагирует среду выполнения compute-инструментов, встроенная локальная реализация, удалённое выполнение подключается через пользовательские реализации (см. docs/REMOTE_MODELING.md)

Related MCP server: Patronus MCP Server

Архитектура и способы вызова

MFlowy построен на основе MCP: src/mflowy/mcp/tools.py определяет все compute-инструменты (eda / modeling / explanation / predict / inverse_optimization и др.), доступные через три точки входа:

Точка входа

Команда

Сценарий

MCP server (stdio)

mcpSrv

Подключение MCP-клиентов (Claude Code, Cursor и др.)

JSON runner (CLI)

cmd <tool> '<json args>'

Командная строка, контейнеры K8s Job, subprocess

Прямой import

mflowy.mcp.tools pyfunc

Встраивание в хост-приложение

CLI (cmd) — это командный канал для MCP-инструментов; он использует ту же реализацию инструментов и делегирование через JobProvider, что и MCP server, и не является отдельной архитектурой; прежние отдельные CLI (mflowy run/validate/list-modules и др.) устарели.

Быстрый старт

# 构建 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": "..."}'  # 建模工具

Переменные окружения

Переменная

Назначение

Пример

MLFLOW_TRACKING_URI

URI tracking-сервера (при отсутствии инструменты workflow и запросов используют фиксированную базу ~/.mflowy/mlflow.db)

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

MFLOWY_JOB_PROVIDER

Разрешение JobProvider: local (по умолчанию) или module:Class

my_pkg.job_provider:MyRemoteProvider

PYTHONPATH

Корень пакета для модуля пользовательского JobProvider

/srv/my-provider

MFLOWY_TELEMETRY

Режим телеметрии: ask (по умолчанию, запрос при первом вызове инструмента) / on / off (явная настройка переопределяет settings.json, см. раздел «Телеметрия» ниже)

on

Пример конфигурации MCP-клиента

{
  "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-<version>-py3-none-any.whl",
        "mcpSrv"
      ],
      "env": {
        // "PYTHONPATH": "/path/to/custom_module_parent",
        // "MFLOWY_JOB_PROVIDER": "<custom_module>:<class>",
        // "MLFLOW_TRACKING_URI": "postgresql://user:pwd@host:5432/mlflow"
      }
    }
  }
}

Примечания по запуску

  • Имя точки входа mcpSrv: намеренно отличается от одноимённого CLI mcp от SDK (mcp.cli.app) — при разрешении через uvx команда mcp может попасть в SDK и привести к ошибке запуска

  • extras внутри spec --from: для --from uvx требуется новая версия uv; встроенная запись наиболее совместима

  • <whl> — абсолютный путь: make build-whl создаёт dist/mflowy-<версия>-py3-none-any.whl; при изменении версии необходимо обновить путь

  • Индекс pytorch-cpu (--index pytorch-cpu) для [modeling] необходим: если индекс опущен, по умолчанию используется PyPI, что приводит к загрузке CUDA-версии torch (около 2 ГБ+); при использовании --index также добавьте --extra-index-url https://pypi.org/simple, чтобы избежать сбоев разрешения зависимостей

  • Для разработки wheel не требуется: .mcp.json.example использует путь к исходному коду и всегда актуален

Телеметрия

Сбор диагностики вызовов MCP-инструментов; режим по умолчанию ask (запрос согласия). Если сервер телеметрии недоступен, это полностью прозрачно и не влияет на вызовы инструментов. Контракт конфиденциальности см. в PRIVACY.md.

Участие

Приветствуется любой вклад: функции, исправления, документация, примеры. Пожалуйста, ознакомьтесь с CONTRIBUTING.md (процесс разработки и соглашения), CODE_OF_CONDUCT.md, PRIVACY.md (контракт конфиденциальности телеметрии) и SECURITY.md (раскрытие уязвимостей).

Лицензия

Проект распространяется под лицензией MIT License.

Документация

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