数据科学分析服务器

提供全面的数据科学功能和智能分析的高级MCP服务器,支持机器学习/深度学习算法、AutoML、智能问题类型检测、自适应采样和交互式可视化。

  • by chokukil
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 chokukil/mcp-data-science

使用说明

高级数据科学MCP服务器

高级模型上下文协议(MCP)服务器,提供全面的数据科学功能和智能分析。通过最新的机器学习/深度学习算法、AutoML、智能问题类型检测、自适应采样和交互式可视化,支持企业级数据分析。

🚀 主要功能

🧠 自动检测智能问题类型

  • 基于数据特性自动确定问题类型(分类/回归/群集/时间序列/图像/文本)
  • 自动推荐地图/非地图学习
  • 自动推荐目标列并评估其适用性
  • 根据数据大小自动选择最佳分析策略

🤖 高级AutoML&机器学习

  • 最新引导算法:XGBoost、LightGBM、CatBoost
  • AutoKeras통합:自动神经网络体系结构发现(NAS)
  • 高斯过程:不确定性量化功能
  • 高级群集:HDBSCAN、光谱聚类、光学
  • 异常检测:隔离林、单类SVM、椭圆包络
  • 不均衡数据处理:SMOTE,ADASYN,언더샘플링

📊 自适应数据处理和采样

  • 智能采样:自动取样100 MB以上的文件
  • 取样方法:分层表集、体系表集、随机表集
  • 质量验证:自动验证样本与原始数据的统计相似性
  • 内存优化:高效处理大量数据

🎨 高级可视化和缩小维度

  • 交互式可视化:基于Plotly的动态图表
  • 缩小维度:t-SNE、UMAP、Isomap、PCA
  • 综合仪表板:数据质量、相关性和分布一目了然
  • 各种打印:直方图、散点图、箱线图、热图、配对图、小提琴图、分布图

🔬 模型分析和优化

  • SHAP:黑匣子模型分析和特性重要性
  • 侧面影像分析:自动确定最佳群集数量
  • 交叉验证:通过各种评估指标验证模型性能
  • 特性重要性:通过多种方法分析特性

💻 自动生成完整代码

  • 自动生成所有分析过程的可重现的Python代码
  • 采样逻辑、预处理、建模整个管线编码
  • 用于生产部署的独立脚本
  • API服务,提供模型监控代码模板

📝 综合标记报告

  • 自动生成分析过程和结果的专业标记报告
  • 包括可视化嵌入、代码说明和实用性使用指南
  • 采样信息、型号性能和建议详细技术

🛠️ 工具列表

📊 核心分析工具

  • load_dataset:智能数据加载(自动采样、问题类型检测、目标推荐)
  • perform_eda:高级导航数据分析(仪表板、缩小维度、异常分析)
  • auto_ml_pipeline:智能AutoML管线(高级算法,自动评估)
  • create_visualization:创建高级可视化(多种打印类型,交互式)

📁 文件管理工具

  • upload_local_file:上载本地文件(自动验证格式,生成安全名称)
  • copy_file_to_sandbox:复制文件(可指定自定义名称)
  • list_uploaded_files:上传的文件列表(包括数据预览)
  • list_available_datasets:可用数据集列表(包括元数据)

📋 跟踪和报告工具

  • generate_comprehensive_report:生成综合分析报告(标记,可视化嵌入)
  • get_operation_details:查询任务详细信息(输入/输出,生成文件)
  • list_generated_code:生成的代码列表(文件信息、代码类型)
  • get_upload_instructions:文件上传指南(用法,示例)

⚙ENT系统工具

  • get_environment_info:查看环境信息(软件包可用性、支持功能)
  • health_check:检查服务器状态(系统信息、功能状态)

🔍 支持算法详细信息

分类(Classification)

  • 基本:随机森林、梯度提升、额外树、逻辑回归、SVM、k-NN、朴素贝叶斯、决策树、MLP
  • 高级:XGBoost、LightGBM、CatBoost、高斯过程、QDA
  • 评估:准确度、精密度、召回率、F1分数、ROC-AUC

回归(Regression)

  • 基本:随机森林、梯度提升、额外树、线性/岭/拉索/弹性网、SVR、k-NN、决策树、MLP
  • 高级:XGBoost、LightGBM、CatBoost、高斯过程
  • 评估:R²、RMSE、MAE、交叉验证得分

群集(Clustering)

  • 基本:K-Means、DBSCAN、凝聚、高斯混合
  • 高级:HDBSCAN、光谱、光学、均值漂移、亲和传播
  • 评估:Silhouette Score,自动确定最佳集群数量

异常检测(Anomaly Detection)

  • 算法:隔离林、单类SVM、椭圆包络、局部离群因子
  • 评估:异常比率,异常得分

📈 可视化类型

