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

$ 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
"visualization": {
"command": "/Users/clojure/Desktop/visualization-mcp-server/.venv/bin/python",
"args": [
"/Users/clojure/Desktop/visualization-mcp-server/visualization_server.py"
]
}
该服务器提供了一些可以通过MCP协议调用的可视化工具:

创建网络图以展示实体之间的关系:
# 示例:展示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)创建带有可选标签和颜色的基本散点图:
# 示例:基本散点图
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:点颜色(可选)title,x_label,y_label:图表标签size:点大小(默认:50)可视化按类别分组的数据点:
# 示例:分类可视化
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:每个点的类别标签title,x_label,y_label:图表标签
创建多种类型的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_data,y_data,z_data:3D坐标plot_type:"scatter","surface"或"wireframe"title,x_label,y_label,z_label:图表标签# 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")
每个可视化函数:
示例输出:
"图形保存至:/tmp/relationship_graph_20250802_143022.png 并已显示"
C:\Users\用户名\AppData\Local\Temp\/tmp/此服务器遵循模型上下文协议标准,并可以与兼容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表面或散点图
服务器包含全面的错误处理:
git checkout -b feature/amazing-feature)git commit -m '添加精彩功能')git push origin feature/amazing-feature)本项目采用MIT许可证 - 查看LICENSE文件获取详细信息。
matplotlib:核心绘图库networkx:图形/网络可视化numpy:数值计算pandas:数据操作mcp:MCP服务器框架如果您遇到任何问题或有疑问:
由❤️为MCP生态系统制作