Skip to main content
Glama

DataMineAna

수학적 모델링 MCP 도구 키트 -- 대형 모델/Agent에게 데이터 전처리, 데이터 분석, 수학적 모델링, 데이터 시각화 기능을 제공합니다.

아키텍처

+-----------------------------------------------+
|            Modeling Skill (上层)               |
+-----------------------------------------------+
|         MCP Client (中层)                      |
|    - 与大模型交互                              |
|    - 智能文档传递(先常用,再全量)            |
|    - 工具调用解析与转发                        |
+-----------------------------------------------+
|         MCP Server (底层)                      |
|    - 工具注册与分发(37 个工具)               |
|    - 数据预处理(38 个方法)                   |
|    - 数据分析(29 个方法)                     |
|    - 数学建模(47 个方法)                     |
|    - 数据可视化(10 种图表)                   |
|    - 高级扩展(动态方法创建)                  |
|    - 数据档案追踪(核心)                      |
|    - 缓存管理                                  |
+-----------------------------------------------+
|         UI Module (可选)                       |
|    - 交互式数据建模工作台                      |
|    - 逐步向导:加载->预处理->分析->可视化->建模->报告 |
|    - Gradio Web UI                             |
|    - 基于 MCP Server(非直接调用)             |
+-----------------------------------------------+

Related MCP server: eda-mcp

핵심 기능

플러그인 기반 메서드 아키텍처

각 메서드 클래스는 BaseMethod를 상속하며 MethodLoader를 통해 로드되고 실행됩니다. 메서드 클래스는 외부에 노출되지 않으며 Interface를 통해서만 접근할 수 있습니다.

module/
  methods/           # 方法类(隐藏)
    cleaning.py      # 相关方法分组
    transformation.py
  loader.py          # MethodLoader 子类(注册所有方法)
  interface.py       # 公开接口(集成 tracker)

데이터 아카이브 추적 시스템(핵심)

  • 함수 호출 전후에 입력/출력 정보를 자동으로 기록합니다

  • 전역 데이터 아카이브(형태, 열, 유형, 결측값, 통계량, 열 상세 정보)를 유지합니다

  • 데이터 로드부터 모델링 종료까지 전체 과정을 추적합니다

  • get_pipeline_report가 전체 호출 단계를 생성합니다(논문 작성용)

지능형 문서 전달

  1. 초기 전달: MCP_USAGE.md + COMMON_API.md(자주 쓰는 도구 20개)

  2. 필요 시 전달: FULL_API.md(도구 37개 + 메서드 114개)

return_mode 반환 제어

각 도구는 return_mode 매개변수를 지원하여 반환 내용을 제어합니다:

  • summary(기본값), full, data, head, tail, sample, path

동적 메서드 확장

  • 고급 확장: create_method에 Python 코드 문자열을 전달하여 새 메서드를 동적으로 생성합니다

  • 외부 확장: src/advanced/methods/ 또는 cache/advanced/에 메서드 클래스 파일을 넣으면 자동으로 로드됩니다

  • UI 사용자 정의: UI 사용자도 인터페이스에서 사용자 정의 메서드를 작성할 수 있습니다

데이터 시각화

  • 10가지 차트 유형: 분포도, 박스플롯, 산점도, 히트맵, 혼동 행렬, ROC 곡선 등

  • 전후 비교(처리 전 vs 처리 후) 지원

  • 이미지는 cache/plotting/에 자동으로 저장됩니다

디렉터리 구조

DataMineAna/
  src/
    common/              # 公共函数库
      base_method.py     # 方法基类(ParameterDef 支持 UI 自动表单)
      method_loader.py   # 方法加载器
      types.py           # 类型定义
      validators.py      # 参数校验
      json_utils.py      # JSON 工具
    tracker/             # 数据档案与追踪系统(核心)
      data_profile.py    # 数据档案
      profile_manager.py # 档案管理器
      call_tracker.py    # 调用追踪器
    cache_manager/       # 缓存管理
    preprocessing/       # 数据预处理(38 个方法)
    analysis/            # 数据分析(29 个方法)
    modeling/            # 数学建模(47 个方法)
    plotting/            # 数据可视化(10 种图表)
      plotter.py         # 核心绘图引擎
      interface.py       # 可视化接口
    advanced/            # 高级扩展
      loader.py          # 动态方法加载器
      template.py        # 扩展模板
      methods/           # 内置扩展方法
    mcp_server/          # MCP Server(底层接口)
    mcp_client/          # MCP Client(中层)
    ui/                  # 交互式 UI 模块
      app.py             # Gradio 主应用
      state.py           # 会话状态(基于 MCP Server)
      pages/
        page_load.py     # 1. 数据加载
        page_preprocess.py # 2. 数据预处理
        page_analysis.py # 3. 数据分析
        page_plot.py     # 4. 数据可视化
        page_model.py    # 5. 模型构建
        page_report.py   # 6. 流水线报告
        components.py    # 共享 UI 组件
  cache/                 # 临时文件目录
    preprocessing/       # 预处理临时文件
    analysis/            # 分析临时文件
    modeling/            # 建模临时文件
    plotting/            # 图表临时文件
    advanced/            # 动态方法文件
    tracker/             # 追踪临时文件
    ui/                  # UI 临时文件
  docs/                  # 文档
  test.py               # 集成测试(20 个测试)
  run_ui.py             # UI 启动入口

