article
README
🚀 Pandas MCP 服务器
本仓库中的服务器基于模型上下文协议(MCP)实现,具备处理 CSV 文件、执行 Pandas 代码以及生成交互式图表(柱状图、饼图和折线图)的能力,能高效助力数据处理与可视化。
🚀 快速开始
安装依赖
需安装 Python 3.11 或更高版本,并执行以下命令安装所需的 Python 包:
pip install -r requirements.txt
启动服务器
运行主脚本(例如 server.py)来启动服务器。
调用功能
- 调用
read_metadata函数,传入文件路径以获取文件信息。 - 使用
run_pandas_code函数执行 Pandas 数据分析。 - 调用图表生成函数(
bar_chart_to_html、pie_chart_to_html、line_chart_to_html)创建交互式图表。
✨ 主要特性
read_metadata
- 功能描述:加载 CSV 文件,并返回其列结构和示例数据。
- 参数说明:
file_path:CSV 文件的路径。
- 返回结果:包含 CSV 文件列和示例数据的字典。
- 注意事项:
- 可自动检测文件编码和分隔符。
- 为避免过度占用内存,将文件大小限制为 100MB。
run_pandas_code
- 功能描述:执行以字符串形式提供的 Pandas 代码。
- 参数说明:
code:包含待执行 Pandas 代码的字符串。
- 返回结果:包含执行结果和执行期间创建变量的字典。
- 安全注意事项:
- 会阻止执行黑名单操作,如
os.、sys.、subprocess.、open(、exec(、eval(、import os、import sys。 - 提供详细的错误信息和建议,帮助用户解决问题。
- 会阻止执行黑名单操作,如
bar_chart_to_html
- 功能描述:利用 Chart.js 模板生成交互式 HTML 柱状图。
- 参数说明:
categories:x 轴的类别名称列表。values:y 轴的数值列表。title:图表标题(默认值为 "交互式图表")。
- 返回结果:包含文件路径和状态信息的字典。
- 使用示例:
{
"categories": ["电子产品", "服装", "家居用品"],
"values": [120000, 85000, 95000],
"title": "按产品类别划分的第一季度销售额"
}
pie_chart_to_html
- 功能描述:使用 Chart.js 模板生成交互式 HTML 饼图。
- 参数说明:
labels:每个饼图切片的标签名称列表。values:每个切片的数值列表。title:图表标题(默认值为 "交互式饼图")。
- 返回结果:包含文件路径和状态信息的字典。
- 使用示例:
{
"labels": ["电子产品", "服装", "家居用品"],
"values": [120000, 85000, 95000],
"title": "第一季度销售分布"
}
line_chart_to_html
- 功能描述:借助 Chart.js 模板生成交互式 HTML 折线图。
- 参数说明:
labels:x 轴的标签名称列表。datasets:数据集列表,每个数据集包含:label:数据集的名称。data:数值列表。
title:图表标题(默认值为 "交互式折线图")。
- 返回结果:包含文件路径和状态信息的字典。
- 使用示例:
{
"status": "SUCCESS",
"filepath": "/absolute/path/to/chart_1713443200.html"
}
📚 详细文档
工作流程
数据加载
使用 read_metadata 函数加载并解析 CSV 文件。
数据分析
通过 run_pandas_code 函数执行复杂的 Pandas 数据分析。
图表生成
- 根据分析结果调用相应的图表生成函数。
- 示例响应如下:
{
"status": "SUCCESS",
"filepath": "/absolute/path/to/chart_1713443200.html"
}
通过上述步骤,您能够高效地处理数据、执行分析并生成交互式可视化结果。
Scan to contact