使用说明
项目简介
本项目实现了一个基于 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供数据可视化功能。该服务器允许LLM通过调用工具,将数据保存到服务器,并使用 Vega-Lite 语法生成数据可视化图表。
主要功能点
- 数据保存 (save_data): 允许LLM将表格数据以命名的形式保存在服务器端,为后续可视化做准备。
- 数据可视化 (visualize_data): 接收LLM提供的 Vega-Lite 规范和已保存的数据名称,在服务器端渲染生成图表。支持返回 PNG 图片 (base64 编码) 或包含 Vega-Lite 规范的文本结果。
安装步骤
- 克隆仓库:
git clone https://github.com/MCP-Mirror/isaacwasserman_mcp-vegalite-server.git cd isaacwasserman_mcp-vegalite-server - 创建并激活虚拟环境 (推荐):
python3 -m venv venv source venv/bin/activate # 或 venv\Scripts\activate (Windows) - 安装依赖:
pip install -e .
服务器配置
要将此MCP服务器与MCP客户端(例如 Claude Desktop)集成,您需要在客户端的配置文件中添加服务器配置信息。以下是一个示例 'claude_desktop_config.json' 配置,请根据实际情况修改路径:
{ "mcpServers": { "datavis": { "command": "uv", "args": [ "--directory", "/absolute/path/to/mcp-vegalite-server", // 替换为您的 mcp-vegalite-server 仓库的绝对路径 "run", "mcp_server_vegalite", "--output-type", // 输出类型,可选 "png" 或 "text" "png" ] } } }
配置参数说明:
- '"datavis"': 服务器名称,可以自定义。
- '"command": "uv"': 启动命令,这里使用 'uv run' 运行 Python 包。确保您的环境中已安装 'uv' (可以使用 'pip install uv' 安装)。您也可以根据实际情况调整为 'python' 或其他 Python 运行方式。
- '"args"': 启动参数列表。
- '"--directory", "/absolute/path/to/mcp-vegalite-server"': 指定服务器代码所在的目录,请务必替换为您的 'mcp-vegalite-server' 仓库的绝对路径。
- '"run", "mcp_server_vegalite"': 使用 'uv run' 运行 'mcp_server_vegalite' 包,这会执行 'src/mcp_server_vegalite/init.py' 中的 'main' 函数。
- '"--output-type", "png"': 设置服务器输出类型为 PNG 图片。您可以将其更改为 '"text"' 以获取包含 Vega-Lite 规范的文本输出。
基本使用方法
- 启动服务器: 根据您在 'claude_desktop_config.json' 中配置的命令,启动 MCP 服务器。例如,如果使用 Claude Desktop,它会在启动时自动尝试连接并启动配置的 MCP 服务器。
- 客户端调用工具: 在支持 MCP 协议的 LLM 客户端中,您可以指示 LLM 使用 'save_data' 工具保存数据,并使用 'visualize_data' 工具生成可视化图表。
工具使用示例:
-
save_data 工具:
{ "tool_calls": [ { "id": "call_id_1", "type": "function", "function": { "name": "save_data", "arguments": { "name": "my_data", "data": [ {"x": 1, "y": 2}, {"x": 2, "y": 5}, {"x": 3, "y": 3} ] } } } ] } -
visualize_data 工具:
{ "tool_calls": [ { "id": "call_id_2", "type": "function", "function": { "name": "visualize_data", "arguments": { "data_name": "my_data", "vegalite_specification": "{\"mark\": \"line\", \"encoding\": {\"x\": {\"field\": \"x\", \"type\": \"quantitative\"}, \"y\": {\"field\": \"y\", \"type\": \"quantitative\"}}}" } } } ] }
注意:
- 'vegalite_specification' 参数需要提供符合 Vega-Lite v5 规范的 JSON 字符串。请确保 Vega-Lite 规范的正确性。
- 数据必须先使用 'save_data' 工具保存,才能在 'visualize_data' 工具中使用。
- 服务器日志文件 'logs/mcp_vegalite_server.log' 记录了服务器运行日志,可用于问题排查。
信息
分类
AI与计算