数据可视化服务器

一个基于Model Context Protocol (MCP)的服务器,提供交互式数据可视化工具,包括关系图、散点图、3D可视化等。

  • by xlisp
  • Python
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 xlisp/visualization-mcp-server

使用说明

可视化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")

输出

每个可视化功能:

  1. 显示 交互式matplotlib窗口中的绘图
  2. 保存 将高分辨率PNG文件保存到系统临时目录
  3. 退货 保存图像的文件路径

输出示例:

"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渲染错误恢复
  • 文件系统权限检查

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

依赖项

  • matplotlib:核心绘图库
  • networkx:图形/网络可视化
  • numpy:数值计算
  • pandas:数据操作
  • mcp:MCP服务器框架

路线图

  • []交互式绘图小部件
  • []动画支持
  • []导出为多种格式(SVG、PDF)
  • []自定义配色方案
  • []统计分析集成
  • []实时数据流图

支持

如果您遇到任何问题或有疑问:

  1. 检查 问题 页
  2. 创建具有详细描述的新问题
  3. 包括示例数据和错误消息

由以下材料制成❤️ 对于MCP生态系统