数据分析MCP工具

一个结合确定性Python分析和LLM驱动解释的轻量级数据分析工具服务器,适用于数据分析和解释场景。

  • by bernardtse
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bernardtse/data-mcp-server

使用说明

数据mcp服务器

简单Python数据分析MCP工具服务器


目录

  1. 概述
  2. 存储库结构
  3. 部署
  4. 设计理念
  5. 示例数据集
  6. 参考文献
  7. 许可证
  8. 作者

1.概述

这个项目是 原型 数据分析MCP工具服务器,将确定性Python分析与LLM驱动的解释集成在一起,通过模型上下文协议(MCP)展示了一个轻量级、受控的工作流程。服务器:

  • 负载 CSV文件, 基于行的JSON,或 基于行的YAML 数据集。
  • 执行简单操作 Python分析:基本信息、数字摘要、分类摘要。
  • 纯文本输出,人类可读,适合 LLM口译.
  • 利用法学硕士提供见解的简短总结。

2.存储库结构

Python文件

数据集

  • datasets/
    • 员工绩效
      • datasets/employee_performance.csv
      • datasets/employee_performance.json
      • datasets/employee_performance.yaml
    • 销售数据
      • datasets/sales_data.csv
      • datasets/sales_data.json
      • datasets/sales_data.yaml

图像

  • images/ -包含屏幕截图的文件夹

uv项目文件

  • pyproject.toml
  • uv.lock

3.部署

按照以下步骤运行项目:

1.安装UV

macOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows(PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

2.克隆存储库

git clone https://github.com/bernardtse/data-mcp-server.git
cd data-mcp-server

3.创建并同步UV管理的虚拟环境

uv sync

4.下载并安装Claude Desktop

  • 按照安装说明进行操作 这里.
  • 截至 2025年11月,Claude Desktop尚未适用于Linux。Linux用户可以探索 其他兼容的MCP客户端 作为替代方案。

5.将MCP服务器安装到Claude Desktop上

uv run mcp install -e ./ data_mcp_server.py

6.在Claude Desktop上运行MCP服务器

  • 启动Claude Desktop(或重新启动已打开的应用程序)。
  • 检查 data-mcp-server 已启用并正在运行:
    • Menu → 设置→ 开发者→ 本地MCP服务器
  • 点击 搜索和工具 位于输入字段正下方的按钮。检查一下 data-mcp-server 工具已启用。
  • 编写一个提示以触发数据分析。确保提示包括 数据集文件的完整路径名 (截图中的路径名仅供参考)。
Analyse this file
/Users/username/Desktop/data-mcp-server/datasets/sales_data.csv

7.开发者模式(Dev Mode)及其他

  • 开发者可以激活 开发模式 通过在存储库文件夹中运行以下命令:
uv run mcp dev data_mcp_server.py
  • 要在其他第三方客户端(如Cursor、Goose等)上运行MCP服务器,请在应用程序中找到MCP配置设置。在某些客户端中,这会打开MCP配置文件(JSON)进行直接编辑。如果已经定义了其他MCP服务器,请按照以下结构添加一个新条目。如果文件为空,则将其内容完全替换为JSON示例。保存所有更改后,重新启动客户端。
{
  "mcpServers": {
    "Simple Python Data Analytics MCP Tool Server":{
      "command": "uv",
      "args": [
      "--directory",
      "pathname-of-local-repository",
      "run",
      "data_mcp_server.py"
      ]
    }
  }
}

笔记:

  • 您需要指定 完整路径名 本地存储库文件夹。

  • 在某些情况下,命令 uv 可能不起作用。如果发生这种情况,请尝试以下操作:

    macOS/Linux:

    • 在终端中,运行 which uv 查找目录的命令 紫外线.
    • 在配置JSON文件中,替换 uv 完整的路径 紫外线例如。 /Users/username/.local/bin/uv.

    Windows(Powershell):

    • 跑吧 where uv 显示完整路径的命令 uv.exe 文件。
    • 在配置JSON文件中,替换 uv 路径名为 uv.exe例如。 C:\\Users\\username\\.local\\bin\\uv.exe.
    • 如果这仍然不起作用,请尝试添加 cmd /C 之前 uv 或的路径名 uv.exe:
      • 例如 cmd /C uv
      • 例如 cmd /C C:\\Users\\username\\.local\\bin\\uv.exe (根据需要调整路径名)

4.设计理念

为什么选择混合(Python+LLM)?

纯Python分析和完全LLM驱动的工作流都有固有的权衡:

  • 纯Python: 确定性和精确性,但缺乏自然语言总结或灵活解释。
  • 纯LLM: 适应性强,富有表现力,但不具有确定性。结果可能会有所不同,很难重现。

此混合MCP服务器演示了 受控编排 在两者之间。它强调了确定性计算和概率推理相辅相成的场景:

  • 再现性和确定性: Python确保计算是精确的、可审计的和可重复的。
  • 受控处理: 定量结果来自直接计算,而不是概率推理。
  • 法学硕士作为口译员: 提供人类可读的解释、上下文见解和叙述性总结。
  • MCP作为桥梁:在可重复的结构化工作流程中协调Python工具和LLM之间的模块化交互。

MCP工具专用设计

此原型仅实现 工具调用 功能性(mcp.tool()),省略 mcp.prompt() 和 mcp.resource(). 设计原理:

  • 截至 2025年11月,大多数第三方MCP客户端主要为以下内容提供稳定的支持 mcp.tool().
  • 这种方法简化了实现,避免了暴露不必要的指令或UI元素。
  • 它使工作流专注于确定性Python执行,允许LLM自然地解释输出。

其他设计选择

  • 用途 标准 传输以实现跨环境的简单性、可移植性和兼容性。
  • 保持架构的轻量级和透明性,以便于调试和集成。
  • 承认 MCP协议 它仍在不断发展,因此这种实现更倾向于清晰性和可维护性,而不是功能完整性。

使用的技术

  • 模型上下文协议(MCP) -由引入的开放协议 Anthropic 实现LLM应用程序与外部数据源和工具之间的无缝集成
  • Python 3 -确定性数据分析的核心语言
  • FastMCP -用于构建MCP服务器的轻量级框架
  • 熊猫 -数据加载、转换和统计摘要
  • 格式 -解析YAML数据集
  • 紫外线 -Python包和项目管理器
    • 之所以选择它,是因为与其他管理器相比,它具有更高的速度、可重复性和依赖性解决方案,并且因为它是 首选包管理器 推荐在 官方MCP Python SDK 和 文档
  • 克劳德桌面版 (MCP客户端)-提供LLM驱动的Python分析解释

5.样本数据集

有 2组数据: employee_performance 和 sales_data,可在 CSV文件, JSON 和 YAML 格式。

所有JSON或YAML数据集都是 行导向 (记录列表)以反映CSV语义,并确保可靠的解析 pandas面向列的数据结构(其中每个键映射到一系列值)是 不用,如 pandas.read_json 和 yaml.safe_load 对于默认的表格转换,预期使用面向记录的数据。

代码片段

datasets/sales_data.csv

month,revenue,units_sold,best_performing_region
Jan,12000,300,North
Feb,15000,400,South

datasets/sales_data.json

[
  {"month": "Jan", "revenue": 12000, "units_sold": 300, "best_performing_region": "North"},
  {"month": "Feb", "revenue": 15000, "units_sold": 400, "best_performing_region": "South"}
]

datasets/sales_data.yaml

- month: Jan
  revenue: 12000
  units_sold: 300
  best_performing_region: North
- month: Feb
  revenue: 15000
  units_sold: 400
  best_performing_region: South

6.参考文献


7.许可证

  • 该项目根据 MIT许可证。请参阅 许可证 文件以获取详细信息。
  • 鼓励开发人员根据需要通过附加功能、支持和MCP API使用来增强此原型。

8.作者

  • 由开发和维护 谢霆锋,在以下机构的支持下 开放人工智能的ChatGPT,用于代码优化、优化和调试协助。