使用说明

项目简介

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客户端或其它应用中。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/JoseRoberts87/data-parser
    cd data-parser
  2. 安装依赖: 确保已安装 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' 仓库的根目录,确保服务器能找到相关资源和依赖。

基本使用方法

  1. 启动 MCP 服务器: 配置完成后,启动 MCP 客户端(如 Claude Desktop),客户端会自动尝试连接并启动 Data Parser MCP Server。
  2. 使用工具: 在 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 // 可选,是否包含列的统计信息
        })
  3. 查看结果: 工具执行结果(包括分析报告、图表数据等)将以文本或图像形式返回到 LLM 客户端。

通过上述步骤,用户可以使用 LLM 客户端与 Data Parser MCP Server 交互,实现 CSV 数据的加载、分析和可视化。

信息

分类

AI与计算