使用说明
高级数据科学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='연령대별 구매 패턴'
)
🚀 实际使用提示
-
高效的工作流
- 首先
health_check通过检查服务器状态 upload_local_file→load_dataset→perform_eda按顺序进行- 大数据首先查看自动采样结果
- 首先
-
错误处理
- 上载文件失败时
get_upload_instructions确认 - 内存不足时请求更小的样本大小
- 建模失败时
get_operation_details通过查看详细信息
- 上载文件失败时
-
利用结果
list_generated_code验证可通过重现的Python代码generate_comprehensive_report使用生成专业分析报告- 创建的模型包括:
sandbox/models/可在中查看
📝 许可证
MIT许可证-可自由使用、修改和分发
🔄 版本历史记录
v0.3.0(当前)
- 🎯 自动检测智能问题类型
- 🧠 고급 ML 알고리즘 (XGBoost、LightGBM、CatBoost、高斯过程)
- 📊 自适应采样(分层/体系/随机)
- 🎨 高级可视化(Plotly,缩小维度,仪表板)
- 🔬 基于SHAP的模型分析
- 💻 自动生成完整代码
- 📝 综合标记报告
- 📁 上载和管理文件
- 性能优化和可靠性
主要改进
- 智能分析:基于数据特性自动检测问题类型
- 保证质量:采样质量自动验证系统
- 用户友好:直观的API和详细的指南
- 企业:可靠地处理大量数据
- 再现性:生成所有分析的完整代码
💡 提示:为了获得最佳结果,我们建议您进行有针对性专栏的指导学习,对于大数据,请检查自动采样结果,必要时重新验证整个数据。
