Skip to main content
Glama

MFlowy flujo de trabajo de modelado y análisis de datos

License: MIT Python 3.12 CI MCP

MFlowy es un motor de flujos de trabajo de ML modular nativo de MCP: basado en ejecución por capas con DAG, impulsado por configuración, admite flujos de trabajo rastreables y trazables desde el procesamiento de datos, el entrenamiento de modelos hasta el análisis visual.

Características principales

  • Nativo de MCP: todas las capacidades se exponen como herramientas MCP (pyfunc); el mismo conjunto de herramientas se invoca a través de tres entradas: servidor MCP (stdio), CLI de JSON runner (cmd) e import directo (incrustado en el host)

  • Orquestación de flujos de trabajo DAG: admite estructuras topológicas complejas de grafos acíclicos dirigidos (DAG), definiendo de forma flexible las dependencias de las tareas

  • Impulsado por configuración: define flujos de trabajo mediante archivos de configuración YAML, sin necesidad de escribir código

  • Registro mediante decoradores: funciones puras + decorador @handler para registro automático; añadir funcionalidad solo requiere crear un archivo .py

  • Sistema de middleware: patrón de cadena de responsabilidad para preocupaciones transversales (inyección de datos, registro en mlflow, detención ante errores, varios tipos de registro)

  • Linaje de datos: la etiqueta de MLflow (mflowy.input_steps) registra automáticamente las dependencias de entrada entre pasos

  • Ejecución observable: seguimiento completo de MLflow (parámetros/métricas/modelos/artefactos) + WorkflowResult estructurado (run_id/estado/salida por nodo); los registros de proceso se vinculan a stderr y se colorean por nivel en modo terminal

  • Estrategia de ejecución extensible: el contrato JobProvider abstrae el entorno de ejecución de las herramientas compute; incluye una implementación local integrada, y la ejecución remota se conecta mediante implementaciones personalizadas (ver docs/REMOTE_MODELING.md)

Related MCP server: Procesio MCP Server

Arquitectura y formas de invocación

MFlowy utiliza MCP como cuerpo principal de la arquitectura: src/mflowy/mcp/tools.py define todas las herramientas compute (eda / modeling / explanation / predict / inverse_optimization, etc.), invocadas a través de tres entradas:

Entrada

Comando

Escenario

MCP server (stdio)

mcpSrv

Conexión de clientes MCP (Claude Code, Cursor, etc.)

JSON runner (CLI)

cmd <tool> '<json args>'

Línea de comandos, contenedores de Jobs K8s, subprocess

Import directo

mflowy.mcp.tools pyfunc

Invocación incrustada en el programa anfitrión

La CLI (cmd) es el canal de línea de comandos de la capa de herramientas MCP; comparte la misma implementación de herramientas y la delegación de JobProvider con el servidor MCP, no es una arquitectura independiente; la CLI independiente histórica (mflowy run/validate/list-modules, etc.) está obsoleta.

Inicio rápido

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

Variables de entorno

Variable

Uso

Ejemplo

MLFLOW_TRACKING_URI

URI del servidor de tracking (si no se establece, el workflow y las herramientas de consulta se guardan en la base fija ~/.mflowy/mlflow.db)

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

MFLOWY_JOB_PROVIDER

Resolución de JobProvider: local (predeterminado) o module:Class (implementación personalizada)

my_pkg.job_provider:MyRemoteProvider

PYTHONPATH

Raíz del paquete del módulo JobProvider personalizado

/srv/my-provider

MFLOWY_TELEMETRY

Modo de telemetría: ask (predeterminado, pregunta en la primera invocación de herramienta) / on / off (la configuración explícita sobrescribe settings.json; ver «Telemetría» más abajo)

on

Ejemplo de configuración de cliente 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"
      }
    }
  }
}

Notas de inicio

  • Nombre de entrada mcpSrv: evita deliberadamente la CLI mcp homónima incluida en el SDK de mcp (mcp.cli:app); al resolver el comando mcp con uvx, podría alcanzar el lado del SDK y provocar un fallo de inicio

  • extras integrados en la especificación --from: --extra de uvx requiere una versión nueva de uv; la escritura en línea ofrece la mejor compatibilidad

  • <whl> es una ruta absoluta: make build-whl produce dist/mflowy-<version>-py3-none-any.whl; los cambios de versión deben sincronizarse

  • Índice de CPU de torch (--index pytorch-cpu + --index-strategy unsafe-best-match) es necesario para [modeling]: uvx no lee [tool.uv.sources] de pyproject; por defecto, torch se resuelve como el paquete completo de CUDA (2–3GB); unsafe-best-match debe usarse junto con el índice de pytorch; de lo contrario, la estrategia first-index falla al resolver debido a la versión antigua de requests en ese índice

  • En desarrollo se puede omitir la wheel: .mcp.json.example en la raíz del repositorio usa rutas de código fuente y siempre está actualizado

Telemetría (Telemetry)

Recopilación de diagnósticos de invocaciones de herramientas MCP, basada en consentimiento, con ask como valor predeterminado; si el endpoint no está disponible, es totalmente transparente y no afecta a la invocación de herramientas; solo cubre la entrada MCP. El contrato de privacidad se encuentra en PRIVACY.md, y los detalles de integración y configuración en docs/TELEMETRY.md.

Contribuciones

Se agradece cualquier tipo de contribución (funcionalidades, correcciones, documentación, casos). Lea CONTRIBUTING.md (proceso de desarrollo y convenciones), CODE_OF_CONDUCT.md, PRIVACY.md (contrato de privacidad de telemetría) y SECURITY.md (divulgación de vulnerabilidades).

Licencia

Este proyecto es de código abierto bajo la MIT License.

Documentación

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