类型 说明 必需参数 选择参数
histogram 直方图x_column title
scatter 산점도 x_column,y_column hue_column,标题
boxplot 박스플롯 x_column y_column,标题
heatmap 相关热图--title
bar 条形图x_column y_column,title
pairplot 多变量关系出图-hue_column,title
violin 小提琴出图x_column,y_column title
distribution 分布分析(直方图+KDE+Q-Q)x_column title

📂 支持文件格式

输入格式

  • CSV文件: .csv (最推荐)
  • Excel: .xlsx, .xls
  • 对象符号: .json
  • 镶木地板: .parquet
  • 文本: .txt, .tsv

输出格式

  • 数据:CSV
  • 可视化:PNG(静态)、HTML(交互式)
  • 模特儿:PKL(joblib)
  • 报告:JSON、Markdown
  • 代码:Python(.py)

🚀 快速入门

Linux/Mac用户

# 1. uv 설치 (없는 경우)
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc  # 또는 ~/.zshrc

# 2. 프로젝트 설정
git clone https://github.com/chokukil/mcp-data-science.git
cd mcp-data-science

# 3. 기본 의존성 설치
uv venv --python 3.10
source .venv/bin/activate
uv pip install -e .

# 4. 고급 기능 설치 (선택적)
uv pip install -e ".[all]"  # 모든 고급 기능 한번에 설치

# 5. 서버 실행
python mcp_data_science.py --sandbox-dir ./sandbox --port 8007

Windows用户

# 1. uv 설치 (없는 경우) - PowerShell을 관리자 권한으로 실행
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# PowerShell 재시작

# 2. 프로젝트 설정
git clone https://github.com/chokukil/mcp-data-science.git
cd mcp-data-science

# 3. 기본 의존성 설치
uv venv --python 3.10
.\.venv\Scripts\activate
uv pip install -e .

# 4. 고급 기능 설치 (선택적)
uv pip install -e ".[all]"  # 모든 고급 기능 한번에 설치

3.运行服务器

# 기본 실행
python mcp_data_science.py

# uv를 사용한 격리 실행
uv run --isolated mcp_data_science.py

# 커스텀 설정
uv run --isolated --sandbox-dir ./my_sandbox --port 8008

# 모든 고급 기능과 함께 실행 (시간이 수 분 걸릴 수 있습니다.)
uv run --isolated --extra all mcp_data_science.py

4.基本使用方法

1.上传文件

upload_result=等待upload_local_file(“/path/to/your/data.csv”)

2.数据加载(自动采样,检测问题类型)

load_result=等待load_dataset(上传结果[‘file_info’][‘destination_path’]) dataset_id=加载结果['dataset_id']

3.探索性数据分析

eda_result=等待性能.eda(dataset_id)

4.运行AutoML

