可视化MCP服务器
一个强大的模型上下文协议(MCP)服务器,用于使用matplotlib创建交互式数据可视化。此服务器提供全面的可视化工具,包括关系图、散点图、3D可视化等。

特性
- 🔗 关系图:创建网络图以可视化实体之间的连接
- 📊 散布图:具有可定制样式的基本散点图和分类散点图
- 🌐 3D可视化:支持3D散点图、曲面图和线框
- 📈 统计图形:柱状图、折线图和热图
- 💾 自动保存:自动将高分辨率图像保存到临时目录
- 🖼️ 实时显示:在交互式matplotlib窗口中显示绘图
- 🎨 可定制的:颜色、标签和布局的广泛样式选项
安装
先决条件
$ python3 -m venv .venv --upgrade-deps
$ source .venv/bin/activate
$ pip install "mcp[cli]" httpx
$ pip install matplotlib numpy pandas networkx
克隆并运行
git clone https://github.com/xlisp/visualization-mcp-server.git
cd visualization-mcp-server
python visualization_server.py用法
1.Cladue桌面客户端配置
"visualization": {
"command": "/Users/clojure/Desktop/visualization-mcp-server/.venv/bin/python",
"args": [
"/Users/clojure/Desktop/visualization-mcp-server/visualization_server.py"
]
}
服务器提供了几个可以通过MCP协议调用的可视化工具:
1.关系图

创建网络图以显示实体之间的关系:
# Example: Show relationships between A, B, C, D
nodes = ["Alice", "Bob", "Charlie", "Diana"]
edges = [["Alice", "Bob"], ["Bob", "Charlie"], ["Alice", "Charlie"], ["Charlie", "Diana"]]
# Call: create_relationship_graph(nodes, edges, "Social Network")参数:
nodes:节点名称列表edges:连接列表(节点名称对)title:图形标题(可选)node_size:节点大小(默认值:1000)font_size:标签字体大小(默认值:12)
2.散点图
使用可选标签和颜色创建基本散点图:
# Example: Basic scatter plot
x_data = [1, 2, 3, 4, 5]
y_data = [2, 5, 3, 8, 7]
labels = ["Point A", "Point B", "Point C", "Point D", "Point E"]
# Call: create_scatter_plot(x_data, y_data, labels, title="My Scatter Plot")参数:
x_data:X轴值y_data:Y轴值labels:点标签(可选)colors:点颜色(可选)title,x_label,y_label:图表标签size:点大小(默认值:50)
3.分类散点图
按类别对数据点进行可视化分组:
# Example: Classification visualization
x_data = [1, 2, 3, 4, 5, 6]
y_data = [2, 3, 1, 5, 4, 6]
categories = ["Type A", "Type A", "Type B", "Type B", "Type C", "Type C"]
# Call: create_classification_plot(x_data, y_data, categories)参数:
x_data:X轴值y_data:Y轴值categories:每个点的类别标签title,x_label,y_label:图表标签
4.三维可视化

创建具有多种可视化类型的3D图:
# Example: 3D scatter plot
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 5, 3]
z_data = [3, 1, 4, 2, 5]
# Call: create_3d_plot(x_data, y_data, z_data, plot_type="scatter")参数:
x_data,y_data,z_data:三维坐标plot_type:“散点”、“表面”或“线框”title,x_label,y_label,z_label:图表标签
5.附加图表
直方图
# create_histogram(data, bins=30, title="Distribution")折线图
# create_line_plot(x_data, y_data, line_style="-", color="blue")热图
# create_heatmap(data_matrix, x_labels, y_labels, colormap="viridis")输出
每个可视化功能:
- 显示 交互式matplotlib窗口中的绘图
- 保存 将高分辨率PNG文件保存到系统临时目录
- 退货 保存图像的文件路径
输出示例:
"Graph saved to: /tmp/relationship_graph_20250802_143022.png and displayed"文件管理
- 图像与时间戳一起保存,以避免冲突
- 文件存储在系统临时目录中:
- 视窗: C:\Users\username\AppData\Local\Temp\ - macOS/Linux: /tmp/
- 高分辨率(300DPI)PNG格式
MCP集成
此服务器遵循模型上下文协议标准,可以与MCP兼容的客户端集成。默认情况下,服务器在stdio传输上运行。
服务器配置
if __name__ == "__main__":
mcp.run(transport='stdio')例子
社会网络分析
# Visualize social connections
nodes = ["Alice", "Bob", "Charlie", "Diana", "Eve"]
relationships = [
["Alice", "Bob"],
["Bob", "Charlie"],
["Charlie", "Diana"],
["Alice", "Eve"],
["Eve", "Diana"]
]
# Creates a network graph showing social connections数据分类
# Visualize machine learning results
features_x = [1.2, 2.3, 1.8, 3.1, 2.9, 1.5]
features_y = [2.1, 3.2, 1.9, 4.1, 3.8, 2.2]
predictions = ["Class A", "Class B", "Class A", "Class B", "Class B", "Class A"]
# Creates a classification scatter plot科学数据
# 3D scientific visualization
x_coords = [0, 1, 2, 3, 4]
y_coords = [0, 1, 4, 9, 16]
z_coords = [0, 1, 8, 27, 64]
# Creates a 3D surface or scatter plot错误处理
服务器包括全面的错误处理:
- 无效数据格式检测
- 缺少参数验证
- Matplotlib渲染错误恢复
- 文件系统权限检查
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
依赖项
matplotlib:核心绘图库networkx:图形/网络可视化numpy:数值计算pandas:数据操作mcp:MCP服务器框架
路线图
- \[\]交互式绘图小部件
- \[\]动画支持
- \[\]导出为多种格式(SVG、PDF)
- \[\]自定义配色方案
- \[\]统计分析集成
- \[\]实时数据流图
支持
如果您遇到任何问题或有疑问:
- 检查 问题 页
- 创建具有详细描述的新问题
- 包括示例数据和错误消息
______________________________________________________________________
由以下材料制成❤️ 对于MCP生态系统
