Plotly MCP服务器-实施计划
项目概述
目标:仅图形对象用于光标的Plotly MCP服务器\ 输出:来自自然语言的HTML可视化\ 控制:所有图表元素的分钟级自定义\ 范围:完全覆盖50多种Plotly跟踪类型
第一阶段状态✅
基础完成:
- ✅ 带FastMCP框架的MCP服务器(SDK 1.2.0+)
- ✅ 49种迹线类型的项目结构
- ✅ 5种基本的跟踪构建器(散点图、条形图、直线图、饼图、直方图)
- ✅ 图装配系统
- ✅ 布局控制器(轴、样式)
- ✅ 用于测试的样本数据生成
- ✅ 光标集成就绪
快速开始
1.安装依赖项
紫外线(推荐):
# Install UV if you havent already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Setup project
cd /Users/arshad/Desktop/personal/code/plotly-mcp-claude
uv sync使用pip:
pip install -r requirements.txt2.运行MCP服务器
cd src
python server.py3.添加到光标MCP设置
将此添加到您的Cursor MCP配置中:
{
"mcpServers": {
"plotly-mcp": {
"command": "python",
"args": ["/Users/arshad/Desktop/personal/code/plotly-mcp-claude/src/server.py"]
}
}
}可用工具(第一阶段)
基本跟踪构建器
- create_scatter_plot -带有标记、线条或两者的散点图
- create_bar_chart -带文本标签的垂直/水平条形图
- create_line_chart -带有样式和填充选项的折线图
- 创建pie_chart -带有自定义颜色的饼图/甜甜圈图
- create_histogram -带合并和归一化的直方图
实用工具
- 创建多跟踪图形 -初始化多条轨迹的图形
- generate_sample_data -创建测试数据(线性、正弦、随机、类别)
使用示例
散点图
create_scatter_plot(
x_data=[1, 2, 3, 4, 5],
y_data=[2, 4, 1, 5, 3],
colors="red",
sizes=15,
mode="markers+lines",
name="My Data"
)柱状图
create_bar_chart(
x_data=["A", "B", "C", "D"],
y_data=[20, 14, 23, 25],
colors="blue",
orientation="v",
text=["20", "14", "23", "25"],
name="Sales Data"
)饼图
create_pie_chart(
labels=["Apple", "Orange", "Banana"],
values=[30, 25, 45],
hole=0.3, # Donut chart
textinfo="label+percent"
)生成测试数据
generate_sample_data(
data_type="sine",
size=100,
noise=0.1
)建筑
plotly-mcp-claude/
├── src/
│ ├── server.py # Main MCP server (FastMCP)
│ ├── traces/ # All trace builders (5/49 complete)
│ │ └── basic/ # Phase 1: scatter, bar, line, pie, histogram
│ ├── layouts/ # Layout controllers
│ │ ├── axes.py # X/Y/Z axis configuration
│ │ └── styling.py # Colors, fonts, margins, legends
│ ├── assembly/ # Figure building
│ │ └── builder.py # Combine traces + layout
│ └── [themes/, nlp/] # Future phases
├── data/ # Sample datasets (future)
├── examples/ # Usage examples (future)
├── tests/ # Unit tests (future)
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
└── README.md # This file完整的绘图跟踪类型(计划)
第一阶段✅ (5/49)
- 基本图表:分散✅, 酒吧✅, 线✅, 馅饼✅, 直方图✅
第2阶段📋 (另外15种)
- 统计图形:盒子、小提琴、热图、轮廓、splom、parcoords、parcats、histogram2d
- 3D图表:散射3d、表面、网格3d、体积、等值面、锥体、流管
第三期📋 (另外15种)
- 地理图表:choropleth、choroplethmap、choroplothmapbox、scattergeo、scattermap、scattermapbox、密度图、密度图框
- 财务图表:烛台、ohlc、瀑布
- 层次结构图:树图、日出、冰柱、山葵
阶段4📋 (14种以上)
- 极坐标和坐标scatterpolar,scatterpolargl,scattersmith,scatterternary,carpet,scattercarpet
- 专业图表:漏斗、漏斗区、指示器、图像、表格
- 额外:双极性、直方图2轮廓、轮廓线
总计:计划49个轨迹构建器
实施时间表
- 第一阶段 ✅ 基础(5个基本痕迹)- 完成
- 第2阶段 🚧 统计和3D痕迹(另外15种)
- 第三期 📋 地理和财务痕迹(另外15种)
- 阶段4 📋 剩余痕迹和完整布局(另外14种)
- 阶段5 📋 主题系统(科幻、企业、黑暗主题)
- 第6阶段 📋 自然语言接口
技术细节
MCP服务器功能
- 内置于 MCP Python SDK 1.2.0+
- FastMCP 易于工具定义的框架
- 异步/等待 图案贯穿始终
- 键入提示 对于所有参数
- 错误处理 带有详细信息
- 日志记录 用于调试
图表功能
- HTML输出 内嵌Plotly.js
- 交互式 图表(缩放、平移、悬停)
- 响应式设计 (默认为800x600)
- 专业造型 (情节_白色主题)
- 完全定制 所有视觉元素
测试
每种跟踪类型都返回完整的HTML,可以是:
- 直接在浏览器中查看
- 嵌入到应用程序中
- 显示在Cursor/Claude界面中
第二阶段的后续步骤
已准备好添加统计和3D跟踪:
- 箱形图 -四分位数可视化
- 小提琴情节 -分布形状
- 热图 -二维数据相关性
- 三维散射 -三维点
- 曲面图 -三维数学函数
贡献
模块化架构使添加新的跟踪类型变得容易:
- 在中创建跟踪生成器
src/traces/{category}/ - 在中添加工具装饰器
src/server.py - 使用样本数据进行测试
- 更新文档
需求
- Python 3.10+
- MCP Python SDK 1.2.0+
- 绘图5.0+
- 现代浏览器 用于查看图表
______________________________________________________________________
*第1阶段完成-已实施5/49种跟踪类型* *为第二阶段做好准备:统计和3D可视化*
内置于❤️ 克劳德生态系统