automl_result=等待auto_ml_pipeline( dataset_id=dataset_id, 自动检测target_column=“target”,#或None include_advanced=真 )

5.生成可视化

viz_result=等待创建可视化( dataset_id=dataset_id, plot_type='位图', hue_column=“类别” )

6.生成综合报告

report_result=等待生成器_综合报告()


## 💡 고급 사용 시나리오

### 🎯 대용량 데이터 처리

```python
# 500MB CSV 파일 처리
await upload_local_file('/data/large_dataset.csv')
# → 자동으로 지능형 샘플링 적용 (층화표집/체계표집/무작위표집)

load_result = await load_dataset('large_dataset_20241207_143052.csv')
# 출력 예시:
# - 원본: 1,000,000 행
# - 샘플: 30,000 행 (층화표집)
# - 품질: Excellent (분포 차이 < 2%)

🔬 自动检测问题类型

# 타겟 컬럼 없이 로드 → 자동 추천
load_result = await load_dataset('mystery_data.csv')
# 출력:
# - 감지된 문제 유형: classification
# - 추천 타겟: 'survived' (분류, 적합도 85점)
# - 대안 타겟: 'age' (회귀, 적합도 70점)

# 추천 타겟으로 AutoML 실행
await auto_ml_pipeline('dataset_123', target_column='survived')

🧪 利用高级算法

# 고급 알고리즘 포함 AutoML
automl_result = await auto_ml_pipeline(
    dataset_id='dataset_123',
    target_column='target',
    include_advanced=True  # XGBoost, LightGBM, CatBoost, Gaussian Process
)

# 결과 예시:
# 1위: CatBoost (정확도: 94.2%)
# 2위: XGBoost (정확도: 93.8%)
# 3위: LightGBM (정확도: 93.5%)

📊 自动优化群集

# 비지도 학습 - 자동 클러스터 수 결정
await auto_ml_pipeline(
    dataset_id='dataset_no_target',
    target_column=None
)
# → 실루엣 분석으로 최적 k=5 자동 결정
# → HDBSCAN, Spectral Clustering 등 고급 알고리즘 비교

📈 自适应采样策略

文件大小 采样方法 目标样本大小 节省内存
<100MB 未采样完整数据%
100-500 MB分层/随机50000行~70%
500MB-1GB分层/体系30000行~80%
1-2GB方案表20000行~85%
>2GB体系结构表15000行~90%

确保采样质量

  • 统计相似性:平均值差异<5%
  • 分布保留:目标变量分布差异<2%
  • 质量等级:Excellent/Good/Fair自动评估
  • 全面验证:建议在生产部署前进行全面数据验证

🏗️ 项目结构

mcp-data-science/
├── mcp_data_science.py          # 메인 서버 코드 (단일 파일)
├── pyproject.toml               # 프로젝트 설정 및 의존성
├── README.md                    # 이 문서
├── .env                         # 환경 변수 (선택적)
│   └── OPENAI_API_KEY=...      # LLM 향상 기능용
└── sandbox/                     # 작업 디렉토리 (자동 생성)
    ├── datasets/                # 업로드/로드된 데이터셋
    ├── plots/                   # 생성된 시각화 (PNG, HTML)
    ├── models/                  # 학습된 모델 (PKL)
    ├── reports/                 # 분석 보고서 (JSON, MD)
    ├── logs/                    # 작업 로그 (JSON)
    └── generated_code/          # 생성된 Python 코드

🔧 首选参数

环境变量(.env文件)

# OpenAI API 키 (선택적 - 보고서 향상용)
OPENAI_API_KEY=sk-...

# 서버 설정 (기본값 사용 가능)
# MCP_SERVER_PORT=8007
# MCP_SANDBOX_DIR=./sandbox

按包组安装

# 기본 설치 (필수 패키지만)
uv pip install -e .

# 기능별 설치
uv pip install -e ".[ml]"        # 머신러닝 부스팅 (XGBoost, LightGBM, CatBoost)
uv pip install -e ".[dl]"        # 딥러닝 (TensorFlow, AutoKeras, Keras-Tuner)
uv pip install -e ".[viz]"       # 고급 시각화 (Plotly)
uv pip install -e ".[interpret]" # 모델 해석 (SHAP)
uv pip install -e ".[advanced]"  # 고급 분석 (UMAP, HDBSCAN, Optuna)
uv pip install -e ".[stats]"     # 통계 분석 (statsmodels)
uv pip install -e ".[image]"     # 이미지 처리 (Pillow)
uv pip install -e ".[llm]"       # LLM 통합 (OpenAI)

# 조합 설치
uv pip install -e ".[ml,viz,interpret]"  # 자주 사용하는 조합
uv pip install -e ".[all]"               # 모든 기능

🛡️ 安全性和性能

🔒 数据安全性

  • 本地处理:所有数据仅在本地处理
  • 关于取样:只向LLM发送统计摘要,不发送原始数据
  • 文件隔离:使用沙盒目录管理安全的文件
  • 日志跟踪:记录所有任务的详细日志

性能优化

  • 自适应采样:智能地调整大数据的大小
  • 内存效率:以区块为单位处理,最大限度地减少内存使用
  • 提前结束:当性能收敛时自动停止学习
  • 缓存:通过中间结果缓存优化重复任务

📊 性能基准

数据大小行数处理时间内存使用采样应用 |-----------|------|---------|-----------|-----------| 小型<10K<30秒<500MB 中型10K-100K 1-5分钟500MB-2GB 大型100K-1M 2-15分钟1-4GB 超大型>1M 5-30分钟2-8GB

🚨 故障射击

常见问题

1.内存不足错误

# 해결: 더 작은 샘플 크기 사용
# 100MB 임계값을 50MB로 낮춤
import os
os.environ['DATA_SIZE_THRESHOLD_MB'] = '50'

2.TensorFlow/AutoKeras安装问题

# Apple Silicon Mac
pip install tensorflow-macos tensorflow-metal

# CUDA GPU 지원
pip install tensorflow[and-cuda]

# 또는 CPU 버전만
pip install tensorflow-cpu

3.软件包版本冲突

# 가상환경 재생성
python -m venv venv --clear
source venv/bin/activate  # 또는 Windows: venv\Scripts\activate
pip install --upgrade pip
# 패키지 재설치...

4.文件上传失败

# 해결: 파일 경로 확인 및 권한 체크
import os
print(f"파일 존재: {os.path.exists('/path/to/file.csv')}")
print(f"읽기 권한: {os.access('/path/to/file.csv', os.R_OK)}")

5.服务器启动失败

# 포트 충돌 확인
netstat -tlnp | grep 8007

# 다른 포트 사용
python mcp_data_science.py --port 8008

检查日志

# 작업 로그 확인
tail -f sandbox/logs/operation_*.json

# 서버 로그 확인 (콘솔 출력)

设置MCP服务器

要使用MCP服务器,必须配置配置文件。

打开您要使用的环境的MCP设置文件,添加以下内容以供使用。

配置文件内容

{
  "mcpServers": {
    "data-science": {
      "transport": "sse",
      "url": "http://localhost:8007/sse"
    }
  }
}

端口设置

如果使用的是默认端口8007,则可以使用其他端口:

# 포트 사용 확인 (Linux/Mac)
lsof -i :8007

# 포트 사용 확인 (Windows)
netstat -an | findstr :8007

# 다른 포트로 서버 실행
python mcp_data_science.py --port 8008

从配置文件更改到相应的端口:

{
  "mcpServers": {
    "data-science": {
      "transport": "sse",
      "url": "http://localhost:8008/sse"
    }
  }
}

🎯 MCP调用示例

以下是Cursor使用数据科学MCP服务器的实际示例。

🔥 📑 查看综合分析报告 🔥

📊 基本数据分析工作流

사용자: "CSV 파일을 업로드하고 데이터 분석을 해주세요."

Cursor: upload_local_file() → load_dataset() → perform_eda() → auto_ml_pipeline()

🔍 逐步调用MCP工具

1.确认环境

사용자: "데이터 사이언스 서버가 정상 작동하는지 확인해주세요."

Cursor가 호출: health_check()

2.上传文件

사용자: "로컬에 있는 sales_data.csv 파일을 분석해주세요."

Cursor가 호출:
1. upload_local_file('/path/to/sales_data.csv')
2. load_dataset('sales_data_20241207_143052.csv')

3.探索性数据分析

사용자: "데이터의 기본 특성과 분포를 확인해주세요."

Cursor가 호출:
1. perform_eda(dataset_id='dataset_123')
2. create_visualization(dataset_id='dataset_123', plot_type='pairplot')

4.机器学习建模

사용자: "매출 예측 모델을 만들어주세요."

Cursor가 호출:
1. auto_ml_pipeline(
     dataset_id='dataset_123',
     target_column='sales',
     include_advanced=True
   )

5.生成结果报告

사용자: "전체 분석 결과를 정리한 보고서를 만들어주세요."

Cursor가 호출:
1. generate_comprehensive_report()
2. list_generated_code()

💡 高级使用方案

处理大量数据

사용자: "500MB 고객 데이터를 분석해주세요. 메모리 효율적으로 처리해주세요."

Cursor의 자동 처리:
1. upload_local_file() → 자동 샘플링 감지
2. load_dataset() → 층화표집으로 30,000행 샘플 생성
3. perform_eda() → 샘플 데이터로 EDA 수행
4. auto_ml_pipeline() → 고급 알고리즘으로 모델링

自动检测问题类型

사용자: "이 데이터셋으로 무엇을 분석할 수 있는지 알려주세요."

Cursor가 호출:
1. load_dataset() → 자동 문제 유형 감지
2. 결과: "분류 문제로 감지, 추천 타겟: 'customer_churn'"

自定义可视化

사용자: "연령대별 구매 패턴을 시각화해주세요."

Cursor가 호출:
create_visualization(
  dataset_id='dataset_123',
  plot_type='boxplot',
  x_column='age_group',
  y_column='purchase_amount',
  title='연령대별 구매 패턴'
)

🚀 实际使用提示

  1. 高效的工作流

    • 首先 health_check通过检查服务器状态
    • upload_local_file → load_dataset → perform_eda 按顺序进行
    • 大数据首先查看自动采样结果
  2. 错误处理

    • 上载文件失败时 get_upload_instructions 确认
    • 内存不足时请求更小的样本大小
    • 建模失败时 get_operation_details通过查看详细信息
  3. 利用结果

    • list_generated_code验证可通过重现的Python代码
    • generate_comprehensive_report使用生成专业分析报告
    • 创建的模型包括: sandbox/models/可在中查看

📝 许可证

MIT许可证-可自由使用、修改和分发


🔄 版本历史记录

v0.3.0(当前)

  • 🎯 自动检测智能问题类型
  • 🧠 고급 ML 알고리즘 (XGBoost、LightGBM、CatBoost、高斯过程)
  • 📊 自适应采样(分层/体系/随机)
  • 🎨 高级可视化(Plotly,缩小维度,仪表板)
  • 🔬 基于SHAP的模型分析
  • 💻 自动生成完整代码
  • 📝 综合标记报告
  • 📁 上载和管理文件
  • 性能优化和可靠性

主要改进

  • 智能分析:基于数据特性自动检测问题类型
  • 保证质量:采样质量自动验证系统
  • 用户友好:直观的API和详细的指南
  • 企业:可靠地处理大量数据
  • 再现性:生成所有分析的完整代码

💡 提示:为了获得最佳结果,我们建议您进行有针对性专栏的指导学习,对于大数据,请检查自动采样结果,必要时重新验证整个数据。