项目简介
Data Visualization MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型 (LLM) 提供数据可视化的能力。它通过提供 工具 (Tools),允许 LLM 调用服务器的功能,将数据以图表的形式呈现出来,从而帮助用户更直观地理解数据。
主要功能点
- 数据存储 (save_data 工具): 允许 LLM 将表格数据保存到服务器,以便后续进行可视化操作。
- 数据可视化 (visualize_data 工具): 允许 LLM 使用 Vega-Lite 语法指定图表,并将之前保存的数据可视化为 PNG 图片或 JSON 格式的 Vega-Lite 规范。
- 标准 MCP 协议支持: 遵循 MCP 协议标准,易于与各种 MCP 客户端集成。
- 多种运行方式: 支持使用 'uv'、'Docker' 等多种方式运行。
- 输出格式可配置: 支持输出 PNG 图片或 JSON 格式的 Vega-Lite 规范。
安装步骤
本仓库无需复杂的安装步骤,可以直接运行。您可以使用 'uv' 或 'Docker' 运行该服务器。
前提条件:
- 已安装 Python 环境 (如果使用 'uv' 运行)
- 已安装 Docker (如果使用 Docker 运行)
运行方式:
1. 使用 'uv' 运行 (推荐用于开发和本地测试):
- 确保您已安装 'uv'。
- 克隆仓库到本地:
git clone https://github.com/markomitranic/mcp-vegalite-server.git cd mcp-vegalite-server - 使用 'uv' 运行服务器:
或uv --directory . run mcp_server_vegalite --output-type png
'--output-type' 参数用于指定输出格式,'png' 为 PNG 图片,'text' 为 JSON 格式的 Vega-Lite 规范。默认为 'png'。uv --directory . run mcp_server_vegalite --output-type text
2. 使用 Docker 运行 (推荐用于部署):
- 确保您已安装 Docker。
- 克隆仓库到本地:
git clone https://github.com/markomitranic/mcp-vegalite-server.git cd mcp-vegalite-server - 构建 Docker 镜像:
docker build -t mcp-server-vegalite . - 运行 Docker 容器:
或docker run -i --rm mcp-server-vegalite --output-type png
'--output-type' 参数用于指定输出格式,'png' 为 PNG 图片,'text' 为 JSON 格式的 Vega-Lite 规范。默认为 'png'。docker run -i --rm mcp-server-vegalite --output-type text
服务器配置
要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)连接,您需要在客户端的配置文件中添加服务器配置信息。以下是 'claude_desktop_config.json' 的配置示例:
{ "mcpServers": { "datavis": { // 服务器名称,客户端使用此名称引用该服务器 "command": "uv", // 启动服务器的命令 "args": [ // 启动服务器的参数列表 "--directory", // 指定工作目录 "/absolute/path/to/mcp-vegalite-server", // 替换为 mcp-vegalite-server 仓库的绝对路径 "run", // uv 的子命令,用于运行 Python 模块 "mcp_server_vegalite", // 要运行的 Python 模块名 (对应 src/mcp_server_vegalite/__init__.py 中的 main 函数) "--output-type", // 服务器参数,指定输出类型 "png" // 输出类型设置为 png 图片 (或 "text" 输出 Vega-Lite JSON) ] } } }
注意:
- 请将 '/absolute/path/to/mcp-vegalite-server' 替换为您本地 'mcp-vegalite-server' 仓库的实际绝对路径。
- 您可以根据需要修改 'output-type' 参数为 'png' 或 'text'。
- 'server name' (这里是 "datavis") 可以自定义,客户端会使用这个名称来调用服务器的功能。
基本使用方法
- 启动 MCP 服务器: 根据上述安装步骤启动服务器。
- 配置 MCP 客户端: 在 MCP 客户端中配置服务器连接信息,例如 Claude Desktop 的 'claude_desktop_config.json' 文件。
- 在 LLM 中使用工具: 在支持 MCP 协议的 LLM 应用中,您可以使用以下工具与该服务器交互:
- 'save_data' 工具: 用于保存数据,例如:
{ "tool_call": { "name": "save_data", "arguments": { "name": "my_data", "data": [ {"x": 1, "y": 2}, {"x": 2, "y": 5}, {"x": 3, "y": 3} ] } } } - 'visualize_data' 工具: 用于可视化已保存的数据,例如:
请注意 'vegalite_specification' 是一个 JSON 字符串,需要符合 Vega-Lite v5 规范,并且 不需要包含 'data' 字段,服务器会自动将指定 'data_name' 的数据注入到 Vega-Lite 规范中。{ "tool_call": { "name": "visualize_data", "arguments": { "data_name": "my_data", "vegalite_specification": "{\"mark\": \"line\", \"encoding\": {\"x\": {\"field\": \"x\", \"type\": \"quantitative\"}, \"y\": {\"field\": \"y\", \"type\": \"quantitative\"}}}" } } }
- 'save_data' 工具: 用于保存数据,例如:
通过组合 'save_data' 和 'visualize_data' 工具,LLM 可以在对话过程中动态地保存数据并生成可视化图表,从而实现更丰富和直观的交互体验。
信息
分类
AI与计算