使用说明
项目简介
Data Parser MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,专注于处理 CSV 数据。它允许用户通过 LLM 客户端加载 CSV 文件,并利用自然语言查询进行数据分析和可视化。该服务器提供了一系列工具,使得 LLM 能够理解和操作数据,生成分析报告和图表。
主要功能点
- 数据加载: 支持加载本地 CSV 文件,可配置分隔符、编码、跳过行数以及指定日期列。加载后的数据集存储在服务器内存中,并记录元数据(如列名、数据类型等)。
- 数据分析: 通过自然语言问题对已加载的数据集进行分析。支持多种分析类型,包括:
- 统计分析: 均值、中位数、标准差、分位数等。
- 时序分析: 时间序列趋势、月度平均值等(针对日期列)。
- 关联分析: 数值列之间的相关性矩阵。
- 分类分析: 类别计数和分布。
- 数据质量分析: 缺失值检测、离群值检测等。
- 数据可视化: 根据用户指令生成多种图表,包括:
- 柱状图 (Bar chart)
- 折线图 (Line chart)
- 散点图 (Scatter plot)
- 饼图 (Pie chart)
- 热力图 (Heatmap)
- 箱线图 (Box plot)
- 直方图 (Histogram) 图表以JSON格式返回数据,方便集成到LLM客户端或其它应用中。
安装步骤
- 克隆仓库:
git clone https://github.com/JoseRoberts87/data-parser cd data-parser - 安装依赖:
确保已安装 Poetry。如果未安装,请参考 Poetry 官方文档 进行安装。
poetry install
服务器配置
要将 Data Parser MCP Server 添加到 MCP 客户端(例如 Claude Desktop),需要配置服务器启动命令和参数。以下是配置示例,请根据实际情况修改路径:
{ "mcpServers": { "mcp-server-data-parser": { "command": "/Path/to/.local/bin/uv", // 【请替换为 uv 程序的实际路径,通常 Poetry 安装的 uv 可执行文件位于项目的 .venv 或用户本地的 .local/bin 目录下】 "args": [ "--directory", "path/to/data-parser", // 【请替换为 data-parser 仓库的根目录的实际路径】 "run", "mcp-server-data-parser" // 服务器的入口点名称,对应 pyproject.toml 中 [tool.poetry.scripts] 定义的 mcp-server-data-parser ] } } }
配置参数说明:
- '"mcpServers"': 定义 MCP 服务器的配置。
- '"mcp-server-data-parser"': 服务器的名称,可以自定义,在客户端中用于引用此服务器。
- '"command"': 启动服务器的命令。这里使用 'uv run mcp-server-data-parser',uv 是一个快速的 Python 包安装和运行工具,'run mcp-server-data-parser' 会执行在 'pyproject.toml' 中定义的 'mcp-server-data-parser' 脚本,该脚本实际上会调用 'src/mcp_server_data_parser/main.py' 中的 'main()' 函数来启动 MCP 服务器。
- '"args"': 传递给启动命令的参数。
- '--directory "path/to/data-parser"': 指定工作目录为 'data-parser' 仓库的根目录,确保服务器能找到相关资源和依赖。
基本使用方法
- 启动 MCP 服务器: 配置完成后,启动 MCP 客户端(如 Claude Desktop),客户端会自动尝试连接并启动 Data Parser MCP Server。
- 使用工具: 在 LLM 客户端中,可以使用以下工具与 Data Parser MCP Server 交互:
- 'load-csv': 加载 CSV 文件。
- 参数示例:
await call_tool("load-csv", { "file_path": "data.csv", // CSV 文件路径 (相对于服务器工作目录或绝对路径) "dataset_name": "my_data", // 数据集名称,用于后续引用 "options": { "date_columns": ["transaction_date"] // 指定日期列 } })
- 参数示例:
- 'analyze-data': 分析已加载的数据集。
- 参数示例:
await call_tool("analyze-data", { "dataset_name": "my_data", // 要分析的数据集名称 (与 load-csv 中 dataset_name 一致) "question": "What is the average price?", // 自然语言问题 "columns": ["price"] // 可选,指定要分析的列 })
- 参数示例:
- 'visualize-data': 生成数据可视化图表。
- 参数示例:
await call_tool("visualize-data", { "dataset_name": "my_data", // 要可视化的数据集名称 "visualization_type": "bar", // 图表类型,例如 "bar", "line", "scatter", "pie", "heatmap", "boxplot", "histogram" "columns": ["sales"], // 要用于图表的列 "group_by": "category", // 可选,分组列 "options": { "title": "Sales by Category" // 可选,图表标题 } })
- 参数示例:
- 'list-columns': 列出数据集的列信息。
- 参数示例:
await call_tool("list-columns", { "dataset_name": "my_data", // 要查询的数据集名称 "include_stats": true // 可选,是否包含列的统计信息 })
- 参数示例:
- 'load-csv': 加载 CSV 文件。
- 查看结果: 工具执行结果(包括分析报告、图表数据等)将以文本或图像形式返回到 LLM 客户端。
通过上述步骤,用户可以使用 LLM 客户端与 Data Parser MCP Server 交互,实现 CSV 数据的加载、分析和可视化。
信息
分类
AI与计算