Excel数据分析服务

MCP-Server是一个专注于Excel文件读取、描述性分析和图表生成的数据分析工具,适用于数据分析和可视化的场景。

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

使用说明

MCP数据分析服务器

这个服务器主要关注工具。它还包括一些资源和提示的演示。FastMCP用于定义和运行服务器,以及将每个工具作为端点公开。

特性

  • 从桌面读取excel文件
  • 进行描述性分析
  • 创建图表(即条形图、饼图、折线图、散点图、直方图和方框图)

工具

Excel列表

Fileslist_excel_files():扫描桌面上的.xlsx和.xls文件,并返回文件名列表。

读取Excel文件

read_excel_file(文件名,sheet_name=None):从桌面读取指定的excel文件。默认情况下,如果未提供sheet_name,则读取第一张表。返回有关行、列、前5行的预览和数据类型的基本信息。

分析Excel文件

analyze_excel_data(文件名,sheet_name=None):计算数值列、分类列和日期列的描述性统计数据。如果适用,还计算数字列的相关矩阵。

图表生成

这些工具中的每一个都从Excel文件中读取数据,并使用Matplotlib生成图表。这些图作为图像对象(内存中的PNG数据)返回,可以由与MCP服务器交互的任何客户端在下游进行处理。

create_bar_chart(文件名、x_column、y_column、sheet_name=无、title=无、限制=10)

create_pie_chart(文件名、标签_列、值_列、表名=无、标题=无、限制=8)

create_line_chart(文件名、x_column、y_columns、sheet_name=无、title=无)

create_scatter_plot(文件名、x_column、y_column、color_column=无、sheet_name=无、title=无)

create_histogram(文件名、列、容器=10,表名=无,标题=无)

create_box_plot(文件名、列、表名=无,标题=无)

MCP服务器

当脚本直接运行时(即python excel_analytics_server.py),它会启动FastMCP服务器并注册上述所有工具。然后,支持MCP接口的客户端可以调用这些工具。

使用Claude Desktop

先决条件

  • 下载克劳德桌面

步骤1:将MCP添加到python项目中

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

# Create a new project directory
uv init data_analysis_tool
cd data_analysis_tool

# Create and activate a virtual environment
uv venv
source .venv/bin/activate

# Install dependencies
uv add "mcp[cli]" httpx

步骤2:创建MCP服务器

  • 将文件excel_analytics_server.py放在目录data_analysis_tool下
  • 跑
pip install "mcp[cli]" pandas matplotlib openpyxl

步骤3:测试服务器

mcp dev excel_analytics_server.py

步骤4:将MCP连接到Claude

  • 将此添加到您的claude_desktop_config json中
"data_analysis_tool": {
      "command": "/Users/username/.local/bin/uv", # remember to change the username
      "args": [
        "--directory",
        "xxx/data_analysis_tool", # change it to the directory of data_analysis_tool
        "run",
        "excel_analytics_server.py"
      ]
    }

第五步:完成!

  • 试试克劳德!

样品1:

样品2:

样品3:

资源

演示: https://github.com/user-attachments/assets/6bf023ae-7d73-4bfb-95dd-d648a19133a1

提示

演示: https://github.com/user-attachments/assets/59596eae-b8d1-4e5f-951b-15d94d8d261f