DataMineAna
DataMineAna
Математический модельный MCP-набор инструментов — предоставляет большим языковым моделям/агентам возможности предварительной обработки данных, анализа данных, математического моделирования и визуализации данных.
Архитектура
+-----------------------------------------------+
| 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генерирует полный список шагов вызова (для написания статей)
Интеллектуальная передача документации
Начальная передача: MCP_USAGE.md + COMMON_API.md (20 часто используемых инструментов)
Передача по требованию: 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 (для использования агентами)
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:
Load Data — загрузка файла данных
Preprocess — очистка, преобразование, снижение размерности, разделение
Analyze — описательная статистика, корреляция, распределения, проверка гипотез
Visualize — графики распределения, ящики с усами, точечные графики, тепловые карты, сравнение до/после
Model — регрессия/классификация/кластеризация/кросс-валидация/сеточный поиск
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
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
This MCP server enables users to perform scientific computations regarding linear algebra and vect…
Related MCP Servers
- FlicenseBqualityDmaintenanceAn 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-
- AlicenseAqualityDmaintenanceEnables 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.6MIT
- FlicenseNot gradedqualityDmaintenanceMCP server providing data analytics tools for AI agents to load, clean, analyze data, generate charts and dashboards.-
- FlicenseAqualityDmaintenanceAn 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-