빠른 시작

MCP Server(Agent용)

from src.mcp_server import MCPServer

server = MCPServer()

# 加载数据
r = server.call_tool("load_data", path="data.csv")

# 数据清洗
r = server.call_tool("clean_data", dataset_id="ds_xxx", missing_strategy="mean")

# 数据可视化
r = server.call_tool("plot_distribution", dataset_id="ds_xxx")
r = server.call_tool("plot_box", dataset_id="ds_xxx")

# 建模
r = server.call_tool("regression", dataset_id="ds_xxx", target_column="y")

# 获取完整报告
r = server.call_tool("get_pipeline_report")

인터랙티브 UI(사람용)

python run_ui.py              # 默认端口 7860
python run_ui.py --port 8080  # 自定义端口
python run_ui.py --no-open    # 不自动打开浏览器

UI 워크플로우:

  1. Load Data - 데이터 파일 업로드

  2. Preprocess - 정제, 변환, 차원 축소, 분할

  3. Analyze - 기술 통계, 상관관계, 분포, 가설 검정

  4. Visualize - 분포도, 박스플롯, 산점도, 히트맵, 전후 비교

  5. Model - 회귀/분류/클러스터링/교차 검증/그리드 서치

  6. Report - 전체 파이프라인 보고서 생성

메서드 수 통계

모듈

메서드 수

도구 수

데이터 전처리

38

9

데이터 분석

29

6

수학적 모델링

47

8

데이터 시각화

10

6

고급 확장

동적

2

시스템 도구

-

6

합계

124+

37

확장 메서드

방법 1: BaseMethod 상속

from src.common.base_method import BaseMethod, MethodResult, ParameterDef

class MyMethod(BaseMethod):
    @property
    def name(self): return "my_method"
    @property
    def description(self): return "My custom method"
    @property
    def category(self): return "custom"
    @property
    def parameters(self):
        return [
            ParameterDef(name="threshold", type="float", default=0.5, description="Threshold value"),
        ]

    def execute(self, df, **kwargs):
        threshold = kwargs.get("threshold", 0.5)
        # your logic here
        return MethodResult(df=df, success=True, message="done")

방법 2: 동적 생성(MCP를 통해)

server.call_tool("create_method", code='''
class MyMethod(BaseMethod):
    @property
    def name(self): return "my_method"
    @property
    def description(self): return "My custom method"
    def execute(self, df, **kwargs):
        return MethodResult(df=df, success=True, message="done")
''', module="preprocessing")

방법 3: 고급 확장 디렉터리에 넣기

메서드 파일을 src/advanced/methods/(영구) 또는 cache/advanced/(임시)에 넣으면 자동으로 로드됩니다.

의존성

  • Python >= 3.10

  • pandas >= 2.0

  • numpy >= 1.24

  • scikit-learn >= 1.3

  • scipy >= 1.11

  • matplotlib >= 3.7

  • seaborn >= 0.12

  • gradio >= 4.0 (UI 모듈)

라이선스

MIT License

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    An MCP server that provides data visualization and machine learning tools, featuring automated intent-based pipeline routing for data cleaning and model training. It enables LLMs to process CSV or JSON data to generate visual charts, perform regressions, or execute clustering analysis.
    16
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables exploratory data analysis through an MCP server, allowing AI assistants to load datasets, compute summary statistics, generate diagnostic plots, perform correlation analysis, and produce full markdown reports.
    6
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server for dataset exploration and analysis, enabling LLM clients to perform summary, correlation, distribution, missing value analysis, data cleaning, and statistical tests directly on CSV files.
    3
    -