chatgpt-mcp数据质量助手
这个项目是 本地模型上下文协议(MCP)服务器 这使得ChatGPT 跑 数据质量检查和探索性数据分析 在我的本地 数据集通过自然语言。
我通过HTTP公开服务器(使用 ngrok)并将其注册为自定义MCP ChatGPT中的连接。连接后,我可以向ChatGPT询问以下问题:
- “使用本地数据质量和EDA连接器并列出可用的数据集。”
- “简介
titanic.csv数据集,并总结主要发现。” - “运行数据质量检查
titanic并给我问题和质量评分。” - “打开分析报告
titanic并对其进行总结”
然后,ChatGPT调用我的本地MCP工具,这些工具是在Python之上实现的 pandas 并将结果返回到聊天中。
______________________________________________________________________
特性
- MCP服务器 用Python实现,与ChatGPT的MCP连接兼容。
- 数据集发现:列出本地可用的数据集
data/文件夹。 - 自动EDA:
- 为生成分析报告 titanic.csv 通过汇总统计, 缺失值和相关性。 - 将报告保存到 reports/ 作为Markdown。
- 数据质量检查:
- 对缺失值、数值范围和简单一致性规则的基本检查。 - 返回一个 数据质量评分 以及一系列问题。
- 本地优先:所有数据都保存在我的机器上;ChatGPT只看到结果
MCP服务器返回。
______________________________________________________________________
技术栈
- python
- 熊猫 用于数据操作
- 分析/EDA 自动化数据集报告库
- FastAPI/Starlette + 服务器发送事件(SSE) 实施MCP传输
- 吸烟 将本地MCP服务器暴露给ChatGPT
- 模型上下文协议(MCP) 用于工具定义和模式
______________________________________________________________________
运作原理
- 核心逻辑 (
core.py)
- 从加载数据集 data/ 目录。 - 对于 titanic.csv,它生成一个分析报告,其中包含: - 行/列计数(例如,此Titanic文件为887行,8列)。 - 数字列的汇总统计信息(Age, Fare等等)。 - 变量之间的相关性,例如 Survived, Pclass, Fare等等。:content引用\[oacite:1\]{索引=1} - 实现以下功能: - list_datasets() - profile_dataset(name) - run_quality_checks(name) (退货问题+质量评分) - get_report(name) (加载Markdown报告供ChatGPT进行总结)
- MCP服务器 (
server.py)
- 将核心功能包装为 MCP工具. - 使用FastAPI+SSE通过HTTP公开它们(text/event-stream),所以 ChatGPT可以作为MCP客户端连接。 - 在引擎盖下使用JSON-RPC 2.0以符合MCP的期望。
- 将其暴露于ChatGPT
- 在本地启动MCP服务器:
python server.py- 通过以下方式暴露它 ngrok:
ngrok http 8000- 使用 https://.ngrok.app/mcp ChatGPT MCP中的URL 配置,带 Accept: text/event-stream. - 在ChatGPT中创建一个新的MCP连接,并将其指向此URL。
- 使用ChatGPT
- 启用连接器后的示例提示: - “使用本地数据质量和EDA连接器并列出可用的数据集。” - “分析titanic.csv数据集并总结主要发现。” - “对titanic进行数据质量检查,并给我问题和质量评分。” - “打开titanic的分析报告并对其进行总结。”
______________________________________________________________________
示例:Titanic数据集
作为演示,我使用 泰坦尼克号乘客数据集 储存于 data/titanic.csv.
分析报告包括:
- 887行 和 8列 与字段类似
Survived,Pclass,Age,
Fare以及家庭关系。
- 描述性统计(平均值、标准差、最小值、最大值、四分位数)。
- 相关矩阵,看看如何
Pclass,Age,Fare等等与生存有关。:content参考\[oacite:2\]{索引=2}
生成的Markdown报告位于 reports/titanic_profile.md 并且可以是 由ChatGPT通过MCP连接器打开和总结。
______________________________________________________________________
设置和运行
- 创建虚拟环境并安装依赖项:
python -m venv .venv
source .venv/bin/activate # On macOS/Linux
pip install -r requirements.txt