返回市场
可视化-mcp服务器

可视化-mcp服务器

作者:xlisp9 星标更新:2025-08-02

项目介绍

可视化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. 关系图

创建网络图以展示实体之间的关系:

# 示例:展示A、B、C、D之间的关系
nodes = ["Alice", "Bob", "Charlie", "Diana"]
edges = [["Alice", "Bob"], ["Bob", "Charlie"], ["Alice", "Charlie"], ["Charlie", "Diana"]]

# 调用:create_relationship_graph(nodes, edges, "社交网络")

参数:

  • nodes:节点名称列表
  • edges:连接列表(节点名称对)
  • title:图形标题(可选)
  • node_size:节点大小(默认:1000)
  • font_size:标签字体大小(默认:12)

2. 散点图

创建带有可选标签和颜色的基本散点图:

# 示例:基本散点图
x_data = [1, 2, 3, 4, 5]
y_data = [2, 5, 3, 8, 7]
labels = ["点A", "点B", "点C", "点D", "点E"]

# 调用:create_scatter_plot(x_data, y_data, labels, title="我的散点图")

参数:

  • x_data:X轴值
  • y_data:Y轴值
  • labels:点标签(可选)
  • colors:点颜色(可选)
  • titlex_labely_label:图表标签
  • size:点大小(默认:50)

3. 分类散点图

可视化按类别分组的数据点:

# 示例:分类可视化
x_data = [1, 2, 3, 4, 5, 6]
y_data = [2, 3, 1, 5, 4, 6]
categories = ["类型A", "类型A", "类型B", "类型B", "类型C", "类型C"]

# 调用:create_classification_plot(x_data, y_data, categories)

参数:

  • x_data:X轴值
  • y_data:Y轴值
  • categories:每个点的类别标签
  • titlex_labely_label:图表标签

4. 3D可视化

创建多种类型的3D图:

# 示例:3D散点图
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 5, 3]
z_data = [3, 1, 4, 2, 5]

# 调用:create_3d_plot(x_data, y_data, z_data, plot_type="scatter")

参数:

  • x_datay_dataz_data:3D坐标
  • plot_type:"scatter","surface"或"wireframe"
  • titlex_labely_labelz_label:图表标签

5. 其他图表

直方图

# create_histogram(data, bins=30, title="分布")

折线图

# 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. 返回保存图像的文件路径

示例输出:

"图形保存至:/tmp/relationship_graph_20250802_143022.png 并已显示"

文件管理

  • 图像使用时间戳保存以避免冲突
  • 文件存储在系统临时目录中:
    • WindowsC:\Users\用户名\AppData\Local\Temp\
    • macOS/Linux/tmp/
  • 高分辨率(300 DPI)PNG格式

MCP集成

此服务器遵循模型上下文协议标准,并可以与兼容MCP的客户端集成。服务器默认通过stdio传输运行。

服务器配置

if __name__ == "__main__":
    mcp.run(transport='stdio')

示例

社交网络分析

# 可视化社交连接
nodes = ["Alice", "Bob", "Charlie", "Diana", "Eve"]
relationships = [
    ["Alice", "Bob"], 
    ["Bob", "Charlie"], 
    ["Charlie", "Diana"],
    ["Alice", "Eve"], 
    ["Eve", "Diana"]
]
# 创建展示社交连接的网络图

数据分类

# 可视化机器学习结果
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 = ["类别A", "类别B", "类别A", "类别B", "类别B", "类别A"]
# 创建分类散点图

科学数据

# 3D科学可视化
x_coords = [0, 1, 2, 3, 4]
y_coords = [0, 1, 4, 9, 16]
z_coords = [0, 1, 8, 27, 64]
# 创建3D表面或散点图

错误处理

服务器包含全面的错误处理:

  • 检测无效数据格式
  • 缺失参数验证
  • Matplotlib渲染错误恢复
  • 文件系统权限检查

贡献

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加精彩功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

本项目采用MIT许可证 - 查看LICENSE文件获取详细信息。

依赖项

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

发展路线图

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

支持

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

  1. 查看问题页面
  2. 创建一个新的问题并附上详细描述
  3. 包括样本数据和错误消息

由❤️为MCP生态系统制作