散点图绘制器MCP服务器
一个模型上下文协议(MCP)服务器,为ChatGPT和其他MCP客户端提供交互式散点图绘制功能。
特点/功能
- 上传CSV/Excel数据
- 创建具有双Y轴的交互式散点图
- 为日期列提供时间序列支持
- 统计异常值去除
- 大数据集优化
- 单图表上的多个数据系列
可用工具
1. 上传数据
上传并验证您的数据集。支持CSV文本或Base64编码的CSV/Excel文件。
参数:
data(字符串):CSV 文本或 base64 编码的数据name(字符串,可选):数据集名称(默认:“dataset”)
2. 创建散点图
创建具有高级功能的交互式散点图。
参数:
dataset_name(字符串):上传的数据集名称x_column(字符串):X轴的列y_primary_columns(字符串):逗号分隔的主Y轴列y_secondary_columns(字符串,可选):逗号分隔的用于次要Y轴的列has_date_column(bool):数据中是否包含日期列date_column(字符串):日期列的名称remove_outliers(布尔值): 移除统计异常值outlier_threshold(float): Z分数阈值(默认:4.0)large_dataset(布尔值):针对大数据集(>10,000个点)进行优化chart_title(字符串,可选):自定义图表标题
3. 列出数据集
列出所有已上传的数据集及其列。
4. 获取列信息
获取特定列的详细统计数据。
参数:
dataset_name(字符串):数据集名称column_name(字符串):要检查的列
本地开发
设置
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 运行服务器:
python mcp_server.py使用MCP Inspector进行测试
npx @modelcontextprotocol/inspector python mcp_server.py部署
选项1:铁路
- 安装 Railway CLI:
npm install -g railway- 登录并部署:
railway login
railway init
railway up- 从Railway仪表板获取您的公开URL
选项2:渲染
- 在render.com上创建账户
- 连接GitHub仓库
- 创建新的“Web 服务”
- 设置构建命令:
pip install -r requirements.txt - 设置启动命令:
python mcp_server.py - 部署并获取公共URL
选项3:使用ngrok进行本地部署
- 启动服务器:
python mcp_server.py- 在另一个终端中:
ngrok http 8000- 使用ngrok的HTTPS URL
ChatGPT集成
- 打开ChatGPT
- 前往设置 → 测试功能
- 启用“开发者模式”
- 点击“添加MCP服务器”
- 输入:
- 名字散点图绘制器 - 描述从数据中创建交互式散点图 - MCP服务器URL您的部署URL(例如,https://your-app.railway.app) - 认证OAuth(如果未实现则为None)
- 勾选“我信任此应用程序”
- 点击“创建”
在ChatGPT中的使用示例
User: "I want to create a scatter plot"
ChatGPT: "I'll help you with that! Please provide your data as CSV."
User: [pastes CSV data]
ChatGPT: [Calls upload_data tool]
"Great! Your data has been uploaded. I see columns: Date, Sales, Revenue, Profit.
What would you like to plot?"
User: "Plot Sales and Revenue over time, with Profit on a secondary axis"
ChatGPT: [Calls create_scatter_plot with appropriate parameters]
[Displays the generated chart]技术细节
- 框架FastMCP(Python MCP SDK)
- 绘图Plotly(一个用于创建交互式图表和仪表板的Python库)
- 数据处理Pandas、NumPy、SciPy
- 图像转换Kaleido(凯莱多)
文件结构
scatter_plotter_MCP/
├── mcp_server.py # Main MCP server
├── data_processor.py # Data loading and preprocessing
├── plotting_engine.py # Chart generation
├── requirements.txt # Python dependencies
├── README.md # This file
├── Procfile # Deployment configuration
└── outputs/ # Temporary chart storage环境变量
基本操作无需任何(额外条件)。对于生产:
PORT服务器端口(默认:8000)HOST服务器主机(默认:0.0.0.0)
许可证
麻省理工学院许可证
作者
艾哈迈德·穆罕默德·萨布里(@amsamms) ahmedsabri85@gmail.com(该邮箱地址本身在中文中不作翻译,保持原样,如需说明其含义,可表述为“艾哈迈德·萨布里85的电子邮件地址,由Gmail提供”)
